@kontur.candy/tools 2.210.1-cgroupv2.0 → 2.210.1-cgroupv2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/distr/Common/AsyncUtils.js +18 -0
- package/distr/Common/AsyncUtils.js.map +1 -0
- package/distr/Common/AutoValidationUtils.js +8 -0
- package/distr/Common/AutoValidationUtils.js.map +1 -0
- package/distr/Common/CandyApiClient/CandyApiClient.js +578 -0
- package/distr/Common/CandyApiClient/CandyApiClient.js.map +1 -0
- package/distr/Common/CandyApiClient/CandyApiClientContext.js +18 -0
- package/distr/Common/CandyApiClient/CandyApiClientContext.js.map +1 -0
- package/distr/Common/CandyApiClient/ClientDraftInfo/ClientDraftInfoResponse.js +6 -0
- package/distr/Common/CandyApiClient/ClientDraftInfo/ClientDraftInfoResponse.js.map +1 -0
- package/distr/Common/CandyApiClient/ClientDraftInfo/FnsFormInfo.js +6 -0
- package/distr/Common/CandyApiClient/ClientDraftInfo/FnsFormInfo.js.map +1 -0
- package/distr/Common/CandyApiClient/ClientDraftInfo/GetClientDraftInfoUrl.js +12 -0
- package/distr/Common/CandyApiClient/ClientDraftInfo/GetClientDraftInfoUrl.js.map +1 -0
- package/distr/Common/CandyApiClient/ClientDraftInfo/PrintInfo.js +6 -0
- package/distr/Common/CandyApiClient/ClientDraftInfo/PrintInfo.js.map +1 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithCache.js +33 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithCache.js.map +1 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithDebouncedBatching.js +35 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithDebouncedBatching.js.map +1 -0
- package/distr/Common/CandyApiClient/DigestApiClient/DigestApiClient.js +20 -0
- package/distr/Common/CandyApiClient/DigestApiClient/DigestApiClient.js.map +1 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Fakes/Data/TaxRebate1152026.js +89 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Fakes/Data/TaxRebate1152026.js.map +1 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakeDigestApiClient.js +42 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakeDigestApiClient.js.map +1 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakePicklists.js +9 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakePicklists.js.map +1 -0
- package/distr/Common/CandyApiClient/DigestApiClient/IDigestApiClient.js +6 -0
- package/distr/Common/CandyApiClient/DigestApiClient/IDigestApiClient.js.map +1 -0
- package/distr/Common/CandyApiClient/DigestApiClient/React/DigestApiClientContext.js +18 -0
- package/distr/Common/CandyApiClient/DigestApiClient/React/DigestApiClientContext.js.map +1 -0
- package/distr/Common/CandyApiClient/DigestApiClient/TestDigestApiClient.js +15 -0
- package/distr/Common/CandyApiClient/DigestApiClient/TestDigestApiClient.js.map +1 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestQueryFilter.js +19 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestQueryFilter.js.map +1 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestRequest.js +6 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestRequest.js.map +1 -0
- package/distr/Common/CandyApiClient/FakeCandyApiClient.js +248 -0
- package/distr/Common/CandyApiClient/FakeCandyApiClient.js.map +1 -0
- package/distr/Common/CandyApiClient/ICandyApiClient.js +6 -0
- package/distr/Common/CandyApiClient/ICandyApiClient.js.map +1 -0
- package/distr/Common/CandyApiClient/IsBuffer.js +15 -0
- package/distr/Common/CandyApiClient/IsBuffer.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/Attachments/Attacments.js +6 -0
- package/distr/Common/CandyApiClient/Types/Attachments/Attacments.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/Attachments/GetAttachmentsResponse.js +6 -0
- package/distr/Common/CandyApiClient/Types/Attachments/GetAttachmentsResponse.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/ChangeSet/ServerChangeSet.js +6 -0
- package/distr/Common/CandyApiClient/Types/ChangeSet/ServerChangeSet.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/CreateDraft/CreateDraftResponse.js +6 -0
- package/distr/Common/CandyApiClient/Types/CreateDraft/CreateDraftResponse.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/DiagResourcesResponse.js +6 -0
- package/distr/Common/CandyApiClient/Types/DiagResourcesResponse.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/DraftActions/CombineFufResult.js +24 -0
- package/distr/Common/CandyApiClient/Types/DraftActions/CombineFufResult.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/DraftActions/ConvertDraftRequest.js +6 -0
- package/distr/Common/CandyApiClient/Types/DraftActions/ConvertDraftRequest.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/DraftActions/FileProperties.js +6 -0
- package/distr/Common/CandyApiClient/Types/DraftActions/FileProperties.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/DraftActions/FufSizeTooLargeError.js +9 -0
- package/distr/Common/CandyApiClient/Types/DraftActions/FufSizeTooLargeError.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/DraftFullId.js +6 -0
- package/distr/Common/CandyApiClient/Types/DraftFullId.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/ErrorLog/CandyPopdProtocol.js +12 -0
- package/distr/Common/CandyApiClient/Types/ErrorLog/CandyPopdProtocol.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/ErrorLog/ResolveInnerPathRequest.js +6 -0
- package/distr/Common/CandyApiClient/Types/ErrorLog/ResolveInnerPathRequest.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/ErrorLog/ResolvePathResponse.js +6 -0
- package/distr/Common/CandyApiClient/Types/ErrorLog/ResolvePathResponse.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/ErrorLog/ServerErrorLog.js +17 -0
- package/distr/Common/CandyApiClient/Types/ErrorLog/ServerErrorLog.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/ExplanatoryNote/CreateExplanatoryNoteResponse.js +13 -0
- package/distr/Common/CandyApiClient/Types/ExplanatoryNote/CreateExplanatoryNoteResponse.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/FeatureFlags/FeatureFlagsResponse.js +6 -0
- package/distr/Common/CandyApiClient/Types/FeatureFlags/FeatureFlagsResponse.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/Focus/FocusServerResponse.js +6 -0
- package/distr/Common/CandyApiClient/Types/Focus/FocusServerResponse.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/Focus/FocusTypes.js +15 -0
- package/distr/Common/CandyApiClient/Types/Focus/FocusTypes.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/GetInner/ServerInnerResponse.js +6 -0
- package/distr/Common/CandyApiClient/Types/GetInner/ServerInnerResponse.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/GetInner/ServerRawResponse.js +9 -0
- package/distr/Common/CandyApiClient/Types/GetInner/ServerRawResponse.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/GetInner/ServerRequisitesResponse.js +6 -0
- package/distr/Common/CandyApiClient/Types/GetInner/ServerRequisitesResponse.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/Guid.js +6 -0
- package/distr/Common/CandyApiClient/Types/Guid.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/InstancesDeleting/InstancesDeletingRule.js +6 -0
- package/distr/Common/CandyApiClient/Types/InstancesDeleting/InstancesDeletingRule.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/MassActions/MassActionParameters.js +6 -0
- package/distr/Common/CandyApiClient/Types/MassActions/MassActionParameters.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/MassActions/ValueForInstancesSettingRule.js +6 -0
- package/distr/Common/CandyApiClient/Types/MassActions/ValueForInstancesSettingRule.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/Presentations/DraftPresentationType.js +24 -0
- package/distr/Common/CandyApiClient/Types/Presentations/DraftPresentationType.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/Presentations/PresentationContent.js +6 -0
- package/distr/Common/CandyApiClient/Types/Presentations/PresentationContent.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/Print/PrintResponse.js +6 -0
- package/distr/Common/CandyApiClient/Types/Print/PrintResponse.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/Print/PrintType.js +12 -0
- package/distr/Common/CandyApiClient/Types/Print/PrintType.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/AndExpression.js +15 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/AndExpression.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/CompareExpression.js +19 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/CompareExpression.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/CountCallExpression.js +15 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/CountCallExpression.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/DecimalConstantExpression.js +15 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/DecimalConstantExpression.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/InstanceIdCallExpression.js +13 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/InstanceIdCallExpression.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/NotExpression.js +15 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/NotExpression.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/OrExpression.js +15 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/OrExpression.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/StringConstantExpression.js +15 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/StringConstantExpression.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/StringMatchExpression.js +21 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/StringMatchExpression.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/SumCallExpression.js +15 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/SumCallExpression.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/TernaryExpression.js +19 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/TernaryExpression.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/ValueReferenceExpression.js +15 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/Expressions/ValueReferenceExpression.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryExpression.js +6 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryExpression.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryRequest.js +26 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryRequest.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryResponse.js +6 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/InnerQueryResponse.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/SelectClause.js +16 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/SelectClause.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/SortingRule.js +16 -0
- package/distr/Common/CandyApiClient/Types/QueryCollecton/SortingRule.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/Staff/EmployeeInfo.js +6 -0
- package/distr/Common/CandyApiClient/Types/Staff/EmployeeInfo.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/Staff/ImportEmployeesOptions.js +6 -0
- package/distr/Common/CandyApiClient/Types/Staff/ImportEmployeesOptions.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/Staff/ImportEmployeesRequest.js +6 -0
- package/distr/Common/CandyApiClient/Types/Staff/ImportEmployeesRequest.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/Staff/StaffInfo.js +6 -0
- package/distr/Common/CandyApiClient/Types/Staff/StaffInfo.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/Tasks/GetTasksServerResponse.js +6 -0
- package/distr/Common/CandyApiClient/Types/Tasks/GetTasksServerResponse.js.map +1 -0
- package/distr/Common/CandyApiClient/Types/Tasks/Tasks.js +14 -0
- package/distr/Common/CandyApiClient/Types/Tasks/Tasks.js.map +1 -0
- package/distr/Common/CollectionUtils.js +15 -0
- package/distr/Common/CollectionUtils.js.map +1 -0
- package/distr/Common/CommonConstants/SectionNames.js +11 -0
- package/distr/Common/CommonConstants/SectionNames.js.map +1 -0
- package/distr/Common/Comparers.js +63 -0
- package/distr/Common/Comparers.js.map +1 -0
- package/distr/Common/EmotionStorybookWorkaroundViaAliases.js +22 -0
- package/distr/Common/EmotionStorybookWorkaroundViaAliases.js.map +1 -0
- package/distr/Common/EndPoints.js +16 -0
- package/distr/Common/EndPoints.js.map +1 -0
- package/distr/Common/Enums/ButtonSettingsTypeEnum.js +12 -0
- package/distr/Common/Enums/ButtonSettingsTypeEnum.js.map +1 -0
- package/distr/Common/Errors.js +44 -0
- package/distr/Common/Errors.js.map +1 -0
- package/distr/Common/ExtractGFVPath/ExtractGFVPath.js +31 -0
- package/distr/Common/ExtractGFVPath/ExtractGFVPath.js.map +1 -0
- package/distr/Common/FSPrinterClient/FSPrinterClient.js +153 -0
- package/distr/Common/FSPrinterClient/FSPrinterClient.js.map +1 -0
- package/distr/Common/FSPrinterClient/FakeFSPrinterClient.js +19 -0
- package/distr/Common/FSPrinterClient/FakeFSPrinterClient.js.map +1 -0
- package/distr/Common/FSPrinterClient/IFSPrinterClient.js +39 -0
- package/distr/Common/FSPrinterClient/IFSPrinterClient.js.map +1 -0
- package/distr/Common/FormActionHandlers/ContextualActionNames.js +14 -0
- package/distr/Common/FormActionHandlers/ContextualActionNames.js.map +1 -0
- package/distr/Common/FormActionHandlers/ControlNamedContextualAction.js +6 -0
- package/distr/Common/FormActionHandlers/ControlNamedContextualAction.js.map +1 -0
- package/distr/Common/FormPathUtils.js +21 -0
- package/distr/Common/FormPathUtils.js.map +1 -0
- package/distr/Common/Funcs.js +11 -0
- package/distr/Common/Funcs.js.map +1 -0
- package/distr/Common/GFV.js +6 -0
- package/distr/Common/GFV.js.map +1 -0
- package/distr/Common/GetRngSchemaFileExtension.js +26 -0
- package/distr/Common/GetRngSchemaFileExtension.js.map +1 -0
- package/distr/Common/Hooks/UseLocalStorage.js +35 -0
- package/distr/Common/Hooks/UseLocalStorage.js.map +1 -0
- package/distr/Common/HttpClient/AuthenticationMode.js +31 -0
- package/distr/Common/HttpClient/AuthenticationMode.js.map +1 -0
- package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithOptionalPolyfill.js +9 -0
- package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithOptionalPolyfill.js.map +1 -0
- package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithPolyfill.js +9 -0
- package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithPolyfill.js.map +1 -0
- package/distr/Common/HttpClient/FetchImplementation/Fetch.js +6 -0
- package/distr/Common/HttpClient/FetchImplementation/Fetch.js.map +1 -0
- package/distr/Common/HttpClient/FetchImplementation/NativeBrowserFetch.js +8 -0
- package/distr/Common/HttpClient/FetchImplementation/NativeBrowserFetch.js.map +1 -0
- package/distr/Common/HttpClient/FetchImplementation/NodeFetch.js +36 -0
- package/distr/Common/HttpClient/FetchImplementation/NodeFetch.js.map +1 -0
- package/distr/Common/HttpClient/HttpClient.js +313 -0
- package/distr/Common/HttpClient/HttpClient.js.map +1 -0
- package/distr/Common/HttpClient/HttpClientAuthenticationProvider.js +6 -0
- package/distr/Common/HttpClient/HttpClientAuthenticationProvider.js.map +1 -0
- package/distr/Common/HttpClient/IHttpClient.js +6 -0
- package/distr/Common/HttpClient/IHttpClient.js.map +1 -0
- package/distr/Common/IndentString.js +16 -0
- package/distr/Common/IndentString.js.map +1 -0
- package/distr/Common/IntRangeUtils.js +32 -0
- package/distr/Common/IntRangeUtils.js.map +1 -0
- package/distr/Common/IterableUtils.js +288 -0
- package/distr/Common/IterableUtils.js.map +1 -0
- package/distr/Common/KCLangRuntimeUtils.js +266 -0
- package/distr/Common/KCLangRuntimeUtils.js.map +1 -0
- package/distr/Common/ModelPath/AbsoluteModelFieldPath.js +55 -0
- package/distr/Common/ModelPath/AbsoluteModelFieldPath.js.map +1 -0
- package/distr/Common/ModelPath/BuildIterationSequence.js +41 -0
- package/distr/Common/ModelPath/BuildIterationSequence.js.map +1 -0
- package/distr/Common/ModelPath/EachCurrentCollision.js +12 -0
- package/distr/Common/ModelPath/EachCurrentCollision.js.map +1 -0
- package/distr/Common/ModelPath/IEquatable.js +6 -0
- package/distr/Common/ModelPath/IEquatable.js.map +1 -0
- package/distr/Common/ModelPath/Map/AbsoluteModelPathMap.js +23 -0
- package/distr/Common/ModelPath/Map/AbsoluteModelPathMap.js.map +1 -0
- package/distr/Common/ModelPath/Map/Map2.js +99 -0
- package/distr/Common/ModelPath/Map/Map2.js.map +1 -0
- package/distr/Common/ModelPath/Map/ModelPathMap.js +23 -0
- package/distr/Common/ModelPath/Map/ModelPathMap.js.map +1 -0
- package/distr/Common/ModelPath/ModelPath.js +476 -0
- package/distr/Common/ModelPath/ModelPath.js.map +1 -0
- package/distr/Common/ModelPath/ModelPathBuilder.js +42 -0
- package/distr/Common/ModelPath/ModelPathBuilder.js.map +1 -0
- package/distr/Common/ModelPath/ModelPathHelper.js +34 -0
- package/distr/Common/ModelPath/ModelPathHelper.js.map +1 -0
- package/distr/Common/ModelPath/PathMatcher.js +95 -0
- package/distr/Common/ModelPath/PathMatcher.js.map +1 -0
- package/distr/Common/ModelPath/PathSplitHelper.js +21 -0
- package/distr/Common/ModelPath/PathSplitHelper.js.map +1 -0
- package/distr/Common/ModelPath/Set/AbsoluteModelPathSet.js +31 -0
- package/distr/Common/ModelPath/Set/AbsoluteModelPathSet.js.map +1 -0
- package/distr/Common/ModelPath/Set/AbsoluteResolvedModelPathSet.js +31 -0
- package/distr/Common/ModelPath/Set/AbsoluteResolvedModelPathSet.js.map +1 -0
- package/distr/Common/ModelPath/Set/ModelPathSet.js +31 -0
- package/distr/Common/ModelPath/Set/ModelPathSet.js.map +1 -0
- package/distr/Common/ModelPath/Set/Set2.js +59 -0
- package/distr/Common/ModelPath/Set/Set2.js.map +1 -0
- package/distr/Common/NidusClient/ContextualNidusClient/ContextualNidusClient.js +33 -0
- package/distr/Common/NidusClient/ContextualNidusClient/ContextualNidusClient.js.map +1 -0
- package/distr/Common/NidusClient/ContextualNidusClient/IContextualNidusClient.js +6 -0
- package/distr/Common/NidusClient/ContextualNidusClient/IContextualNidusClient.js.map +1 -0
- package/distr/Common/NidusClient/Fakes/CreateUniqueNidusEntryId.js +11 -0
- package/distr/Common/NidusClient/Fakes/CreateUniqueNidusEntryId.js.map +1 -0
- package/distr/Common/NidusClient/Fakes/FakeNidusClient.js +66 -0
- package/distr/Common/NidusClient/Fakes/FakeNidusClient.js.map +1 -0
- package/distr/Common/NidusClient/Fakes/LocalStorageBasedNidusClient.js +108 -0
- package/distr/Common/NidusClient/Fakes/LocalStorageBasedNidusClient.js.map +1 -0
- package/distr/Common/NidusClient/INidusClient.js +14 -0
- package/distr/Common/NidusClient/INidusClient.js.map +1 -0
- package/distr/Common/NidusClient/NidusClientContext.js +34 -0
- package/distr/Common/NidusClient/NidusClientContext.js.map +1 -0
- package/distr/Common/NidusClient/NidusClientImpl.js +55 -0
- package/distr/Common/NidusClient/NidusClientImpl.js.map +1 -0
- package/distr/Common/PathConstants.js +11 -0
- package/distr/Common/PathConstants.js.map +1 -0
- package/distr/Common/PicklistApiClient/IPicklistApiClient.js +6 -0
- package/distr/Common/PicklistApiClient/IPicklistApiClient.js.map +1 -0
- package/distr/Common/PicklistApiClient/PicklistApiClient.js +31 -0
- package/distr/Common/PicklistApiClient/PicklistApiClient.js.map +1 -0
- package/distr/Common/PicklistApiClient/PicklistRequestV2Builder.js +36 -0
- package/distr/Common/PicklistApiClient/PicklistRequestV2Builder.js.map +1 -0
- package/distr/Common/PicklistApiClient/Serializers/DigestFilterColumnSerializer.js +53 -0
- package/distr/Common/PicklistApiClient/Serializers/DigestFilterColumnSerializer.js.map +1 -0
- package/distr/Common/PicklistApiClient/Serializers/DigestLogicalFilterSerializer.js +37 -0
- package/distr/Common/PicklistApiClient/Serializers/DigestLogicalFilterSerializer.js.map +1 -0
- package/distr/Common/PicklistApiClient/Types/PicklistRequestV2.js +6 -0
- package/distr/Common/PicklistApiClient/Types/PicklistRequestV2.js.map +1 -0
- package/distr/Common/PicklistApiClient/Types/PicklistResultV2.js +6 -0
- package/distr/Common/PicklistApiClient/Types/PicklistResultV2.js.map +1 -0
- package/distr/Common/RngSchemeTypes/types.js +6 -0
- package/distr/Common/RngSchemeTypes/types.js.map +1 -0
- package/distr/Common/StringArrayKey.js +26 -0
- package/distr/Common/StringArrayKey.js.map +1 -0
- package/distr/Common/TextExtractor/TextExtractorTypes.js +6 -0
- package/distr/Common/TextExtractor/TextExtractorTypes.js.map +1 -0
- package/distr/Common/TypingUtils.js +118 -0
- package/distr/Common/TypingUtils.js.map +1 -0
- package/distr/Common/UUID.js +14 -0
- package/distr/Common/UUID.js.map +1 -0
- package/distr/Common/UseAsyncEffect.js +20 -0
- package/distr/Common/UseAsyncEffect.js.map +1 -0
- package/distr/Common/UseShowOnce.js +60 -0
- package/distr/Common/UseShowOnce.js.map +1 -0
- package/distr/Common/UseTypedSelector.js +10 -0
- package/distr/Common/UseTypedSelector.js.map +1 -0
- package/distr/Common/WellKnownDirectories.js +14 -0
- package/distr/Common/WellKnownDirectories.js.map +1 -0
- package/distr/Common/hashUtils.js +14 -0
- package/distr/Common/hashUtils.js.map +1 -0
- package/distr/Tools/src/BuildTasks/ClientJS/BuildClientJsTask.js +77 -0
- package/distr/Tools/src/BuildTasks/ClientJS/BuildClientJsTask.js.map +1 -0
- package/distr/Tools/src/BuildTasks/ClientJS/IsWebpack5.js +14 -0
- package/distr/Tools/src/BuildTasks/ClientJS/IsWebpack5.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Engine/AcquireFormEngine.js +22 -0
- package/distr/Tools/src/BuildTasks/Engine/AcquireFormEngine.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Engine/AcquirePublishedEngineTask.js +88 -0
- package/distr/Tools/src/BuildTasks/Engine/AcquirePublishedEngineTask.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Engine/BuildLocalEngineTask.js +82 -0
- package/distr/Tools/src/BuildTasks/Engine/BuildLocalEngineTask.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Engine/EngineSource.js +10 -0
- package/distr/Tools/src/BuildTasks/Engine/EngineSource.js.map +1 -0
- package/distr/Tools/src/BuildTasks/EngineStructureUtils.js +42 -0
- package/distr/Tools/src/BuildTasks/EngineStructureUtils.js.map +1 -0
- package/distr/Tools/src/BuildTasks/EngineVersionUtils.js +30 -0
- package/distr/Tools/src/BuildTasks/EngineVersionUtils.js.map +1 -0
- package/distr/Tools/src/BuildTasks/FSTask.js +67 -0
- package/distr/Tools/src/BuildTasks/FSTask.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Form/CompileForm.js +52 -0
- package/distr/Tools/src/BuildTasks/Form/CompileForm.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Form/GenerateForm.js +44 -0
- package/distr/Tools/src/BuildTasks/Form/GenerateForm.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Form/NullFormGenerator.js +37 -0
- package/distr/Tools/src/BuildTasks/Form/NullFormGenerator.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Form/WriteAttachmentPathFiles.js +25 -0
- package/distr/Tools/src/BuildTasks/Form/WriteAttachmentPathFiles.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Form/WriteFLangNormalizationFiles.js +31 -0
- package/distr/Tools/src/BuildTasks/Form/WriteFLangNormalizationFiles.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Generator/AcquireFormGenerator.js +27 -0
- package/distr/Tools/src/BuildTasks/Generator/AcquireFormGenerator.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Generator/AcquirePublishedGeneratorTask.js +95 -0
- package/distr/Tools/src/BuildTasks/Generator/AcquirePublishedGeneratorTask.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Generator/BuildGeneratorFromSourcesTask.js +126 -0
- package/distr/Tools/src/BuildTasks/Generator/BuildGeneratorFromSourcesTask.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/CreateAsyncGenerator.js +174 -0
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/CreateAsyncGenerator.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/GeneratorRequireUtils.js +121 -0
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/GeneratorRequireUtils.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ProcessSugarWorker.js +45 -0
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ProcessSugarWorker.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.js +52 -0
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/RequireUncached.js +49 -0
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/RequireUncached.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/TypedProcessWorker.js +19 -0
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/TypedProcessWorker.js.map +1 -0
- package/distr/Tools/src/BuildTasks/ProcessUtils/ProcessUtils.js +64 -0
- package/distr/Tools/src/BuildTasks/ProcessUtils/ProcessUtils.js.map +1 -0
- package/distr/Tools/src/BuildTasks/ProcessUtils/ShellProcessHandle.js +84 -0
- package/distr/Tools/src/BuildTasks/ProcessUtils/ShellProcessHandle.js.map +1 -0
- package/distr/Tools/src/BuildTasks/PublishedVersionUtils.js +174 -0
- package/distr/Tools/src/BuildTasks/PublishedVersionUtils.js.map +1 -0
- package/distr/Tools/src/BuildTasks/ReadFormSource.js +112 -0
- package/distr/Tools/src/BuildTasks/ReadFormSource.js.map +1 -0
- package/distr/Tools/src/BuildTasks/ResolveFormInfo.js +107 -0
- package/distr/Tools/src/BuildTasks/ResolveFormInfo.js.map +1 -0
- package/distr/Tools/src/BuildTasks/Version.js +41 -0
- package/distr/Tools/src/BuildTasks/Version.js.map +1 -0
- package/distr/Tools/src/BuildTasks/WriteFormMeta.js +27 -0
- package/distr/Tools/src/BuildTasks/WriteFormMeta.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildForms/BuildCacheMode.js +28 -0
- package/distr/Tools/src/CLICommands/BuildForms/BuildCacheMode.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildForms/BuildFormsOptions.js +169 -0
- package/distr/Tools/src/CLICommands/BuildForms/BuildFormsOptions.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildForms/ClearSourceMapForProduction.js +24 -0
- package/distr/Tools/src/CLICommands/BuildForms/ClearSourceMapForProduction.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildForms/RunBuildForms.js +234 -0
- package/distr/Tools/src/CLICommands/BuildForms/RunBuildForms.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/BuildLogsWebsocketController.js +36 -0
- package/distr/Tools/src/CLICommands/BuildServer/BuildLogsWebsocketController.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/BuildServerServerOptions.js +112 -0
- package/distr/Tools/src/CLICommands/BuildServer/BuildServerServerOptions.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesController.js +158 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesController.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.js +94 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.js +129 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerCandyWidgetController.js +45 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerCandyWidgetController.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsController.js +76 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsController.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsFromResourcesController.js +67 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsFromResourcesController.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerFormInfoController.js +65 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerFormInfoController.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerLocalSourcesEngineController.js +117 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerLocalSourcesEngineController.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPrebuiltResourcesController.js +22 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPrebuiltResourcesController.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPublishedEngineController.js +96 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPublishedEngineController.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/BuildFormDevServer.js +231 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/BuildFormDevServer.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/CandyWidgetDevServer.js +70 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/CandyWidgetDevServer.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ClientJsDevServer.js +57 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ClientJsDevServer.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/EngineDevServer.js +67 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/EngineDevServer.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ReportGeneratorErrorToPageBody.js +21 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ReportGeneratorErrorToPageBody.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/RunFormCompilationViaWebpackDevServer.js +52 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/RunFormCompilationViaWebpackDevServer.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorker.js +80 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorker.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorkerFactory.js +31 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorkerFactory.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IInputFileSystem.js +6 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IInputFileSystem.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IWatchFileSystem.js +6 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IWatchFileSystem.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/WebpackHybridFileSystem.js +184 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/WebpackHybridFileSystem.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/Directories/FarmDirectory.js +213 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/Directories/FarmDirectory.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/GlobToRegexp.js +28 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/GlobToRegexp.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/IGeneratedServerSideSourcesProvider.js +6 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/IGeneratedServerSideSourcesProvider.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/RunBuildServer.js +110 -0
- package/distr/Tools/src/CLICommands/BuildServer/RunBuildServer.js.map +1 -0
- package/distr/Tools/src/CLICommands/BuildServer/StdStreamsIntercepter.js +50 -0
- package/distr/Tools/src/CLICommands/BuildServer/StdStreamsIntercepter.js.map +1 -0
- package/distr/Tools/src/CLICommands/CommonOptions/BuildDebugOnlyOption.js +19 -0
- package/distr/Tools/src/CLICommands/CommonOptions/BuildDebugOnlyOption.js.map +1 -0
- package/distr/Tools/src/CLICommands/CommonOptions/CommonOptionDefintions.js +30 -0
- package/distr/Tools/src/CLICommands/CommonOptions/CommonOptionDefintions.js.map +1 -0
- package/distr/Tools/src/CLICommands/CommonOptions/CommonOptions.js +6 -0
- package/distr/Tools/src/CLICommands/CommonOptions/CommonOptions.js.map +1 -0
- package/distr/Tools/src/CLICommands/DevBuild/DevBuildOptions.js +163 -0
- package/distr/Tools/src/CLICommands/DevBuild/DevBuildOptions.js.map +1 -0
- package/distr/Tools/src/CLICommands/DevBuild/RunDevBuild.js +112 -0
- package/distr/Tools/src/CLICommands/DevBuild/RunDevBuild.js.map +1 -0
- package/distr/Tools/src/CLICommands/FormStats/FormStatsOptions.js +34 -0
- package/distr/Tools/src/CLICommands/FormStats/FormStatsOptions.js.map +1 -0
- package/distr/Tools/src/CLICommands/FormStats/RunFormStats.js +50 -0
- package/distr/Tools/src/CLICommands/FormStats/RunFormStats.js.map +1 -0
- package/distr/Tools/src/CLICommands/FormsHelper/FormsHelperController.js +54 -0
- package/distr/Tools/src/CLICommands/FormsHelper/FormsHelperController.js.map +1 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/autocalc/{gfv}./320/232/320/241.candy.js.kclang +0 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/converters/{gfv}.AfterMerge.xslt +11 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/converters/{gfv}.BeforePreload.xslt +11 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/converters/{gfv}.fufPatcher.xslt +11 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/converters/{gfv}.outer.inner.json +1 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/fetchfunctions/{gfv}.fetchfunctions.js +2 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/fetchfunctions/{gfv}.fetchfunctions.js.map +1 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/form.json +12 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/helpers/addPril1.txt +6 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/presentations.json +8 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/schemas/{gfv}.0.rng.xml +20 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/sugar/index.sugar.xml +10 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/browser/Smoke.test.js +16 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/browser/Smoke.test.js.map +1 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/ui/DemoTest.test.js +23 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/ui/DemoTest.test.js.map +1 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/validations/validations.KC.kclang +0 -0
- package/distr/Tools/src/CLICommands/InitForm/InitFormOptions.js +34 -0
- package/distr/Tools/src/CLICommands/InitForm/InitFormOptions.js.map +1 -0
- package/distr/Tools/src/CLICommands/InitForm/RunInitForm.js +117 -0
- package/distr/Tools/src/CLICommands/InitForm/RunInitForm.js.map +1 -0
- package/distr/Tools/src/CLICommands/Localization/LocalizationOptions.js +44 -0
- package/distr/Tools/src/CLICommands/Localization/LocalizationOptions.js.map +1 -0
- package/distr/Tools/src/CLICommands/Localization/RunLocalization.js +73 -0
- package/distr/Tools/src/CLICommands/Localization/RunLocalization.js.map +1 -0
- package/distr/Tools/src/CLICommands/RenameFiles/RenameFilesOptions.js +25 -0
- package/distr/Tools/src/CLICommands/RenameFiles/RenameFilesOptions.js.map +1 -0
- package/distr/Tools/src/CLICommands/RenameFiles/RunRenameFiles.js +38 -0
- package/distr/Tools/src/CLICommands/RenameFiles/RunRenameFiles.js.map +1 -0
- package/distr/Tools/src/CLICommands/SugarExtractor/ExtractTextsFromSugarController.js +36 -0
- package/distr/Tools/src/CLICommands/SugarExtractor/ExtractTextsFromSugarController.js.map +1 -0
- package/distr/Tools/src/CLICommands/SugarExtractor/Utils.js +50 -0
- package/distr/Tools/src/CLICommands/SugarExtractor/Utils.js.map +1 -0
- package/distr/Tools/src/CLICommands/UpgradeForm/RunUpgradeForm.js +144 -0
- package/distr/Tools/src/CLICommands/UpgradeForm/RunUpgradeForm.js.map +1 -0
- package/distr/Tools/src/CLICommands/UpgradeForm/UpgradeFormOptions.js +78 -0
- package/distr/Tools/src/CLICommands/UpgradeForm/UpgradeFormOptions.js.map +1 -0
- package/distr/Tools/src/CandyCLI.js +144 -0
- package/distr/Tools/src/CandyCLI.js.map +1 -0
- package/distr/Tools/src/CheckNodeJsVersion.js +32 -0
- package/distr/Tools/src/CheckNodeJsVersion.js.map +1 -0
- package/distr/Tools/src/Commons/ApiClient/ToolsApiClient.js +28 -0
- package/distr/Tools/src/Commons/ApiClient/ToolsApiClient.js.map +1 -0
- package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplication.js +93 -0
- package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplication.js.map +1 -0
- package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplicationContext.js +24 -0
- package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplicationContext.js.map +1 -0
- package/distr/Tools/src/Commons/ErrorUntyped.js +6 -0
- package/distr/Tools/src/Commons/ErrorUntyped.js.map +1 -0
- package/distr/Tools/src/Commons/EventObject.js +74 -0
- package/distr/Tools/src/Commons/EventObject.js.map +1 -0
- package/distr/Tools/src/Commons/ExecUtils.js +38 -0
- package/distr/Tools/src/Commons/ExecUtils.js.map +1 -0
- package/distr/Tools/src/Commons/ExtractGfvsFromFileName.js +21 -0
- package/distr/Tools/src/Commons/ExtractGfvsFromFileName.js.map +1 -0
- package/distr/Tools/src/Commons/FormGlobsUtils.js +137 -0
- package/distr/Tools/src/Commons/FormGlobsUtils.js.map +1 -0
- package/distr/Tools/src/Commons/FormLocationInfo.js +6 -0
- package/distr/Tools/src/Commons/FormLocationInfo.js.map +1 -0
- package/distr/Tools/src/Commons/FsUtils.js +35 -0
- package/distr/Tools/src/Commons/FsUtils.js.map +1 -0
- package/distr/Tools/src/Commons/GetCpuLimits.js +64 -0
- package/distr/Tools/src/Commons/GetCpuLimits.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Actions.js +38 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Actions.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Methods.js +57 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Methods.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/NotFoundWebError.js +15 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/NotFoundWebError.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/CookieParamParamBinder.js +18 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/CookieParamParamBinder.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/IParamBinder.js +6 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/IParamBinder.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/JsonBodyParamBinder.js +14 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/JsonBodyParamBinder.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/StringBodyParamBinder.js +17 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/StringBodyParamBinder.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlParamBinder.js +22 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlParamBinder.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlQueryParamBinder.js +20 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlQueryParamBinder.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Params.js +46 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Params.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomActionResultHandler.js +13 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomActionResultHandler.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomContentResultHandler.js +18 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomContentResultHandler.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/EmptyResultHandler.js +13 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/EmptyResultHandler.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/HtmlResultHandler.js +13 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/HtmlResultHandler.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/IResultHandler.js +6 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/IResultHandler.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/JsonResultHandler.js +13 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/JsonResultHandler.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/PlainTextResultHandler.js +13 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/PlainTextResultHandler.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/StreamResultHandler.js +113 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/StreamResultHandler.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results.js +24 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/ExpressServerWrapper.js +106 -0
- package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/ExpressServerWrapper.js.map +1 -0
- package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/SingletonController.js +22 -0
- package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/SingletonController.js.map +1 -0
- package/distr/Tools/src/Commons/Locks/Lock.js +24 -0
- package/distr/Tools/src/Commons/Locks/Lock.js.map +1 -0
- package/distr/Tools/src/Commons/Locks/LockHandle.js +17 -0
- package/distr/Tools/src/Commons/Locks/LockHandle.js.map +1 -0
- package/distr/Tools/src/Commons/Locks/ReadWriteLockCollection.js +31 -0
- package/distr/Tools/src/Commons/Locks/ReadWriteLockCollection.js.map +1 -0
- package/distr/Tools/src/Commons/Logging/ELKLogger.js +56 -0
- package/distr/Tools/src/Commons/Logging/ELKLogger.js.map +1 -0
- package/distr/Tools/src/Commons/Logging/ILogger.js +25 -0
- package/distr/Tools/src/Commons/Logging/ILogger.js.map +1 -0
- package/distr/Tools/src/Commons/Logging/InMemoryLogger.js +61 -0
- package/distr/Tools/src/Commons/Logging/InMemoryLogger.js.map +1 -0
- package/distr/Tools/src/Commons/Logging/Logger.js +78 -0
- package/distr/Tools/src/Commons/Logging/Logger.js.map +1 -0
- package/distr/Tools/src/Commons/Logging/StaticLogger.js +37 -0
- package/distr/Tools/src/Commons/Logging/StaticLogger.js.map +1 -0
- package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.d.js +2 -0
- package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.d.js.map +1 -0
- package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.js +152 -0
- package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.js.map +1 -0
- package/distr/Tools/src/Commons/PathPattern.js +42 -0
- package/distr/Tools/src/Commons/PathPattern.js.map +1 -0
- package/distr/Tools/src/Commons/TasksCore/AggregatedError.js +16 -0
- package/distr/Tools/src/Commons/TasksCore/AggregatedError.js.map +1 -0
- package/distr/Tools/src/Commons/TasksCore/BuildTask.js +6 -0
- package/distr/Tools/src/Commons/TasksCore/BuildTask.js.map +1 -0
- package/distr/Tools/src/Commons/TasksCore/ChainableValueProducer.js +668 -0
- package/distr/Tools/src/Commons/TasksCore/ChainableValueProducer.js.map +1 -0
- package/distr/Tools/src/Commons/TasksCore/DirectoryEntriesProducer.js +77 -0
- package/distr/Tools/src/Commons/TasksCore/DirectoryEntriesProducer.js.map +1 -0
- package/distr/Tools/src/Commons/TasksCore/EmptyProducer.js +20 -0
- package/distr/Tools/src/Commons/TasksCore/EmptyProducer.js.map +1 -0
- package/distr/Tools/src/Commons/TasksCore/FileSystemEntriesProducer.js +48 -0
- package/distr/Tools/src/Commons/TasksCore/FileSystemEntriesProducer.js.map +1 -0
- package/distr/Tools/src/Commons/TasksCore/FileValueProducer.js +45 -0
- package/distr/Tools/src/Commons/TasksCore/FileValueProducer.js.map +1 -0
- package/distr/Tools/src/Commons/TasksCore/FixedDirectoryEntriesProducer.js +25 -0
- package/distr/Tools/src/Commons/TasksCore/FixedDirectoryEntriesProducer.js.map +1 -0
- package/distr/Tools/src/Commons/TasksCore/Observe.js +35 -0
- package/distr/Tools/src/Commons/TasksCore/Observe.js.map +1 -0
- package/distr/Tools/src/Commons/TasksCore/SingleValueProducer.js +29 -0
- package/distr/Tools/src/Commons/TasksCore/SingleValueProducer.js.map +1 -0
- package/distr/Tools/src/Commons/TimingUtils.js +13 -0
- package/distr/Tools/src/Commons/TimingUtils.js.map +1 -0
- package/distr/Tools/src/FormWebpackConfiguration/CacheAssetsPlugin.js +180 -0
- package/distr/Tools/src/FormWebpackConfiguration/CacheAssetsPlugin.js.map +1 -0
- package/distr/Tools/src/FormWebpackConfiguration/createFormWebpackConfiguration.js +145 -0
- package/distr/Tools/src/FormWebpackConfiguration/createFormWebpackConfiguration.js.map +1 -0
- package/distr/Tools/src/FormWebpackConfiguration/variables.less +132 -0
- package/distr/Tools/src/GenerateReadMe.js +54 -0
- package/distr/Tools/src/GenerateReadMe.js.map +1 -0
- package/distr/Tools/src/Keys/localhost-key.pem +116 -0
- package/distr/Tools/src/Keys/localhost.pem +35 -0
- package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js +2 -0
- package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js.LICENSE.txt +49 -0
- package/distr/Tools/src/LocalServerFrontEndDist/favicon-16x16.png +0 -0
- package/distr/Tools/src/LocalServerFrontEndDist/favicon-32x32.png +0 -0
- package/distr/Tools/src/LocalServerFrontEndDist/favicon.ico +0 -0
- package/distr/Tools/src/LocalServerFrontEndDist/index.html +1 -0
- package/distr/Tools/src/LocalServerFrontEndDist/index.js +3 -0
- package/distr/Tools/src/LocalServerFrontEndDist/index.js.LICENSE.txt +60 -0
- package/distr/Tools/src/LocalServerFrontEndDist/index.js.map +1 -0
- package/distr/Tools/src/Options/CandyToolOptions.js +20 -0
- package/distr/Tools/src/Options/CandyToolOptions.js.map +1 -0
- package/distr/Tools/src/ReadFarmConfig.js +18 -0
- package/distr/Tools/src/ReadFarmConfig.js.map +1 -0
- package/distr/Tools/src/SelfUpdate.js +121 -0
- package/distr/Tools/src/SelfUpdate.js.map +1 -0
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js +1722 -0
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.LICENSE.txt +1 -0
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.map +1 -0
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js +1076 -0
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js.map +1 -0
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/jquery-1.11.3.min.js +3328 -0
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/jquery-1.11.3.min.js.map +1 -0
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/polyfill.min.js +6517 -0
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/polyfill.min.js.map +1 -0
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/testing.min.js +222 -0
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/testing.min.js.map +1 -0
- package/distr/Tools/src/StaticFilesForResourcesDir/jquery-1.11.3.min.js +3328 -0
- package/distr/Tools/src/StaticFilesForResourcesDir/jquery-1.11.3.min.js.map +1 -0
- package/distr/Tools/src/StaticFilesForResourcesDir/polyfill.min.js +6517 -0
- package/distr/Tools/src/StaticFilesForResourcesDir/polyfill.min.js.map +1 -0
- package/distr/Tools/src/StaticFilesForResourcesDir/testing.min.js +222 -0
- package/distr/Tools/src/StaticFilesForResourcesDir/testing.min.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,1722 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/*! For license information please see client.js.LICENSE.txt */
|
|
4
|
+
(function () {
|
|
5
|
+
"use strict";
|
|
6
|
+
|
|
7
|
+
var __webpack_modules__ = {
|
|
8
|
+
750: function (e, t, r) {
|
|
9
|
+
var o, n, i;
|
|
10
|
+
function a(e) {
|
|
11
|
+
return "v1/ns/".concat(e.ns, "/drafts/").concat(e.draftId, "/client-draft-info");
|
|
12
|
+
}
|
|
13
|
+
r.d(t, {
|
|
14
|
+
I: function () {
|
|
15
|
+
return a;
|
|
16
|
+
}
|
|
17
|
+
}), e = r.hmd(e), (o = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.enterModule : void 0) && o(e), "undefined" != typeof reactHotLoaderGlobal && reactHotLoaderGlobal.default.signature, (n = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.default : void 0) && n.register(a, "getClientDraftInfoUrl", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\CandyApiClient\\ClientDraftInfo\\GetClientDraftInfoUrl.ts"), (i = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.leaveModule : void 0) && i(e);
|
|
18
|
+
},
|
|
19
|
+
336: function (module, __webpack_exports__, __webpack_require__) {
|
|
20
|
+
function _typeof(e) {
|
|
21
|
+
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) {
|
|
22
|
+
return typeof e;
|
|
23
|
+
} : function (e) {
|
|
24
|
+
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
|
|
25
|
+
}, _typeof(e);
|
|
26
|
+
}
|
|
27
|
+
var enterModule;
|
|
28
|
+
function _classCallCheck(e, t) {
|
|
29
|
+
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
|
|
30
|
+
}
|
|
31
|
+
function _defineProperties(e, t) {
|
|
32
|
+
for (var r = 0; r < t.length; r++) {
|
|
33
|
+
var o = t[r];
|
|
34
|
+
o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function _createClass(e, t, r) {
|
|
38
|
+
return t && _defineProperties(e.prototype, t), r && _defineProperties(e, r), Object.defineProperty(e, "prototype", {
|
|
39
|
+
writable: !1
|
|
40
|
+
}), e;
|
|
41
|
+
}
|
|
42
|
+
function _toPropertyKey(e) {
|
|
43
|
+
var t = _toPrimitive(e, "string");
|
|
44
|
+
return "symbol" == _typeof(t) ? t : t + "";
|
|
45
|
+
}
|
|
46
|
+
function _toPrimitive(e, t) {
|
|
47
|
+
if ("object" != _typeof(e) || !e) return e;
|
|
48
|
+
var r = e[Symbol.toPrimitive];
|
|
49
|
+
if (void 0 !== r) {
|
|
50
|
+
var o = r.call(e, t || "default");
|
|
51
|
+
if ("object" != _typeof(o)) return o;
|
|
52
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
53
|
+
}
|
|
54
|
+
return ("string" === t ? String : Number)(e);
|
|
55
|
+
}
|
|
56
|
+
function _callSuper(e, t, r) {
|
|
57
|
+
return t = _getPrototypeOf(t), _possibleConstructorReturn(e, _isNativeReflectConstruct() ? Reflect.construct(t, r || [], _getPrototypeOf(e).constructor) : t.apply(e, r));
|
|
58
|
+
}
|
|
59
|
+
function _possibleConstructorReturn(e, t) {
|
|
60
|
+
if (t && ("object" == _typeof(t) || "function" == typeof t)) return t;
|
|
61
|
+
if (void 0 !== t) throw new TypeError("Derived constructors may only return object or undefined");
|
|
62
|
+
return _assertThisInitialized(e);
|
|
63
|
+
}
|
|
64
|
+
function _assertThisInitialized(e) {
|
|
65
|
+
if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
66
|
+
return e;
|
|
67
|
+
}
|
|
68
|
+
function _inherits(e, t) {
|
|
69
|
+
if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function");
|
|
70
|
+
e.prototype = Object.create(t && t.prototype, {
|
|
71
|
+
constructor: {
|
|
72
|
+
value: e,
|
|
73
|
+
writable: !0,
|
|
74
|
+
configurable: !0
|
|
75
|
+
}
|
|
76
|
+
}), Object.defineProperty(e, "prototype", {
|
|
77
|
+
writable: !1
|
|
78
|
+
}), t && _setPrototypeOf(e, t);
|
|
79
|
+
}
|
|
80
|
+
function _wrapNativeSuper(e) {
|
|
81
|
+
var t = "function" == typeof Map ? new Map() : void 0;
|
|
82
|
+
return _wrapNativeSuper = function (e) {
|
|
83
|
+
if (null === e || !_isNativeFunction(e)) return e;
|
|
84
|
+
if ("function" != typeof e) throw new TypeError("Super expression must either be null or a function");
|
|
85
|
+
if (void 0 !== t) {
|
|
86
|
+
if (t.has(e)) return t.get(e);
|
|
87
|
+
t.set(e, r);
|
|
88
|
+
}
|
|
89
|
+
function r() {
|
|
90
|
+
return _construct(e, arguments, _getPrototypeOf(this).constructor);
|
|
91
|
+
}
|
|
92
|
+
return r.prototype = Object.create(e.prototype, {
|
|
93
|
+
constructor: {
|
|
94
|
+
value: r,
|
|
95
|
+
enumerable: !1,
|
|
96
|
+
writable: !0,
|
|
97
|
+
configurable: !0
|
|
98
|
+
}
|
|
99
|
+
}), _setPrototypeOf(r, e);
|
|
100
|
+
}, _wrapNativeSuper(e);
|
|
101
|
+
}
|
|
102
|
+
function _construct(e, t, r) {
|
|
103
|
+
if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);
|
|
104
|
+
var o = [null];
|
|
105
|
+
o.push.apply(o, t);
|
|
106
|
+
var n = new (e.bind.apply(e, o))();
|
|
107
|
+
return r && _setPrototypeOf(n, r.prototype), n;
|
|
108
|
+
}
|
|
109
|
+
function _isNativeReflectConstruct() {
|
|
110
|
+
try {
|
|
111
|
+
var e = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
|
|
112
|
+
} catch (e) {}
|
|
113
|
+
return (_isNativeReflectConstruct = function () {
|
|
114
|
+
return !!e;
|
|
115
|
+
})();
|
|
116
|
+
}
|
|
117
|
+
function _isNativeFunction(e) {
|
|
118
|
+
try {
|
|
119
|
+
return -1 !== Function.toString.call(e).indexOf("[native code]");
|
|
120
|
+
} catch (t) {
|
|
121
|
+
return "function" == typeof e;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
function _setPrototypeOf(e, t) {
|
|
125
|
+
return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (e, t) {
|
|
126
|
+
return e.__proto__ = t, e;
|
|
127
|
+
}, _setPrototypeOf(e, t);
|
|
128
|
+
}
|
|
129
|
+
function _getPrototypeOf(e) {
|
|
130
|
+
return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (e) {
|
|
131
|
+
return e.__proto__ || Object.getPrototypeOf(e);
|
|
132
|
+
}, _getPrototypeOf(e);
|
|
133
|
+
}
|
|
134
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
135
|
+
EH: function () {
|
|
136
|
+
return NotImplementedError;
|
|
137
|
+
}
|
|
138
|
+
}), module = __webpack_require__.hmd(module), enterModule = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.enterModule : void 0, enterModule && enterModule(module);
|
|
139
|
+
var __signature__ = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.default.signature : function (e) {
|
|
140
|
+
return e;
|
|
141
|
+
},
|
|
142
|
+
ApplicationError = function (_Error) {
|
|
143
|
+
function ApplicationError(e) {
|
|
144
|
+
var t;
|
|
145
|
+
return _classCallCheck(this, ApplicationError), (t = _callSuper(this, ApplicationError, [e])).name = t.constructor.name, t;
|
|
146
|
+
}
|
|
147
|
+
return _inherits(ApplicationError, _Error), _createClass(ApplicationError, [{
|
|
148
|
+
key: "__reactstandin__regenerateByEval",
|
|
149
|
+
value: function __reactstandin__regenerateByEval(key, code) {
|
|
150
|
+
this[key] = eval(code);
|
|
151
|
+
}
|
|
152
|
+
}]);
|
|
153
|
+
}(_wrapNativeSuper(Error)),
|
|
154
|
+
NotImplementedError = function (_ApplicationError) {
|
|
155
|
+
function NotImplementedError() {
|
|
156
|
+
return _classCallCheck(this, NotImplementedError), _callSuper(this, NotImplementedError, ["Operation not implemented"]);
|
|
157
|
+
}
|
|
158
|
+
return _inherits(NotImplementedError, _ApplicationError), _createClass(NotImplementedError, [{
|
|
159
|
+
key: "__reactstandin__regenerateByEval",
|
|
160
|
+
value: function __reactstandin__regenerateByEval(key, code) {
|
|
161
|
+
this[key] = eval(code);
|
|
162
|
+
}
|
|
163
|
+
}]);
|
|
164
|
+
}(ApplicationError),
|
|
165
|
+
NotSupportedError = function (_ApplicationError2) {
|
|
166
|
+
function NotSupportedError(e) {
|
|
167
|
+
return _classCallCheck(this, NotSupportedError), _callSuper(this, NotSupportedError, [null != e ? e : "Operation not supported"]);
|
|
168
|
+
}
|
|
169
|
+
return _inherits(NotSupportedError, _ApplicationError2), _createClass(NotSupportedError, [{
|
|
170
|
+
key: "__reactstandin__regenerateByEval",
|
|
171
|
+
value: function __reactstandin__regenerateByEval(key, code) {
|
|
172
|
+
this[key] = eval(code);
|
|
173
|
+
}
|
|
174
|
+
}]);
|
|
175
|
+
}(ApplicationError),
|
|
176
|
+
InvalidProgramStateError = function (_ApplicationError3) {
|
|
177
|
+
function InvalidProgramStateError(e) {
|
|
178
|
+
return _classCallCheck(this, InvalidProgramStateError), _callSuper(this, InvalidProgramStateError, ["Invalid program state" + (null != e ? ": " + e : "")]);
|
|
179
|
+
}
|
|
180
|
+
return _inherits(InvalidProgramStateError, _ApplicationError3), _createClass(InvalidProgramStateError, [{
|
|
181
|
+
key: "__reactstandin__regenerateByEval",
|
|
182
|
+
value: function __reactstandin__regenerateByEval(key, code) {
|
|
183
|
+
this[key] = eval(code);
|
|
184
|
+
}
|
|
185
|
+
}]);
|
|
186
|
+
}(ApplicationError),
|
|
187
|
+
InvalidArgumentError = function (_ApplicationError4) {
|
|
188
|
+
function InvalidArgumentError(e, t) {
|
|
189
|
+
return _classCallCheck(this, InvalidArgumentError), _callSuper(this, InvalidArgumentError, [null != t ? "".concat(t, " (argument: ").concat(e, ")") : "Invalid argument value: ".concat(e)]);
|
|
190
|
+
}
|
|
191
|
+
return _inherits(InvalidArgumentError, _ApplicationError4), _createClass(InvalidArgumentError, [{
|
|
192
|
+
key: "__reactstandin__regenerateByEval",
|
|
193
|
+
value: function __reactstandin__regenerateByEval(key, code) {
|
|
194
|
+
this[key] = eval(code);
|
|
195
|
+
}
|
|
196
|
+
}]);
|
|
197
|
+
}(ApplicationError),
|
|
198
|
+
TypingError = function (_ApplicationError5) {
|
|
199
|
+
function TypingError() {
|
|
200
|
+
return _classCallCheck(this, TypingError), _callSuper(this, TypingError, ["Invalid typing"]);
|
|
201
|
+
}
|
|
202
|
+
return _inherits(TypingError, _ApplicationError5), _createClass(TypingError, [{
|
|
203
|
+
key: "__reactstandin__regenerateByEval",
|
|
204
|
+
value: function __reactstandin__regenerateByEval(key, code) {
|
|
205
|
+
this[key] = eval(code);
|
|
206
|
+
}
|
|
207
|
+
}]);
|
|
208
|
+
}(ApplicationError),
|
|
209
|
+
reactHotLoader,
|
|
210
|
+
leaveModule;
|
|
211
|
+
reactHotLoader = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.default : void 0, reactHotLoader && (reactHotLoader.register(ApplicationError, "ApplicationError", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\Errors.ts"), reactHotLoader.register(NotImplementedError, "NotImplementedError", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\Errors.ts"), reactHotLoader.register(NotSupportedError, "NotSupportedError", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\Errors.ts"), reactHotLoader.register(InvalidProgramStateError, "InvalidProgramStateError", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\Errors.ts"), reactHotLoader.register(InvalidArgumentError, "InvalidArgumentError", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\Errors.ts"), reactHotLoader.register(TypingError, "TypingError", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\Errors.ts")), leaveModule = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.leaveModule : void 0, leaveModule && leaveModule(module);
|
|
212
|
+
},
|
|
213
|
+
163: function (e, t, r) {
|
|
214
|
+
var o, n, i;
|
|
215
|
+
function a(e) {
|
|
216
|
+
return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) {
|
|
217
|
+
return typeof e;
|
|
218
|
+
} : function (e) {
|
|
219
|
+
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
|
|
220
|
+
}, a(e);
|
|
221
|
+
}
|
|
222
|
+
function u(e) {
|
|
223
|
+
return null != e;
|
|
224
|
+
}
|
|
225
|
+
function c(e) {
|
|
226
|
+
throw "string" == typeof e || null == e ? new Error(null != e ? e : "Undefined is not allowed") : e;
|
|
227
|
+
}
|
|
228
|
+
function l(e, t) {
|
|
229
|
+
return e.length >= t;
|
|
230
|
+
}
|
|
231
|
+
function s(e, t) {
|
|
232
|
+
return e.length === t;
|
|
233
|
+
}
|
|
234
|
+
function d(e) {
|
|
235
|
+
return e.length > 0;
|
|
236
|
+
}
|
|
237
|
+
function f(e) {
|
|
238
|
+
return null == e || "" === e;
|
|
239
|
+
}
|
|
240
|
+
r.d(t, {
|
|
241
|
+
ku: function () {
|
|
242
|
+
return c;
|
|
243
|
+
}
|
|
244
|
+
}), e = r.hmd(e), (o = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.enterModule : void 0) && o(e), "undefined" != typeof reactHotLoaderGlobal && reactHotLoaderGlobal.default.signature, (n = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.default : void 0) && (n.register(u, "isNotNullOrUndefined", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function (e) {
|
|
245
|
+
return "object" === a(e) && (null == e ? void 0 : e.message);
|
|
246
|
+
}, "stringifyUnknownError", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function (e) {
|
|
247
|
+
if (!u(e)) throw new Error("Value must be defined");
|
|
248
|
+
}, "ensureNotNullOrUndefined", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function () {}, "noop", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(c, "reject", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(l, "isLengthGreaterThenOrEqual", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function (e, t) {
|
|
249
|
+
if (l(e, t)) return e;
|
|
250
|
+
}, "minLengthOrUndefined", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function (e) {
|
|
251
|
+
if (!Array.isArray(e)) throw new Error("Must be an array!");
|
|
252
|
+
return e;
|
|
253
|
+
}, "ensureIsArray", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(s, "arrayHasLength", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(d, "arrayIsNotEmpty", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function (e) {
|
|
254
|
+
return e.length > 0;
|
|
255
|
+
}, "arrayHasAtLeastOneItem", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function (e) {
|
|
256
|
+
if (!d(e)) throw new Error("Array must be not empty");
|
|
257
|
+
}, "ensureArrayIsNotEmpty", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function (e, t) {
|
|
258
|
+
if (!s(e, t)) throw new Error("Array should has length ".concat(t));
|
|
259
|
+
}, "ensureArrayHasLength", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function (e, t) {
|
|
260
|
+
if (!l(e, t)) throw new Error("Array must have minimal length ".concat(t));
|
|
261
|
+
}, "ensureArrayLengthGreaterThenOrEqual", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function (e) {}, "ensureNever", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function (e) {
|
|
262
|
+
return "".concat(e);
|
|
263
|
+
}, "ensureAndGetString", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function (e) {
|
|
264
|
+
e();
|
|
265
|
+
}, "runAsyncAction", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(f, "isNullOrEmpty", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function (e) {
|
|
266
|
+
return !f(e);
|
|
267
|
+
}, "isNotNullOrEmpty", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function (e) {
|
|
268
|
+
return null == e || "" === e.trim();
|
|
269
|
+
}, "isNullOrWhiteSpace", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function (e) {
|
|
270
|
+
return "/" === e.slice(-1) ? e.slice(0, -1) : e;
|
|
271
|
+
}, "trimLastSlash", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts"), n.register(function (e) {}, "assertIs", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Common\\TypingUtils.ts")), (i = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.leaveModule : void 0) && i(e);
|
|
272
|
+
},
|
|
273
|
+
591: function (e, t, r) {
|
|
274
|
+
var o = "undefined" != typeof globalThis && globalThis || "undefined" != typeof self && self || void 0 !== r.g && r.g || {},
|
|
275
|
+
n = {
|
|
276
|
+
searchParams: "URLSearchParams" in o,
|
|
277
|
+
iterable: "Symbol" in o && "iterator" in Symbol,
|
|
278
|
+
blob: "FileReader" in o && "Blob" in o && function () {
|
|
279
|
+
try {
|
|
280
|
+
return new Blob(), !0;
|
|
281
|
+
} catch (e) {
|
|
282
|
+
return !1;
|
|
283
|
+
}
|
|
284
|
+
}(),
|
|
285
|
+
formData: "FormData" in o,
|
|
286
|
+
arrayBuffer: "ArrayBuffer" in o
|
|
287
|
+
};
|
|
288
|
+
if (n.arrayBuffer) var i = ["[object Int8Array]", "[object Uint8Array]", "[object Uint8ClampedArray]", "[object Int16Array]", "[object Uint16Array]", "[object Int32Array]", "[object Uint32Array]", "[object Float32Array]", "[object Float64Array]"],
|
|
289
|
+
a = ArrayBuffer.isView || function (e) {
|
|
290
|
+
return e && i.indexOf(Object.prototype.toString.call(e)) > -1;
|
|
291
|
+
};
|
|
292
|
+
function u(e) {
|
|
293
|
+
if ("string" != typeof e && (e = String(e)), /[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(e) || "" === e) throw new TypeError('Invalid character in header field name: "' + e + '"');
|
|
294
|
+
return e.toLowerCase();
|
|
295
|
+
}
|
|
296
|
+
function c(e) {
|
|
297
|
+
return "string" != typeof e && (e = String(e)), e;
|
|
298
|
+
}
|
|
299
|
+
function l(e) {
|
|
300
|
+
var t = {
|
|
301
|
+
next: function () {
|
|
302
|
+
var t = e.shift();
|
|
303
|
+
return {
|
|
304
|
+
done: void 0 === t,
|
|
305
|
+
value: t
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
};
|
|
309
|
+
return n.iterable && (t[Symbol.iterator] = function () {
|
|
310
|
+
return t;
|
|
311
|
+
}), t;
|
|
312
|
+
}
|
|
313
|
+
function s(e) {
|
|
314
|
+
this.map = {}, e instanceof s ? e.forEach(function (e, t) {
|
|
315
|
+
this.append(t, e);
|
|
316
|
+
}, this) : Array.isArray(e) ? e.forEach(function (e) {
|
|
317
|
+
if (2 != e.length) throw new TypeError("Headers constructor: expected name/value pair to be length 2, found" + e.length);
|
|
318
|
+
this.append(e[0], e[1]);
|
|
319
|
+
}, this) : e && Object.getOwnPropertyNames(e).forEach(function (t) {
|
|
320
|
+
this.append(t, e[t]);
|
|
321
|
+
}, this);
|
|
322
|
+
}
|
|
323
|
+
function d(e) {
|
|
324
|
+
if (!e._noBody) return e.bodyUsed ? Promise.reject(new TypeError("Already read")) : void (e.bodyUsed = !0);
|
|
325
|
+
}
|
|
326
|
+
function f(e) {
|
|
327
|
+
return new Promise(function (t, r) {
|
|
328
|
+
e.onload = function () {
|
|
329
|
+
t(e.result);
|
|
330
|
+
}, e.onerror = function () {
|
|
331
|
+
r(e.error);
|
|
332
|
+
};
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
function y(e) {
|
|
336
|
+
var t = new FileReader(),
|
|
337
|
+
r = f(t);
|
|
338
|
+
return t.readAsArrayBuffer(e), r;
|
|
339
|
+
}
|
|
340
|
+
function p(e) {
|
|
341
|
+
if (e.slice) return e.slice(0);
|
|
342
|
+
var t = new Uint8Array(e.byteLength);
|
|
343
|
+
return t.set(new Uint8Array(e)), t.buffer;
|
|
344
|
+
}
|
|
345
|
+
function h() {
|
|
346
|
+
return this.bodyUsed = !1, this._initBody = function (e) {
|
|
347
|
+
var t;
|
|
348
|
+
this.bodyUsed = this.bodyUsed, this._bodyInit = e, e ? "string" == typeof e ? this._bodyText = e : n.blob && Blob.prototype.isPrototypeOf(e) ? this._bodyBlob = e : n.formData && FormData.prototype.isPrototypeOf(e) ? this._bodyFormData = e : n.searchParams && URLSearchParams.prototype.isPrototypeOf(e) ? this._bodyText = e.toString() : n.arrayBuffer && n.blob && (t = e) && DataView.prototype.isPrototypeOf(t) ? (this._bodyArrayBuffer = p(e.buffer), this._bodyInit = new Blob([this._bodyArrayBuffer])) : n.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(e) || a(e)) ? this._bodyArrayBuffer = p(e) : this._bodyText = e = Object.prototype.toString.call(e) : (this._noBody = !0, this._bodyText = ""), this.headers.get("content-type") || ("string" == typeof e ? this.headers.set("content-type", "text/plain;charset=UTF-8") : this._bodyBlob && this._bodyBlob.type ? this.headers.set("content-type", this._bodyBlob.type) : n.searchParams && URLSearchParams.prototype.isPrototypeOf(e) && this.headers.set("content-type", "application/x-www-form-urlencoded;charset=UTF-8"));
|
|
349
|
+
}, n.blob && (this.blob = function () {
|
|
350
|
+
var e = d(this);
|
|
351
|
+
if (e) return e;
|
|
352
|
+
if (this._bodyBlob) return Promise.resolve(this._bodyBlob);
|
|
353
|
+
if (this._bodyArrayBuffer) return Promise.resolve(new Blob([this._bodyArrayBuffer]));
|
|
354
|
+
if (this._bodyFormData) throw new Error("could not read FormData body as blob");
|
|
355
|
+
return Promise.resolve(new Blob([this._bodyText]));
|
|
356
|
+
}), this.arrayBuffer = function () {
|
|
357
|
+
if (this._bodyArrayBuffer) return d(this) || (ArrayBuffer.isView(this._bodyArrayBuffer) ? Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset, this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength)) : Promise.resolve(this._bodyArrayBuffer));
|
|
358
|
+
if (n.blob) return this.blob().then(y);
|
|
359
|
+
throw new Error("could not read as ArrayBuffer");
|
|
360
|
+
}, this.text = function () {
|
|
361
|
+
var e,
|
|
362
|
+
t,
|
|
363
|
+
r,
|
|
364
|
+
o,
|
|
365
|
+
n,
|
|
366
|
+
i = d(this);
|
|
367
|
+
if (i) return i;
|
|
368
|
+
if (this._bodyBlob) return e = this._bodyBlob, r = f(t = new FileReader()), n = (o = /charset=([A-Za-z0-9_-]+)/.exec(e.type)) ? o[1] : "utf-8", t.readAsText(e, n), r;
|
|
369
|
+
if (this._bodyArrayBuffer) return Promise.resolve(function (e) {
|
|
370
|
+
for (var t = new Uint8Array(e), r = new Array(t.length), o = 0; o < t.length; o++) r[o] = String.fromCharCode(t[o]);
|
|
371
|
+
return r.join("");
|
|
372
|
+
}(this._bodyArrayBuffer));
|
|
373
|
+
if (this._bodyFormData) throw new Error("could not read FormData body as text");
|
|
374
|
+
return Promise.resolve(this._bodyText);
|
|
375
|
+
}, n.formData && (this.formData = function () {
|
|
376
|
+
return this.text().then(g);
|
|
377
|
+
}), this.json = function () {
|
|
378
|
+
return this.text().then(JSON.parse);
|
|
379
|
+
}, this;
|
|
380
|
+
}
|
|
381
|
+
s.prototype.append = function (e, t) {
|
|
382
|
+
e = u(e), t = c(t);
|
|
383
|
+
var r = this.map[e];
|
|
384
|
+
this.map[e] = r ? r + ", " + t : t;
|
|
385
|
+
}, s.prototype.delete = function (e) {
|
|
386
|
+
delete this.map[u(e)];
|
|
387
|
+
}, s.prototype.get = function (e) {
|
|
388
|
+
return e = u(e), this.has(e) ? this.map[e] : null;
|
|
389
|
+
}, s.prototype.has = function (e) {
|
|
390
|
+
return this.map.hasOwnProperty(u(e));
|
|
391
|
+
}, s.prototype.set = function (e, t) {
|
|
392
|
+
this.map[u(e)] = c(t);
|
|
393
|
+
}, s.prototype.forEach = function (e, t) {
|
|
394
|
+
for (var r in this.map) this.map.hasOwnProperty(r) && e.call(t, this.map[r], r, this);
|
|
395
|
+
}, s.prototype.keys = function () {
|
|
396
|
+
var e = [];
|
|
397
|
+
return this.forEach(function (t, r) {
|
|
398
|
+
e.push(r);
|
|
399
|
+
}), l(e);
|
|
400
|
+
}, s.prototype.values = function () {
|
|
401
|
+
var e = [];
|
|
402
|
+
return this.forEach(function (t) {
|
|
403
|
+
e.push(t);
|
|
404
|
+
}), l(e);
|
|
405
|
+
}, s.prototype.entries = function () {
|
|
406
|
+
var e = [];
|
|
407
|
+
return this.forEach(function (t, r) {
|
|
408
|
+
e.push([r, t]);
|
|
409
|
+
}), l(e);
|
|
410
|
+
}, n.iterable && (s.prototype[Symbol.iterator] = s.prototype.entries);
|
|
411
|
+
var m = ["CONNECT", "DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT", "TRACE"];
|
|
412
|
+
function _(e, t) {
|
|
413
|
+
if (!(this instanceof _)) throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');
|
|
414
|
+
var r,
|
|
415
|
+
n,
|
|
416
|
+
i = (t = t || {}).body;
|
|
417
|
+
if (e instanceof _) {
|
|
418
|
+
if (e.bodyUsed) throw new TypeError("Already read");
|
|
419
|
+
this.url = e.url, this.credentials = e.credentials, t.headers || (this.headers = new s(e.headers)), this.method = e.method, this.mode = e.mode, this.signal = e.signal, i || null == e._bodyInit || (i = e._bodyInit, e.bodyUsed = !0);
|
|
420
|
+
} else this.url = String(e);
|
|
421
|
+
if (this.credentials = t.credentials || this.credentials || "same-origin", !t.headers && this.headers || (this.headers = new s(t.headers)), this.method = (n = (r = t.method || this.method || "GET").toUpperCase(), m.indexOf(n) > -1 ? n : r), this.mode = t.mode || this.mode || null, this.signal = t.signal || this.signal || function () {
|
|
422
|
+
if ("AbortController" in o) return new AbortController().signal;
|
|
423
|
+
}(), this.referrer = null, ("GET" === this.method || "HEAD" === this.method) && i) throw new TypeError("Body not allowed for GET or HEAD requests");
|
|
424
|
+
if (this._initBody(i), !("GET" !== this.method && "HEAD" !== this.method || "no-store" !== t.cache && "no-cache" !== t.cache)) {
|
|
425
|
+
var a = /([?&])_=[^&]*/;
|
|
426
|
+
a.test(this.url) ? this.url = this.url.replace(a, "$1_=" + new Date().getTime()) : this.url += (/\?/.test(this.url) ? "&" : "?") + "_=" + new Date().getTime();
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
function g(e) {
|
|
430
|
+
var t = new FormData();
|
|
431
|
+
return e.trim().split("&").forEach(function (e) {
|
|
432
|
+
if (e) {
|
|
433
|
+
var r = e.split("="),
|
|
434
|
+
o = r.shift().replace(/\+/g, " "),
|
|
435
|
+
n = r.join("=").replace(/\+/g, " ");
|
|
436
|
+
t.append(decodeURIComponent(o), decodeURIComponent(n));
|
|
437
|
+
}
|
|
438
|
+
}), t;
|
|
439
|
+
}
|
|
440
|
+
function v(e, t) {
|
|
441
|
+
if (!(this instanceof v)) throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');
|
|
442
|
+
if (t || (t = {}), this.type = "default", this.status = void 0 === t.status ? 200 : t.status, this.status < 200 || this.status > 599) throw new RangeError("Failed to construct 'Response': The status provided (0) is outside the range [200, 599].");
|
|
443
|
+
this.ok = this.status >= 200 && this.status < 300, this.statusText = void 0 === t.statusText ? "" : "" + t.statusText, this.headers = new s(t.headers), this.url = t.url || "", this._initBody(e);
|
|
444
|
+
}
|
|
445
|
+
_.prototype.clone = function () {
|
|
446
|
+
return new _(this, {
|
|
447
|
+
body: this._bodyInit
|
|
448
|
+
});
|
|
449
|
+
}, h.call(_.prototype), h.call(v.prototype), v.prototype.clone = function () {
|
|
450
|
+
return new v(this._bodyInit, {
|
|
451
|
+
status: this.status,
|
|
452
|
+
statusText: this.statusText,
|
|
453
|
+
headers: new s(this.headers),
|
|
454
|
+
url: this.url
|
|
455
|
+
});
|
|
456
|
+
}, v.error = function () {
|
|
457
|
+
var e = new v(null, {
|
|
458
|
+
status: 200,
|
|
459
|
+
statusText: ""
|
|
460
|
+
});
|
|
461
|
+
return e.ok = !1, e.status = 0, e.type = "error", e;
|
|
462
|
+
};
|
|
463
|
+
var b = [301, 302, 303, 307, 308];
|
|
464
|
+
v.redirect = function (e, t) {
|
|
465
|
+
if (-1 === b.indexOf(t)) throw new RangeError("Invalid status code");
|
|
466
|
+
return new v(null, {
|
|
467
|
+
status: t,
|
|
468
|
+
headers: {
|
|
469
|
+
location: e
|
|
470
|
+
}
|
|
471
|
+
});
|
|
472
|
+
};
|
|
473
|
+
var E = o.DOMException;
|
|
474
|
+
try {
|
|
475
|
+
new E();
|
|
476
|
+
} catch (e) {
|
|
477
|
+
(E = function (e, t) {
|
|
478
|
+
this.message = e, this.name = t;
|
|
479
|
+
var r = Error(e);
|
|
480
|
+
this.stack = r.stack;
|
|
481
|
+
}).prototype = Object.create(Error.prototype), E.prototype.constructor = E;
|
|
482
|
+
}
|
|
483
|
+
function w(e, t) {
|
|
484
|
+
return new Promise(function (r, i) {
|
|
485
|
+
var a = new _(e, t);
|
|
486
|
+
if (a.signal && a.signal.aborted) return i(new E("Aborted", "AbortError"));
|
|
487
|
+
var l = new XMLHttpRequest();
|
|
488
|
+
function d() {
|
|
489
|
+
l.abort();
|
|
490
|
+
}
|
|
491
|
+
if (l.onload = function () {
|
|
492
|
+
var e,
|
|
493
|
+
t,
|
|
494
|
+
o = {
|
|
495
|
+
statusText: l.statusText,
|
|
496
|
+
headers: (e = l.getAllResponseHeaders() || "", t = new s(), e.replace(/\r?\n[\t ]+/g, " ").split("\r").map(function (e) {
|
|
497
|
+
return 0 === e.indexOf("\n") ? e.substr(1, e.length) : e;
|
|
498
|
+
}).forEach(function (e) {
|
|
499
|
+
var r = e.split(":"),
|
|
500
|
+
o = r.shift().trim();
|
|
501
|
+
if (o) {
|
|
502
|
+
var n = r.join(":").trim();
|
|
503
|
+
try {
|
|
504
|
+
t.append(o, n);
|
|
505
|
+
} catch (e) {
|
|
506
|
+
console.warn("Response " + e.message);
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
}), t)
|
|
510
|
+
};
|
|
511
|
+
0 === a.url.indexOf("file://") && (l.status < 200 || l.status > 599) ? o.status = 200 : o.status = l.status, o.url = "responseURL" in l ? l.responseURL : o.headers.get("X-Request-URL");
|
|
512
|
+
var n = "response" in l ? l.response : l.responseText;
|
|
513
|
+
setTimeout(function () {
|
|
514
|
+
r(new v(n, o));
|
|
515
|
+
}, 0);
|
|
516
|
+
}, l.onerror = function () {
|
|
517
|
+
setTimeout(function () {
|
|
518
|
+
i(new TypeError("Network request failed"));
|
|
519
|
+
}, 0);
|
|
520
|
+
}, l.ontimeout = function () {
|
|
521
|
+
setTimeout(function () {
|
|
522
|
+
i(new TypeError("Network request timed out"));
|
|
523
|
+
}, 0);
|
|
524
|
+
}, l.onabort = function () {
|
|
525
|
+
setTimeout(function () {
|
|
526
|
+
i(new E("Aborted", "AbortError"));
|
|
527
|
+
}, 0);
|
|
528
|
+
}, l.open(a.method, function (e) {
|
|
529
|
+
try {
|
|
530
|
+
return "" === e && o.location.href ? o.location.href : e;
|
|
531
|
+
} catch (t) {
|
|
532
|
+
return e;
|
|
533
|
+
}
|
|
534
|
+
}(a.url), !0), "include" === a.credentials ? l.withCredentials = !0 : "omit" === a.credentials && (l.withCredentials = !1), "responseType" in l && (n.blob ? l.responseType = "blob" : n.arrayBuffer && (l.responseType = "arraybuffer")), t && "object" == typeof t.headers && !(t.headers instanceof s || o.Headers && t.headers instanceof o.Headers)) {
|
|
535
|
+
var f = [];
|
|
536
|
+
Object.getOwnPropertyNames(t.headers).forEach(function (e) {
|
|
537
|
+
f.push(u(e)), l.setRequestHeader(e, c(t.headers[e]));
|
|
538
|
+
}), a.headers.forEach(function (e, t) {
|
|
539
|
+
-1 === f.indexOf(t) && l.setRequestHeader(t, e);
|
|
540
|
+
});
|
|
541
|
+
} else a.headers.forEach(function (e, t) {
|
|
542
|
+
l.setRequestHeader(t, e);
|
|
543
|
+
});
|
|
544
|
+
a.signal && (a.signal.addEventListener("abort", d), l.onreadystatechange = function () {
|
|
545
|
+
4 === l.readyState && a.signal.removeEventListener("abort", d);
|
|
546
|
+
}), l.send(void 0 === a._bodyInit ? null : a._bodyInit);
|
|
547
|
+
});
|
|
548
|
+
}
|
|
549
|
+
w.polyfill = !0, o.fetch || (o.fetch = w, o.Headers = s, o.Request = _, o.Response = v);
|
|
550
|
+
var C,
|
|
551
|
+
k = r(163),
|
|
552
|
+
A = r(500),
|
|
553
|
+
P = r(750),
|
|
554
|
+
O = r(171),
|
|
555
|
+
L = r(768);
|
|
556
|
+
function S(e) {
|
|
557
|
+
return S = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) {
|
|
558
|
+
return typeof e;
|
|
559
|
+
} : function (e) {
|
|
560
|
+
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
|
|
561
|
+
}, S(e);
|
|
562
|
+
}
|
|
563
|
+
function B(e, t) {
|
|
564
|
+
var r = Object.keys(e);
|
|
565
|
+
if (Object.getOwnPropertySymbols) {
|
|
566
|
+
var o = Object.getOwnPropertySymbols(e);
|
|
567
|
+
t && (o = o.filter(function (t) {
|
|
568
|
+
return Object.getOwnPropertyDescriptor(e, t).enumerable;
|
|
569
|
+
})), r.push.apply(r, o);
|
|
570
|
+
}
|
|
571
|
+
return r;
|
|
572
|
+
}
|
|
573
|
+
function T(e) {
|
|
574
|
+
for (var t = 1; t < arguments.length; t++) {
|
|
575
|
+
var r = null != arguments[t] ? arguments[t] : {};
|
|
576
|
+
t % 2 ? B(Object(r), !0).forEach(function (t) {
|
|
577
|
+
I(e, t, r[t]);
|
|
578
|
+
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : B(Object(r)).forEach(function (t) {
|
|
579
|
+
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t));
|
|
580
|
+
});
|
|
581
|
+
}
|
|
582
|
+
return e;
|
|
583
|
+
}
|
|
584
|
+
function I(e, t, r) {
|
|
585
|
+
return (t = function (e) {
|
|
586
|
+
var t = function (e, t) {
|
|
587
|
+
if ("object" != S(e) || !e) return e;
|
|
588
|
+
var r = e[Symbol.toPrimitive];
|
|
589
|
+
if (void 0 !== r) {
|
|
590
|
+
var o = r.call(e, "string");
|
|
591
|
+
if ("object" != S(o)) return o;
|
|
592
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
593
|
+
}
|
|
594
|
+
return String(e);
|
|
595
|
+
}(e);
|
|
596
|
+
return "symbol" == S(t) ? t : t + "";
|
|
597
|
+
}(t)) in e ? Object.defineProperty(e, t, {
|
|
598
|
+
value: r,
|
|
599
|
+
enumerable: !0,
|
|
600
|
+
configurable: !0,
|
|
601
|
+
writable: !0
|
|
602
|
+
}) : e[t] = r, e;
|
|
603
|
+
}
|
|
604
|
+
function j(e, t) {
|
|
605
|
+
(null == t || t > e.length) && (t = e.length);
|
|
606
|
+
for (var r = 0, o = Array(t); r < t; r++) o[r] = e[r];
|
|
607
|
+
return o;
|
|
608
|
+
}
|
|
609
|
+
function H() {}
|
|
610
|
+
function M(e) {
|
|
611
|
+
return "string" == typeof e ? "false" !== e && "true" === e : Boolean(e);
|
|
612
|
+
}
|
|
613
|
+
function F() {
|
|
614
|
+
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "",
|
|
615
|
+
t = r.g.CF.keformsUrl || "";
|
|
616
|
+
return "".concat(t, "/").concat(e).replace(/([^:])\/{2,}/g, "$1/");
|
|
617
|
+
}
|
|
618
|
+
function U(e, t) {
|
|
619
|
+
if (void 0 === t) return e;
|
|
620
|
+
for (var r = [], o = 0, n = Object.keys(t); o < n.length; o++) {
|
|
621
|
+
var i = n[o],
|
|
622
|
+
a = t[i];
|
|
623
|
+
null != a && r.push("".concat(i, "=").concat(encodeURIComponent(a)));
|
|
624
|
+
}
|
|
625
|
+
return 0 === r.length ? e : e + "?" + r.join("&");
|
|
626
|
+
}
|
|
627
|
+
function D(e) {
|
|
628
|
+
return new RegExp("^(?:".concat(e.replace(/\./g, "\\.").replace(/\*/g, "[a-z0-9-._]+"), ")$")).test(r.g.location.host);
|
|
629
|
+
}
|
|
630
|
+
function G(e) {
|
|
631
|
+
return (r.g.location.search.trim().replace(/^(\?|#|&)/, "").split("&").map(function (e) {
|
|
632
|
+
return e.replace(/\+/g, " ").split("=").map(decodeURIComponent);
|
|
633
|
+
}).find(function (t) {
|
|
634
|
+
return (r = t, o = 1, function (e) {
|
|
635
|
+
if (Array.isArray(e)) return e;
|
|
636
|
+
}(r) || function (e, t) {
|
|
637
|
+
var r = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
|
|
638
|
+
if (null != r) {
|
|
639
|
+
var o,
|
|
640
|
+
n,
|
|
641
|
+
i,
|
|
642
|
+
a,
|
|
643
|
+
u = [],
|
|
644
|
+
c = !0,
|
|
645
|
+
l = !1;
|
|
646
|
+
try {
|
|
647
|
+
if (i = (r = r.call(e)).next, 0 === t) {
|
|
648
|
+
if (Object(r) !== r) return;
|
|
649
|
+
c = !1;
|
|
650
|
+
} else for (; !(c = (o = i.call(r)).done) && (u.push(o.value), u.length !== t); c = !0);
|
|
651
|
+
} catch (e) {
|
|
652
|
+
l = !0, n = e;
|
|
653
|
+
} finally {
|
|
654
|
+
try {
|
|
655
|
+
if (!c && null != r.return && (a = r.return(), Object(a) !== a)) return;
|
|
656
|
+
} finally {
|
|
657
|
+
if (l) throw n;
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
return u;
|
|
661
|
+
}
|
|
662
|
+
}(r, o) || function (e, t) {
|
|
663
|
+
if (e) {
|
|
664
|
+
if ("string" == typeof e) return j(e, t);
|
|
665
|
+
var r = {}.toString.call(e).slice(8, -1);
|
|
666
|
+
return "Object" === r && e.constructor && (r = e.constructor.name), "Map" === r || "Set" === r ? Array.from(e) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? j(e, t) : void 0;
|
|
667
|
+
}
|
|
668
|
+
}(r, o) || function () {
|
|
669
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
670
|
+
}())[0] == e;
|
|
671
|
+
var r, o;
|
|
672
|
+
}) || [])[1];
|
|
673
|
+
}
|
|
674
|
+
function x(e, t) {
|
|
675
|
+
var r = 0;
|
|
676
|
+
e.forEach(function (o) {
|
|
677
|
+
o(function (o) {
|
|
678
|
+
if (r !== e.length) {
|
|
679
|
+
if (o) return r = e.length, void t(o);
|
|
680
|
+
(r += 1) === e.length && t();
|
|
681
|
+
}
|
|
682
|
+
});
|
|
683
|
+
});
|
|
684
|
+
}
|
|
685
|
+
function R(e, t) {
|
|
686
|
+
var o = e.gfv,
|
|
687
|
+
n = e.engineVersion;
|
|
688
|
+
if (r.g.CF.entryPoint[o]) t();else {
|
|
689
|
+
var i = n && !r.g[n],
|
|
690
|
+
a = "true" === G("debug") ? "" : ".min",
|
|
691
|
+
u = [],
|
|
692
|
+
c = {
|
|
693
|
+
resourceZone: e.resourceZone
|
|
694
|
+
};
|
|
695
|
+
u.push(function (e) {
|
|
696
|
+
return A.q.styleSheet(F(U("static/public/styles/".concat(o).concat(a, ".css"), c)), !0, e);
|
|
697
|
+
}), u.push(function (e) {
|
|
698
|
+
return A.q.script(F(U("static/public/scripts/".concat(o).concat(a, ".js"), c)), e);
|
|
699
|
+
}), i && u.push(function (e) {
|
|
700
|
+
return A.q.styleSheet(F(U("static/public/styles/candy_".concat(n).concat(a, ".css"), c)), !1, e);
|
|
701
|
+
}, function (e) {
|
|
702
|
+
return A.q.script(F(U("static/public/scripts/candy_".concat(n).concat(a, ".js"), c)), e);
|
|
703
|
+
}), x(u, t);
|
|
704
|
+
}
|
|
705
|
+
}
|
|
706
|
+
function N(e, t, o) {
|
|
707
|
+
var n;
|
|
708
|
+
(null !== (n = r.g.CF.entryPoint[t.gfv]) && void 0 !== n ? n : (0, k.ku)("Form entry point ".concat(t.gfv, " not found.")))(e, t).then(function (e) {
|
|
709
|
+
var t = e.publicForm || (0, L.v)(e);
|
|
710
|
+
o(null, t);
|
|
711
|
+
}).catch(o);
|
|
712
|
+
}
|
|
713
|
+
function q(e) {
|
|
714
|
+
if (null != e) return r.g[e] && r.g[e].default;
|
|
715
|
+
}
|
|
716
|
+
function K(e, t) {
|
|
717
|
+
var o,
|
|
718
|
+
n,
|
|
719
|
+
i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : H,
|
|
720
|
+
a = null,
|
|
721
|
+
u = t.ns,
|
|
722
|
+
c = t.draftId;
|
|
723
|
+
if (D(O.r.konturDomains) ? O.r.authorized ? c ? u || (a = new Error("options.ns is required")) : a = new Error("options.draftId is required") : a = new Error("user.unauthenticated") : a = new Error("domain.untrusted"), a) i(a);else {
|
|
724
|
+
var l = null !== (o = t.resourceZone) && void 0 !== o ? o : G("resourceZone"),
|
|
725
|
+
s = U(F((0, P.I)({
|
|
726
|
+
ns: u,
|
|
727
|
+
draftId: c
|
|
728
|
+
})), {
|
|
729
|
+
resourceZone: l
|
|
730
|
+
}),
|
|
731
|
+
d = {
|
|
732
|
+
method: "GET"
|
|
733
|
+
};
|
|
734
|
+
if (null == t.authentication || "browser-credentials-include" === t.authentication) d.credentials = "include";else if ("authSid" in t.authentication && null != t.authentication.authSid) {
|
|
735
|
+
var f;
|
|
736
|
+
d.credentials = "omit", d.headers = null !== (f = d.headers) && void 0 !== f ? f : {}, d.headers.Authorization = "AUTH.SID ".concat(t.authentication.authSid);
|
|
737
|
+
} else d.credentials = "omit";
|
|
738
|
+
(null !== (n = t.fetch) && void 0 !== n ? n : w)(s, d).then(function (e) {
|
|
739
|
+
return e.json();
|
|
740
|
+
}).then(function (o) {
|
|
741
|
+
var n,
|
|
742
|
+
a,
|
|
743
|
+
u,
|
|
744
|
+
c,
|
|
745
|
+
s,
|
|
746
|
+
d = o.gfv,
|
|
747
|
+
f = o.engineVersion,
|
|
748
|
+
y = T(T(T({
|
|
749
|
+
authorized: O.r.authorized,
|
|
750
|
+
cauldronApiUrl: O.r.cauldronApiUrl,
|
|
751
|
+
isTestServer: O.r.isTestServer,
|
|
752
|
+
renderCachingForIE8: O.r.renderCachingForIE8,
|
|
753
|
+
normalizationOnServer: O.r.normalizationOnServer,
|
|
754
|
+
normativeUrl: O.r.normativeUrl,
|
|
755
|
+
konturDomains: O.r.konturDomains,
|
|
756
|
+
showNavigationSidebar: null === (n = t.showNavigationSidebar) || void 0 === n || n,
|
|
757
|
+
onRemoveAttachment: t.onRemoveAttachment
|
|
758
|
+
}, t), o), {}, {
|
|
759
|
+
gfv: d,
|
|
760
|
+
engineVersion: f,
|
|
761
|
+
feedbackEnabled: null !== (a = t.feedbackEnabled) && void 0 !== a ? a : o.feedbackEnabled,
|
|
762
|
+
isDisabledCleanForm: null !== (u = t.isDisabledCleanForm) && void 0 !== u && u,
|
|
763
|
+
isDisabledCloseButton: null !== (c = t.isDisabledCloseButton) && void 0 !== c && c,
|
|
764
|
+
isDisabledCloseAndSaveButton: null !== (s = t.isDisabledCloseAndSaveButton) && void 0 !== s && s,
|
|
765
|
+
resourceZone: l
|
|
766
|
+
});
|
|
767
|
+
R({
|
|
768
|
+
gfv: y.gfv,
|
|
769
|
+
engineVersion: y.engineVersion,
|
|
770
|
+
resourceZone: y.resourceZone,
|
|
771
|
+
theme: y.theme
|
|
772
|
+
}, function (o) {
|
|
773
|
+
if (!o && r.g.CF.entryPoint[d]) {
|
|
774
|
+
var n = q(f);
|
|
775
|
+
N(e, T(T({}, y), {}, {
|
|
776
|
+
templatesApi: t.templatesApi,
|
|
777
|
+
renderForm: n
|
|
778
|
+
}), i);
|
|
779
|
+
} else i(new Error("dynamic loading is not supported for gfv ".concat(d)));
|
|
780
|
+
});
|
|
781
|
+
}).catch(i);
|
|
782
|
+
}
|
|
783
|
+
}
|
|
784
|
+
e = r.hmd(e), (C = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.enterModule : void 0) && C(e), "undefined" != typeof reactHotLoaderGlobal && reactHotLoaderGlobal.default.signature;
|
|
785
|
+
var V,
|
|
786
|
+
W,
|
|
787
|
+
z = {
|
|
788
|
+
start: K,
|
|
789
|
+
entryPoint: {},
|
|
790
|
+
partialRenderingForIE8: M("{partialRenderingForIE8}"),
|
|
791
|
+
keformsUrl: "{keformsUrl}"
|
|
792
|
+
};
|
|
793
|
+
r.g.CF = z, (V = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.default : void 0) && (V.register(H, "defaultCallback", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\Client.ts"), V.register(M, "parseBool", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\Client.ts"), V.register(F, "url", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\Client.ts"), V.register(U, "buildUrl", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\Client.ts"), V.register(D, "isAllowed", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\Client.ts"), V.register(G, "getParameterByName", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\Client.ts"), V.register(x, "runParallel", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\Client.ts"), V.register(function (e, t) {
|
|
794
|
+
try {
|
|
795
|
+
var r,
|
|
796
|
+
o,
|
|
797
|
+
n,
|
|
798
|
+
i,
|
|
799
|
+
a,
|
|
800
|
+
u,
|
|
801
|
+
c,
|
|
802
|
+
l,
|
|
803
|
+
s,
|
|
804
|
+
d,
|
|
805
|
+
f = e.split(".").slice(0, 3).map(function (e) {
|
|
806
|
+
return parseInt(e, 10);
|
|
807
|
+
}),
|
|
808
|
+
y = t.split(".").slice(0, 3).map(function (e) {
|
|
809
|
+
return parseInt(e, 10);
|
|
810
|
+
});
|
|
811
|
+
return (null !== (r = f[0]) && void 0 !== r ? r : 0) > (null !== (o = y[0]) && void 0 !== o ? o : 0) || (null !== (n = f[0]) && void 0 !== n ? n : 0) === (null !== (i = y[0]) && void 0 !== i ? i : 0) && ((null !== (a = f[1]) && void 0 !== a ? a : 0) > (null !== (u = y[1]) && void 0 !== u ? u : 0) || (null !== (c = f[1]) && void 0 !== c ? c : 0) === (null !== (l = y[1]) && void 0 !== l ? l : 0) && (null !== (s = f[2]) && void 0 !== s ? s : 0) >= (null !== (d = y[2]) && void 0 !== d ? d : 0));
|
|
812
|
+
} catch (e) {
|
|
813
|
+
return !1;
|
|
814
|
+
}
|
|
815
|
+
}, "isEngineVersionGreaterThanOrEqual", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\Client.ts"), V.register(R, "loadForm", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\Client.ts"), V.register(N, "renderForm", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\Client.ts"), V.register(q, "getEngineEntryPoint", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\Client.ts"), V.register(K, "start", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\Client.ts"), V.register(z, "CandyClientExports", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\Client.ts")), (W = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.leaveModule : void 0) && W(e);
|
|
816
|
+
},
|
|
817
|
+
171: function (e, t, r) {
|
|
818
|
+
var o;
|
|
819
|
+
function n(e) {
|
|
820
|
+
return "string" == typeof e ? "false" !== e && "true" === e : Boolean(e);
|
|
821
|
+
}
|
|
822
|
+
r.d(t, {
|
|
823
|
+
r: function () {
|
|
824
|
+
return u;
|
|
825
|
+
}
|
|
826
|
+
}), e = r.hmd(e), (o = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.enterModule : void 0) && o(e), "undefined" != typeof reactHotLoaderGlobal && reactHotLoaderGlobal.default.signature;
|
|
827
|
+
var i,
|
|
828
|
+
a,
|
|
829
|
+
u = {
|
|
830
|
+
authorized: n("{authorized}"),
|
|
831
|
+
cauldronApiUrl: "{cauldronApiUrl}",
|
|
832
|
+
isTestServer: n("{isTestServer}"),
|
|
833
|
+
renderCachingForIE8: n("{renderCachingForIE8}"),
|
|
834
|
+
normalizationOnServer: n("{normalizationOnServer}"),
|
|
835
|
+
normativeUrl: "{normativeUrl}",
|
|
836
|
+
konturDomains: "{konturDomains}"
|
|
837
|
+
};
|
|
838
|
+
(i = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.default : void 0) && (i.register(n, "parseBool", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\ClientSettings.ts"), i.register(u, "clientSettings", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\ClientSettings.ts")), (a = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.leaveModule : void 0) && a(e);
|
|
839
|
+
},
|
|
840
|
+
768: function (module, __webpack_exports__, __webpack_require__) {
|
|
841
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
842
|
+
v: function () {
|
|
843
|
+
return createLegacyPublicForm;
|
|
844
|
+
}
|
|
845
|
+
});
|
|
846
|
+
var _Common_Errors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(336),
|
|
847
|
+
enterModule;
|
|
848
|
+
function _typeof(e) {
|
|
849
|
+
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) {
|
|
850
|
+
return typeof e;
|
|
851
|
+
} : function (e) {
|
|
852
|
+
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
|
|
853
|
+
}, _typeof(e);
|
|
854
|
+
}
|
|
855
|
+
function _regeneratorRuntime() {
|
|
856
|
+
_regeneratorRuntime = function () {
|
|
857
|
+
return t;
|
|
858
|
+
};
|
|
859
|
+
var e,
|
|
860
|
+
t = {},
|
|
861
|
+
r = Object.prototype,
|
|
862
|
+
o = r.hasOwnProperty,
|
|
863
|
+
n = Object.defineProperty || function (e, t, r) {
|
|
864
|
+
e[t] = r.value;
|
|
865
|
+
},
|
|
866
|
+
i = "function" == typeof Symbol ? Symbol : {},
|
|
867
|
+
a = i.iterator || "@@iterator",
|
|
868
|
+
u = i.asyncIterator || "@@asyncIterator",
|
|
869
|
+
c = i.toStringTag || "@@toStringTag";
|
|
870
|
+
function l(e, t, r) {
|
|
871
|
+
return Object.defineProperty(e, t, {
|
|
872
|
+
value: r,
|
|
873
|
+
enumerable: !0,
|
|
874
|
+
configurable: !0,
|
|
875
|
+
writable: !0
|
|
876
|
+
}), e[t];
|
|
877
|
+
}
|
|
878
|
+
try {
|
|
879
|
+
l({}, "");
|
|
880
|
+
} catch (e) {
|
|
881
|
+
l = function (e, t, r) {
|
|
882
|
+
return e[t] = r;
|
|
883
|
+
};
|
|
884
|
+
}
|
|
885
|
+
function s(e, t, r, o) {
|
|
886
|
+
var i = t && t.prototype instanceof _ ? t : _,
|
|
887
|
+
a = Object.create(i.prototype),
|
|
888
|
+
u = new B(o || []);
|
|
889
|
+
return n(a, "_invoke", {
|
|
890
|
+
value: P(e, r, u)
|
|
891
|
+
}), a;
|
|
892
|
+
}
|
|
893
|
+
function d(e, t, r) {
|
|
894
|
+
try {
|
|
895
|
+
return {
|
|
896
|
+
type: "normal",
|
|
897
|
+
arg: e.call(t, r)
|
|
898
|
+
};
|
|
899
|
+
} catch (e) {
|
|
900
|
+
return {
|
|
901
|
+
type: "throw",
|
|
902
|
+
arg: e
|
|
903
|
+
};
|
|
904
|
+
}
|
|
905
|
+
}
|
|
906
|
+
t.wrap = s;
|
|
907
|
+
var f = "suspendedStart",
|
|
908
|
+
y = "suspendedYield",
|
|
909
|
+
p = "executing",
|
|
910
|
+
h = "completed",
|
|
911
|
+
m = {};
|
|
912
|
+
function _() {}
|
|
913
|
+
function g() {}
|
|
914
|
+
function v() {}
|
|
915
|
+
var b = {};
|
|
916
|
+
l(b, a, function () {
|
|
917
|
+
return this;
|
|
918
|
+
});
|
|
919
|
+
var E = Object.getPrototypeOf,
|
|
920
|
+
w = E && E(E(T([])));
|
|
921
|
+
w && w !== r && o.call(w, a) && (b = w);
|
|
922
|
+
var C = v.prototype = _.prototype = Object.create(b);
|
|
923
|
+
function k(e) {
|
|
924
|
+
["next", "throw", "return"].forEach(function (t) {
|
|
925
|
+
l(e, t, function (e) {
|
|
926
|
+
return this._invoke(t, e);
|
|
927
|
+
});
|
|
928
|
+
});
|
|
929
|
+
}
|
|
930
|
+
function A(e, t) {
|
|
931
|
+
function r(n, i, a, u) {
|
|
932
|
+
var c = d(e[n], e, i);
|
|
933
|
+
if ("throw" !== c.type) {
|
|
934
|
+
var l = c.arg,
|
|
935
|
+
s = l.value;
|
|
936
|
+
return s && "object" == _typeof(s) && o.call(s, "__await") ? t.resolve(s.__await).then(function (e) {
|
|
937
|
+
r("next", e, a, u);
|
|
938
|
+
}, function (e) {
|
|
939
|
+
r("throw", e, a, u);
|
|
940
|
+
}) : t.resolve(s).then(function (e) {
|
|
941
|
+
l.value = e, a(l);
|
|
942
|
+
}, function (e) {
|
|
943
|
+
return r("throw", e, a, u);
|
|
944
|
+
});
|
|
945
|
+
}
|
|
946
|
+
u(c.arg);
|
|
947
|
+
}
|
|
948
|
+
var i;
|
|
949
|
+
n(this, "_invoke", {
|
|
950
|
+
value: function (e, o) {
|
|
951
|
+
function n() {
|
|
952
|
+
return new t(function (t, n) {
|
|
953
|
+
r(e, o, t, n);
|
|
954
|
+
});
|
|
955
|
+
}
|
|
956
|
+
return i = i ? i.then(n, n) : n();
|
|
957
|
+
}
|
|
958
|
+
});
|
|
959
|
+
}
|
|
960
|
+
function P(t, r, o) {
|
|
961
|
+
var n = f;
|
|
962
|
+
return function (i, a) {
|
|
963
|
+
if (n === p) throw Error("Generator is already running");
|
|
964
|
+
if (n === h) {
|
|
965
|
+
if ("throw" === i) throw a;
|
|
966
|
+
return {
|
|
967
|
+
value: e,
|
|
968
|
+
done: !0
|
|
969
|
+
};
|
|
970
|
+
}
|
|
971
|
+
for (o.method = i, o.arg = a;;) {
|
|
972
|
+
var u = o.delegate;
|
|
973
|
+
if (u) {
|
|
974
|
+
var c = O(u, o);
|
|
975
|
+
if (c) {
|
|
976
|
+
if (c === m) continue;
|
|
977
|
+
return c;
|
|
978
|
+
}
|
|
979
|
+
}
|
|
980
|
+
if ("next" === o.method) o.sent = o._sent = o.arg;else if ("throw" === o.method) {
|
|
981
|
+
if (n === f) throw n = h, o.arg;
|
|
982
|
+
o.dispatchException(o.arg);
|
|
983
|
+
} else "return" === o.method && o.abrupt("return", o.arg);
|
|
984
|
+
n = p;
|
|
985
|
+
var l = d(t, r, o);
|
|
986
|
+
if ("normal" === l.type) {
|
|
987
|
+
if (n = o.done ? h : y, l.arg === m) continue;
|
|
988
|
+
return {
|
|
989
|
+
value: l.arg,
|
|
990
|
+
done: o.done
|
|
991
|
+
};
|
|
992
|
+
}
|
|
993
|
+
"throw" === l.type && (n = h, o.method = "throw", o.arg = l.arg);
|
|
994
|
+
}
|
|
995
|
+
};
|
|
996
|
+
}
|
|
997
|
+
function O(t, r) {
|
|
998
|
+
var o = r.method,
|
|
999
|
+
n = t.iterator[o];
|
|
1000
|
+
if (n === e) return r.delegate = null, "throw" === o && t.iterator.return && (r.method = "return", r.arg = e, O(t, r), "throw" === r.method) || "return" !== o && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + o + "' method")), m;
|
|
1001
|
+
var i = d(n, t.iterator, r.arg);
|
|
1002
|
+
if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, m;
|
|
1003
|
+
var a = i.arg;
|
|
1004
|
+
return a ? a.done ? (r[t.resultName] = a.value, r.next = t.nextLoc, "return" !== r.method && (r.method = "next", r.arg = e), r.delegate = null, m) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, m);
|
|
1005
|
+
}
|
|
1006
|
+
function L(e) {
|
|
1007
|
+
var t = {
|
|
1008
|
+
tryLoc: e[0]
|
|
1009
|
+
};
|
|
1010
|
+
1 in e && (t.catchLoc = e[1]), 2 in e && (t.finallyLoc = e[2], t.afterLoc = e[3]), this.tryEntries.push(t);
|
|
1011
|
+
}
|
|
1012
|
+
function S(e) {
|
|
1013
|
+
var t = e.completion || {};
|
|
1014
|
+
t.type = "normal", delete t.arg, e.completion = t;
|
|
1015
|
+
}
|
|
1016
|
+
function B(e) {
|
|
1017
|
+
this.tryEntries = [{
|
|
1018
|
+
tryLoc: "root"
|
|
1019
|
+
}], e.forEach(L, this), this.reset(!0);
|
|
1020
|
+
}
|
|
1021
|
+
function T(t) {
|
|
1022
|
+
if (t || "" === t) {
|
|
1023
|
+
var r = t[a];
|
|
1024
|
+
if (r) return r.call(t);
|
|
1025
|
+
if ("function" == typeof t.next) return t;
|
|
1026
|
+
if (!isNaN(t.length)) {
|
|
1027
|
+
var n = -1,
|
|
1028
|
+
i = function r() {
|
|
1029
|
+
for (; ++n < t.length;) if (o.call(t, n)) return r.value = t[n], r.done = !1, r;
|
|
1030
|
+
return r.value = e, r.done = !0, r;
|
|
1031
|
+
};
|
|
1032
|
+
return i.next = i;
|
|
1033
|
+
}
|
|
1034
|
+
}
|
|
1035
|
+
throw new TypeError(_typeof(t) + " is not iterable");
|
|
1036
|
+
}
|
|
1037
|
+
return g.prototype = v, n(C, "constructor", {
|
|
1038
|
+
value: v,
|
|
1039
|
+
configurable: !0
|
|
1040
|
+
}), n(v, "constructor", {
|
|
1041
|
+
value: g,
|
|
1042
|
+
configurable: !0
|
|
1043
|
+
}), g.displayName = l(v, c, "GeneratorFunction"), t.isGeneratorFunction = function (e) {
|
|
1044
|
+
var t = "function" == typeof e && e.constructor;
|
|
1045
|
+
return !!t && (t === g || "GeneratorFunction" === (t.displayName || t.name));
|
|
1046
|
+
}, t.mark = function (e) {
|
|
1047
|
+
return Object.setPrototypeOf ? Object.setPrototypeOf(e, v) : (e.__proto__ = v, l(e, c, "GeneratorFunction")), e.prototype = Object.create(C), e;
|
|
1048
|
+
}, t.awrap = function (e) {
|
|
1049
|
+
return {
|
|
1050
|
+
__await: e
|
|
1051
|
+
};
|
|
1052
|
+
}, k(A.prototype), l(A.prototype, u, function () {
|
|
1053
|
+
return this;
|
|
1054
|
+
}), t.AsyncIterator = A, t.async = function (e, r, o, n, i) {
|
|
1055
|
+
void 0 === i && (i = Promise);
|
|
1056
|
+
var a = new A(s(e, r, o, n), i);
|
|
1057
|
+
return t.isGeneratorFunction(r) ? a : a.next().then(function (e) {
|
|
1058
|
+
return e.done ? e.value : a.next();
|
|
1059
|
+
});
|
|
1060
|
+
}, k(C), l(C, c, "Generator"), l(C, a, function () {
|
|
1061
|
+
return this;
|
|
1062
|
+
}), l(C, "toString", function () {
|
|
1063
|
+
return "[object Generator]";
|
|
1064
|
+
}), t.keys = function (e) {
|
|
1065
|
+
var t = Object(e),
|
|
1066
|
+
r = [];
|
|
1067
|
+
for (var o in t) r.push(o);
|
|
1068
|
+
return r.reverse(), function e() {
|
|
1069
|
+
for (; r.length;) {
|
|
1070
|
+
var o = r.pop();
|
|
1071
|
+
if (o in t) return e.value = o, e.done = !1, e;
|
|
1072
|
+
}
|
|
1073
|
+
return e.done = !0, e;
|
|
1074
|
+
};
|
|
1075
|
+
}, t.values = T, B.prototype = {
|
|
1076
|
+
constructor: B,
|
|
1077
|
+
reset: function (t) {
|
|
1078
|
+
if (this.prev = 0, this.next = 0, this.sent = this._sent = e, this.done = !1, this.delegate = null, this.method = "next", this.arg = e, this.tryEntries.forEach(S), !t) for (var r in this) "t" === r.charAt(0) && o.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = e);
|
|
1079
|
+
},
|
|
1080
|
+
stop: function () {
|
|
1081
|
+
this.done = !0;
|
|
1082
|
+
var e = this.tryEntries[0].completion;
|
|
1083
|
+
if ("throw" === e.type) throw e.arg;
|
|
1084
|
+
return this.rval;
|
|
1085
|
+
},
|
|
1086
|
+
dispatchException: function (t) {
|
|
1087
|
+
if (this.done) throw t;
|
|
1088
|
+
var r = this;
|
|
1089
|
+
function n(o, n) {
|
|
1090
|
+
return u.type = "throw", u.arg = t, r.next = o, n && (r.method = "next", r.arg = e), !!n;
|
|
1091
|
+
}
|
|
1092
|
+
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
|
|
1093
|
+
var a = this.tryEntries[i],
|
|
1094
|
+
u = a.completion;
|
|
1095
|
+
if ("root" === a.tryLoc) return n("end");
|
|
1096
|
+
if (a.tryLoc <= this.prev) {
|
|
1097
|
+
var c = o.call(a, "catchLoc"),
|
|
1098
|
+
l = o.call(a, "finallyLoc");
|
|
1099
|
+
if (c && l) {
|
|
1100
|
+
if (this.prev < a.catchLoc) return n(a.catchLoc, !0);
|
|
1101
|
+
if (this.prev < a.finallyLoc) return n(a.finallyLoc);
|
|
1102
|
+
} else if (c) {
|
|
1103
|
+
if (this.prev < a.catchLoc) return n(a.catchLoc, !0);
|
|
1104
|
+
} else {
|
|
1105
|
+
if (!l) throw Error("try statement without catch or finally");
|
|
1106
|
+
if (this.prev < a.finallyLoc) return n(a.finallyLoc);
|
|
1107
|
+
}
|
|
1108
|
+
}
|
|
1109
|
+
}
|
|
1110
|
+
},
|
|
1111
|
+
abrupt: function (e, t) {
|
|
1112
|
+
for (var r = this.tryEntries.length - 1; r >= 0; --r) {
|
|
1113
|
+
var n = this.tryEntries[r];
|
|
1114
|
+
if (n.tryLoc <= this.prev && o.call(n, "finallyLoc") && this.prev < n.finallyLoc) {
|
|
1115
|
+
var i = n;
|
|
1116
|
+
break;
|
|
1117
|
+
}
|
|
1118
|
+
}
|
|
1119
|
+
i && ("break" === e || "continue" === e) && i.tryLoc <= t && t <= i.finallyLoc && (i = null);
|
|
1120
|
+
var a = i ? i.completion : {};
|
|
1121
|
+
return a.type = e, a.arg = t, i ? (this.method = "next", this.next = i.finallyLoc, m) : this.complete(a);
|
|
1122
|
+
},
|
|
1123
|
+
complete: function (e, t) {
|
|
1124
|
+
if ("throw" === e.type) throw e.arg;
|
|
1125
|
+
return "break" === e.type || "continue" === e.type ? this.next = e.arg : "return" === e.type ? (this.rval = this.arg = e.arg, this.method = "return", this.next = "end") : "normal" === e.type && t && (this.next = t), m;
|
|
1126
|
+
},
|
|
1127
|
+
finish: function (e) {
|
|
1128
|
+
for (var t = this.tryEntries.length - 1; t >= 0; --t) {
|
|
1129
|
+
var r = this.tryEntries[t];
|
|
1130
|
+
if (r.finallyLoc === e) return this.complete(r.completion, r.afterLoc), S(r), m;
|
|
1131
|
+
}
|
|
1132
|
+
},
|
|
1133
|
+
catch: function (e) {
|
|
1134
|
+
for (var t = this.tryEntries.length - 1; t >= 0; --t) {
|
|
1135
|
+
var r = this.tryEntries[t];
|
|
1136
|
+
if (r.tryLoc === e) {
|
|
1137
|
+
var o = r.completion;
|
|
1138
|
+
if ("throw" === o.type) {
|
|
1139
|
+
var n = o.arg;
|
|
1140
|
+
S(r);
|
|
1141
|
+
}
|
|
1142
|
+
return n;
|
|
1143
|
+
}
|
|
1144
|
+
}
|
|
1145
|
+
throw Error("illegal catch attempt");
|
|
1146
|
+
},
|
|
1147
|
+
delegateYield: function (t, r, o) {
|
|
1148
|
+
return this.delegate = {
|
|
1149
|
+
iterator: T(t),
|
|
1150
|
+
resultName: r,
|
|
1151
|
+
nextLoc: o
|
|
1152
|
+
}, "next" === this.method && (this.arg = e), m;
|
|
1153
|
+
}
|
|
1154
|
+
}, t;
|
|
1155
|
+
}
|
|
1156
|
+
function asyncGeneratorStep(e, t, r, o, n, i, a) {
|
|
1157
|
+
try {
|
|
1158
|
+
var u = e[i](a),
|
|
1159
|
+
c = u.value;
|
|
1160
|
+
} catch (e) {
|
|
1161
|
+
return void r(e);
|
|
1162
|
+
}
|
|
1163
|
+
u.done ? t(c) : Promise.resolve(c).then(o, n);
|
|
1164
|
+
}
|
|
1165
|
+
function _asyncToGenerator(e) {
|
|
1166
|
+
return function () {
|
|
1167
|
+
var t = this,
|
|
1168
|
+
r = arguments;
|
|
1169
|
+
return new Promise(function (o, n) {
|
|
1170
|
+
var i = e.apply(t, r);
|
|
1171
|
+
function a(e) {
|
|
1172
|
+
asyncGeneratorStep(i, o, n, a, u, "next", e);
|
|
1173
|
+
}
|
|
1174
|
+
function u(e) {
|
|
1175
|
+
asyncGeneratorStep(i, o, n, a, u, "throw", e);
|
|
1176
|
+
}
|
|
1177
|
+
a(void 0);
|
|
1178
|
+
});
|
|
1179
|
+
};
|
|
1180
|
+
}
|
|
1181
|
+
function _classCallCheck(e, t) {
|
|
1182
|
+
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
|
|
1183
|
+
}
|
|
1184
|
+
function _defineProperties(e, t) {
|
|
1185
|
+
for (var r = 0; r < t.length; r++) {
|
|
1186
|
+
var o = t[r];
|
|
1187
|
+
o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);
|
|
1188
|
+
}
|
|
1189
|
+
}
|
|
1190
|
+
function _createClass(e, t, r) {
|
|
1191
|
+
return t && _defineProperties(e.prototype, t), r && _defineProperties(e, r), Object.defineProperty(e, "prototype", {
|
|
1192
|
+
writable: !1
|
|
1193
|
+
}), e;
|
|
1194
|
+
}
|
|
1195
|
+
function ownKeys(e, t) {
|
|
1196
|
+
var r = Object.keys(e);
|
|
1197
|
+
if (Object.getOwnPropertySymbols) {
|
|
1198
|
+
var o = Object.getOwnPropertySymbols(e);
|
|
1199
|
+
t && (o = o.filter(function (t) {
|
|
1200
|
+
return Object.getOwnPropertyDescriptor(e, t).enumerable;
|
|
1201
|
+
})), r.push.apply(r, o);
|
|
1202
|
+
}
|
|
1203
|
+
return r;
|
|
1204
|
+
}
|
|
1205
|
+
function _objectSpread(e) {
|
|
1206
|
+
for (var t = 1; t < arguments.length; t++) {
|
|
1207
|
+
var r = null != arguments[t] ? arguments[t] : {};
|
|
1208
|
+
t % 2 ? ownKeys(Object(r), !0).forEach(function (t) {
|
|
1209
|
+
_defineProperty(e, t, r[t]);
|
|
1210
|
+
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : ownKeys(Object(r)).forEach(function (t) {
|
|
1211
|
+
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t));
|
|
1212
|
+
});
|
|
1213
|
+
}
|
|
1214
|
+
return e;
|
|
1215
|
+
}
|
|
1216
|
+
function _defineProperty(e, t, r) {
|
|
1217
|
+
return (t = _toPropertyKey(t)) in e ? Object.defineProperty(e, t, {
|
|
1218
|
+
value: r,
|
|
1219
|
+
enumerable: !0,
|
|
1220
|
+
configurable: !0,
|
|
1221
|
+
writable: !0
|
|
1222
|
+
}) : e[t] = r, e;
|
|
1223
|
+
}
|
|
1224
|
+
function _toPropertyKey(e) {
|
|
1225
|
+
var t = _toPrimitive(e, "string");
|
|
1226
|
+
return "symbol" == _typeof(t) ? t : t + "";
|
|
1227
|
+
}
|
|
1228
|
+
function _toPrimitive(e, t) {
|
|
1229
|
+
if ("object" != _typeof(e) || !e) return e;
|
|
1230
|
+
var r = e[Symbol.toPrimitive];
|
|
1231
|
+
if (void 0 !== r) {
|
|
1232
|
+
var o = r.call(e, t || "default");
|
|
1233
|
+
if ("object" != _typeof(o)) return o;
|
|
1234
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
1235
|
+
}
|
|
1236
|
+
return ("string" === t ? String : Number)(e);
|
|
1237
|
+
}
|
|
1238
|
+
module = __webpack_require__.hmd(module), enterModule = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.enterModule : void 0, enterModule && enterModule(module);
|
|
1239
|
+
var __signature__ = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.default.signature : function (e) {
|
|
1240
|
+
return e;
|
|
1241
|
+
};
|
|
1242
|
+
function modelChangeEventPath(e, t) {
|
|
1243
|
+
if (null != t) {
|
|
1244
|
+
if (null == e) throw new Error("Path must be defined");
|
|
1245
|
+
return ["model", "change", e, t];
|
|
1246
|
+
}
|
|
1247
|
+
return null != e ? ["model", "change", e] : ["model", "change"];
|
|
1248
|
+
}
|
|
1249
|
+
function mapChunkValues(e) {
|
|
1250
|
+
return Object.keys(e).filter(function (t) {
|
|
1251
|
+
return e[t] && Object.prototype.hasOwnProperty.call(e[t], "value");
|
|
1252
|
+
}).map(function (t) {
|
|
1253
|
+
var r = e[t];
|
|
1254
|
+
return null == r ? {} : _defineProperty({}, t, r.value);
|
|
1255
|
+
});
|
|
1256
|
+
}
|
|
1257
|
+
function reduceChunkValues(e) {
|
|
1258
|
+
return e.reduce(function (e, t) {
|
|
1259
|
+
return _objectSpread(_objectSpread({}, e), t);
|
|
1260
|
+
}, {});
|
|
1261
|
+
}
|
|
1262
|
+
var LegacyPublicForm = function () {
|
|
1263
|
+
function LegacyPublicForm(e) {
|
|
1264
|
+
_classCallCheck(this, LegacyPublicForm), this.form = void 0, this.form = e;
|
|
1265
|
+
}
|
|
1266
|
+
return _createClass(LegacyPublicForm, [{
|
|
1267
|
+
key: "navigateByHighlanderPaths",
|
|
1268
|
+
value: function (e) {
|
|
1269
|
+
throw new Error("Method not implemented.");
|
|
1270
|
+
}
|
|
1271
|
+
}, {
|
|
1272
|
+
key: "cancelSelectRelative",
|
|
1273
|
+
value: function () {
|
|
1274
|
+
throw new Error("Method not implemented.");
|
|
1275
|
+
}
|
|
1276
|
+
}, {
|
|
1277
|
+
key: "getNavigationPathMapper",
|
|
1278
|
+
value: function () {
|
|
1279
|
+
throw new Error("Method not implemented.");
|
|
1280
|
+
}
|
|
1281
|
+
}, {
|
|
1282
|
+
key: "batchUpdate",
|
|
1283
|
+
value: function (e) {
|
|
1284
|
+
throw new Error("Method not implemented.");
|
|
1285
|
+
}
|
|
1286
|
+
}, {
|
|
1287
|
+
key: "runCheck",
|
|
1288
|
+
value: function () {
|
|
1289
|
+
throw new Error("Method not implemented.");
|
|
1290
|
+
}
|
|
1291
|
+
}, {
|
|
1292
|
+
key: "setErrorLog",
|
|
1293
|
+
value: function (e) {
|
|
1294
|
+
throw new Error("Method not implemented.");
|
|
1295
|
+
}
|
|
1296
|
+
}, {
|
|
1297
|
+
key: "validateChildrenByPath",
|
|
1298
|
+
value: (_validateChildrenByPath = _asyncToGenerator(_regeneratorRuntime().mark(function e(t) {
|
|
1299
|
+
return _regeneratorRuntime().wrap(function (e) {
|
|
1300
|
+
for (;;) switch (e.prev = e.next) {
|
|
1301
|
+
case 0:
|
|
1302
|
+
throw new Error("Method not implemented.");
|
|
1303
|
+
case 1:
|
|
1304
|
+
case "end":
|
|
1305
|
+
return e.stop();
|
|
1306
|
+
}
|
|
1307
|
+
}, e);
|
|
1308
|
+
})), function (e) {
|
|
1309
|
+
return _validateChildrenByPath.apply(this, arguments);
|
|
1310
|
+
})
|
|
1311
|
+
}, {
|
|
1312
|
+
key: "__INTERNAL__importFromEmployeeService",
|
|
1313
|
+
value: function () {
|
|
1314
|
+
throw new Error("Method not implemented.");
|
|
1315
|
+
}
|
|
1316
|
+
}, {
|
|
1317
|
+
key: "__INTERNAL__getSelectFunctionForDisableEmployeeInSS",
|
|
1318
|
+
value: (_INTERNAL__getSelectFunctionForDisableEmployeeInSS = _asyncToGenerator(_regeneratorRuntime().mark(function e(t) {
|
|
1319
|
+
return _regeneratorRuntime().wrap(function (e) {
|
|
1320
|
+
for (;;) switch (e.prev = e.next) {
|
|
1321
|
+
case 0:
|
|
1322
|
+
throw new Error("Method not implemented.");
|
|
1323
|
+
case 1:
|
|
1324
|
+
case "end":
|
|
1325
|
+
return e.stop();
|
|
1326
|
+
}
|
|
1327
|
+
}, e);
|
|
1328
|
+
})), function (e) {
|
|
1329
|
+
return _INTERNAL__getSelectFunctionForDisableEmployeeInSS.apply(this, arguments);
|
|
1330
|
+
})
|
|
1331
|
+
}, {
|
|
1332
|
+
key: "getModalUnitOpenedInstance",
|
|
1333
|
+
value: function (e) {
|
|
1334
|
+
throw new Error("Method not implemented.");
|
|
1335
|
+
}
|
|
1336
|
+
}, {
|
|
1337
|
+
key: "getTabsState",
|
|
1338
|
+
value: function () {
|
|
1339
|
+
throw new Error("Method not implemented.");
|
|
1340
|
+
}
|
|
1341
|
+
}, {
|
|
1342
|
+
key: "navigate",
|
|
1343
|
+
value: function (e) {
|
|
1344
|
+
throw new Error("Method not implemented.");
|
|
1345
|
+
}
|
|
1346
|
+
}, {
|
|
1347
|
+
key: "importEmployerDocuments",
|
|
1348
|
+
value: function (e) {
|
|
1349
|
+
throw new Error("Method not implemented.");
|
|
1350
|
+
}
|
|
1351
|
+
}, {
|
|
1352
|
+
key: "importEmployees",
|
|
1353
|
+
value: function (e, t) {
|
|
1354
|
+
throw new Error("Method not implemented.");
|
|
1355
|
+
}
|
|
1356
|
+
}, {
|
|
1357
|
+
key: "print",
|
|
1358
|
+
value: function (e, t) {
|
|
1359
|
+
throw new Error("Method not implemented.");
|
|
1360
|
+
}
|
|
1361
|
+
}, {
|
|
1362
|
+
key: "runMassAction",
|
|
1363
|
+
value: function (e, t) {
|
|
1364
|
+
throw new Error("Method not implemented.");
|
|
1365
|
+
}
|
|
1366
|
+
}, {
|
|
1367
|
+
key: "getByGId",
|
|
1368
|
+
value: function (e, t) {
|
|
1369
|
+
return this.form.picklistsProvider.getDigestApiPicklist(e).query(t);
|
|
1370
|
+
}
|
|
1371
|
+
}, {
|
|
1372
|
+
key: "on",
|
|
1373
|
+
value: function (e, t) {
|
|
1374
|
+
this.form.eventManager.on(["form", e], t);
|
|
1375
|
+
}
|
|
1376
|
+
}, {
|
|
1377
|
+
key: "off",
|
|
1378
|
+
value: function (e, t) {
|
|
1379
|
+
this.form.eventManager.off(["form", e], t);
|
|
1380
|
+
}
|
|
1381
|
+
}, {
|
|
1382
|
+
key: "onModelChange",
|
|
1383
|
+
value: function (e, t) {
|
|
1384
|
+
throw Error("form.onModelChange() is not supported yet");
|
|
1385
|
+
}
|
|
1386
|
+
}, {
|
|
1387
|
+
key: "save",
|
|
1388
|
+
value: function () {
|
|
1389
|
+
return this.form.changeSet.send();
|
|
1390
|
+
}
|
|
1391
|
+
}, {
|
|
1392
|
+
key: "close",
|
|
1393
|
+
value: function () {
|
|
1394
|
+
return this.form.changeSet.stopAutosend(), this.form.unmount && this.form.unmount(), this.form.changeSet.send();
|
|
1395
|
+
}
|
|
1396
|
+
}, {
|
|
1397
|
+
key: "getTourSteps",
|
|
1398
|
+
value: function () {
|
|
1399
|
+
return [];
|
|
1400
|
+
}
|
|
1401
|
+
}, {
|
|
1402
|
+
key: "validate",
|
|
1403
|
+
value: function () {
|
|
1404
|
+
var e = Object.keys(this.form.model.getChunk(this.form.settings.formRoot));
|
|
1405
|
+
return this.form.validator.validateAll(e);
|
|
1406
|
+
}
|
|
1407
|
+
}, {
|
|
1408
|
+
key: "getAdditionalEmployeeInfo",
|
|
1409
|
+
value: function (e) {
|
|
1410
|
+
throw new Error("not implemented");
|
|
1411
|
+
}
|
|
1412
|
+
}, {
|
|
1413
|
+
key: "getEmployees",
|
|
1414
|
+
value: function () {
|
|
1415
|
+
throw new Error("not implemented");
|
|
1416
|
+
}
|
|
1417
|
+
}, {
|
|
1418
|
+
key: "mergeRelative",
|
|
1419
|
+
value: function () {
|
|
1420
|
+
throw new Error("not implemented");
|
|
1421
|
+
}
|
|
1422
|
+
}, {
|
|
1423
|
+
key: "patchRelative",
|
|
1424
|
+
value: function () {
|
|
1425
|
+
throw new Error("not implemented");
|
|
1426
|
+
}
|
|
1427
|
+
}, {
|
|
1428
|
+
key: "sendMetrics",
|
|
1429
|
+
value: function (e, t) {}
|
|
1430
|
+
}, {
|
|
1431
|
+
key: "matchEmployee",
|
|
1432
|
+
value: function (e) {
|
|
1433
|
+
throw new Error("not implemented");
|
|
1434
|
+
}
|
|
1435
|
+
}, {
|
|
1436
|
+
key: "reloadInner",
|
|
1437
|
+
value: (_reloadInner = _asyncToGenerator(_regeneratorRuntime().mark(function e() {
|
|
1438
|
+
return _regeneratorRuntime().wrap(function (e) {
|
|
1439
|
+
for (;;) switch (e.prev = e.next) {
|
|
1440
|
+
case 0:
|
|
1441
|
+
throw new Error("not implemented");
|
|
1442
|
+
case 1:
|
|
1443
|
+
case "end":
|
|
1444
|
+
return e.stop();
|
|
1445
|
+
}
|
|
1446
|
+
}, e);
|
|
1447
|
+
})), function () {
|
|
1448
|
+
return _reloadInner.apply(this, arguments);
|
|
1449
|
+
})
|
|
1450
|
+
}, {
|
|
1451
|
+
key: "getWorkingEventsForEmployee",
|
|
1452
|
+
value: function (e) {
|
|
1453
|
+
throw new Error("not implemented");
|
|
1454
|
+
}
|
|
1455
|
+
}, {
|
|
1456
|
+
key: "hasErrors",
|
|
1457
|
+
value: function () {
|
|
1458
|
+
var e = this.form.model.get(this.form.settings.formRoot, "errorsCount");
|
|
1459
|
+
return null != e && e > 0;
|
|
1460
|
+
}
|
|
1461
|
+
}, {
|
|
1462
|
+
key: "onErrorsCountChanged",
|
|
1463
|
+
value: function (e) {
|
|
1464
|
+
this.form.eventManager.on(modelChangeEventPath(this.form.settings.formRoot, "errorsCount"), e);
|
|
1465
|
+
}
|
|
1466
|
+
}, {
|
|
1467
|
+
key: "offErrorsCountChanged",
|
|
1468
|
+
value: function (e) {
|
|
1469
|
+
this.form.eventManager.off(modelChangeEventPath(this.form.settings.formRoot, "errorsCount"), e);
|
|
1470
|
+
}
|
|
1471
|
+
}, {
|
|
1472
|
+
key: "set",
|
|
1473
|
+
value: function (e, t) {
|
|
1474
|
+
if (null === e || "string" == typeof e || "object" !== _typeof(e) || Array.isArray(e)) {
|
|
1475
|
+
if ("string" != typeof e) throw new Error("form.set() parameter should be string path or object with path-value pairs");
|
|
1476
|
+
this.form.model.set(e, "value", t);
|
|
1477
|
+
} else {
|
|
1478
|
+
var r = Object.keys(e).reduce(function (t, r) {
|
|
1479
|
+
return _objectSpread(_defineProperty({}, r, {
|
|
1480
|
+
value: e[r]
|
|
1481
|
+
}), t);
|
|
1482
|
+
}, {});
|
|
1483
|
+
this.form.model.fill(r);
|
|
1484
|
+
}
|
|
1485
|
+
}
|
|
1486
|
+
}, {
|
|
1487
|
+
key: "get",
|
|
1488
|
+
value: function (e) {
|
|
1489
|
+
var t = this;
|
|
1490
|
+
if (Array.isArray(e)) return reduceChunkValues(e.map(function (e) {
|
|
1491
|
+
return mapChunkValues(t.form.model.getChunk(e));
|
|
1492
|
+
}).reduce(function (e, t) {
|
|
1493
|
+
return e.concat(t);
|
|
1494
|
+
}, []));
|
|
1495
|
+
if ("string" == typeof e) return reduceChunkValues(mapChunkValues(this.form.model.getChunk(e)));
|
|
1496
|
+
if (void 0 === e) return reduceChunkValues(mapChunkValues(this.form.model.getChunk(this.form.settings.formRoot)));
|
|
1497
|
+
throw new Error("form.get() parameter should be string path or array of paths");
|
|
1498
|
+
}
|
|
1499
|
+
}, {
|
|
1500
|
+
key: "getValue",
|
|
1501
|
+
value: function (e) {
|
|
1502
|
+
return this.form.model.get(e, "value");
|
|
1503
|
+
}
|
|
1504
|
+
}, {
|
|
1505
|
+
key: "copySubtree",
|
|
1506
|
+
value: function (e, t, r) {
|
|
1507
|
+
throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
|
|
1508
|
+
}
|
|
1509
|
+
}, {
|
|
1510
|
+
key: "addInstance",
|
|
1511
|
+
value: function (e) {
|
|
1512
|
+
throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
|
|
1513
|
+
}
|
|
1514
|
+
}, {
|
|
1515
|
+
key: "getChildren",
|
|
1516
|
+
value: function (e) {
|
|
1517
|
+
throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
|
|
1518
|
+
}
|
|
1519
|
+
}, {
|
|
1520
|
+
key: "uuidGenerate",
|
|
1521
|
+
value: function () {
|
|
1522
|
+
throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
|
|
1523
|
+
}
|
|
1524
|
+
}, {
|
|
1525
|
+
key: "showModal",
|
|
1526
|
+
value: function (e) {
|
|
1527
|
+
throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
|
|
1528
|
+
}
|
|
1529
|
+
}, {
|
|
1530
|
+
key: "addSection",
|
|
1531
|
+
value: function (e) {
|
|
1532
|
+
throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
|
|
1533
|
+
}
|
|
1534
|
+
}, {
|
|
1535
|
+
key: "callInitSection",
|
|
1536
|
+
value: function (e) {
|
|
1537
|
+
throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
|
|
1538
|
+
}
|
|
1539
|
+
}, {
|
|
1540
|
+
key: "preferredInterdocumentTransfer",
|
|
1541
|
+
value: function (e) {
|
|
1542
|
+
throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
|
|
1543
|
+
}
|
|
1544
|
+
}, {
|
|
1545
|
+
key: "createFiasApiClient",
|
|
1546
|
+
value: function (e) {
|
|
1547
|
+
throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
|
|
1548
|
+
}
|
|
1549
|
+
}, {
|
|
1550
|
+
key: "openEmployeeEditor",
|
|
1551
|
+
value: function (e) {
|
|
1552
|
+
throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
|
|
1553
|
+
}
|
|
1554
|
+
}, {
|
|
1555
|
+
key: "removeInstance",
|
|
1556
|
+
value: function (e, t) {
|
|
1557
|
+
throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
|
|
1558
|
+
}
|
|
1559
|
+
}, {
|
|
1560
|
+
key: "removeInstances",
|
|
1561
|
+
value: function (e, t) {
|
|
1562
|
+
throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
|
|
1563
|
+
}
|
|
1564
|
+
}, {
|
|
1565
|
+
key: "focusOnControlIfExist",
|
|
1566
|
+
value: function (e) {
|
|
1567
|
+
throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
|
|
1568
|
+
}
|
|
1569
|
+
}, {
|
|
1570
|
+
key: "setAutoFieldsToAutoValue",
|
|
1571
|
+
value: function (e) {
|
|
1572
|
+
return Promise.resolve(void 0);
|
|
1573
|
+
}
|
|
1574
|
+
}, {
|
|
1575
|
+
key: "ensureInstanceFullyLoaded",
|
|
1576
|
+
value: function (e) {
|
|
1577
|
+
throw new Error("Method not implemented.");
|
|
1578
|
+
}
|
|
1579
|
+
}, {
|
|
1580
|
+
key: "customNormalize",
|
|
1581
|
+
value: function (e, t) {
|
|
1582
|
+
throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
|
|
1583
|
+
}
|
|
1584
|
+
}, {
|
|
1585
|
+
key: "removeInstancesByRules",
|
|
1586
|
+
value: function (e) {
|
|
1587
|
+
throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
|
|
1588
|
+
}
|
|
1589
|
+
}, {
|
|
1590
|
+
key: "createDnp",
|
|
1591
|
+
value: function () {
|
|
1592
|
+
throw new _Common_Errors__WEBPACK_IMPORTED_MODULE_0__.EH();
|
|
1593
|
+
}
|
|
1594
|
+
}, {
|
|
1595
|
+
key: "getSelectedInstances",
|
|
1596
|
+
value: function (e, t, r) {
|
|
1597
|
+
return Promise.resolve([]);
|
|
1598
|
+
}
|
|
1599
|
+
}, {
|
|
1600
|
+
key: "__reactstandin__regenerateByEval",
|
|
1601
|
+
value: function __reactstandin__regenerateByEval(key, code) {
|
|
1602
|
+
this[key] = eval(code);
|
|
1603
|
+
}
|
|
1604
|
+
}]);
|
|
1605
|
+
var _reloadInner, _INTERNAL__getSelectFunctionForDisableEmployeeInSS, _validateChildrenByPath;
|
|
1606
|
+
}(),
|
|
1607
|
+
reactHotLoader,
|
|
1608
|
+
leaveModule;
|
|
1609
|
+
function createLegacyPublicForm(e) {
|
|
1610
|
+
return new LegacyPublicForm(e);
|
|
1611
|
+
}
|
|
1612
|
+
reactHotLoader = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.default : void 0, reactHotLoader && (reactHotLoader.register(modelChangeEventPath, "modelChangeEventPath", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\LegacyPublicForm\\CreateLegacyPublicForm.ts"), reactHotLoader.register(mapChunkValues, "mapChunkValues", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\LegacyPublicForm\\CreateLegacyPublicForm.ts"), reactHotLoader.register(reduceChunkValues, "reduceChunkValues", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\LegacyPublicForm\\CreateLegacyPublicForm.ts"), reactHotLoader.register(LegacyPublicForm, "LegacyPublicForm", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\LegacyPublicForm\\CreateLegacyPublicForm.ts"), reactHotLoader.register(createLegacyPublicForm, "createLegacyPublicForm", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Forms\\Client\\LegacyPublicForm\\CreateLegacyPublicForm.ts")), leaveModule = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.leaveModule : void 0, leaveModule && leaveModule(module);
|
|
1613
|
+
},
|
|
1614
|
+
500: function (e, t, r) {
|
|
1615
|
+
var o;
|
|
1616
|
+
function n(e) {
|
|
1617
|
+
return n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) {
|
|
1618
|
+
return typeof e;
|
|
1619
|
+
} : function (e) {
|
|
1620
|
+
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
|
|
1621
|
+
}, n(e);
|
|
1622
|
+
}
|
|
1623
|
+
function i(e, t) {
|
|
1624
|
+
for (var r = 0; r < t.length; r++) {
|
|
1625
|
+
var o = t[r];
|
|
1626
|
+
o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, a(o.key), o);
|
|
1627
|
+
}
|
|
1628
|
+
}
|
|
1629
|
+
function a(e) {
|
|
1630
|
+
var t = function (e, t) {
|
|
1631
|
+
if ("object" != n(e) || !e) return e;
|
|
1632
|
+
var r = e[Symbol.toPrimitive];
|
|
1633
|
+
if (void 0 !== r) {
|
|
1634
|
+
var o = r.call(e, "string");
|
|
1635
|
+
if ("object" != n(o)) return o;
|
|
1636
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
1637
|
+
}
|
|
1638
|
+
return String(e);
|
|
1639
|
+
}(e);
|
|
1640
|
+
return "symbol" == n(t) ? t : t + "";
|
|
1641
|
+
}
|
|
1642
|
+
r.d(t, {
|
|
1643
|
+
q: function () {
|
|
1644
|
+
return l;
|
|
1645
|
+
}
|
|
1646
|
+
}), e = r.hmd(e), (o = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.enterModule : void 0) && o(e), "undefined" != typeof reactHotLoaderGlobal && reactHotLoaderGlobal.default.signature;
|
|
1647
|
+
var u,
|
|
1648
|
+
c,
|
|
1649
|
+
l = function () {
|
|
1650
|
+
return e = function e() {
|
|
1651
|
+
!function (e, t) {
|
|
1652
|
+
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
|
|
1653
|
+
}(this, e);
|
|
1654
|
+
}, t = [{
|
|
1655
|
+
key: "script",
|
|
1656
|
+
value: function (e, t) {
|
|
1657
|
+
var r = !1,
|
|
1658
|
+
o = document.getElementsByTagName("head")[0] || document.documentElement,
|
|
1659
|
+
n = document.createElement("script");
|
|
1660
|
+
function i() {
|
|
1661
|
+
r || n.readyState && "loaded" !== n.readyState && "complete" !== n.readyState || (r = !0, t());
|
|
1662
|
+
}
|
|
1663
|
+
n.onload = i, n.onreadystatechange = i, n.onerror = function () {
|
|
1664
|
+
n.parentNode && n.parentNode.removeChild(n), t(new Error("Error while loading script."));
|
|
1665
|
+
}, n.src = e, n.setAttribute("crossorigin", "use-credentials"), o.appendChild(n);
|
|
1666
|
+
}
|
|
1667
|
+
}, {
|
|
1668
|
+
key: "styleSheet",
|
|
1669
|
+
value: function (e, t, r) {
|
|
1670
|
+
var o,
|
|
1671
|
+
n = null !== (o = document.getElementsByTagName("head")[0]) && void 0 !== o ? o : document.documentElement,
|
|
1672
|
+
i = document.createElement("link");
|
|
1673
|
+
i.setAttribute("rel", "stylesheet"), i.setAttribute("type", "text/css"), i.addEventListener("load", function () {
|
|
1674
|
+
return r(void 0);
|
|
1675
|
+
}), i.addEventListener("error", function () {
|
|
1676
|
+
r(t ? void 0 : new Error("Error while loading stylesheet."));
|
|
1677
|
+
}), n.appendChild(i), i.setAttribute("href", e);
|
|
1678
|
+
}
|
|
1679
|
+
}], null && i(e.prototype, null), t && i(e, t), Object.defineProperty(e, "prototype", {
|
|
1680
|
+
writable: !1
|
|
1681
|
+
}), e;
|
|
1682
|
+
var e, t;
|
|
1683
|
+
}();
|
|
1684
|
+
(u = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.default : void 0) && u.register(l, "LoadIntoDocument", "C:\\BuildAgent\\work\\forms-root-candy\\candy\\Engine\\src\\Helpers\\LoadIntoDocument.ts"), (c = "undefined" != typeof reactHotLoaderGlobal ? reactHotLoaderGlobal.leaveModule : void 0) && c(e);
|
|
1685
|
+
}
|
|
1686
|
+
},
|
|
1687
|
+
__webpack_module_cache__ = {};
|
|
1688
|
+
function __webpack_require__(e) {
|
|
1689
|
+
var t = __webpack_module_cache__[e];
|
|
1690
|
+
if (void 0 !== t) return t.exports;
|
|
1691
|
+
var r = __webpack_module_cache__[e] = {
|
|
1692
|
+
id: e,
|
|
1693
|
+
loaded: !1,
|
|
1694
|
+
exports: {}
|
|
1695
|
+
};
|
|
1696
|
+
return __webpack_modules__[e](r, r.exports, __webpack_require__), r.loaded = !0, r.exports;
|
|
1697
|
+
}
|
|
1698
|
+
__webpack_require__.d = function (e, t) {
|
|
1699
|
+
for (var r in t) __webpack_require__.o(t, r) && !__webpack_require__.o(e, r) && Object.defineProperty(e, r, {
|
|
1700
|
+
enumerable: !0,
|
|
1701
|
+
get: t[r]
|
|
1702
|
+
});
|
|
1703
|
+
}, __webpack_require__.g = function () {
|
|
1704
|
+
if ("object" == typeof globalThis) return globalThis;
|
|
1705
|
+
try {
|
|
1706
|
+
return this || new Function("return this")();
|
|
1707
|
+
} catch (e) {
|
|
1708
|
+
if ("object" == typeof window) return window;
|
|
1709
|
+
}
|
|
1710
|
+
}(), __webpack_require__.hmd = function (e) {
|
|
1711
|
+
return (e = Object.create(e)).children || (e.children = []), Object.defineProperty(e, "exports", {
|
|
1712
|
+
enumerable: !0,
|
|
1713
|
+
set: function () {
|
|
1714
|
+
throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: " + e.id);
|
|
1715
|
+
}
|
|
1716
|
+
}), e;
|
|
1717
|
+
}, __webpack_require__.o = function (e, t) {
|
|
1718
|
+
return Object.prototype.hasOwnProperty.call(e, t);
|
|
1719
|
+
};
|
|
1720
|
+
var __webpack_exports__ = __webpack_require__(591);
|
|
1721
|
+
})();
|
|
1722
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJuIiwiaSIsImEiLCJlIiwiY29uY2F0IiwibnMiLCJkcmFmdElkIiwiciIsImQiLCJ0IiwiSSIsImhtZCIsIm8iLCJyZWFjdEhvdExvYWRlckdsb2JhbCIsImVudGVyTW9kdWxlIiwiZGVmYXVsdCIsInNpZ25hdHVyZSIsInJlZ2lzdGVyIiwibGVhdmVNb2R1bGUiLCJtb2R1bGUiLCJfX3dlYnBhY2tfZXhwb3J0c19fIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIl90eXBlb2YiLCJTeW1ib2wiLCJpdGVyYXRvciIsImNvbnN0cnVjdG9yIiwicHJvdG90eXBlIiwiX2NsYXNzQ2FsbENoZWNrIiwiVHlwZUVycm9yIiwiX2RlZmluZVByb3BlcnRpZXMiLCJsZW5ndGgiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5Iiwia2V5IiwiX2NyZWF0ZUNsYXNzIiwiX3RvUHJpbWl0aXZlIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiU3RyaW5nIiwiTnVtYmVyIiwiX2NhbGxTdXBlciIsIl9nZXRQcm90b3R5cGVPZiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJhcHBseSIsIl9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQiLCJSZWZlcmVuY2VFcnJvciIsIl9pbmhlcml0cyIsImNyZWF0ZSIsInZhbHVlIiwiX3NldFByb3RvdHlwZU9mIiwiX3dyYXBOYXRpdmVTdXBlciIsIk1hcCIsIl9pc05hdGl2ZUZ1bmN0aW9uIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX2NvbnN0cnVjdCIsImFyZ3VtZW50cyIsInB1c2giLCJiaW5kIiwiQm9vbGVhbiIsInZhbHVlT2YiLCJGdW5jdGlvbiIsInRvU3RyaW5nIiwiaW5kZXhPZiIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiZ2V0UHJvdG90eXBlT2YiLCJFSCIsIk5vdEltcGxlbWVudGVkRXJyb3IiLCJfX3NpZ25hdHVyZV9fIiwiQXBwbGljYXRpb25FcnJvciIsIl9FcnJvciIsIm5hbWUiLCJfX3JlYWN0c3RhbmRpbl9fcmVnZW5lcmF0ZUJ5RXZhbCIsImNvZGUiLCJldmFsIiwiRXJyb3IiLCJfQXBwbGljYXRpb25FcnJvciIsIk5vdFN1cHBvcnRlZEVycm9yIiwiX0FwcGxpY2F0aW9uRXJyb3IyIiwiSW52YWxpZFByb2dyYW1TdGF0ZUVycm9yIiwiX0FwcGxpY2F0aW9uRXJyb3IzIiwiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCJfQXBwbGljYXRpb25FcnJvcjQiLCJUeXBpbmdFcnJvciIsIl9BcHBsaWNhdGlvbkVycm9yNSIsInJlYWN0SG90TG9hZGVyIiwidSIsImMiLCJsIiwicyIsImYiLCJrdSIsIm1lc3NhZ2UiLCJBcnJheSIsImlzQXJyYXkiLCJ0cmltIiwic2xpY2UiLCJnbG9iYWxUaGlzIiwic2VsZiIsImciLCJzZWFyY2hQYXJhbXMiLCJpdGVyYWJsZSIsImJsb2IiLCJCbG9iIiwiZm9ybURhdGEiLCJhcnJheUJ1ZmZlciIsIkFycmF5QnVmZmVyIiwiaXNWaWV3IiwidGVzdCIsInRvTG93ZXJDYXNlIiwibmV4dCIsInNoaWZ0IiwiZG9uZSIsIm1hcCIsImZvckVhY2giLCJhcHBlbmQiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwiX25vQm9keSIsImJvZHlVc2VkIiwiUHJvbWlzZSIsInJlamVjdCIsIm9ubG9hZCIsInJlc3VsdCIsIm9uZXJyb3IiLCJlcnJvciIsInkiLCJGaWxlUmVhZGVyIiwicmVhZEFzQXJyYXlCdWZmZXIiLCJwIiwiVWludDhBcnJheSIsImJ5dGVMZW5ndGgiLCJidWZmZXIiLCJoIiwiX2luaXRCb2R5IiwiX2JvZHlJbml0IiwiX2JvZHlUZXh0IiwiaXNQcm90b3R5cGVPZiIsIl9ib2R5QmxvYiIsIkZvcm1EYXRhIiwiX2JvZHlGb3JtRGF0YSIsIlVSTFNlYXJjaFBhcmFtcyIsIkRhdGFWaWV3IiwiX2JvZHlBcnJheUJ1ZmZlciIsImhlYWRlcnMiLCJ0eXBlIiwicmVzb2x2ZSIsImJ5dGVPZmZzZXQiLCJ0aGVuIiwidGV4dCIsImV4ZWMiLCJyZWFkQXNUZXh0IiwiZnJvbUNoYXJDb2RlIiwiam9pbiIsImpzb24iLCJKU09OIiwicGFyc2UiLCJkZWxldGUiLCJoYXNPd25Qcm9wZXJ0eSIsImtleXMiLCJ2YWx1ZXMiLCJlbnRyaWVzIiwibSIsIl8iLCJib2R5IiwidXJsIiwiY3JlZGVudGlhbHMiLCJtZXRob2QiLCJtb2RlIiwic2lnbmFsIiwidG9VcHBlckNhc2UiLCJBYm9ydENvbnRyb2xsZXIiLCJyZWZlcnJlciIsImNhY2hlIiwicmVwbGFjZSIsIkRhdGUiLCJnZXRUaW1lIiwic3BsaXQiLCJkZWNvZGVVUklDb21wb25lbnQiLCJ2Iiwic3RhdHVzIiwiUmFuZ2VFcnJvciIsIm9rIiwic3RhdHVzVGV4dCIsImNsb25lIiwiYiIsInJlZGlyZWN0IiwibG9jYXRpb24iLCJFIiwiRE9NRXhjZXB0aW9uIiwic3RhY2siLCJ3IiwiYWJvcnRlZCIsIlhNTEh0dHBSZXF1ZXN0IiwiYWJvcnQiLCJnZXRBbGxSZXNwb25zZUhlYWRlcnMiLCJzdWJzdHIiLCJjb25zb2xlIiwid2FybiIsInJlc3BvbnNlVVJMIiwicmVzcG9uc2UiLCJyZXNwb25zZVRleHQiLCJzZXRUaW1lb3V0Iiwib250aW1lb3V0Iiwib25hYm9ydCIsIm9wZW4iLCJocmVmIiwid2l0aENyZWRlbnRpYWxzIiwicmVzcG9uc2VUeXBlIiwiSGVhZGVycyIsInNldFJlcXVlc3RIZWFkZXIiLCJhZGRFdmVudExpc3RlbmVyIiwib25yZWFkeXN0YXRlY2hhbmdlIiwicmVhZHlTdGF0ZSIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJzZW5kIiwicG9seWZpbGwiLCJmZXRjaCIsIlJlcXVlc3QiLCJSZXNwb25zZSIsIkMiLCJrIiwiQSIsIlAiLCJPIiwiTCIsIlMiLCJCIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiVCIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiaiIsIkgiLCJNIiwiRiIsIkNGIiwia2Vmb3Jtc1VybCIsIlUiLCJlbmNvZGVVUklDb21wb25lbnQiLCJEIiwiUmVnRXhwIiwiaG9zdCIsIkciLCJzZWFyY2giLCJmaW5kIiwicmV0dXJuIiwiZnJvbSIsIngiLCJSIiwiZ2Z2IiwiZW5naW5lVmVyc2lvbiIsImVudHJ5UG9pbnQiLCJyZXNvdXJjZVpvbmUiLCJxIiwic3R5bGVTaGVldCIsInNjcmlwdCIsIk4iLCJwdWJsaWNGb3JtIiwiY2F0Y2giLCJLIiwia29udHVyRG9tYWlucyIsImF1dGhvcml6ZWQiLCJhdXRoZW50aWNhdGlvbiIsImF1dGhTaWQiLCJBdXRob3JpemF0aW9uIiwiY2F1bGRyb25BcGlVcmwiLCJpc1Rlc3RTZXJ2ZXIiLCJyZW5kZXJDYWNoaW5nRm9ySUU4Iiwibm9ybWFsaXphdGlvbk9uU2VydmVyIiwibm9ybWF0aXZlVXJsIiwic2hvd05hdmlnYXRpb25TaWRlYmFyIiwib25SZW1vdmVBdHRhY2htZW50IiwiZmVlZGJhY2tFbmFibGVkIiwiaXNEaXNhYmxlZENsZWFuRm9ybSIsImlzRGlzYWJsZWRDbG9zZUJ1dHRvbiIsImlzRGlzYWJsZWRDbG9zZUFuZFNhdmVCdXR0b24iLCJ0aGVtZSIsInRlbXBsYXRlc0FwaSIsInJlbmRlckZvcm0iLCJWIiwiVyIsInoiLCJzdGFydCIsInBhcnRpYWxSZW5kZXJpbmdGb3JJRTgiLCJwYXJzZUludCIsImNyZWF0ZUxlZ2FjeVB1YmxpY0Zvcm0iLCJfQ29tbW9uX0Vycm9yc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsImFzeW5jSXRlcmF0b3IiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImFyZyIsIndyYXAiLCJfaW52b2tlIiwiX19hd2FpdCIsImRlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJyZXN1bHROYW1lIiwibmV4dExvYyIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwibWFyayIsImF3cmFwIiwiQXN5bmNJdGVyYXRvciIsImFzeW5jIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzdG9wIiwicnZhbCIsImNvbXBsZXRlIiwiZmluaXNoIiwiZGVsZWdhdGVZaWVsZCIsImFzeW5jR2VuZXJhdG9yU3RlcCIsIl9hc3luY1RvR2VuZXJhdG9yIiwib3duS2V5cyIsIl9vYmplY3RTcHJlYWQiLCJfZGVmaW5lUHJvcGVydHkiLCJtb2RlbENoYW5nZUV2ZW50UGF0aCIsIm1hcENodW5rVmFsdWVzIiwicmVkdWNlQ2h1bmtWYWx1ZXMiLCJyZWR1Y2UiLCJMZWdhY3lQdWJsaWNGb3JtIiwiZm9ybSIsIl92YWxpZGF0ZUNoaWxkcmVuQnlQYXRoIiwiX0lOVEVSTkFMX19nZXRTZWxlY3RGdW5jdGlvbkZvckRpc2FibGVFbXBsb3llZUluU1MiLCJwaWNrbGlzdHNQcm92aWRlciIsImdldERpZ2VzdEFwaVBpY2tsaXN0IiwicXVlcnkiLCJldmVudE1hbmFnZXIiLCJvbiIsIm9mZiIsImNoYW5nZVNldCIsInN0b3BBdXRvc2VuZCIsInVubW91bnQiLCJtb2RlbCIsImdldENodW5rIiwic2V0dGluZ3MiLCJmb3JtUm9vdCIsInZhbGlkYXRvciIsInZhbGlkYXRlQWxsIiwiX3JlbG9hZElubmVyIiwiZmlsbCIsImRvY3VtZW50IiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJkb2N1bWVudEVsZW1lbnQiLCJjcmVhdGVFbGVtZW50IiwicGFyZW50Tm9kZSIsInJlbW92ZUNoaWxkIiwic3JjIiwic2V0QXR0cmlidXRlIiwiYXBwZW5kQ2hpbGQiLCJfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18iLCJleHBvcnRzIiwiaWQiLCJsb2FkZWQiLCJfX3dlYnBhY2tfbW9kdWxlc19fIiwid2luZG93IiwiY2hpbGRyZW4iXSwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGtvbnR1ci5jYW5keS93b3Jrc3BhY2UvQ29tbW9uL0NhbmR5QXBpQ2xpZW50L0NsaWVudERyYWZ0SW5mby9HZXRDbGllbnREcmFmdEluZm9VcmwudHMiLCJ3ZWJwYWNrOi8vQGtvbnR1ci5jYW5keS93b3Jrc3BhY2UvQ29tbW9uL0Vycm9ycy50cyIsIndlYnBhY2s6Ly9Aa29udHVyLmNhbmR5L3dvcmtzcGFjZS9Db21tb24vVHlwaW5nVXRpbHMudHMiLCJ3ZWJwYWNrOi8vQGtvbnR1ci5jYW5keS93b3Jrc3BhY2Uvbm9kZV9tb2R1bGVzL3doYXR3Zy1mZXRjaC9mZXRjaC5qcyIsIndlYnBhY2s6Ly9Aa29udHVyLmNhbmR5L3dvcmtzcGFjZS9FbmdpbmUvc3JjL0Zvcm1zL0NsaWVudC9DbGllbnQudHMiLCJ3ZWJwYWNrOi8vQGtvbnR1ci5jYW5keS93b3Jrc3BhY2UvRW5naW5lL3NyYy9Gb3Jtcy9DbGllbnQvQ2xpZW50U2V0dGluZ3MudHMiLCJ3ZWJwYWNrOi8vQGtvbnR1ci5jYW5keS93b3Jrc3BhY2UvRW5naW5lL3NyYy9Gb3Jtcy9DbGllbnQvTGVnYWN5UHVibGljRm9ybS9DcmVhdGVMZWdhY3lQdWJsaWNGb3JtLnRzIiwid2VicGFjazovL0Brb250dXIuY2FuZHkvd29ya3NwYWNlL0VuZ2luZS9zcmMvSGVscGVycy9Mb2FkSW50b0RvY3VtZW50LnRzIiwid2VicGFjazovL0Brb250dXIuY2FuZHkvd29ya3NwYWNlL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL0Brb250dXIuY2FuZHkvd29ya3NwYWNlL3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly9Aa29udHVyLmNhbmR5L3dvcmtzcGFjZS93ZWJwYWNrL3J1bnRpbWUvZ2xvYmFsIiwid2VicGFjazovL0Brb250dXIuY2FuZHkvd29ya3NwYWNlL3dlYnBhY2svcnVudGltZS9oYXJtb255IG1vZHVsZSBkZWNvcmF0b3IiLCJ3ZWJwYWNrOi8vQGtvbnR1ci5jYW5keS93b3Jrc3BhY2Uvd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9Aa29udHVyLmNhbmR5L3dvcmtzcGFjZS93ZWJwYWNrL3N0YXJ0dXAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHJhZnRGdWxsSWQgfSBmcm9tIFwiLi4vVHlwZXMvRHJhZnRGdWxsSWRcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldENsaWVudERyYWZ0SW5mb1VybChkcmFmdElkOiBEcmFmdEZ1bGxJZCkge1xuICAgIC8vIE5PVEUg0K3RgtCwINGE0YPQvdC60YbQuNGPINC+0LHRitGP0LLQu9C10L3QsCDQvtGC0LTQtdC70YzQvdC+LCDQuNCx0L4g0L7QvdCwINCy0YXQvtC00LjRgiDQsiDRgdC+0YHRgtCw0LIgY2xpZW50LmpzINC4XG4gICAgLy8g0L3QtSDQtNC+0LvQttC90L4g0L/RgNC+0LjRgdGF0L7QtNC40YLRjCDRg9GC0LXQttC10LvQtdC90LjRjyBjbGllbnQuanMt0LBcbiAgICByZXR1cm4gYHYxL25zLyR7ZHJhZnRJZC5uc30vZHJhZnRzLyR7ZHJhZnRJZC5kcmFmdElkfS9jbGllbnQtZHJhZnQtaW5mb2A7XG59XG4iLCJleHBvcnQgY2xhc3MgQXBwbGljYXRpb25FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLm5hbWUgPSB0aGlzLmNvbnN0cnVjdG9yLm5hbWU7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTm90SW1wbGVtZW50ZWRFcnJvciBleHRlbmRzIEFwcGxpY2F0aW9uRXJyb3Ige1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoXCJPcGVyYXRpb24gbm90IGltcGxlbWVudGVkXCIpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIE5vdFN1cHBvcnRlZEVycm9yIGV4dGVuZHMgQXBwbGljYXRpb25FcnJvciB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKG1lc3NhZ2U/OiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSA/PyBcIk9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkXCIpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEludmFsaWRQcm9ncmFtU3RhdGVFcnJvciBleHRlbmRzIEFwcGxpY2F0aW9uRXJyb3Ige1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihtZXNzYWdlPzogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKFwiSW52YWxpZCBwcm9ncmFtIHN0YXRlXCIgKyAobWVzc2FnZSAhPSB1bmRlZmluZWQgPyBcIjogXCIgKyBtZXNzYWdlIDogXCJcIikpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEludmFsaWRBcmd1bWVudEVycm9yIGV4dGVuZHMgQXBwbGljYXRpb25FcnJvciB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGFyZ3VtZW50TmFtZTogc3RyaW5nLCBtZXNzYWdlPzogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKFxuICAgICAgICAgICAgbWVzc2FnZSAhPSB1bmRlZmluZWQgPyBgJHttZXNzYWdlfSAoYXJndW1lbnQ6ICR7YXJndW1lbnROYW1lfSlgIDogYEludmFsaWQgYXJndW1lbnQgdmFsdWU6ICR7YXJndW1lbnROYW1lfWBcbiAgICAgICAgKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUeXBpbmdFcnJvciBleHRlbmRzIEFwcGxpY2F0aW9uRXJyb3Ige1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoXCJJbnZhbGlkIHR5cGluZ1wiKTtcbiAgICB9XG59XG4iLCIvKioqXG4gKiDQodGC0YDQvtCz0L7RgtC40L/QuNC30LjRgNC+0LLQsNC90L3QsNGPINC30LDQvNC10L3QsCDQtNC70Y8gQm9vbGVhbiguLi4pXG4gKiDQntCx0YvRh9C90L4g0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC00LvRjyBbLi4uXS5maWx0ZXIoaXNOb3ROdWxsT3JVbmRlZmluZWQpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc05vdE51bGxPclVuZGVmaW5lZDxUPihpbnB1dDogVCk6IGlucHV0IGlzIE5vbk51bGxhYmxlPFQ+IHtcbiAgICByZXR1cm4gaW5wdXQgIT0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5VW5rbm93bkVycm9yKGVycm9yOiB1bmtub3duKTogdW5kZWZpbmVkIHwgc3RyaW5nIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1yZXR1cm5cbiAgICByZXR1cm4gdHlwZW9mIGVycm9yID09PSBcIm9iamVjdFwiICYmIGVycm9yPy5bXCJtZXNzYWdlXCJdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlTm90TnVsbE9yVW5kZWZpbmVkPFQ+KGlucHV0OiBUKTogYXNzZXJ0cyBpbnB1dCBpcyBOb25OdWxsYWJsZTxUPiB7XG4gICAgaWYgKCFpc05vdE51bGxPclVuZGVmaW5lZChpbnB1dCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBWYWx1ZSBtdXN0IGJlIGRlZmluZWRgKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub29wKCk6IHZvaWQge1xuICAgIC8vIG5vb3Bcbn1cblxuZXhwb3J0IHR5cGUgRXJyb3JGaXJzdENhbGxiYWNrPFQ+ID0gKC4uLmFyZ3M6IFtFcnJvciwgbnVsbCB8IHVuZGVmaW5lZF0gfCBbbnVsbCB8IHVuZGVmaW5lZCwgVF0gfCBbRXJyb3JdKSA9PiB2b2lkO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVqZWN0KG1lc3NhZ2U/OiBzdHJpbmcgfCBFcnJvcik6IG5ldmVyIHtcbiAgICBpZiAodHlwZW9mIG1lc3NhZ2UgPT09IFwic3RyaW5nXCIgfHwgbWVzc2FnZSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UgPz8gXCJVbmRlZmluZWQgaXMgbm90IGFsbG93ZWRcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbWVzc2FnZTtcbiAgICB9XG59XG5cbnR5cGUgQXJyYXlPZkxlbmd0aDxUSXRlbSwgVExlbmd0aCBleHRlbmRzIG51bWJlciwgVFJlc3QgZXh0ZW5kcyBUSXRlbVtdID0gW10+ID0gVFJlc3QgZXh0ZW5kcyB7IGxlbmd0aDogVExlbmd0aCB9XG4gICAgPyBUUmVzdFxuICAgIDogQXJyYXlPZkxlbmd0aDxUSXRlbSwgVExlbmd0aCwgW1RJdGVtLCAuLi5UUmVzdF0+O1xuXG5leHBvcnQgdHlwZSBNaW5MZW5ndGhBcnJheTxUSXRlbSwgVExlbmd0aCBleHRlbmRzIG51bWJlciwgVFJlc3QgZXh0ZW5kcyBUSXRlbVtdID0gW10+ID0gVFJlc3QgZXh0ZW5kcyB7XG4gICAgbGVuZ3RoOiBUTGVuZ3RoO1xufVxuICAgID8gWy4uLlRSZXN0LCAuLi5USXRlbVtdXVxuICAgIDogTWluTGVuZ3RoQXJyYXk8VEl0ZW0sIFRMZW5ndGgsIFsuLi5UUmVzdCwgVEl0ZW1dPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzTGVuZ3RoR3JlYXRlclRoZW5PckVxdWFsPFQsIFROdW0gZXh0ZW5kcyBudW1iZXI+KFxuICAgIGl0ZW1zOiByZWFkb25seSBUW10sXG4gICAgbWluTGVuZ3RoOiBUTnVtXG4pOiBpdGVtcyBpcyBNaW5MZW5ndGhBcnJheTxULCBUTnVtPiB7XG4gICAgcmV0dXJuIGl0ZW1zLmxlbmd0aCA+PSBtaW5MZW5ndGg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtaW5MZW5ndGhPclVuZGVmaW5lZDxULCBUTnVtIGV4dGVuZHMgbnVtYmVyPihcbiAgICBpdGVtczogVFtdLFxuICAgIG1pbkxlbmd0aDogVE51bVxuKTogdW5kZWZpbmVkIHwgTWluTGVuZ3RoQXJyYXk8VCwgVE51bT4ge1xuICAgIGlmIChpc0xlbmd0aEdyZWF0ZXJUaGVuT3JFcXVhbChpdGVtcywgbWluTGVuZ3RoKSkge1xuICAgICAgICByZXR1cm4gaXRlbXM7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVJc0FycmF5PFQ+KGl0ZW1zOiB1bmtub3duKTogVFtdIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoaXRlbXMpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTXVzdCBiZSBhbiBhcnJheSFgKTtcbiAgICB9XG4gICAgcmV0dXJuIGl0ZW1zIGFzIFRbXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFycmF5SGFzTGVuZ3RoPFQsIFROdW0gZXh0ZW5kcyBudW1iZXI+KFxuICAgIGl0ZW1zOiByZWFkb25seSBUW10sXG4gICAgbGVuZ3RoOiBUTnVtXG4pOiBpdGVtcyBpcyBBcnJheU9mTGVuZ3RoPFQsIFROdW0+IHtcbiAgICByZXR1cm4gaXRlbXMubGVuZ3RoID09PSBsZW5ndGg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcnJheUlzTm90RW1wdHk8VD4oaXRlbXM6IHJlYWRvbmx5IFRbXSk6IGl0ZW1zIGlzIE1pbkxlbmd0aEFycmF5PFQsIDE+IHtcbiAgICByZXR1cm4gaXRlbXMubGVuZ3RoID4gMDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFycmF5SGFzQXRMZWFzdE9uZUl0ZW08VD4oaXRlbXM6IHJlYWRvbmx5IFRbXSk6IGl0ZW1zIGlzIE1pbkxlbmd0aEFycmF5PFQsIDE+IHtcbiAgICByZXR1cm4gaXRlbXMubGVuZ3RoID4gMDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZUFycmF5SXNOb3RFbXB0eTxUPihpdGVtczogcmVhZG9ubHkgVFtdKTogYXNzZXJ0cyBpdGVtcyBpcyBNaW5MZW5ndGhBcnJheTxULCAxPiB7XG4gICAgaWYgKCFhcnJheUlzTm90RW1wdHkoaXRlbXMpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQXJyYXkgbXVzdCBiZSBub3QgZW1wdHlgKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVBcnJheUhhc0xlbmd0aDxULCBUTnVtIGV4dGVuZHMgbnVtYmVyPihcbiAgICBpdGVtczogcmVhZG9ubHkgVFtdLFxuICAgIGxlbmd0aDogVE51bVxuKTogYXNzZXJ0cyBpdGVtcyBpcyBBcnJheU9mTGVuZ3RoPFQsIFROdW0+IHtcbiAgICBpZiAoIWFycmF5SGFzTGVuZ3RoKGl0ZW1zLCBsZW5ndGgpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQXJyYXkgc2hvdWxkIGhhcyBsZW5ndGggJHtsZW5ndGh9YCk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlQXJyYXlMZW5ndGhHcmVhdGVyVGhlbk9yRXF1YWw8VCwgVE51bSBleHRlbmRzIG51bWJlcj4oXG4gICAgaXRlbXM6IHJlYWRvbmx5IFRbXSxcbiAgICBsZW5ndGg6IFROdW1cbik6IGFzc2VydHMgaXRlbXMgaXMgQXJyYXlPZkxlbmd0aDxULCBUTnVtPiB7XG4gICAgaWYgKCFpc0xlbmd0aEdyZWF0ZXJUaGVuT3JFcXVhbChpdGVtcywgbGVuZ3RoKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFycmF5IG11c3QgaGF2ZSBtaW5pbWFsIGxlbmd0aCAke2xlbmd0aH1gKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVOZXZlcihuZXZlckFyZ3VtZW50OiBuZXZlcik6IHZvaWQge1xuICAgIC8vIG5vb3Bcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZUFuZEdldFN0cmluZyhuZXZlckFyZ3VtZW50OiBuZXZlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke25ldmVyQXJndW1lbnR9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJ1bkFzeW5jQWN0aW9uKGFjdGlvbjogKCkgPT4gUHJvbWlzZTx2b2lkPik6IHZvaWQge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZmxvYXRpbmctcHJvbWlzZXNcbiAgICBhY3Rpb24oKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVsbE9yRW1wdHkoaW5wdXQ6IHN0cmluZyB8IHVuZGVmaW5lZCk6IGlucHV0IGlzIHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGlucHV0ID09IHVuZGVmaW5lZCB8fCBpbnB1dCA9PT0gXCJcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTm90TnVsbE9yRW1wdHkoaW5wdXQ6IHN0cmluZyB8IHVuZGVmaW5lZCk6IGlucHV0IGlzIHN0cmluZyB7XG4gICAgcmV0dXJuICFpc051bGxPckVtcHR5KGlucHV0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVsbE9yV2hpdGVTcGFjZShpbnB1dDogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCk6IGlucHV0IGlzIHVuZGVmaW5lZCB8IG51bGwge1xuICAgIHJldHVybiBpbnB1dCA9PSB1bmRlZmluZWQgfHwgaW5wdXQudHJpbSgpID09PSBcIlwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJpbUxhc3RTbGFzaCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHVybC5zbGljZSgtMSkgPT09IFwiL1wiID8gdXJsLnNsaWNlKDAsIC0xKSA6IHVybDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydElzPFQ+KHZhbHVlOiBUKTogdm9pZCB7XG4gICAgLy8gbm9vcFxufVxuIiwiLyogZXNsaW50LWRpc2FibGUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zICovXG52YXIgZyA9XG4gICh0eXBlb2YgZ2xvYmFsVGhpcyAhPT0gJ3VuZGVmaW5lZCcgJiYgZ2xvYmFsVGhpcykgfHxcbiAgKHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJyAmJiBzZWxmKSB8fFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgKHR5cGVvZiBnbG9iYWwgIT09ICd1bmRlZmluZWQnICYmIGdsb2JhbCkgfHxcbiAge31cblxudmFyIHN1cHBvcnQgPSB7XG4gIHNlYXJjaFBhcmFtczogJ1VSTFNlYXJjaFBhcmFtcycgaW4gZyxcbiAgaXRlcmFibGU6ICdTeW1ib2wnIGluIGcgJiYgJ2l0ZXJhdG9yJyBpbiBTeW1ib2wsXG4gIGJsb2I6XG4gICAgJ0ZpbGVSZWFkZXInIGluIGcgJiZcbiAgICAnQmxvYicgaW4gZyAmJlxuICAgIChmdW5jdGlvbigpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIG5ldyBCbG9iKClcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgfSkoKSxcbiAgZm9ybURhdGE6ICdGb3JtRGF0YScgaW4gZyxcbiAgYXJyYXlCdWZmZXI6ICdBcnJheUJ1ZmZlcicgaW4gZ1xufVxuXG5mdW5jdGlvbiBpc0RhdGFWaWV3KG9iaikge1xuICByZXR1cm4gb2JqICYmIERhdGFWaWV3LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKG9iailcbn1cblxuaWYgKHN1cHBvcnQuYXJyYXlCdWZmZXIpIHtcbiAgdmFyIHZpZXdDbGFzc2VzID0gW1xuICAgICdbb2JqZWN0IEludDhBcnJheV0nLFxuICAgICdbb2JqZWN0IFVpbnQ4QXJyYXldJyxcbiAgICAnW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0nLFxuICAgICdbb2JqZWN0IEludDE2QXJyYXldJyxcbiAgICAnW29iamVjdCBVaW50MTZBcnJheV0nLFxuICAgICdbb2JqZWN0IEludDMyQXJyYXldJyxcbiAgICAnW29iamVjdCBVaW50MzJBcnJheV0nLFxuICAgICdbb2JqZWN0IEZsb2F0MzJBcnJheV0nLFxuICAgICdbb2JqZWN0IEZsb2F0NjRBcnJheV0nXG4gIF1cblxuICB2YXIgaXNBcnJheUJ1ZmZlclZpZXcgPVxuICAgIEFycmF5QnVmZmVyLmlzVmlldyB8fFxuICAgIGZ1bmN0aW9uKG9iaikge1xuICAgICAgcmV0dXJuIG9iaiAmJiB2aWV3Q2xhc3Nlcy5pbmRleE9mKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmopKSA+IC0xXG4gICAgfVxufVxuXG5mdW5jdGlvbiBub3JtYWxpemVOYW1lKG5hbWUpIHtcbiAgaWYgKHR5cGVvZiBuYW1lICE9PSAnc3RyaW5nJykge1xuICAgIG5hbWUgPSBTdHJpbmcobmFtZSlcbiAgfVxuICBpZiAoL1teYS16MC05XFwtIyQlJicqKy5eX2B8fiFdL2kudGVzdChuYW1lKSB8fCBuYW1lID09PSAnJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgY2hhcmFjdGVyIGluIGhlYWRlciBmaWVsZCBuYW1lOiBcIicgKyBuYW1lICsgJ1wiJylcbiAgfVxuICByZXR1cm4gbmFtZS50b0xvd2VyQ2FzZSgpXG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZVZhbHVlKHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgdmFsdWUgPSBTdHJpbmcodmFsdWUpXG4gIH1cbiAgcmV0dXJuIHZhbHVlXG59XG5cbi8vIEJ1aWxkIGEgZGVzdHJ1Y3RpdmUgaXRlcmF0b3IgZm9yIHRoZSB2YWx1ZSBsaXN0XG5mdW5jdGlvbiBpdGVyYXRvckZvcihpdGVtcykge1xuICB2YXIgaXRlcmF0b3IgPSB7XG4gICAgbmV4dDogZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgdmFsdWUgPSBpdGVtcy5zaGlmdCgpXG4gICAgICByZXR1cm4ge2RvbmU6IHZhbHVlID09PSB1bmRlZmluZWQsIHZhbHVlOiB2YWx1ZX1cbiAgICB9XG4gIH1cblxuICBpZiAoc3VwcG9ydC5pdGVyYWJsZSkge1xuICAgIGl0ZXJhdG9yW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBpdGVyYXRvclxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBpdGVyYXRvclxufVxuXG5leHBvcnQgZnVuY3Rpb24gSGVhZGVycyhoZWFkZXJzKSB7XG4gIHRoaXMubWFwID0ge31cblxuICBpZiAoaGVhZGVycyBpbnN0YW5jZW9mIEhlYWRlcnMpIHtcbiAgICBoZWFkZXJzLmZvckVhY2goZnVuY3Rpb24odmFsdWUsIG5hbWUpIHtcbiAgICAgIHRoaXMuYXBwZW5kKG5hbWUsIHZhbHVlKVxuICAgIH0sIHRoaXMpXG4gIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShoZWFkZXJzKSkge1xuICAgIGhlYWRlcnMuZm9yRWFjaChmdW5jdGlvbihoZWFkZXIpIHtcbiAgICAgIGlmIChoZWFkZXIubGVuZ3RoICE9IDIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSGVhZGVycyBjb25zdHJ1Y3RvcjogZXhwZWN0ZWQgbmFtZS92YWx1ZSBwYWlyIHRvIGJlIGxlbmd0aCAyLCBmb3VuZCcgKyBoZWFkZXIubGVuZ3RoKVxuICAgICAgfVxuICAgICAgdGhpcy5hcHBlbmQoaGVhZGVyWzBdLCBoZWFkZXJbMV0pXG4gICAgfSwgdGhpcylcbiAgfSBlbHNlIGlmIChoZWFkZXJzKSB7XG4gICAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoaGVhZGVycykuZm9yRWFjaChmdW5jdGlvbihuYW1lKSB7XG4gICAgICB0aGlzLmFwcGVuZChuYW1lLCBoZWFkZXJzW25hbWVdKVxuICAgIH0sIHRoaXMpXG4gIH1cbn1cblxuSGVhZGVycy5wcm90b3R5cGUuYXBwZW5kID0gZnVuY3Rpb24obmFtZSwgdmFsdWUpIHtcbiAgbmFtZSA9IG5vcm1hbGl6ZU5hbWUobmFtZSlcbiAgdmFsdWUgPSBub3JtYWxpemVWYWx1ZSh2YWx1ZSlcbiAgdmFyIG9sZFZhbHVlID0gdGhpcy5tYXBbbmFtZV1cbiAgdGhpcy5tYXBbbmFtZV0gPSBvbGRWYWx1ZSA/IG9sZFZhbHVlICsgJywgJyArIHZhbHVlIDogdmFsdWVcbn1cblxuSGVhZGVycy5wcm90b3R5cGVbJ2RlbGV0ZSddID0gZnVuY3Rpb24obmFtZSkge1xuICBkZWxldGUgdGhpcy5tYXBbbm9ybWFsaXplTmFtZShuYW1lKV1cbn1cblxuSGVhZGVycy5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24obmFtZSkge1xuICBuYW1lID0gbm9ybWFsaXplTmFtZShuYW1lKVxuICByZXR1cm4gdGhpcy5oYXMobmFtZSkgPyB0aGlzLm1hcFtuYW1lXSA6IG51bGxcbn1cblxuSGVhZGVycy5wcm90b3R5cGUuaGFzID0gZnVuY3Rpb24obmFtZSkge1xuICByZXR1cm4gdGhpcy5tYXAuaGFzT3duUHJvcGVydHkobm9ybWFsaXplTmFtZShuYW1lKSlcbn1cblxuSGVhZGVycy5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24obmFtZSwgdmFsdWUpIHtcbiAgdGhpcy5tYXBbbm9ybWFsaXplTmFtZShuYW1lKV0gPSBub3JtYWxpemVWYWx1ZSh2YWx1ZSlcbn1cblxuSGVhZGVycy5wcm90b3R5cGUuZm9yRWFjaCA9IGZ1bmN0aW9uKGNhbGxiYWNrLCB0aGlzQXJnKSB7XG4gIGZvciAodmFyIG5hbWUgaW4gdGhpcy5tYXApIHtcbiAgICBpZiAodGhpcy5tYXAuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdGhpcy5tYXBbbmFtZV0sIG5hbWUsIHRoaXMpXG4gICAgfVxuICB9XG59XG5cbkhlYWRlcnMucHJvdG90eXBlLmtleXMgPSBmdW5jdGlvbigpIHtcbiAgdmFyIGl0ZW1zID0gW11cbiAgdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlLCBuYW1lKSB7XG4gICAgaXRlbXMucHVzaChuYW1lKVxuICB9KVxuICByZXR1cm4gaXRlcmF0b3JGb3IoaXRlbXMpXG59XG5cbkhlYWRlcnMucHJvdG90eXBlLnZhbHVlcyA9IGZ1bmN0aW9uKCkge1xuICB2YXIgaXRlbXMgPSBbXVxuICB0aGlzLmZvckVhY2goZnVuY3Rpb24odmFsdWUpIHtcbiAgICBpdGVtcy5wdXNoKHZhbHVlKVxuICB9KVxuICByZXR1cm4gaXRlcmF0b3JGb3IoaXRlbXMpXG59XG5cbkhlYWRlcnMucHJvdG90eXBlLmVudHJpZXMgPSBmdW5jdGlvbigpIHtcbiAgdmFyIGl0ZW1zID0gW11cbiAgdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlLCBuYW1lKSB7XG4gICAgaXRlbXMucHVzaChbbmFtZSwgdmFsdWVdKVxuICB9KVxuICByZXR1cm4gaXRlcmF0b3JGb3IoaXRlbXMpXG59XG5cbmlmIChzdXBwb3J0Lml0ZXJhYmxlKSB7XG4gIEhlYWRlcnMucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl0gPSBIZWFkZXJzLnByb3RvdHlwZS5lbnRyaWVzXG59XG5cbmZ1bmN0aW9uIGNvbnN1bWVkKGJvZHkpIHtcbiAgaWYgKGJvZHkuX25vQm9keSkgcmV0dXJuXG4gIGlmIChib2R5LmJvZHlVc2VkKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBUeXBlRXJyb3IoJ0FscmVhZHkgcmVhZCcpKVxuICB9XG4gIGJvZHkuYm9keVVzZWQgPSB0cnVlXG59XG5cbmZ1bmN0aW9uIGZpbGVSZWFkZXJSZWFkeShyZWFkZXIpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJlc29sdmUocmVhZGVyLnJlc3VsdClcbiAgICB9XG4gICAgcmVhZGVyLm9uZXJyb3IgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJlamVjdChyZWFkZXIuZXJyb3IpXG4gICAgfVxuICB9KVxufVxuXG5mdW5jdGlvbiByZWFkQmxvYkFzQXJyYXlCdWZmZXIoYmxvYikge1xuICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKVxuICB2YXIgcHJvbWlzZSA9IGZpbGVSZWFkZXJSZWFkeShyZWFkZXIpXG4gIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihibG9iKVxuICByZXR1cm4gcHJvbWlzZVxufVxuXG5mdW5jdGlvbiByZWFkQmxvYkFzVGV4dChibG9iKSB7XG4gIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpXG4gIHZhciBwcm9taXNlID0gZmlsZVJlYWRlclJlYWR5KHJlYWRlcilcbiAgdmFyIG1hdGNoID0gL2NoYXJzZXQ9KFtBLVphLXowLTlfLV0rKS8uZXhlYyhibG9iLnR5cGUpXG4gIHZhciBlbmNvZGluZyA9IG1hdGNoID8gbWF0Y2hbMV0gOiAndXRmLTgnXG4gIHJlYWRlci5yZWFkQXNUZXh0KGJsb2IsIGVuY29kaW5nKVxuICByZXR1cm4gcHJvbWlzZVxufVxuXG5mdW5jdGlvbiByZWFkQXJyYXlCdWZmZXJBc1RleHQoYnVmKSB7XG4gIHZhciB2aWV3ID0gbmV3IFVpbnQ4QXJyYXkoYnVmKVxuICB2YXIgY2hhcnMgPSBuZXcgQXJyYXkodmlldy5sZW5ndGgpXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB2aWV3Lmxlbmd0aDsgaSsrKSB7XG4gICAgY2hhcnNbaV0gPSBTdHJpbmcuZnJvbUNoYXJDb2RlKHZpZXdbaV0pXG4gIH1cbiAgcmV0dXJuIGNoYXJzLmpvaW4oJycpXG59XG5cbmZ1bmN0aW9uIGJ1ZmZlckNsb25lKGJ1Zikge1xuICBpZiAoYnVmLnNsaWNlKSB7XG4gICAgcmV0dXJuIGJ1Zi5zbGljZSgwKVxuICB9IGVsc2Uge1xuICAgIHZhciB2aWV3ID0gbmV3IFVpbnQ4QXJyYXkoYnVmLmJ5dGVMZW5ndGgpXG4gICAgdmlldy5zZXQobmV3IFVpbnQ4QXJyYXkoYnVmKSlcbiAgICByZXR1cm4gdmlldy5idWZmZXJcbiAgfVxufVxuXG5mdW5jdGlvbiBCb2R5KCkge1xuICB0aGlzLmJvZHlVc2VkID0gZmFsc2VcblxuICB0aGlzLl9pbml0Qm9keSA9IGZ1bmN0aW9uKGJvZHkpIHtcbiAgICAvKlxuICAgICAgZmV0Y2gtbW9jayB3cmFwcyB0aGUgUmVzcG9uc2Ugb2JqZWN0IGluIGFuIEVTNiBQcm94eSB0b1xuICAgICAgcHJvdmlkZSB1c2VmdWwgdGVzdCBoYXJuZXNzIGZlYXR1cmVzIHN1Y2ggYXMgZmx1c2guIEhvd2V2ZXIsIG9uXG4gICAgICBFUzUgYnJvd3NlcnMgd2l0aG91dCBmZXRjaCBvciBQcm94eSBzdXBwb3J0IHBvbGx5ZmlsbHMgbXVzdCBiZSB1c2VkO1xuICAgICAgdGhlIHByb3h5LXBvbGx5ZmlsbCBpcyB1bmFibGUgdG8gcHJveHkgYW4gYXR0cmlidXRlIHVubGVzcyBpdCBleGlzdHNcbiAgICAgIG9uIHRoZSBvYmplY3QgYmVmb3JlIHRoZSBQcm94eSBpcyBjcmVhdGVkLiBUaGlzIGNoYW5nZSBlbnN1cmVzXG4gICAgICBSZXNwb25zZS5ib2R5VXNlZCBleGlzdHMgb24gdGhlIGluc3RhbmNlLCB3aGlsZSBtYWludGFpbmluZyB0aGVcbiAgICAgIHNlbWFudGljIG9mIHNldHRpbmcgUmVxdWVzdC5ib2R5VXNlZCBpbiB0aGUgY29uc3RydWN0b3IgYmVmb3JlXG4gICAgICBfaW5pdEJvZHkgaXMgY2FsbGVkLlxuICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtYXNzaWduXG4gICAgdGhpcy5ib2R5VXNlZCA9IHRoaXMuYm9keVVzZWRcbiAgICB0aGlzLl9ib2R5SW5pdCA9IGJvZHlcbiAgICBpZiAoIWJvZHkpIHtcbiAgICAgIHRoaXMuX25vQm9keSA9IHRydWU7XG4gICAgICB0aGlzLl9ib2R5VGV4dCA9ICcnXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgYm9keSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMuX2JvZHlUZXh0ID0gYm9keVxuICAgIH0gZWxzZSBpZiAoc3VwcG9ydC5ibG9iICYmIEJsb2IucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoYm9keSkpIHtcbiAgICAgIHRoaXMuX2JvZHlCbG9iID0gYm9keVxuICAgIH0gZWxzZSBpZiAoc3VwcG9ydC5mb3JtRGF0YSAmJiBGb3JtRGF0YS5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihib2R5KSkge1xuICAgICAgdGhpcy5fYm9keUZvcm1EYXRhID0gYm9keVxuICAgIH0gZWxzZSBpZiAoc3VwcG9ydC5zZWFyY2hQYXJhbXMgJiYgVVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGJvZHkpKSB7XG4gICAgICB0aGlzLl9ib2R5VGV4dCA9IGJvZHkudG9TdHJpbmcoKVxuICAgIH0gZWxzZSBpZiAoc3VwcG9ydC5hcnJheUJ1ZmZlciAmJiBzdXBwb3J0LmJsb2IgJiYgaXNEYXRhVmlldyhib2R5KSkge1xuICAgICAgdGhpcy5fYm9keUFycmF5QnVmZmVyID0gYnVmZmVyQ2xvbmUoYm9keS5idWZmZXIpXG4gICAgICAvLyBJRSAxMC0xMSBjYW4ndCBoYW5kbGUgYSBEYXRhVmlldyBib2R5LlxuICAgICAgdGhpcy5fYm9keUluaXQgPSBuZXcgQmxvYihbdGhpcy5fYm9keUFycmF5QnVmZmVyXSlcbiAgICB9IGVsc2UgaWYgKHN1cHBvcnQuYXJyYXlCdWZmZXIgJiYgKEFycmF5QnVmZmVyLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGJvZHkpIHx8IGlzQXJyYXlCdWZmZXJWaWV3KGJvZHkpKSkge1xuICAgICAgdGhpcy5fYm9keUFycmF5QnVmZmVyID0gYnVmZmVyQ2xvbmUoYm9keSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fYm9keVRleHQgPSBib2R5ID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGJvZHkpXG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKSkge1xuICAgICAgaWYgKHR5cGVvZiBib2R5ID09PSAnc3RyaW5nJykge1xuICAgICAgICB0aGlzLmhlYWRlcnMuc2V0KCdjb250ZW50LXR5cGUnLCAndGV4dC9wbGFpbjtjaGFyc2V0PVVURi04JylcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5fYm9keUJsb2IgJiYgdGhpcy5fYm9keUJsb2IudHlwZSkge1xuICAgICAgICB0aGlzLmhlYWRlcnMuc2V0KCdjb250ZW50LXR5cGUnLCB0aGlzLl9ib2R5QmxvYi50eXBlKVxuICAgICAgfSBlbHNlIGlmIChzdXBwb3J0LnNlYXJjaFBhcmFtcyAmJiBVUkxTZWFyY2hQYXJhbXMucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoYm9keSkpIHtcbiAgICAgICAgdGhpcy5oZWFkZXJzLnNldCgnY29udGVudC10eXBlJywgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04JylcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoc3VwcG9ydC5ibG9iKSB7XG4gICAgdGhpcy5ibG9iID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgcmVqZWN0ZWQgPSBjb25zdW1lZCh0aGlzKVxuICAgICAgaWYgKHJlamVjdGVkKSB7XG4gICAgICAgIHJldHVybiByZWplY3RlZFxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5fYm9keUJsb2IpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5QmxvYilcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5fYm9keUFycmF5QnVmZmVyKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobmV3IEJsb2IoW3RoaXMuX2JvZHlBcnJheUJ1ZmZlcl0pKVxuICAgICAgfSBlbHNlIGlmICh0aGlzLl9ib2R5Rm9ybURhdGEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdjb3VsZCBub3QgcmVhZCBGb3JtRGF0YSBib2R5IGFzIGJsb2InKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShuZXcgQmxvYihbdGhpcy5fYm9keVRleHRdKSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0aGlzLmFycmF5QnVmZmVyID0gZnVuY3Rpb24oKSB7XG4gICAgaWYgKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcikge1xuICAgICAgdmFyIGlzQ29uc3VtZWQgPSBjb25zdW1lZCh0aGlzKVxuICAgICAgaWYgKGlzQ29uc3VtZWQpIHtcbiAgICAgICAgcmV0dXJuIGlzQ29uc3VtZWRcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXlCdWZmZXIuaXNWaWV3KHRoaXMuX2JvZHlBcnJheUJ1ZmZlcikpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShcbiAgICAgICAgICB0aGlzLl9ib2R5QXJyYXlCdWZmZXIuYnVmZmVyLnNsaWNlKFxuICAgICAgICAgICAgdGhpcy5fYm9keUFycmF5QnVmZmVyLmJ5dGVPZmZzZXQsXG4gICAgICAgICAgICB0aGlzLl9ib2R5QXJyYXlCdWZmZXIuYnl0ZU9mZnNldCArIHRoaXMuX2JvZHlBcnJheUJ1ZmZlci5ieXRlTGVuZ3RoXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcilcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHN1cHBvcnQuYmxvYikge1xuICAgICAgcmV0dXJuIHRoaXMuYmxvYigpLnRoZW4ocmVhZEJsb2JBc0FycmF5QnVmZmVyKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NvdWxkIG5vdCByZWFkIGFzIEFycmF5QnVmZmVyJylcbiAgICB9XG4gIH1cblxuICB0aGlzLnRleHQgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgcmVqZWN0ZWQgPSBjb25zdW1lZCh0aGlzKVxuICAgIGlmIChyZWplY3RlZCkge1xuICAgICAgcmV0dXJuIHJlamVjdGVkXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2JvZHlCbG9iKSB7XG4gICAgICByZXR1cm4gcmVhZEJsb2JBc1RleHQodGhpcy5fYm9keUJsb2IpXG4gICAgfSBlbHNlIGlmICh0aGlzLl9ib2R5QXJyYXlCdWZmZXIpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVhZEFycmF5QnVmZmVyQXNUZXh0KHRoaXMuX2JvZHlBcnJheUJ1ZmZlcikpXG4gICAgfSBlbHNlIGlmICh0aGlzLl9ib2R5Rm9ybURhdGEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY291bGQgbm90IHJlYWQgRm9ybURhdGEgYm9keSBhcyB0ZXh0JylcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5VGV4dClcbiAgICB9XG4gIH1cblxuICBpZiAoc3VwcG9ydC5mb3JtRGF0YSkge1xuICAgIHRoaXMuZm9ybURhdGEgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLnRleHQoKS50aGVuKGRlY29kZSlcbiAgICB9XG4gIH1cblxuICB0aGlzLmpzb24gPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50ZXh0KCkudGhlbihKU09OLnBhcnNlKVxuICB9XG5cbiAgcmV0dXJuIHRoaXNcbn1cblxuLy8gSFRUUCBtZXRob2RzIHdob3NlIGNhcGl0YWxpemF0aW9uIHNob3VsZCBiZSBub3JtYWxpemVkXG52YXIgbWV0aG9kcyA9IFsnQ09OTkVDVCcsICdERUxFVEUnLCAnR0VUJywgJ0hFQUQnLCAnT1BUSU9OUycsICdQQVRDSCcsICdQT1NUJywgJ1BVVCcsICdUUkFDRSddXG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZU1ldGhvZChtZXRob2QpIHtcbiAgdmFyIHVwY2FzZWQgPSBtZXRob2QudG9VcHBlckNhc2UoKVxuICByZXR1cm4gbWV0aG9kcy5pbmRleE9mKHVwY2FzZWQpID4gLTEgPyB1cGNhc2VkIDogbWV0aG9kXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBSZXF1ZXN0KGlucHV0LCBvcHRpb25zKSB7XG4gIGlmICghKHRoaXMgaW5zdGFuY2VvZiBSZXF1ZXN0KSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1BsZWFzZSB1c2UgdGhlIFwibmV3XCIgb3BlcmF0b3IsIHRoaXMgRE9NIG9iamVjdCBjb25zdHJ1Y3RvciBjYW5ub3QgYmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24uJylcbiAgfVxuXG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9XG4gIHZhciBib2R5ID0gb3B0aW9ucy5ib2R5XG5cbiAgaWYgKGlucHV0IGluc3RhbmNlb2YgUmVxdWVzdCkge1xuICAgIGlmIChpbnB1dC5ib2R5VXNlZCkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQWxyZWFkeSByZWFkJylcbiAgICB9XG4gICAgdGhpcy51cmwgPSBpbnB1dC51cmxcbiAgICB0aGlzLmNyZWRlbnRpYWxzID0gaW5wdXQuY3JlZGVudGlhbHNcbiAgICBpZiAoIW9wdGlvbnMuaGVhZGVycykge1xuICAgICAgdGhpcy5oZWFkZXJzID0gbmV3IEhlYWRlcnMoaW5wdXQuaGVhZGVycylcbiAgICB9XG4gICAgdGhpcy5tZXRob2QgPSBpbnB1dC5tZXRob2RcbiAgICB0aGlzLm1vZGUgPSBpbnB1dC5tb2RlXG4gICAgdGhpcy5zaWduYWwgPSBpbnB1dC5zaWduYWxcbiAgICBpZiAoIWJvZHkgJiYgaW5wdXQuX2JvZHlJbml0ICE9IG51bGwpIHtcbiAgICAgIGJvZHkgPSBpbnB1dC5fYm9keUluaXRcbiAgICAgIGlucHV0LmJvZHlVc2VkID0gdHJ1ZVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB0aGlzLnVybCA9IFN0cmluZyhpbnB1dClcbiAgfVxuXG4gIHRoaXMuY3JlZGVudGlhbHMgPSBvcHRpb25zLmNyZWRlbnRpYWxzIHx8IHRoaXMuY3JlZGVudGlhbHMgfHwgJ3NhbWUtb3JpZ2luJ1xuICBpZiAob3B0aW9ucy5oZWFkZXJzIHx8ICF0aGlzLmhlYWRlcnMpIHtcbiAgICB0aGlzLmhlYWRlcnMgPSBuZXcgSGVhZGVycyhvcHRpb25zLmhlYWRlcnMpXG4gIH1cbiAgdGhpcy5tZXRob2QgPSBub3JtYWxpemVNZXRob2Qob3B0aW9ucy5tZXRob2QgfHwgdGhpcy5tZXRob2QgfHwgJ0dFVCcpXG4gIHRoaXMubW9kZSA9IG9wdGlvbnMubW9kZSB8fCB0aGlzLm1vZGUgfHwgbnVsbFxuICB0aGlzLnNpZ25hbCA9IG9wdGlvbnMuc2lnbmFsIHx8IHRoaXMuc2lnbmFsIHx8IChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCdBYm9ydENvbnRyb2xsZXInIGluIGcpIHtcbiAgICAgIHZhciBjdHJsID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgICAgcmV0dXJuIGN0cmwuc2lnbmFsO1xuICAgIH1cbiAgfSgpKTtcbiAgdGhpcy5yZWZlcnJlciA9IG51bGxcblxuICBpZiAoKHRoaXMubWV0aG9kID09PSAnR0VUJyB8fCB0aGlzLm1ldGhvZCA9PT0gJ0hFQUQnKSAmJiBib2R5KSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQm9keSBub3QgYWxsb3dlZCBmb3IgR0VUIG9yIEhFQUQgcmVxdWVzdHMnKVxuICB9XG4gIHRoaXMuX2luaXRCb2R5KGJvZHkpXG5cbiAgaWYgKHRoaXMubWV0aG9kID09PSAnR0VUJyB8fCB0aGlzLm1ldGhvZCA9PT0gJ0hFQUQnKSB7XG4gICAgaWYgKG9wdGlvbnMuY2FjaGUgPT09ICduby1zdG9yZScgfHwgb3B0aW9ucy5jYWNoZSA9PT0gJ25vLWNhY2hlJykge1xuICAgICAgLy8gU2VhcmNoIGZvciBhICdfJyBwYXJhbWV0ZXIgaW4gdGhlIHF1ZXJ5IHN0cmluZ1xuICAgICAgdmFyIHJlUGFyYW1TZWFyY2ggPSAvKFs/Jl0pXz1bXiZdKi9cbiAgICAgIGlmIChyZVBhcmFtU2VhcmNoLnRlc3QodGhpcy51cmwpKSB7XG4gICAgICAgIC8vIElmIGl0IGFscmVhZHkgZXhpc3RzIHRoZW4gc2V0IHRoZSB2YWx1ZSB3aXRoIHRoZSBjdXJyZW50IHRpbWVcbiAgICAgICAgdGhpcy51cmwgPSB0aGlzLnVybC5yZXBsYWNlKHJlUGFyYW1TZWFyY2gsICckMV89JyArIG5ldyBEYXRlKCkuZ2V0VGltZSgpKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gT3RoZXJ3aXNlIGFkZCBhIG5ldyAnXycgcGFyYW1ldGVyIHRvIHRoZSBlbmQgd2l0aCB0aGUgY3VycmVudCB0aW1lXG4gICAgICAgIHZhciByZVF1ZXJ5U3RyaW5nID0gL1xcPy9cbiAgICAgICAgdGhpcy51cmwgKz0gKHJlUXVlcnlTdHJpbmcudGVzdCh0aGlzLnVybCkgPyAnJicgOiAnPycpICsgJ189JyArIG5ldyBEYXRlKCkuZ2V0VGltZSgpXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblJlcXVlc3QucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBuZXcgUmVxdWVzdCh0aGlzLCB7Ym9keTogdGhpcy5fYm9keUluaXR9KVxufVxuXG5mdW5jdGlvbiBkZWNvZGUoYm9keSkge1xuICB2YXIgZm9ybSA9IG5ldyBGb3JtRGF0YSgpXG4gIGJvZHlcbiAgICAudHJpbSgpXG4gICAgLnNwbGl0KCcmJylcbiAgICAuZm9yRWFjaChmdW5jdGlvbihieXRlcykge1xuICAgICAgaWYgKGJ5dGVzKSB7XG4gICAgICAgIHZhciBzcGxpdCA9IGJ5dGVzLnNwbGl0KCc9JylcbiAgICAgICAgdmFyIG5hbWUgPSBzcGxpdC5zaGlmdCgpLnJlcGxhY2UoL1xcKy9nLCAnICcpXG4gICAgICAgIHZhciB2YWx1ZSA9IHNwbGl0LmpvaW4oJz0nKS5yZXBsYWNlKC9cXCsvZywgJyAnKVxuICAgICAgICBmb3JtLmFwcGVuZChkZWNvZGVVUklDb21wb25lbnQobmFtZSksIGRlY29kZVVSSUNvbXBvbmVudCh2YWx1ZSkpXG4gICAgICB9XG4gICAgfSlcbiAgcmV0dXJuIGZvcm1cbn1cblxuZnVuY3Rpb24gcGFyc2VIZWFkZXJzKHJhd0hlYWRlcnMpIHtcbiAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycygpXG4gIC8vIFJlcGxhY2UgaW5zdGFuY2VzIG9mIFxcclxcbiBhbmQgXFxuIGZvbGxvd2VkIGJ5IGF0IGxlYXN0IG9uZSBzcGFjZSBvciBob3Jpem9udGFsIHRhYiB3aXRoIGEgc3BhY2VcbiAgLy8gaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzAjc2VjdGlvbi0zLjJcbiAgdmFyIHByZVByb2Nlc3NlZEhlYWRlcnMgPSByYXdIZWFkZXJzLnJlcGxhY2UoL1xccj9cXG5bXFx0IF0rL2csICcgJylcbiAgLy8gQXZvaWRpbmcgc3BsaXQgdmlhIHJlZ2V4IHRvIHdvcmsgYXJvdW5kIGEgY29tbW9uIElFMTEgYnVnIHdpdGggdGhlIGNvcmUtanMgMy42LjAgcmVnZXggcG9seWZpbGxcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2dpdGh1Yi9mZXRjaC9pc3N1ZXMvNzQ4XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy83NTFcbiAgcHJlUHJvY2Vzc2VkSGVhZGVyc1xuICAgIC5zcGxpdCgnXFxyJylcbiAgICAubWFwKGZ1bmN0aW9uKGhlYWRlcikge1xuICAgICAgcmV0dXJuIGhlYWRlci5pbmRleE9mKCdcXG4nKSA9PT0gMCA/IGhlYWRlci5zdWJzdHIoMSwgaGVhZGVyLmxlbmd0aCkgOiBoZWFkZXJcbiAgICB9KVxuICAgIC5mb3JFYWNoKGZ1bmN0aW9uKGxpbmUpIHtcbiAgICAgIHZhciBwYXJ0cyA9IGxpbmUuc3BsaXQoJzonKVxuICAgICAgdmFyIGtleSA9IHBhcnRzLnNoaWZ0KCkudHJpbSgpXG4gICAgICBpZiAoa2V5KSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IHBhcnRzLmpvaW4oJzonKS50cmltKClcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBoZWFkZXJzLmFwcGVuZChrZXksIHZhbHVlKVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNvbnNvbGUud2FybignUmVzcG9uc2UgJyArIGVycm9yLm1lc3NhZ2UpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICByZXR1cm4gaGVhZGVyc1xufVxuXG5Cb2R5LmNhbGwoUmVxdWVzdC5wcm90b3R5cGUpXG5cbmV4cG9ydCBmdW5jdGlvbiBSZXNwb25zZShib2R5SW5pdCwgb3B0aW9ucykge1xuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgUmVzcG9uc2UpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignUGxlYXNlIHVzZSB0aGUgXCJuZXdcIiBvcGVyYXRvciwgdGhpcyBET00gb2JqZWN0IGNvbnN0cnVjdG9yIGNhbm5vdCBiZSBjYWxsZWQgYXMgYSBmdW5jdGlvbi4nKVxuICB9XG4gIGlmICghb3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSB7fVxuICB9XG5cbiAgdGhpcy50eXBlID0gJ2RlZmF1bHQnXG4gIHRoaXMuc3RhdHVzID0gb3B0aW9ucy5zdGF0dXMgPT09IHVuZGVmaW5lZCA/IDIwMCA6IG9wdGlvbnMuc3RhdHVzXG4gIGlmICh0aGlzLnN0YXR1cyA8IDIwMCB8fCB0aGlzLnN0YXR1cyA+IDU5OSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKFwiRmFpbGVkIHRvIGNvbnN0cnVjdCAnUmVzcG9uc2UnOiBUaGUgc3RhdHVzIHByb3ZpZGVkICgwKSBpcyBvdXRzaWRlIHRoZSByYW5nZSBbMjAwLCA1OTldLlwiKVxuICB9XG4gIHRoaXMub2sgPSB0aGlzLnN0YXR1cyA+PSAyMDAgJiYgdGhpcy5zdGF0dXMgPCAzMDBcbiAgdGhpcy5zdGF0dXNUZXh0ID0gb3B0aW9ucy5zdGF0dXNUZXh0ID09PSB1bmRlZmluZWQgPyAnJyA6ICcnICsgb3B0aW9ucy5zdGF0dXNUZXh0XG4gIHRoaXMuaGVhZGVycyA9IG5ldyBIZWFkZXJzKG9wdGlvbnMuaGVhZGVycylcbiAgdGhpcy51cmwgPSBvcHRpb25zLnVybCB8fCAnJ1xuICB0aGlzLl9pbml0Qm9keShib2R5SW5pdClcbn1cblxuQm9keS5jYWxsKFJlc3BvbnNlLnByb3RvdHlwZSlcblxuUmVzcG9uc2UucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBuZXcgUmVzcG9uc2UodGhpcy5fYm9keUluaXQsIHtcbiAgICBzdGF0dXM6IHRoaXMuc3RhdHVzLFxuICAgIHN0YXR1c1RleHQ6IHRoaXMuc3RhdHVzVGV4dCxcbiAgICBoZWFkZXJzOiBuZXcgSGVhZGVycyh0aGlzLmhlYWRlcnMpLFxuICAgIHVybDogdGhpcy51cmxcbiAgfSlcbn1cblxuUmVzcG9uc2UuZXJyb3IgPSBmdW5jdGlvbigpIHtcbiAgdmFyIHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKG51bGwsIHtzdGF0dXM6IDIwMCwgc3RhdHVzVGV4dDogJyd9KVxuICByZXNwb25zZS5vayA9IGZhbHNlXG4gIHJlc3BvbnNlLnN0YXR1cyA9IDBcbiAgcmVzcG9uc2UudHlwZSA9ICdlcnJvcidcbiAgcmV0dXJuIHJlc3BvbnNlXG59XG5cbnZhciByZWRpcmVjdFN0YXR1c2VzID0gWzMwMSwgMzAyLCAzMDMsIDMwNywgMzA4XVxuXG5SZXNwb25zZS5yZWRpcmVjdCA9IGZ1bmN0aW9uKHVybCwgc3RhdHVzKSB7XG4gIGlmIChyZWRpcmVjdFN0YXR1c2VzLmluZGV4T2Yoc3RhdHVzKSA9PT0gLTEpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignSW52YWxpZCBzdGF0dXMgY29kZScpXG4gIH1cblxuICByZXR1cm4gbmV3IFJlc3BvbnNlKG51bGwsIHtzdGF0dXM6IHN0YXR1cywgaGVhZGVyczoge2xvY2F0aW9uOiB1cmx9fSlcbn1cblxuZXhwb3J0IHZhciBET01FeGNlcHRpb24gPSBnLkRPTUV4Y2VwdGlvblxudHJ5IHtcbiAgbmV3IERPTUV4Y2VwdGlvbigpXG59IGNhdGNoIChlcnIpIHtcbiAgRE9NRXhjZXB0aW9uID0gZnVuY3Rpb24obWVzc2FnZSwgbmFtZSkge1xuICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2VcbiAgICB0aGlzLm5hbWUgPSBuYW1lXG4gICAgdmFyIGVycm9yID0gRXJyb3IobWVzc2FnZSlcbiAgICB0aGlzLnN0YWNrID0gZXJyb3Iuc3RhY2tcbiAgfVxuICBET01FeGNlcHRpb24ucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpXG4gIERPTUV4Y2VwdGlvbi5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBET01FeGNlcHRpb25cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZldGNoKGlucHV0LCBpbml0KSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcbiAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGlucHV0LCBpbml0KVxuXG4gICAgaWYgKHJlcXVlc3Quc2lnbmFsICYmIHJlcXVlc3Quc2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgIHJldHVybiByZWplY3QobmV3IERPTUV4Y2VwdGlvbignQWJvcnRlZCcsICdBYm9ydEVycm9yJykpXG4gICAgfVxuXG4gICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpXG5cbiAgICBmdW5jdGlvbiBhYm9ydFhocigpIHtcbiAgICAgIHhoci5hYm9ydCgpXG4gICAgfVxuXG4gICAgeGhyLm9ubG9hZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIG9wdGlvbnMgPSB7XG4gICAgICAgIHN0YXR1c1RleHQ6IHhoci5zdGF0dXNUZXh0LFxuICAgICAgICBoZWFkZXJzOiBwYXJzZUhlYWRlcnMoeGhyLmdldEFsbFJlc3BvbnNlSGVhZGVycygpIHx8ICcnKVxuICAgICAgfVxuICAgICAgLy8gVGhpcyBjaGVjayBpZiBzcGVjaWZpY2FsbHkgZm9yIHdoZW4gYSB1c2VyIGZldGNoZXMgYSBmaWxlIGxvY2FsbHkgZnJvbSB0aGUgZmlsZSBzeXN0ZW1cbiAgICAgIC8vIE9ubHkgaWYgdGhlIHN0YXR1cyBpcyBvdXQgb2YgYSBub3JtYWwgcmFuZ2VcbiAgICAgIGlmIChyZXF1ZXN0LnVybC5pbmRleE9mKCdmaWxlOi8vJykgPT09IDAgJiYgKHhoci5zdGF0dXMgPCAyMDAgfHwgeGhyLnN0YXR1cyA+IDU5OSkpIHtcbiAgICAgICAgb3B0aW9ucy5zdGF0dXMgPSAyMDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvcHRpb25zLnN0YXR1cyA9IHhoci5zdGF0dXM7XG4gICAgICB9XG4gICAgICBvcHRpb25zLnVybCA9ICdyZXNwb25zZVVSTCcgaW4geGhyID8geGhyLnJlc3BvbnNlVVJMIDogb3B0aW9ucy5oZWFkZXJzLmdldCgnWC1SZXF1ZXN0LVVSTCcpXG4gICAgICB2YXIgYm9keSA9ICdyZXNwb25zZScgaW4geGhyID8geGhyLnJlc3BvbnNlIDogeGhyLnJlc3BvbnNlVGV4dFxuICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgcmVzb2x2ZShuZXcgUmVzcG9uc2UoYm9keSwgb3B0aW9ucykpXG4gICAgICB9LCAwKVxuICAgIH1cblxuICAgIHhoci5vbmVycm9yID0gZnVuY3Rpb24oKSB7XG4gICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICByZWplY3QobmV3IFR5cGVFcnJvcignTmV0d29yayByZXF1ZXN0IGZhaWxlZCcpKVxuICAgICAgfSwgMClcbiAgICB9XG5cbiAgICB4aHIub250aW1lb3V0ID0gZnVuY3Rpb24oKSB7XG4gICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICByZWplY3QobmV3IFR5cGVFcnJvcignTmV0d29yayByZXF1ZXN0IHRpbWVkIG91dCcpKVxuICAgICAgfSwgMClcbiAgICB9XG5cbiAgICB4aHIub25hYm9ydCA9IGZ1bmN0aW9uKCkge1xuICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgcmVqZWN0KG5ldyBET01FeGNlcHRpb24oJ0Fib3J0ZWQnLCAnQWJvcnRFcnJvcicpKVxuICAgICAgfSwgMClcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBmaXhVcmwodXJsKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gdXJsID09PSAnJyAmJiBnLmxvY2F0aW9uLmhyZWYgPyBnLmxvY2F0aW9uLmhyZWYgOiB1cmxcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIHVybFxuICAgICAgfVxuICAgIH1cblxuICAgIHhoci5vcGVuKHJlcXVlc3QubWV0aG9kLCBmaXhVcmwocmVxdWVzdC51cmwpLCB0cnVlKVxuXG4gICAgaWYgKHJlcXVlc3QuY3JlZGVudGlhbHMgPT09ICdpbmNsdWRlJykge1xuICAgICAgeGhyLndpdGhDcmVkZW50aWFscyA9IHRydWVcbiAgICB9IGVsc2UgaWYgKHJlcXVlc3QuY3JlZGVudGlhbHMgPT09ICdvbWl0Jykge1xuICAgICAgeGhyLndpdGhDcmVkZW50aWFscyA9IGZhbHNlXG4gICAgfVxuXG4gICAgaWYgKCdyZXNwb25zZVR5cGUnIGluIHhocikge1xuICAgICAgaWYgKHN1cHBvcnQuYmxvYikge1xuICAgICAgICB4aHIucmVzcG9uc2VUeXBlID0gJ2Jsb2InXG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBzdXBwb3J0LmFycmF5QnVmZmVyXG4gICAgICApIHtcbiAgICAgICAgeGhyLnJlc3BvbnNlVHlwZSA9ICdhcnJheWJ1ZmZlcidcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaW5pdCAmJiB0eXBlb2YgaW5pdC5oZWFkZXJzID09PSAnb2JqZWN0JyAmJiAhKGluaXQuaGVhZGVycyBpbnN0YW5jZW9mIEhlYWRlcnMgfHwgKGcuSGVhZGVycyAmJiBpbml0LmhlYWRlcnMgaW5zdGFuY2VvZiBnLkhlYWRlcnMpKSkge1xuICAgICAgdmFyIG5hbWVzID0gW107XG4gICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhpbml0LmhlYWRlcnMpLmZvckVhY2goZnVuY3Rpb24obmFtZSkge1xuICAgICAgICBuYW1lcy5wdXNoKG5vcm1hbGl6ZU5hbWUobmFtZSkpXG4gICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKG5hbWUsIG5vcm1hbGl6ZVZhbHVlKGluaXQuaGVhZGVyc1tuYW1lXSkpXG4gICAgICB9KVxuICAgICAgcmVxdWVzdC5oZWFkZXJzLmZvckVhY2goZnVuY3Rpb24odmFsdWUsIG5hbWUpIHtcbiAgICAgICAgaWYgKG5hbWVzLmluZGV4T2YobmFtZSkgPT09IC0xKSB7XG4gICAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIobmFtZSwgdmFsdWUpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHJlcXVlc3QuaGVhZGVycy5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlLCBuYW1lKSB7XG4gICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKG5hbWUsIHZhbHVlKVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAocmVxdWVzdC5zaWduYWwpIHtcbiAgICAgIHJlcXVlc3Quc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgYWJvcnRYaHIpXG5cbiAgICAgIHhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgLy8gRE9ORSAoc3VjY2VzcyBvciBmYWlsdXJlKVxuICAgICAgICBpZiAoeGhyLnJlYWR5U3RhdGUgPT09IDQpIHtcbiAgICAgICAgICByZXF1ZXN0LnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCdhYm9ydCcsIGFib3J0WGhyKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgeGhyLnNlbmQodHlwZW9mIHJlcXVlc3QuX2JvZHlJbml0ID09PSAndW5kZWZpbmVkJyA/IG51bGwgOiByZXF1ZXN0Ll9ib2R5SW5pdClcbiAgfSlcbn1cblxuZmV0Y2gucG9seWZpbGwgPSB0cnVlXG5cbmlmICghZy5mZXRjaCkge1xuICBnLmZldGNoID0gZmV0Y2hcbiAgZy5IZWFkZXJzID0gSGVhZGVyc1xuICBnLlJlcXVlc3QgPSBSZXF1ZXN0XG4gIGcuUmVzcG9uc2UgPSBSZXNwb25zZVxufVxuIiwiLyogdHNsaW50OmRpc2FibGU6bm8tbnVsbC1rZXl3b3JkIG5vLWFueSBuby11bnNhZmUtYW55ICovXG5pbXBvcnQgeyBmZXRjaCB9IGZyb20gXCJ3aGF0d2ctZmV0Y2hcIjtcbmltcG9ydCB7IEFsbEljb25OYW1lcyB9IGZyb20gXCJyZWFjdC11aVwiO1xuXG5pbXBvcnQgeyBFcnJvckZpcnN0Q2FsbGJhY2ssIHJlamVjdCB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db21tb24vVHlwaW5nVXRpbHNcIjtcbmltcG9ydCB0eXBlIHsgSUZvcm0gfSBmcm9tIFwiLi4vLi4vRW5naW5lL0Zvcm0vSUZvcm1cIjtcbmltcG9ydCB7IExvYWRJbnRvRG9jdW1lbnQgfSBmcm9tIFwiLi4vLi4vSGVscGVycy9Mb2FkSW50b0RvY3VtZW50XCI7XG5pbXBvcnQgdHlwZSB7IElQdWJsaWNGb3JtIH0gZnJvbSBcIi4uL1B1YmxpY0Zvcm0vSVB1YmxpY0Zvcm1cIjtcbmltcG9ydCB0eXBlIHsgSUtlV2ViVGVtcGxhdGVzQXBpQ2xpZW50IH0gZnJvbSBcIi4uL1R5cGVzL0lLZVdlYlRlbXBsYXRlc0FwaUNsaWVudFwiO1xuaW1wb3J0IHR5cGUgeyBDbGllbnREcmFmdEluZm9SZXNwb25zZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db21tb24vQ2FuZHlBcGlDbGllbnQvQ2xpZW50RHJhZnRJbmZvL0NsaWVudERyYWZ0SW5mb1Jlc3BvbnNlXCI7XG5pbXBvcnQgeyBnZXRDbGllbnREcmFmdEluZm9VcmwgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9uL0NhbmR5QXBpQ2xpZW50L0NsaWVudERyYWZ0SW5mby9HZXRDbGllbnREcmFmdEluZm9VcmxcIjtcbmltcG9ydCB7IEFVT09wdGlvbnMgfSBmcm9tIFwiLi4vVHlwZXMvQVVPT3B0aW9uc1wiO1xuaW1wb3J0IHR5cGUgeyBMYXlvdXRFdmVudHNTdGF0aWMgfSBmcm9tIFwiLi4vLi4vQ29udHJvbHMvSW50ZXJuYWxzL0xheW91dEV2ZW50cy9MYXlvdXRFdmVudHNcIjtcblxuaW1wb3J0IHsgY2xpZW50U2V0dGluZ3MgfSBmcm9tIFwiLi9DbGllbnRTZXR0aW5nc1wiO1xuaW1wb3J0IHsgY3JlYXRlTGVnYWN5UHVibGljRm9ybSB9IGZyb20gXCIuL0xlZ2FjeVB1YmxpY0Zvcm0vQ3JlYXRlTGVnYWN5UHVibGljRm9ybVwiO1xuXG50eXBlIEZvcm1Db250YWluZXIgPSBzdHJpbmcgfCBIVE1MRWxlbWVudDtcblxudHlwZSBFbmdpbmVFbnRyeVBvaW50ID0gKCkgPT4gdm9pZDtcblxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25EZXNjcmlwdGlvbiB7XG4gICAgaWNvbjogQWxsSWNvbk5hbWVzO1xuICAgIHRleHQ/OiBzdHJpbmcgfCAoKCkgPT4gc3RyaW5nKTtcbiAgICBvbkNsaWNrOiAoKSA9PiB2b2lkO1xuICAgIGhpbnQ/OiB1bmRlZmluZWQgfCBzdHJpbmc7XG4gICAgaWQ6IHN0cmluZztcbiAgICB0aWQ/OiBzdHJpbmc7XG4gICAgd2VpZ2h0OiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBSZW5kZXJGb3JtU2V0dGluZ3Mge1xuICAgIGdmdjogc3RyaW5nO1xuICAgIGVuZ2luZVZlcnNpb24/OiB1bmRlZmluZWQgfCBudWxsIHwgc3RyaW5nO1xuICAgIHRoZW1lPzogdW5kZWZpbmVkIHwgbnVsbCB8IHN0cmluZztcbiAgICByZXNvdXJjZVpvbmU/OiBzdHJpbmc7XG4gICAgcmVuZGVyRm9ybTogdW5kZWZpbmVkIHwgRW5naW5lRW50cnlQb2ludDtcbiAgICB0ZW1wbGF0ZXNBcGk/OiBJS2VXZWJUZW1wbGF0ZXNBcGlDbGllbnQ7XG4gICAgcGFuZWxBY3Rpb25zPzogQWN0aW9uRGVzY3JpcHRpb25bXTtcbn1cblxudHlwZSBTdGFydEZvcm1GdW5jID0gKHBhZ2VDb250ZW50OiBGb3JtQ29udGFpbmVyLCBleHRlbmRlZFNldHRpbmdzOiBSZW5kZXJGb3JtU2V0dGluZ3MpID0+IFByb21pc2U8SUZvcm0+O1xuXG5pbnRlcmZhY2UgQ2FuZHlHbG9iYWxJbmplY3RlZFZhciB7XG4gICAgc3RhcnQ6IChwYWdlQ29udGVudDogRm9ybUNvbnRhaW5lciwgb3B0aW9uczogU3RhcnRGb3JtT3B0aW9ucywgY2FsbGJhY2s/OiBFcnJvckZpcnN0Q2FsbGJhY2s8SVB1YmxpY0Zvcm0+KSA9PiB2b2lkO1xuICAgIGtlZm9ybXNVcmw/OiBzdHJpbmc7XG4gICAgcGFydGlhbFJlbmRlcmluZ0ZvcklFODogYm9vbGVhbjtcbiAgICBlbnRyeVBvaW50OiB7IFtrZXk6IHN0cmluZ106IFN0YXJ0Rm9ybUZ1bmMgfTtcbiAgICBsb2FkRXJyb3I/OiB1bmtub3duO1xufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gICAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgICAgIENGOiBDYW5keUdsb2JhbEluamVjdGVkVmFyO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlXG4gICAgbmFtZXNwYWNlIE5vZGVKUyB7XG4gICAgICAgIGludGVyZmFjZSBHbG9iYWwge1xuICAgICAgICAgICAgQ0Y6IENhbmR5R2xvYmFsSW5qZWN0ZWRWYXI7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmRlY2xhcmUgY29uc3QgZ2xvYmFsOiBXaW5kb3c7XG5cbmZ1bmN0aW9uIGRlZmF1bHRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAvKiBlbXB0eSAqL1xufVxuXG5mdW5jdGlvbiBwYXJzZUJvb2wodmFsdWU6IHVua25vd24pOiBib29sZWFuIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gXCJmYWxzZVwiKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlID09PSBcInRydWVcIikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gQm9vbGVhbih2YWx1ZSk7XG59XG5cbmZ1bmN0aW9uIHVybChyZWxhdGl2ZVVybDogc3RyaW5nID0gXCJcIik6IHN0cmluZyB7XG4gICAgY29uc3QgYmFzZVVybCA9IGdsb2JhbC5DRi5rZWZvcm1zVXJsIHx8IFwiXCI7XG5cbiAgICByZXR1cm4gYCR7YmFzZVVybH0vJHtyZWxhdGl2ZVVybH1gLnJlcGxhY2UoLyhbXjpdKVxcL3syLH0vZywgXCIkMS9cIik7XG59XG5cbmZ1bmN0aW9uIGJ1aWxkVXJsKHBhdGg6IHN0cmluZywgcGFyYW1zOiB7IFtwYXJhbU5hbWU6IHN0cmluZ106IHVuZGVmaW5lZCB8IHN0cmluZyB9KTogc3RyaW5nIHtcbiAgICBpZiAocGFyYW1zID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfVxuICAgIGNvbnN0IHF1ZXJ5UGFydHM6IHN0cmluZ1tdID0gW107XG4gICAgZm9yIChjb25zdCBwYXJhbU5hbWUgb2YgT2JqZWN0LmtleXMocGFyYW1zKSkge1xuICAgICAgICBjb25zdCBwYXJhbVZhbHVlID0gcGFyYW1zW3BhcmFtTmFtZV07XG4gICAgICAgIGlmIChwYXJhbVZhbHVlICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcXVlcnlQYXJ0cy5wdXNoKGAke3BhcmFtTmFtZX09JHtlbmNvZGVVUklDb21wb25lbnQocGFyYW1WYWx1ZSl9YCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHF1ZXJ5UGFydHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgIH1cbiAgICByZXR1cm4gcGF0aCArIFwiP1wiICsgcXVlcnlQYXJ0cy5qb2luKFwiJlwiKTtcbn1cblxuZnVuY3Rpb24gaXNBbGxvd2VkKGRvbWFpbnM6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBuZXcgUmVnRXhwKGBeKD86JHtkb21haW5zLnJlcGxhY2UoL1xcLi9nLCBcIlxcXFwuXCIpLnJlcGxhY2UoL1xcKi9nLCBcIlthLXowLTktLl9dK1wiKX0pJGApLnRlc3QoXG4gICAgICAgIGdsb2JhbC5sb2NhdGlvbi5ob3N0XG4gICAgKTtcbn1cblxuZnVuY3Rpb24gZ2V0UGFyYW1ldGVyQnlOYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgKGdsb2JhbC5sb2NhdGlvbi5zZWFyY2hcbiAgICAgICAgICAgIC50cmltKClcbiAgICAgICAgICAgIC5yZXBsYWNlKC9eKFxcP3wjfCYpLywgXCJcIilcbiAgICAgICAgICAgIC5zcGxpdChcIiZcIilcbiAgICAgICAgICAgIC5tYXAocGFyYW0gPT4gcGFyYW0ucmVwbGFjZSgvXFwrL2csIFwiIFwiKS5zcGxpdChcIj1cIikubWFwKGRlY29kZVVSSUNvbXBvbmVudCkpXG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dHJpcGxlLWVxdWFsc1xuICAgICAgICAgICAgLmZpbmQoKFtrZXldKSA9PiBrZXkgPT0gbmFtZSkgfHwgW10pWzFdXG4gICAgKTtcbn1cblxudHlwZSBUYXNrID0gKGNhbGxiYWNrOiAoZXJyb3I/OiBFcnJvcikgPT4gdm9pZCkgPT4gdm9pZDtcblxuZnVuY3Rpb24gcnVuUGFyYWxsZWwodGFza3M6IFRhc2tbXSwgY2FsbGJhY2s6IChlcnJvcj86IEVycm9yKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgbGV0IGNvbXBsZXRlZCA9IDA7XG5cbiAgICB0YXNrcy5mb3JFYWNoKHRhc2sgPT4ge1xuICAgICAgICB0YXNrKGVycm9yID0+IHtcbiAgICAgICAgICAgIGlmIChjb21wbGV0ZWQgPT09IHRhc2tzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgIGNvbXBsZXRlZCA9IHRhc2tzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnJvcik7XG5cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb21wbGV0ZWQgKz0gMTtcbiAgICAgICAgICAgIGlmIChjb21wbGV0ZWQgPT09IHRhc2tzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xufVxuXG5pbnRlcmZhY2UgU3RhcnRGb3JtU2V0dGluZyB7XG4gICAgZ2Z2OiBzdHJpbmc7XG4gICAgZW5naW5lVmVyc2lvbj86IHVuZGVmaW5lZCB8IG51bGwgfCBzdHJpbmc7XG4gICAgcmVzb3VyY2Vab25lPzogc3RyaW5nO1xuICAgIHRoZW1lPzogdW5kZWZpbmVkIHwgbnVsbCB8IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRW5naW5lVmVyc2lvbkdyZWF0ZXJUaGFuT3JFcXVhbChsZWZ0OiBzdHJpbmcsIHJpZ2h0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCBsZWZ0TnVtYmVycyA9IGxlZnRcbiAgICAgICAgICAgIC5zcGxpdChcIi5cIilcbiAgICAgICAgICAgIC5zbGljZSgwLCAzKVxuICAgICAgICAgICAgLm1hcCh4ID0+IHBhcnNlSW50KHgsIDEwKSk7XG4gICAgICAgIGNvbnN0IHJpZ2h0TnVtYmVycyA9IHJpZ2h0XG4gICAgICAgICAgICAuc3BsaXQoXCIuXCIpXG4gICAgICAgICAgICAuc2xpY2UoMCwgMylcbiAgICAgICAgICAgIC5tYXAoeCA9PiBwYXJzZUludCh4LCAxMCkpO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKGxlZnROdW1iZXJzWzBdID8/IDApID4gKHJpZ2h0TnVtYmVyc1swXSA/PyAwKSB8fFxuICAgICAgICAgICAgKChsZWZ0TnVtYmVyc1swXSA/PyAwKSA9PT0gKHJpZ2h0TnVtYmVyc1swXSA/PyAwKSAmJlxuICAgICAgICAgICAgICAgICgobGVmdE51bWJlcnNbMV0gPz8gMCkgPiAocmlnaHROdW1iZXJzWzFdID8/IDApIHx8XG4gICAgICAgICAgICAgICAgICAgICgobGVmdE51bWJlcnNbMV0gPz8gMCkgPT09IChyaWdodE51bWJlcnNbMV0gPz8gMCkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIChsZWZ0TnVtYmVyc1syXSA/PyAwKSA+PSAocmlnaHROdW1iZXJzWzJdID8/IDApKSkpXG4gICAgICAgICk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGxvYWRGb3JtKHNldHRpbmdzOiBTdGFydEZvcm1TZXR0aW5nLCBjYWxsYmFjazogKGVycm9yPzogbnVsbCB8IHVuZGVmaW5lZCB8IEVycm9yKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgY29uc3QgeyBnZnYsIGVuZ2luZVZlcnNpb24gfSA9IHNldHRpbmdzO1xuXG4gICAgaWYgKGdsb2JhbC5DRi5lbnRyeVBvaW50W2dmdl0pIHtcbiAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBpc05lZWRFbmdpbmUgPSBlbmdpbmVWZXJzaW9uICYmICFnbG9iYWxbZW5naW5lVmVyc2lvbl07XG4gICAgY29uc3Qgbm9TdHlsZXNGb3JHZnYgPSBmYWxzZTsgLy8gZW5naW5lVmVyc2lvbiAhPSB1bmRlZmluZWQgJiYgKGlzRW5naW5lVmVyc2lvbkdyZWF0ZXJUaGFuT3JFcXVhbChlbmdpbmVWZXJzaW9uLCBcIjQuMjE0LjBcIikgfHwgZW5naW5lVmVyc2lvbiA9PT0gXCJsb2NhbFwiKTtcbiAgICBjb25zdCBuZWVkTG9hZFN0eWxlc0ZvckdmdiA9ICFub1N0eWxlc0ZvckdmdjtcbiAgICBjb25zdCBtaW4gPSBnZXRQYXJhbWV0ZXJCeU5hbWUoXCJkZWJ1Z1wiKSA9PT0gXCJ0cnVlXCIgPyBcIlwiIDogXCIubWluXCI7XG4gICAgY29uc3QgdGFza3M6IFRhc2tbXSA9IFtdO1xuXG4gICAgY29uc3QgcGFyYW1zID0geyByZXNvdXJjZVpvbmU6IHNldHRpbmdzLnJlc291cmNlWm9uZSB9O1xuICAgIGlmIChuZWVkTG9hZFN0eWxlc0Zvckdmdikge1xuICAgICAgICB0YXNrcy5wdXNoKGNiID0+XG4gICAgICAgICAgICBMb2FkSW50b0RvY3VtZW50LnN0eWxlU2hlZXQodXJsKGJ1aWxkVXJsKGBzdGF0aWMvcHVibGljL3N0eWxlcy8ke2dmdn0ke21pbn0uY3NzYCwgcGFyYW1zKSksIHRydWUsIGNiKVxuICAgICAgICApO1xuICAgIH1cbiAgICB0YXNrcy5wdXNoKGNiID0+IExvYWRJbnRvRG9jdW1lbnQuc2NyaXB0KHVybChidWlsZFVybChgc3RhdGljL3B1YmxpYy9zY3JpcHRzLyR7Z2Z2fSR7bWlufS5qc2AsIHBhcmFtcykpLCBjYikpO1xuXG4gICAgaWYgKGlzTmVlZEVuZ2luZSkge1xuICAgICAgICB0YXNrcy5wdXNoKFxuICAgICAgICAgICAgY2IgPT5cbiAgICAgICAgICAgICAgICBMb2FkSW50b0RvY3VtZW50LnN0eWxlU2hlZXQoXG4gICAgICAgICAgICAgICAgICAgIHVybChidWlsZFVybChgc3RhdGljL3B1YmxpYy9zdHlsZXMvY2FuZHlfJHtlbmdpbmVWZXJzaW9ufSR7bWlufS5jc3NgLCBwYXJhbXMpKSxcbiAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNiXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGNiID0+XG4gICAgICAgICAgICAgICAgTG9hZEludG9Eb2N1bWVudC5zY3JpcHQoXG4gICAgICAgICAgICAgICAgICAgIHVybChidWlsZFVybChgc3RhdGljL3B1YmxpYy9zY3JpcHRzL2NhbmR5XyR7ZW5naW5lVmVyc2lvbn0ke21pbn0uanNgLCBwYXJhbXMpKSxcbiAgICAgICAgICAgICAgICAgICAgY2JcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcnVuUGFyYWxsZWwodGFza3MsIGNhbGxiYWNrKTtcbn1cblxuZnVuY3Rpb24gcmVuZGVyRm9ybShcbiAgICBwYWdlQ29udGVudDogRm9ybUNvbnRhaW5lcixcbiAgICBleHRlbmRlZFNldHRpbmdzOiBSZW5kZXJGb3JtU2V0dGluZ3MsXG4gICAgY2FsbGJhY2s6IEVycm9yRmlyc3RDYWxsYmFjazxJUHVibGljRm9ybT5cbik6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1FbnRyeVBvaW50ID1cbiAgICAgICAgZ2xvYmFsLkNGLmVudHJ5UG9pbnRbZXh0ZW5kZWRTZXR0aW5ncy5nZnZdID8/IHJlamVjdChgRm9ybSBlbnRyeSBwb2ludCAke2V4dGVuZGVkU2V0dGluZ3MuZ2Z2fSBub3QgZm91bmQuYCk7XG4gICAgZm9ybUVudHJ5UG9pbnQocGFnZUNvbnRlbnQsIGV4dGVuZGVkU2V0dGluZ3MpXG4gICAgICAgIC50aGVuKGZvcm0gPT4ge1xuICAgICAgICAgICAgY29uc3QgcHVibGljRm9ybSA9IGZvcm0ucHVibGljRm9ybSB8fCBjcmVhdGVMZWdhY3lQdWJsaWNGb3JtKGZvcm0pO1xuXG4gICAgICAgICAgICBjYWxsYmFjayhudWxsLCBwdWJsaWNGb3JtKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKGNhbGxiYWNrKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFydEZvcm1PcHRpb25zIGV4dGVuZHMgUGFydGlhbDxBVU9PcHRpb25zPiB7XG4gICAgbnM6IHN0cmluZztcbiAgICBkcmFmdElkOiBzdHJpbmc7XG4gICAgZ2Z2Pzogc3RyaW5nO1xuICAgIHJlc291cmNlWm9uZT86IHN0cmluZztcbiAgICB0ZW1wbGF0ZXNBcGk/OiBJS2VXZWJUZW1wbGF0ZXNBcGlDbGllbnQ7XG4gICAgZmVlZGJhY2tFbmFibGVkPzogYm9vbGVhbjtcbiAgICBpc0Rpc2FibGVkQ2xvc2VCdXR0b24/OiBib29sZWFuO1xuICAgIGlzRGlzYWJsZWRDbG9zZUFuZFNhdmVCdXR0b24/OiBib29sZWFuO1xuICAgIGlzRGlzYWJsZWRDbGVhbkZvcm0/OiBib29sZWFuO1xuICAgIHRoZW1lPzogdW5kZWZpbmVkIHwgbnVsbCB8IHN0cmluZztcbiAgICBhdXRoZW50aWNhdGlvbj86IFwiYnJvd3Nlci1jcmVkZW50aWFscy1pbmNsdWRlXCIgfCB7IGF1dGhTaWQ6IHN0cmluZyB9O1xuICAgIGZldGNoPzogdHlwZW9mIGZldGNoO1xuICAgIG1vZGVsPzogeyBbcGF0aDogc3RyaW5nXTogdW5rbm93biB9O1xuICAgIHBhbmVsQWN0aW9ucz86IEFjdGlvbkRlc2NyaXB0aW9uW107XG4gICAgZXZlbnRFbWl0dGVyPzogTGF5b3V0RXZlbnRzU3RhdGljO1xuICAgIGVtcGxveWVySWQ/OiBzdHJpbmc7XG4gICAgc2hvd05hdmlnYXRpb25TaWRlYmFyPzogYm9vbGVhbjtcbiAgICBvblJlbW92ZUF0dGFjaG1lbnQ/OiAoKSA9PiB2b2lkO1xufVxuXG5mdW5jdGlvbiBnZXRFbmdpbmVFbnRyeVBvaW50KGVuZ2luZVZlcnNpb246IHVuZGVmaW5lZCB8IG51bGwgfCBzdHJpbmcpOiB1bmRlZmluZWQgfCBFbmdpbmVFbnRyeVBvaW50IHtcbiAgICBpZiAoZW5naW5lVmVyc2lvbiA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtcmV0dXJuXG4gICAgcmV0dXJuIGdsb2JhbFtlbmdpbmVWZXJzaW9uXSAmJiBnbG9iYWxbZW5naW5lVmVyc2lvbl0uZGVmYXVsdDtcbn1cblxuZnVuY3Rpb24gc3RhcnQoXG4gICAgcGFnZUNvbnRlbnQ6IEZvcm1Db250YWluZXIsXG4gICAgb3B0aW9uczogU3RhcnRGb3JtT3B0aW9ucyxcbiAgICBjYWxsYmFjazogRXJyb3JGaXJzdENhbGxiYWNrPElQdWJsaWNGb3JtPiA9IGRlZmF1bHRDYWxsYmFja1xuKTogdm9pZCB7XG4gICAgbGV0IGVycm9yID0gbnVsbDtcbiAgICBjb25zdCB7IG5zLCBkcmFmdElkIH0gPSBvcHRpb25zO1xuXG4gICAgaWYgKCFpc0FsbG93ZWQoY2xpZW50U2V0dGluZ3Mua29udHVyRG9tYWlucykpIHtcbiAgICAgICAgZXJyb3IgPSBuZXcgRXJyb3IoXCJkb21haW4udW50cnVzdGVkXCIpO1xuICAgIH0gZWxzZSBpZiAoIWNsaWVudFNldHRpbmdzLmF1dGhvcml6ZWQpIHtcbiAgICAgICAgZXJyb3IgPSBuZXcgRXJyb3IoXCJ1c2VyLnVuYXV0aGVudGljYXRlZFwiKTtcbiAgICB9IGVsc2UgaWYgKCFkcmFmdElkKSB7XG4gICAgICAgIGVycm9yID0gbmV3IEVycm9yKFwib3B0aW9ucy5kcmFmdElkIGlzIHJlcXVpcmVkXCIpO1xuICAgIH0gZWxzZSBpZiAoIW5zKSB7XG4gICAgICAgIGVycm9yID0gbmV3IEVycm9yKFwib3B0aW9ucy5ucyBpcyByZXF1aXJlZFwiKTtcbiAgICB9XG5cbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgY2FsbGJhY2soZXJyb3IpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmVzb3VyY2Vab25lID0gb3B0aW9ucy5yZXNvdXJjZVpvbmUgPz8gZ2V0UGFyYW1ldGVyQnlOYW1lKFwicmVzb3VyY2Vab25lXCIpO1xuICAgIGNvbnN0IGNsaWVudERyYWZ0VXJsID0gYnVpbGRVcmwodXJsKGdldENsaWVudERyYWZ0SW5mb1VybCh7IG5zOiBucywgZHJhZnRJZDogZHJhZnRJZCB9KSksIHtcbiAgICAgICAgcmVzb3VyY2Vab25lOiByZXNvdXJjZVpvbmUsXG4gICAgfSk7XG5cbiAgICBjb25zdCByZXF1ZXN0T3B0aW9uczogUmVxdWVzdEluaXQgPSB7IG1ldGhvZDogXCJHRVRcIiB9O1xuICAgIGlmIChvcHRpb25zLmF1dGhlbnRpY2F0aW9uID09IHVuZGVmaW5lZCB8fCBvcHRpb25zLmF1dGhlbnRpY2F0aW9uID09PSBcImJyb3dzZXItY3JlZGVudGlhbHMtaW5jbHVkZVwiKSB7XG4gICAgICAgIHJlcXVlc3RPcHRpb25zLmNyZWRlbnRpYWxzID0gXCJpbmNsdWRlXCI7XG4gICAgfSBlbHNlIGlmIChcImF1dGhTaWRcIiBpbiBvcHRpb25zLmF1dGhlbnRpY2F0aW9uICYmIG9wdGlvbnMuYXV0aGVudGljYXRpb24uYXV0aFNpZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmVxdWVzdE9wdGlvbnMuY3JlZGVudGlhbHMgPSBcIm9taXRcIjtcbiAgICAgICAgcmVxdWVzdE9wdGlvbnMuaGVhZGVycyA9IHJlcXVlc3RPcHRpb25zLmhlYWRlcnMgPz8ge307XG4gICAgICAgIHJlcXVlc3RPcHRpb25zLmhlYWRlcnNbXCJBdXRob3JpemF0aW9uXCJdID0gYEFVVEguU0lEICR7b3B0aW9ucy5hdXRoZW50aWNhdGlvbi5hdXRoU2lkfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmVxdWVzdE9wdGlvbnMuY3JlZGVudGlhbHMgPSBcIm9taXRcIjtcbiAgICB9XG4gICAgY29uc3QgZmV0Y2hJbXBsID0gb3B0aW9ucy5mZXRjaCA/PyBmZXRjaDtcblxuICAgIGZldGNoSW1wbChjbGllbnREcmFmdFVybCwgcmVxdWVzdE9wdGlvbnMpXG4gICAgICAgIC50aGVuKHggPT4geC5qc29uKCkpXG4gICAgICAgIC50aGVuKChjbGllbnREcmFmdEluZm86IENsaWVudERyYWZ0SW5mb1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBnZnYgPSBjbGllbnREcmFmdEluZm8uZ2Z2O1xuICAgICAgICAgICAgY29uc3QgZW5naW5lVmVyc2lvbiA9IGNsaWVudERyYWZ0SW5mby5lbmdpbmVWZXJzaW9uO1xuICAgICAgICAgICAgY29uc3QgZXh0ZW5kZWRTZXR0aW5ncyA9IHtcbiAgICAgICAgICAgICAgICBhdXRob3JpemVkOiBjbGllbnRTZXR0aW5ncy5hdXRob3JpemVkLFxuICAgICAgICAgICAgICAgIGNhdWxkcm9uQXBpVXJsOiBjbGllbnRTZXR0aW5ncy5jYXVsZHJvbkFwaVVybCxcbiAgICAgICAgICAgICAgICBpc1Rlc3RTZXJ2ZXI6IGNsaWVudFNldHRpbmdzLmlzVGVzdFNlcnZlcixcbiAgICAgICAgICAgICAgICByZW5kZXJDYWNoaW5nRm9ySUU4OiBjbGllbnRTZXR0aW5ncy5yZW5kZXJDYWNoaW5nRm9ySUU4LFxuICAgICAgICAgICAgICAgIG5vcm1hbGl6YXRpb25PblNlcnZlcjogY2xpZW50U2V0dGluZ3Mubm9ybWFsaXphdGlvbk9uU2VydmVyLFxuICAgICAgICAgICAgICAgIG5vcm1hdGl2ZVVybDogY2xpZW50U2V0dGluZ3Mubm9ybWF0aXZlVXJsLFxuICAgICAgICAgICAgICAgIGtvbnR1ckRvbWFpbnM6IGNsaWVudFNldHRpbmdzLmtvbnR1ckRvbWFpbnMsXG4gICAgICAgICAgICAgICAgc2hvd05hdmlnYXRpb25TaWRlYmFyOiBvcHRpb25zLnNob3dOYXZpZ2F0aW9uU2lkZWJhciA/PyB0cnVlLFxuICAgICAgICAgICAgICAgIG9uUmVtb3ZlQXR0YWNobWVudDogb3B0aW9ucy5vblJlbW92ZUF0dGFjaG1lbnQsXG4gICAgICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgICAgICAuLi5jbGllbnREcmFmdEluZm8sXG4gICAgICAgICAgICAgICAgZ2Z2OiBnZnYsXG4gICAgICAgICAgICAgICAgZW5naW5lVmVyc2lvbjogZW5naW5lVmVyc2lvbixcbiAgICAgICAgICAgICAgICBmZWVkYmFja0VuYWJsZWQ6IG9wdGlvbnMuZmVlZGJhY2tFbmFibGVkID8/IGNsaWVudERyYWZ0SW5mby5mZWVkYmFja0VuYWJsZWQsXG4gICAgICAgICAgICAgICAgaXNEaXNhYmxlZENsZWFuRm9ybTogb3B0aW9ucy5pc0Rpc2FibGVkQ2xlYW5Gb3JtID8/IGZhbHNlLFxuICAgICAgICAgICAgICAgIGlzRGlzYWJsZWRDbG9zZUJ1dHRvbjogb3B0aW9ucy5pc0Rpc2FibGVkQ2xvc2VCdXR0b24gPz8gZmFsc2UsXG4gICAgICAgICAgICAgICAgaXNEaXNhYmxlZENsb3NlQW5kU2F2ZUJ1dHRvbjogb3B0aW9ucy5pc0Rpc2FibGVkQ2xvc2VBbmRTYXZlQnV0dG9uID8/IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlc291cmNlWm9uZTogcmVzb3VyY2Vab25lLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgbG9hZEZvcm0oXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBnZnY6IGV4dGVuZGVkU2V0dGluZ3MuZ2Z2LFxuICAgICAgICAgICAgICAgICAgICBlbmdpbmVWZXJzaW9uOiBleHRlbmRlZFNldHRpbmdzLmVuZ2luZVZlcnNpb24sXG4gICAgICAgICAgICAgICAgICAgIHJlc291cmNlWm9uZTogZXh0ZW5kZWRTZXR0aW5ncy5yZXNvdXJjZVpvbmUsXG4gICAgICAgICAgICAgICAgICAgIHRoZW1lOiBleHRlbmRlZFNldHRpbmdzLnRoZW1lLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbG9hZEVycm9yID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxvYWRFcnJvciB8fCAhZ2xvYmFsLkNGLmVudHJ5UG9pbnRbZ2Z2XSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKGBkeW5hbWljIGxvYWRpbmcgaXMgbm90IHN1cHBvcnRlZCBmb3IgZ2Z2ICR7Z2Z2fWApKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZW5kZXIgPSBnZXRFbmdpbmVFbnRyeVBvaW50KGVuZ2luZVZlcnNpb24pO1xuXG4gICAgICAgICAgICAgICAgICAgIHJlbmRlckZvcm0oXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlQ29udGVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5leHRlbmRlZFNldHRpbmdzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlc0FwaTogb3B0aW9ucy50ZW1wbGF0ZXNBcGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyRm9ybTogcmVuZGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKGNhbGxiYWNrKTtcbn1cblxuY29uc3QgQ2FuZHlDbGllbnRFeHBvcnRzOiBDYW5keUdsb2JhbEluamVjdGVkVmFyID0ge1xuICAgIHN0YXJ0OiBzdGFydCxcbiAgICBlbnRyeVBvaW50OiB7fSxcbiAgICBwYXJ0aWFsUmVuZGVyaW5nRm9ySUU4OiBwYXJzZUJvb2woXCJ7cGFydGlhbFJlbmRlcmluZ0ZvcklFOH1cIiksXG4gICAga2Vmb3Jtc1VybDogXCJ7a2Vmb3Jtc1VybH1cIixcbn07XG5cbmdsb2JhbC5DRiA9IENhbmR5Q2xpZW50RXhwb3J0cztcblxuZXhwb3J0IHsgQ2FuZHlDbGllbnRFeHBvcnRzIH07XG4iLCJmdW5jdGlvbiBwYXJzZUJvb2wodmFsdWU6IHVua25vd24pOiBib29sZWFuIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gXCJmYWxzZVwiKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlID09PSBcInRydWVcIikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gQm9vbGVhbih2YWx1ZSk7XG59XG5cbmV4cG9ydCBjb25zdCBjbGllbnRTZXR0aW5ncyA9IHtcbiAgICBhdXRob3JpemVkOiBwYXJzZUJvb2woXCJ7YXV0aG9yaXplZH1cIiksXG4gICAgY2F1bGRyb25BcGlVcmw6IFwie2NhdWxkcm9uQXBpVXJsfVwiLFxuICAgIGlzVGVzdFNlcnZlcjogcGFyc2VCb29sKFwie2lzVGVzdFNlcnZlcn1cIiksXG4gICAgcmVuZGVyQ2FjaGluZ0ZvcklFODogcGFyc2VCb29sKFwie3JlbmRlckNhY2hpbmdGb3JJRTh9XCIpLFxuICAgIG5vcm1hbGl6YXRpb25PblNlcnZlcjogcGFyc2VCb29sKFwie25vcm1hbGl6YXRpb25PblNlcnZlcn1cIiksXG4gICAgbm9ybWF0aXZlVXJsOiBcIntub3JtYXRpdmVVcmx9XCIsXG4gICAga29udHVyRG9tYWluczogXCJ7a29udHVyRG9tYWluc31cIixcbn07XG4iLCJpbXBvcnQge1xuICAgIEVtcGxveWVlLFxuICAgIEVtcGxveWVlTGlzdCxcbiAgICBHZXRFbXBsb3llZXNXaXRoQWN0aXZlUGVyaW9kUXVlcnksXG4gICAgR2V0V29ya2luZ0V2ZW50TGlzdFJlcXVlc3QsXG4gICAgTWF0Y2hFbXBsb3llZVJlcXVlc3QsXG4gICAgTWF0Y2hFbXBsb3llZVJlc3BvbnNlLFxuICAgIE1lcmdlUmVsYXRpdmVSZXNwb25zZSxcbiAgICBQYXRjaFJlbGF0aXZlUmVzcG9uc2UsXG4gICAgV29ya2luZ0V2ZW50TGlzdCxcbn0gZnJvbSBcIkBza2Jrb250dXIvc3RhZmYtc2VsZWN0b3Itd2lkZ2V0XCI7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwiRW5naW5lL3NyYy9FbmdpbmUvRm9ybS9Nb2RlbENoYW5nZUV2ZW50TGlzdGVuZXJcIjtcblxuaW1wb3J0IHsgTm90SW1wbGVtZW50ZWRFcnJvciB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9Db21tb24vRXJyb3JzXCI7XG5pbXBvcnQgdHlwZSB7IFN0ZXAgfSBmcm9tIFwiLi4vLi4vLi4vQ29udHJvbHMvRm9ybVBhcnRzL1RvdXIvVG91clR5cGVzXCI7XG5pbXBvcnQgdHlwZSB7IFNlcnZlckVycm9yTG9nIH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL0NvbW1vbi9DYW5keUFwaUNsaWVudC9UeXBlcy9FcnJvckxvZy9TZXJ2ZXJFcnJvckxvZ1wiO1xuaW1wb3J0IHR5cGUgeyBCaW5kaW5nUGF0aCwgTW9kZWxWYWx1ZSB9IGZyb20gXCIuLi8uLi8uLi9FbmdpbmUvQ29yZS9Db3JlVHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgRXh0ZXJuYWxIb29rRnVuY3Rpb24gfSBmcm9tIFwiLi4vLi4vLi4vRW5naW5lL0NvcmUvRXZlbnRNYW5hZ2VtZW50L0V4dGVybmFsRXZlbnRzL0V4dGVybmFsSG9va0Z1bmN0aW9uXCI7XG5pbXBvcnQgdHlwZSB7IFJlYWRvbmx5TW9kZWxDaHVuayB9IGZyb20gXCIuLi8uLi8uLi9FbmdpbmUvQ29yZS9Nb2RlbFN0b3JpbmcvTW9kZWxDaHVua1wiO1xuaW1wb3J0IHR5cGUgeyBQaWNrbGlzdFF1ZXJ5UmVzcG9uc2UgfSBmcm9tIFwiLi4vLi4vLi4vRW5naW5lL0NvcmUvUGlja2xpc3RzL1BpY2tsaXN0VHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgSUZvcm0gfSBmcm9tIFwiLi4vLi4vLi4vRW5naW5lL0Zvcm0vSUZvcm1cIjtcbmltcG9ydCB0eXBlIHsgSVB1YmxpY0Zvcm0gfSBmcm9tIFwiLi4vLi4vUHVibGljRm9ybS9JUHVibGljRm9ybVwiO1xuaW1wb3J0IHsgTW9kZWxFdmVudHNMaXN0ZW5lciB9IGZyb20gXCIuLi8uLi8uLi9FbmdpbmUvQ29yZS9FdmVudE1hbmFnZW1lbnQvTW9kZWxFdmVudHMvTW9kZWxFdmVudFwiO1xuaW1wb3J0IHsgRGlnZXN0UXVlcnlGaWx0ZXIgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vQ29tbW9uL0NhbmR5QXBpQ2xpZW50L0RpZ2VzdEFwaUNsaWVudC9UeXBlcy9EaWdlc3RRdWVyeUZpbHRlclwiO1xuaW1wb3J0IHsgSVVwZGF0ZUZvcm1Nb2RlbEFjY2Vzc29yIH0gZnJvbSBcIi4uLy4uLy4uL0VuZ2luZS9Gb3JtL0lGb3JtTW9kZWxBY2Nlc3NvclwiO1xuaW1wb3J0IHsgTW9kYWxPcHRpb25zIH0gZnJvbSBcIi4uLy4uLy4uL0VuZ2luZS9Db3JlL01vZGFsTWFuYWdlci9JTW9kYWxTdGF0ZVwiO1xuaW1wb3J0IHsgQWJzb2x1dGVSZXNvbHZlZE1vZGVsUGF0aCB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9Db21tb24vTW9kZWxQYXRoL01vZGVsUGF0aFwiO1xuaW1wb3J0IHtcbiAgICBDYWxsSW5pdFNlY3Rpb25MaWdodGJveFByb3BzLFxuICAgIEluaXRTZWN0aW9uRm9ybUxpZ2h0Ym94T3B0aW9ucyxcbiAgICBQcmVmZXJyZWRJbnRlcmRvY3VtZW50VHJhbnNmZXJQcm9wcyxcbn0gZnJvbSBcIi4uLy4uL1B1YmxpY0Zvcm0vSW5pdFNlY3Rpb25MaWdodGJveFwiO1xuaW1wb3J0IHsgTWFzc0FjdGlvblBhcmFtZXRlcnMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vQ29tbW9uL0NhbmR5QXBpQ2xpZW50L1R5cGVzL01hc3NBY3Rpb25zL01hc3NBY3Rpb25QYXJhbWV0ZXJzXCI7XG5pbXBvcnQgeyBQcmludFR5cGUgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vQ29tbW9uL0NhbmR5QXBpQ2xpZW50L1R5cGVzL1ByaW50L1ByaW50VHlwZVwiO1xuaW1wb3J0IHsgRmlhc0FwaSwgRmlhc0NsaWVudEluaXRPcHRpb25zIH0gZnJvbSBcIi4uLy4uLy4uL0NvbnRyb2xzL1ZhbHVlRWRpdG9ycy9GaWFzL0ZpYXNJbnB1dC9GaWFzQXBpXCI7XG5pbXBvcnQgeyBJbnN0YW5jZXNEZWxldGluZ1J1bGUgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vQ29tbW9uL0NhbmR5QXBpQ2xpZW50L1R5cGVzL0luc3RhbmNlc0RlbGV0aW5nL0luc3RhbmNlc0RlbGV0aW5nUnVsZVwiO1xuaW1wb3J0IHsgQ29tYmluZUZ1ZlJlc3VsdCB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9Db21tb24vQ2FuZHlBcGlDbGllbnQvVHlwZXMvRHJhZnRBY3Rpb25zL0NvbWJpbmVGdWZSZXN1bHRcIjtcbmltcG9ydCB7IElDYW5keUNvbXBvbmVudEhhbmRsZSB9IGZyb20gXCIuLi8uLi8uLi9FbmdpbmUvQ29yZS9Db21wb25lbnRIYW5kbGVSZWdpc3RyeS9JQ2FuZHlDb21wb25lbnRIYW5kbGVcIjtcbmltcG9ydCB7IE5hdmlnYXRpb25QYXRoTWFwcGVyIH0gZnJvbSBcIi4uLy4uL0luamVjdGFibGVNb2R1bGVzL0luamVjdGFibGVFbmdpbmVNb2R1bGVzXCI7XG5pbXBvcnQge1xuICAgIEVtcGxveWVyTm9ybWFsaXplZFRhZyxcbiAgICBJbXBvcnRFbXBsb3llckRvY3VtZW50c09wdGlvbnMsXG59IGZyb20gXCIuLi8uLi8uLi9TdGFmZlNlcnZpY2VJbnRlZ3JhdGlvbi9FbXBsb3llZVNlcnZpY2VUeXBlc1wiO1xuaW1wb3J0IHsgVGFiSW5mb3NTdGF0ZSB9IGZyb20gXCIuLi8uLi8uLi9Db250cm9scy9NdWx0aUNvbnRyb2xzL1RhYnMvU3RvcmUvVGFiSW5mb3NTdGF0ZVwiO1xuaW1wb3J0IHsgTWV0cmljc1BheWxvYWQgfSBmcm9tIFwiLi4vLi4vLi4vQ29udHJvbHMvSW50ZXJuYWxzL01ldHJpY3MvTWV0cmljc1Byb3ZpZGVyXCI7XG5cbmltcG9ydCB7IElMZWdhY3lGb3JtIH0gZnJvbSBcIi4vSUxlZ2FjeUZvcm1cIjtcblxuZXhwb3J0IHR5cGUgTW9kZWxFdmVudFBhdGggPVxuICAgIHwgW1wibW9kZWxcIiwgXCJjaGFuZ2VcIiwgc3RyaW5nLCBzdHJpbmddXG4gICAgfCBbXCJtb2RlbFwiLCBcInJlbW92ZVwiLCBzdHJpbmcsIHN0cmluZ11cbiAgICB8IFtcIm1vZGVsXCIsIFwiY2hhbmdlXCIsIHN0cmluZ11cbiAgICB8IFtcIm1vZGVsXCIsIFwicmVtb3ZlXCIsIHN0cmluZ11cbiAgICB8IFtcIm1vZGVsXCIsIFwiY2hhbmdlXCJdXG4gICAgfCBbXCJtb2RlbFwiLCBcInJlbW92ZVwiXTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsQ2hhbmdlRXZlbnRQYXRoKHBhdGg/OiBzdHJpbmcsIGZpZWxkTmFtZT86IHN0cmluZyk6IE1vZGVsRXZlbnRQYXRoIHtcbiAgICBpZiAoZmllbGROYW1lICE9IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAocGF0aCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlBhdGggbXVzdCBiZSBkZWZpbmVkXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbXCJtb2RlbFwiLCBcImNoYW5nZVwiLCBwYXRoLCBmaWVsZE5hbWVdO1xuICAgIH1cbiAgICBpZiAocGF0aCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIFtcIm1vZGVsXCIsIFwiY2hhbmdlXCIsIHBhdGhdO1xuICAgIH1cbiAgICByZXR1cm4gW1wibW9kZWxcIiwgXCJjaGFuZ2VcIl07XG59XG5cbmZ1bmN0aW9uIG1hcENodW5rVmFsdWVzKGNodW5rOiBSZWFkb25seU1vZGVsQ2h1bmspOiBBcnJheTx7IFtwYXRoOiBzdHJpbmddOiBNb2RlbFZhbHVlIH0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoY2h1bmspXG4gICAgICAgIC5maWx0ZXIocGF0aCA9PiBjaHVua1twYXRoXSAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY2h1bmtbcGF0aF0sIFwidmFsdWVcIikpXG4gICAgICAgIC5tYXAocGF0aCA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBjaHVua1twYXRoXTtcbiAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHsgW3BhdGhdOiByZXN1bHQudmFsdWUgfTtcbiAgICAgICAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlZHVjZUNodW5rVmFsdWVzKGNodW5rczogQXJyYXk8eyBbcGF0aDogc3RyaW5nXTogTW9kZWxWYWx1ZSB9Pik6IHsgW3BhdGg6IHN0cmluZ106IE1vZGVsVmFsdWUgfSB7XG4gICAgcmV0dXJuIGNodW5rcy5yZWR1Y2UoXG4gICAgICAgIChyZXN1bHQsIGNodW5rKSA9PiAoe1xuICAgICAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICAgICAgLi4uY2h1bmssXG4gICAgICAgIH0pLFxuICAgICAgICB7fVxuICAgICk7XG59XG5cbmNsYXNzIExlZ2FjeVB1YmxpY0Zvcm0gaW1wbGVtZW50cyBJUHVibGljRm9ybSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtOiBJTGVnYWN5Rm9ybTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihmb3JtOiBJTGVnYWN5Rm9ybSkge1xuICAgICAgICB0aGlzLmZvcm0gPSBmb3JtO1xuICAgIH1cblxuICAgIHB1YmxpYyBuYXZpZ2F0ZUJ5SGlnaGxhbmRlclBhdGhzKHBhdGhzOiBzdHJpbmdbXSk6IFByb21pc2U8SUNhbmR5Q29tcG9uZW50SGFuZGxlIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjYW5jZWxTZWxlY3RSZWxhdGl2ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldE5hdmlnYXRpb25QYXRoTWFwcGVyKCk6IE5hdmlnYXRpb25QYXRoTWFwcGVyIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgcHVibGljIGJhdGNoVXBkYXRlKHVwZGF0ZVByb2M6ICh1cGRhdGVBY2Nlc3NvcjogSVVwZGF0ZUZvcm1Nb2RlbEFjY2Vzc29yKSA9PiB2b2lkKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBydW5DaGVjaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEVycm9yTG9nKGVycm9yTG9nOiBQYXJ0aWFsPFNlcnZlckVycm9yTG9nPik6IHZvaWQge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgdmFsaWRhdGVDaGlsZHJlbkJ5UGF0aChwYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgcHVibGljIF9fSU5URVJOQUxfX2ltcG9ydEZyb21FbXBsb3llZVNlcnZpY2UoKTogUHJvbWlzZTxFbXBsb3llZVtdIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBfX0lOVEVSTkFMX19nZXRTZWxlY3RGdW5jdGlvbkZvckRpc2FibGVFbXBsb3llZUluU1MoXG4gICAgICAgIHBhdGhTcGVjOiBzdHJpbmdcbiAgICApOiBQcm9taXNlPChlbXBsb3llZTogRW1wbG95ZWUpID0+IGJvb2xlYW4+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldE1vZGFsVW5pdE9wZW5lZEluc3RhbmNlKHBhZ2VJZDogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRUYWJzU3RhdGUoKTogVGFiSW5mb3NTdGF0ZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuYXZpZ2F0ZShuYXZpZ2F0aW9uUGF0aDogc3RyaW5nKTogUHJvbWlzZTxJQ2FuZHlDb21wb25lbnRIYW5kbGUgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgcHVibGljIGltcG9ydEVtcGxveWVyRG9jdW1lbnRzKFxuICAgICAgICBvcHRpb25zOiBJbXBvcnRFbXBsb3llckRvY3VtZW50c09wdGlvbnNcbiAgICApOiBQcm9taXNlPEVtcGxveWVyTm9ybWFsaXplZFRhZyB8IHVuZGVmaW5lZCB8IG51bGw+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgcHVibGljIGltcG9ydEVtcGxveWVlcyhlbXBsb3llZXM6IEVtcGxveWVlW10sIG9wdGlvbnM/OiB7IHNjZW5hcmlvPzogc3RyaW5nIH0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgcHVibGljIHByaW50KHByaW50VHlwZTogUHJpbnRUeXBlLCBib2R5Pzogc3RyaW5nW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuICAgIHB1YmxpYyBydW5NYXNzQWN0aW9uKGFjdGlvbklkOiBzdHJpbmcsIHBhcmFtZXRlcnM/OiBNYXNzQWN0aW9uUGFyYW1ldGVycyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QnlHSWQoZ0lkOiBzdHJpbmcsIGZpbHRlcj86IERpZ2VzdFF1ZXJ5RmlsdGVyKTogUHJvbWlzZTxQaWNrbGlzdFF1ZXJ5UmVzcG9uc2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5waWNrbGlzdHNQcm92aWRlci5nZXREaWdlc3RBcGlQaWNrbGlzdChnSWQpLnF1ZXJ5KGZpbHRlcik7XG4gICAgfVxuXG4gICAgcHVibGljIG9uKGV2ZW50TmFtZTogc3RyaW5nLCBsaXN0ZW5lcjogRXh0ZXJuYWxIb29rRnVuY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtLmV2ZW50TWFuYWdlci5vbihbXCJmb3JtXCIsIGV2ZW50TmFtZV0sIGxpc3RlbmVyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb2ZmKGV2ZW50TmFtZTogc3RyaW5nLCBsaXN0ZW5lcjogRXh0ZXJuYWxIb29rRnVuY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtLmV2ZW50TWFuYWdlci5vZmYoW1wiZm9ybVwiLCBldmVudE5hbWVdLCBsaXN0ZW5lcik7XG4gICAgfVxuXG4gICAgcHVibGljIG9uTW9kZWxDaGFuZ2UocGF0aDogc3RyaW5nIHwgc3RyaW5nW10sIGxpc3RlbmVyOiB1bmtub3duKTogU3Vic2NyaXB0aW9uIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgdGhyb3cgRXJyb3IoXCJmb3JtLm9uTW9kZWxDaGFuZ2UoKSBpcyBub3Qgc3VwcG9ydGVkIHlldFwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2F2ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5jaGFuZ2VTZXQuc2VuZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5mb3JtLmNoYW5nZVNldC5zdG9wQXV0b3NlbmQoKTtcbiAgICAgICAgaWYgKHRoaXMuZm9ybS51bm1vdW50KSB7XG4gICAgICAgICAgICB0aGlzLmZvcm0udW5tb3VudCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5jaGFuZ2VTZXQuc2VuZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRUb3VyU3RlcHMoKTogU3RlcFtdIHtcbiAgICAgICAgLy8gRm9yIG9sZCBrZXdlYlxuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcHVibGljIHZhbGlkYXRlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModGhpcy5mb3JtLm1vZGVsLmdldENodW5rKHRoaXMuZm9ybS5zZXR0aW5ncy5mb3JtUm9vdCkpO1xuICAgICAgICAvLyBAdHMtaWdub3JlINCt0YLQviDQsiDRgdGC0LDRgNGL0YUg0LTQstC40LbQutCw0YUg0YLRg9GCINGC0LDQutC+0Lkg0LLRi9C30L7QslxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1yZXR1cm5cbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS52YWxpZGF0b3IudmFsaWRhdGVBbGwoa2V5cyk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXRBZGRpdGlvbmFsRW1wbG95ZWVJbmZvKGZpbHRlcnM6IEdldEVtcGxveWVlc1dpdGhBY3RpdmVQZXJpb2RRdWVyeSk6IFByb21pc2U8RW1wbG95ZWVMaXN0IHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIm5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RW1wbG95ZWVzKCk6IFByb21pc2U8RW1wbG95ZWVMaXN0PiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIm5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbWVyZ2VSZWxhdGl2ZSgpOiBQcm9taXNlPE1lcmdlUmVsYXRpdmVSZXNwb25zZSB8IHVuZGVmaW5lZD4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJub3QgaW1wbGVtZW50ZWRcIik7XG4gICAgfVxuXG4gICAgcHVibGljIHBhdGNoUmVsYXRpdmUoKTogUHJvbWlzZTxQYXRjaFJlbGF0aXZlUmVzcG9uc2U+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwibm90IGltcGxlbWVudGVkXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZW5kTWV0cmljcyhhY3Rpb246IHN0cmluZywgcGF5bG9hZD86IE1ldHJpY3NQYXlsb2FkKTogdm9pZCB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIG1hdGNoRW1wbG95ZWUocXVlcnk6IE1hdGNoRW1wbG95ZWVSZXF1ZXN0KTogUHJvbWlzZTxNYXRjaEVtcGxveWVlUmVzcG9uc2U+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwibm90IGltcGxlbWVudGVkXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyByZWxvYWRJbm5lcigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwibm90IGltcGxlbWVudGVkXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRXb3JraW5nRXZlbnRzRm9yRW1wbG95ZWUoZmlsdGVyczogR2V0V29ya2luZ0V2ZW50TGlzdFJlcXVlc3QpOiBQcm9taXNlPFdvcmtpbmdFdmVudExpc3QgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwibm90IGltcGxlbWVudGVkXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYXNFcnJvcnMoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGVycm9yQ291bnQgPSB0aGlzLmZvcm0ubW9kZWwuZ2V0KHRoaXMuZm9ybS5zZXR0aW5ncy5mb3JtUm9vdCwgXCJlcnJvcnNDb3VudFwiKTtcbiAgICAgICAgcmV0dXJuIGVycm9yQ291bnQgIT0gdW5kZWZpbmVkICYmIGVycm9yQ291bnQgPiAwO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkVycm9yc0NvdW50Q2hhbmdlZChsaXN0ZW5lcjogTW9kZWxFdmVudHNMaXN0ZW5lcik6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm0uZXZlbnRNYW5hZ2VyLm9uKG1vZGVsQ2hhbmdlRXZlbnRQYXRoKHRoaXMuZm9ybS5zZXR0aW5ncy5mb3JtUm9vdCwgXCJlcnJvcnNDb3VudFwiKSwgbGlzdGVuZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvZmZFcnJvcnNDb3VudENoYW5nZWQobGlzdGVuZXI6IE1vZGVsRXZlbnRzTGlzdGVuZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtLmV2ZW50TWFuYWdlci5vZmYobW9kZWxDaGFuZ2VFdmVudFBhdGgodGhpcy5mb3JtLnNldHRpbmdzLmZvcm1Sb290LCBcImVycm9yc0NvdW50XCIpLCBsaXN0ZW5lcik7XG4gICAgfVxuXG4gICAgcHVibGljIHNldChwYXRoT3JNb2RlbENodW5rOiB7IFtwYXRoOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfSk6IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xuICAgIHB1YmxpYyBzZXQocGF0aE9yTW9kZWxDaHVuazogc3RyaW5nLCB2YWx1ZTogTW9kZWxWYWx1ZSk6IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xuICAgIHB1YmxpYyBzZXQoXG4gICAgICAgIHBhdGhPck1vZGVsQ2h1bms6IHN0cmluZyB8IHsgW3BhdGg6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9LFxuICAgICAgICB2YWx1ZT86IE1vZGVsVmFsdWVcbiAgICApOiB2b2lkIHwgUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHBhdGhPck1vZGVsQ2h1bmsgIT09IG51bGwgJiZcbiAgICAgICAgICAgIHR5cGVvZiBwYXRoT3JNb2RlbENodW5rICE9PSBcInN0cmluZ1wiICYmXG4gICAgICAgICAgICB0eXBlb2YgcGF0aE9yTW9kZWxDaHVuayA9PT0gXCJvYmplY3RcIiAmJlxuICAgICAgICAgICAgIUFycmF5LmlzQXJyYXkocGF0aE9yTW9kZWxDaHVuaylcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBpbm5lckNodW5rID0gT2JqZWN0LmtleXMocGF0aE9yTW9kZWxDaHVuaykucmVkdWNlPFJlYWRvbmx5TW9kZWxDaHVuaz4oXG4gICAgICAgICAgICAgICAgKHJlc3VsdCwgcGF0aCkgPT4gKHsgW3BhdGhdOiB7IHZhbHVlOiBwYXRoT3JNb2RlbENodW5rW3BhdGhdIH0sIC4uLnJlc3VsdCB9KSxcbiAgICAgICAgICAgICAgICB7fVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgdGhpcy5mb3JtLm1vZGVsLmZpbGwoaW5uZXJDaHVuayk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIHBhdGhPck1vZGVsQ2h1bmsgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5tb2RlbC5zZXQocGF0aE9yTW9kZWxDaHVuaywgXCJ2YWx1ZVwiLCB2YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJmb3JtLnNldCgpIHBhcmFtZXRlciBzaG91bGQgYmUgc3RyaW5nIHBhdGggb3Igb2JqZWN0IHdpdGggcGF0aC12YWx1ZSBwYWlyc1wiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0KHBhdGhPckFycmF5OiBzdHJpbmcgfCBzdHJpbmdbXSk6IHsgW3BhdGg6IHN0cmluZ106IE1vZGVsVmFsdWUgfSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHBhdGhPckFycmF5KSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlZHVjZUNodW5rVmFsdWVzKFxuICAgICAgICAgICAgICAgIHBhdGhPckFycmF5XG4gICAgICAgICAgICAgICAgICAgIC5tYXAocGF0aCA9PiBtYXBDaHVua1ZhbHVlcyh0aGlzLmZvcm0ubW9kZWwuZ2V0Q2h1bmsocGF0aCkpKVxuICAgICAgICAgICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XG4gICAgICAgICAgICAgICAgICAgIC5yZWR1Y2U8QXJyYXk8eyBbcGF0aDogc3RyaW5nXTogTW9kZWxWYWx1ZSB9Pj4oKHJlc3VsdCwgYXJyYXkpID0+IHJlc3VsdC5jb25jYXQoYXJyYXkpLCBbXSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIHBhdGhPckFycmF5ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVkdWNlQ2h1bmtWYWx1ZXMobWFwQ2h1bmtWYWx1ZXModGhpcy5mb3JtLm1vZGVsLmdldENodW5rKHBhdGhPckFycmF5KSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhdGhPckFycmF5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiByZWR1Y2VDaHVua1ZhbHVlcyhtYXBDaHVua1ZhbHVlcyh0aGlzLmZvcm0ubW9kZWwuZ2V0Q2h1bmsodGhpcy5mb3JtLnNldHRpbmdzLmZvcm1Sb290KSkpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImZvcm0uZ2V0KCkgcGFyYW1ldGVyIHNob3VsZCBiZSBzdHJpbmcgcGF0aCBvciBhcnJheSBvZiBwYXRoc1wiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VmFsdWUocGF0aDogc3RyaW5nKTogTW9kZWxWYWx1ZSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLXJldHVyblxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLm1vZGVsLmdldChwYXRoLCBcInZhbHVlXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb3B5U3VidHJlZShcbiAgICAgICAgc291cmNlQmluZGluZ1BhdGg6IEJpbmRpbmdQYXRoIHwgQWJzb2x1dGVSZXNvbHZlZE1vZGVsUGF0aCxcbiAgICAgICAgdGFyZ2V0QmluZGluZ1BhdGg6IEJpbmRpbmdQYXRoIHwgQWJzb2x1dGVSZXNvbHZlZE1vZGVsUGF0aCxcbiAgICAgICAgZG9Ob3RDb3B5UGF0aHM/OiBzdHJpbmdbXVxuICAgICk6IHZvaWQge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRJbnN0YW5jZShwYXRoOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDaGlsZHJlbihwYXRoOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHV1aWRHZW5lcmF0ZSgpOiBzdHJpbmcge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG93TW9kYWwob3B0aW9uczogTW9kYWxPcHRpb25zKTogdm9pZCB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFNlY3Rpb24ob3B0aW9uczogSW5pdFNlY3Rpb25Gb3JtTGlnaHRib3hPcHRpb25zKTogdm9pZCB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNhbGxJbml0U2VjdGlvbihvcHRpb25zOiBDYWxsSW5pdFNlY3Rpb25MaWdodGJveFByb3BzKTogdm9pZCB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHByZWZlcnJlZEludGVyZG9jdW1lbnRUcmFuc2ZlcihvcHRpb25zOiBQcmVmZXJyZWRJbnRlcmRvY3VtZW50VHJhbnNmZXJQcm9wcyk6IHZvaWQge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cbiAgICBwdWJsaWMgY3JlYXRlRmlhc0FwaUNsaWVudChvcHRpb25zOiBGaWFzQ2xpZW50SW5pdE9wdGlvbnMpOiBGaWFzQXBpIHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3BlbkVtcGxveWVlRWRpdG9yKGVtcGxveWVlSWQ6IHN0cmluZykge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVJbnN0YW5jZShwYXRoOiBzdHJpbmcsIGluc3RhbmNlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlSW5zdGFuY2VzKHBhdGg6IHN0cmluZywgaW5zdGFuY2VzOiBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmb2N1c09uQ29udHJvbElmRXhpc3QocGF0aDogQmluZGluZ1BhdGgpOiB2b2lkIHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0QXV0b0ZpZWxkc1RvQXV0b1ZhbHVlKHBhdGhQcmVmaXhlczogc3RyaW5nW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBlbnN1cmVJbnN0YW5jZUZ1bGx5TG9hZGVkKFxuICAgICAgICBiaW5kaW5nUGF0aDogc3RyaW5nIHwgQWJzb2x1dGVSZXNvbHZlZE1vZGVsUGF0aCxcbiAgICAgICAgLi4uaW5zdGFuY2VzOiBzdHJpbmdbXVxuICAgICk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3VzdG9tTm9ybWFsaXplKG5vcm1hbGl6ZXJJZDogc3RyaW5nLCBwYXRoUHJlZml4ZXM6IHN0cmluZ1tdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuICAgIHB1YmxpYyByZW1vdmVJbnN0YW5jZXNCeVJ1bGVzKHJ1bGVzOiBJbnN0YW5jZXNEZWxldGluZ1J1bGVbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVEbnAoKTogUHJvbWlzZTxDb21iaW5lRnVmUmVzdWx0IHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNlbGVjdGVkSW5zdGFuY2VzKFxuICAgICAgICBtdWx0aXBsaWNpdHlQYXRoOiBCaW5kaW5nUGF0aCB8IEFic29sdXRlUmVzb2x2ZWRNb2RlbFBhdGgsXG4gICAgICAgIHRhYmxlVW5pcUlkOiBzdHJpbmcsXG4gICAgICAgIHBhdGhUb0NoZWNrZWQ6IHN0cmluZ1xuICAgICk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTGVnYWN5UHVibGljRm9ybShmb3JtOiBJRm9ybSk6IElQdWJsaWNGb3JtIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgcmV0dXJuIG5ldyBMZWdhY3lQdWJsaWNGb3JtKGZvcm0gYXMgSUxlZ2FjeUZvcm0pO1xufVxuIiwiLy8gdHNsaW50OmRpc2FibGUgbm8tdW5zYWZlLWFueVxuZXhwb3J0IGNsYXNzIExvYWRJbnRvRG9jdW1lbnQge1xuICAgIHB1YmxpYyBzdGF0aWMgc2NyaXB0KHVyaTogc3RyaW5nLCBjYWxsYmFjazogKGVycm9yPzogRXJyb3IpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgbGV0IHNjcmlwdExvYWRlZCA9IGZhbHNlO1xuICAgICAgICBjb25zdCBoZWFkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJoZWFkXCIpWzBdIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgY29uc3Qgc2NyaXB0OiBhbnkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO1xuXG4gICAgICAgIGZ1bmN0aW9uIGxvYWRIYW5kbGVyKCk6IHZvaWQge1xuICAgICAgICAgICAgaWYgKHNjcmlwdExvYWRlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFzY3JpcHQucmVhZHlTdGF0ZSB8fCBzY3JpcHQucmVhZHlTdGF0ZSA9PT0gXCJsb2FkZWRcIiB8fCBzY3JpcHQucmVhZHlTdGF0ZSA9PT0gXCJjb21wbGV0ZVwiKSB7XG4gICAgICAgICAgICAgICAgc2NyaXB0TG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gSGFuZyB0aGUgdXNlciBjYWxsYmFjayB0byBiZSBjYWxsZWQgd2hlbiB0aGUgc2NyaXB0IGNvbXBsZXRlcyB0byBsb2FkLlxuICAgICAgICAvLyBOT1RFKHVzZXIpOiBUaGlzIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIGluIElFIGV2ZW4gdXBvbiBlcnJvci4gSW4gYW55XG4gICAgICAgIC8vIGNhc2UgaXQgaXMgdGhlIGNsaWVudCdzIHJlc3BvbnNpYmlsaXR5IHRvIHZlcmlmeSB0aGF0IHRoZSBzY3JpcHQgcmFuXG4gICAgICAgIC8vIHN1Y2Nlc3NmdWxseS5cbiAgICAgICAgc2NyaXB0Lm9ubG9hZCA9IGxvYWRIYW5kbGVyO1xuICAgICAgICBzY3JpcHQub25yZWFkeXN0YXRlY2hhbmdlID0gbG9hZEhhbmRsZXI7XG5cbiAgICAgICAgLy8gQWRkIGFuIGVycm9yIGNhbGxiYWNrLlxuICAgICAgICAvLyBOT1RFKHVzZXIpOiBOb3Qgc3VwcG9ydGVkIGluIElFLlxuICAgICAgICBzY3JpcHQub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgICAgIGlmIChzY3JpcHQucGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgICAgIHNjcmlwdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHNjcmlwdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoXCJFcnJvciB3aGlsZSBsb2FkaW5nIHNjcmlwdC5cIikpO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIEFkZCB0aGUgc2NyaXB0IGVsZW1lbnQgdG8gdGhlIGRvY3VtZW50LlxuICAgICAgICAvLyBOT1RFKHVzZXIpOiBTYWZhcmkgbmV2ZXIgbG9hZHMgdGhlIHNjcmlwdCBpZiB3ZSBkb24ndCBzZXRcbiAgICAgICAgLy8gdGhlIHNyYyBhdHRyaWJ1dGUgYmVmb3JlIGFwcGVuZGluZy5cbiAgICAgICAgc2NyaXB0LnNyYyA9IHVyaTtcbiAgICAgICAgc2NyaXB0LnNldEF0dHJpYnV0ZShcImNyb3Nzb3JpZ2luXCIsIFwidXNlLWNyZWRlbnRpYWxzXCIpO1xuICAgICAgICBoZWFkLmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBzdHlsZVNoZWV0KHVyaTogc3RyaW5nLCBpZ25vcmVFcnJvcjogYm9vbGVhbiwgY2FsbGJhY2s6IChlcnJvcj86IEVycm9yKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlc29sdmUgPSAoKSA9PiBjYWxsYmFjayh1bmRlZmluZWQpO1xuICAgICAgICBjb25zdCByZWplY3QgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoaWdub3JlRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayh1bmRlZmluZWQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoXCJFcnJvciB3aGlsZSBsb2FkaW5nIHN0eWxlc2hlZXQuXCIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBoZWFkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJoZWFkXCIpWzBdID8/IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpO1xuXG4gICAgICAgIGxpbmsuc2V0QXR0cmlidXRlKFwicmVsXCIsIFwic3R5bGVzaGVldFwiKTtcbiAgICAgICAgbGluay5zZXRBdHRyaWJ1dGUoXCJ0eXBlXCIsIFwidGV4dC9jc3NcIik7XG4gICAgICAgIGxpbmsuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIiwgcmVzb2x2ZSk7XG4gICAgICAgIGxpbmsuYWRkRXZlbnRMaXN0ZW5lcihcImVycm9yXCIsIHJlamVjdCk7XG4gICAgICAgIGhlYWQuYXBwZW5kQ2hpbGQobGluayk7XG4gICAgICAgIGxpbmsuc2V0QXR0cmlidXRlKFwiaHJlZlwiLCB1cmkpO1xuICAgIH1cbn1cbiIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0aWQ6IG1vZHVsZUlkLFxuXHRcdGxvYWRlZDogZmFsc2UsXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuXHRtb2R1bGUubG9hZGVkID0gdHJ1ZTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbiIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIGRlZmluaXRpb24pIHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5nID0gKGZ1bmN0aW9uKCkge1xuXHRpZiAodHlwZW9mIGdsb2JhbFRoaXMgPT09ICdvYmplY3QnKSByZXR1cm4gZ2xvYmFsVGhpcztcblx0dHJ5IHtcblx0XHRyZXR1cm4gdGhpcyB8fCBuZXcgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcblx0fSBjYXRjaCAoZSkge1xuXHRcdGlmICh0eXBlb2Ygd2luZG93ID09PSAnb2JqZWN0JykgcmV0dXJuIHdpbmRvdztcblx0fVxufSkoKTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmhtZCA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuXHRtb2R1bGUgPSBPYmplY3QuY3JlYXRlKG1vZHVsZSk7XG5cdGlmICghbW9kdWxlLmNoaWxkcmVuKSBtb2R1bGUuY2hpbGRyZW4gPSBbXTtcblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG1vZHVsZSwgJ2V4cG9ydHMnLCB7XG5cdFx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0XHRzZXQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdFUyBNb2R1bGVzIG1heSBub3QgYXNzaWduIG1vZHVsZS5leHBvcnRzIG9yIGV4cG9ydHMuKiwgVXNlIEVTTSBleHBvcnQgc3ludGF4LCBpbnN0ZWFkOiAnICsgbW9kdWxlLmlkKTtcblx0XHR9XG5cdH0pO1xuXHRyZXR1cm4gbW9kdWxlO1xufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmosIHByb3ApIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApOyB9IiwiLy8gc3RhcnR1cFxuLy8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4vLyBUaGlzIGVudHJ5IG1vZHVsZSBpcyByZWZlcmVuY2VkIGJ5IG90aGVyIG1vZHVsZXMgc28gaXQgY2FuJ3QgYmUgaW5saW5lZFxudmFyIF9fd2VicGFja19leHBvcnRzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDU5MSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O2VBTUNBLENBQUEsRUFKb0NDLENBQUE7UUFBOUIsU0FBU0MsRUFBc0JDLENBQUE7VUFHbEMsT0FBTyxTQUFQQyxNQUFBLENBQWdCRCxDQUFBLENBQVFFLEVBQUEsRUFBRSxZQUFBRCxNQUFBLENBQVdELENBQUEsQ0FBUUcsT0FBQSxFQUFPLHFCQUN4RDtRQUFBO1FBQUFDLENBQUEsQ0FBQUMsQ0FBQSxDQUFBQyxDQUFBO1VBQUFDLENBQUEsV0FBQUEsQ0FBQTtZQUFBLE9BQUFSLENBQUE7VUFBQTtRQUFBLElBQUFDLENBQUEsR0FBQUksQ0FBQSxDQUFBSSxHQUFBLENBQUFSLENBQUEsSUFBQVMsQ0FBQSx5QkFBQUMsb0JBQUEsR0FBQUEsb0JBQUEsQ0FBQUMsV0FBQSxjQUFBRixDQUFBLENBQUFULENBQUEseUJBQUFVLG9CQUFBLElBQUFBLG9CQUFBLENBQUFFLE9BQUEsQ0FBQUMsU0FBQSxHQUFDaEIsQ0FBQSx5QkFBQWEsb0JBQUEsR0FBQUEsb0JBQUEsQ0FBQUUsT0FBQSxjQUFBZixDQUFBLENBQUFpQixRQUFBLENBSmVmLENBQUEsRUFBcUIsK0lBQUFELENB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
|