{"version":3,"sources":["../../../../src/generated/src/models/parameters.ts","../node_modules/react/index.js","../node_modules/tslib/tslib.es6.js","../__DynamicConstants.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../../../src/utils/Constants.ts","../HelperFuncs.js","../node_modules/react/jsx-runtime.js","../../../../src/generated/src/models/mappers.ts","../../../src/utils/BrowserConstants.ts","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../../../../src/utils/tracing.ts","../InternalConstants.js","../../../../src/utils/utils.common.ts","../../../../src/utils/constants.ts","../../src/keyframes.ts","../../src/motion/AnimationStyles.ts","../../src/classNames/AnimationClassNames.ts","../../src/fonts/FluentFonts.ts","../../src/utilities/buildClassMap.ts","../../src/styles/CommonStyles.ts","../../src/styles/zIndexes.ts","../../src/styles/getFocusStyle.ts","../../src/styles/hiddenContentStyle.ts","../../src/styles/getGlobalClassNames.ts","../../src/effects/FluentDepths.ts","../../src/colors/DefaultPalette.ts","../../src/effects/DefaultEffects.ts","../../src/fonts/createFontStyles.ts","../../src/fonts/DefaultFontStyles.ts","../../src/utilities/makeSemanticColors.ts","../../src/spacing/DefaultSpacing.ts","../../src/createTheme.ts","../../src/mergeThemes.ts","../../src/styles/theme.ts","../../src/utilities/icons.ts","../../src/version.ts","../../src/index.ts","../../src/Constants.ts","../../../src/error/ClientAuthError.ts","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../../../src/utils/StringUtils.ts","../../../src/event/EventType.ts","../../../src/interfaces.ts","../EnvUtils.js","../../../src/operationOptions.ts","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../DataSanitizer.js","../../../src/error/AuthError.ts","../../../out/lib/src/DynamicProto.js","../../../../src/util/utils.ts","../Constants.js","../../src/components/MessageBar/MessageBar.types.ts","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../../src/policies/StorageRetryPolicy.ts","../../../../src/policies/StorageBrowserPolicy.ts","../../../../src/StorageBrowserPolicyFactory.ts","../../../../src/StorageRetryPolicyFactory.ts","../../../../src/utils/cache.ts","../../../../src/policies/StorageBearerTokenChallengeAuthenticationPolicy.ts","../../../../src/Pipeline.ts","../../src/telemetry-extensions-npm.ts","../../../src/httpPipelineLogLevel.ts","../../../../src/policies/requestPolicy.ts","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../../../../src/policies/CredentialPolicy.ts","../../../../src/policies/AnonymousCredentialPolicy.ts","../../../../src/credentials/AnonymousCredential.ts","../../../../src/credentials/Credential.ts","../DiagnosticLogger.js","../../../../src/util/serializer.common.ts","../../src/dom/getWindow.ts","../../src/focus.ts","../../src/elementContainsAttribute.ts","../applicationinsights-common.js","../../src/components/Image/Image.types.ts","../../src/common/DirectionalHint.ts","../../src/KeyCodes.ts","../../../../src/models.ts","../../../../src/credentials/StorageSharedKeyCredential.browser.ts","../StorageHelperFuncs.js","../../modules/createNamedContext.js","../../modules/HistoryContext.js","../../modules/RouterContext.js","../../modules/Router.js","../../modules/MemoryRouter.js","../../modules/Lifecycle.js","../../modules/matchPath.js","../../modules/Route.js","../../modules/StaticRouter.js","../../modules/Switch.js","../../modules/hooks.js","../../../src/error/BrowserConfigurationAuthError.ts","../../../../src/util/base64.browser.ts","../../../src/serializer.ts","../node_modules/@babel/runtime/helpers/esm/extends.js","../../../src/url.ts","../UrlHelperFuncs.js","../../src/dom/getDocument.ts","../ProcessTelemetryContext.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","../Util.js","../../../src/account/ClientInfo.ts","../node_modules/axios/lib/utils.js","../../src/Stylesheet.ts","../../../src/log.ts","../TelemetryHelpers.js","../../../../src/Range.ts","../W3cTraceParent.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../../../../src/log.ts","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../src/memoize.ts","../EventHelpers.js","../../src/components/FocusZone/FocusZone.types.ts","../../src/customizations/Customizations.ts","../../../../src/sas/SasIPRange.ts","../RandomHelper.js","../../../../src/util/constants.ts","../../../../src/util/inspect.browser.ts","../../../src/restError.ts","../../../src/version.ts","../../../../src/internal/semver.ts","../../../../src/internal/global-utils.ts","../../../../src/diag/ComponentLogger.ts","../../../../src/diag/types.ts","../../../../src/api/diag.ts","../../../../src/diag/internal/logLevelLogger.ts","../../../../src/baggage/internal/baggage-impl.ts","../../../../src/baggage/internal/symbol.ts","../../../../src/baggage/utils.ts","../../../../src/diag/consoleLogger.ts","../../../../src/propagation/TextMapPropagator.ts","../../../../src/context/context.ts","../../../../src/trace/trace_flags.ts","../../../../src/context/NoopContextManager.ts","../../../../src/api/context.ts","../../../../src/trace/invalid-span-constants.ts","../../../../src/trace/NonRecordingSpan.ts","../../../../src/trace/context-utils.ts","../../../../src/trace/spancontext-utils.ts","../../../../src/trace/NoopTracer.ts","../../../../src/trace/ProxyTracer.ts","../../../../src/trace/SamplingResult.ts","../../../../src/trace/span_kind.ts","../../../../src/trace/status.ts","../../../../src/trace/ProxyTracerProvider.ts","../../../../src/trace/NoopTracerProvider.ts","../../../../src/trace/internal/tracestate-validators.ts","../../../../src/trace/internal/tracestate-impl.ts","../../../../src/api/trace.ts","../../../../src/propagation/NoopTextMapPropagator.ts","../../../../src/baggage/context-helpers.ts","../../../../src/api/propagation.ts","../../../src/index.ts","../../src/getParent.ts","../../src/getVirtualParent.ts","../../src/isVirtualElement.ts","../../../../src/util/delay.ts","../../../../src/util/typeguards.ts","../../src/StyleOptionsState.ts","../../src/useConst.ts","../../src/components/Icon/Icon.styles.ts","../../../src/httpHeaders.ts","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../src/components/Spinner/Spinner.types.ts","../../../../src/Clients.ts","../../src/Helpers.ts","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../../src/getVendorSettings.ts","../../src/transforms/kebabRules.ts","../../src/transforms/prefixRules.ts","../../src/transforms/provideUnits.ts","../../src/transforms/rtlifyRules.ts","../../src/styleToClassName.ts","../../src/tokenizeWithParentheses.ts","../../../src/authority/AuthorityType.ts","../Enums.js","../DataCacheHelper.js","../PerfManager.js","../../../src/error/InteractionRequiredAuthError.ts","../../../../src/sas/SASQueryParameters.ts","../CoreUtils.js","../../../src/queryCollectionFormat.ts","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../../src/customizations/CustomizerContext.ts","../../../../src/cache/entities/AccountEntity.ts","../../src/rtl.ts","../node_modules/process/browser.js","../node_modules/webpack/buildin/global.js","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../../src/components/Dialog/DialogContent.types.ts","../../../../src/utils/utils.browser.ts","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../EnumHelperFuncs.js","../../../src/debug.ts","../../../../src/policies/proxyPolicy.browser.ts","../../src/TsLibShims.ts","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/axios/index.js","../../src/dom/canUseDOM.ts","../../src/components/Button/BaseButton.styles.ts","../../../../src/StorageClient.ts","../../src/aria.ts","../../src/components/ContextualMenu/ContextualMenu.types.ts","../../src/components/Icon/ImageIcon.tsx","../../src/osDetector.ts","../../src/mobileDetector.ts","../../src/utilities/contextualMenu/contextualMenuUtility.ts","../../src/utilities/positioning/positioning.types.ts","../../src/Rectangle.ts","../../src/utilities/positioning/positioning.ts","../../src/WindowProvider.tsx","../../src/useTarget.ts","../../src/components/Callout/CalloutContent.base.tsx","../../src/components/Callout/CalloutContent.styles.ts","../../src/components/Callout/CalloutContent.tsx","../../src/components/Callout/Callout.tsx","../../src/components/ContextualMenu/ContextualMenuItem.base.tsx","../../src/utilities/keytips/KeytipConstants.ts","../../src/components/Divider/VerticalDivider.classNames.ts","../../src/components/ContextualMenu/ContextualMenu.cnstyles.ts","../../src/components/ContextualMenu/ContextualMenu.classNames.ts","../../src/components/ContextualMenu/ContextualMenuItem.ts","../../src/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuItemWrapper.tsx","../../src/utilities/keytips/KeytipManager.ts","../../src/utilities/keytips/KeytipUtils.ts","../../src/components/KeytipData/useKeytipData.ts","../../src/components/KeytipData/KeytipData.tsx","../../src/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuAnchor.tsx","../../src/components/Divider/VerticalDivider.base.tsx","../../src/components/Divider/VerticalDivider.tsx","../../src/components/Divider/VerticalDivider.styles.ts","../../src/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuSplitButton.tsx","../../src/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuButton.tsx","../../src/utilities/MenuContext/MenuContext.ts","../../src/components/ContextualMenu/ContextualMenu.base.tsx","../../src/components/ContextualMenu/ContextualMenu.styles.ts","../../src/components/ContextualMenu/ContextualMenu.tsx","../../src/components/Button/BaseButton.classNames.ts","../../src/components/Button/SplitButton/SplitButton.classNames.ts","../../src/components/Button/BaseButton.tsx","../../../src/app/IPublicClientApplication.ts","../../../src/event/EventMessage.ts","../../src/MsalContext.ts","../../src/utils/utilities.ts","../../src/packageMetadata.ts","../../src/MsalProvider.tsx","../../src/hooks/useMsal.ts","../../src/hooks/useIsAuthenticated.ts","../../src/error/ReactAuthError.ts","../CookieMgr.js","../../src/sessionStorage.ts","../../src/properties.ts","../Initialization.js","../RequestResponseHeaders.js","../ConnectionStringParser.js","../ContextTagKeys.js","../PartAExtensions.js","../node_modules/prop-types/index.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/moment/moment.js","../../src/concatStyleSets.ts","../../src/utilities.ts","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../../../../src/util/xml.browser.ts","../../../../src/policies/msRestUserAgentPolicy.browser.ts","../../../../src/policies/userAgentPolicy.ts","../../../../src/policies/redirectPolicy.ts","../../../../src/util/exponentialBackoffStrategy.ts","../../../../src/policies/exponentialRetryPolicy.ts","../../../src/operationParameter.ts","../../../src/operationSpec.ts","../../../src/httpClientCache.ts","../../../../src/policies/ndJsonPolicy.ts","../../../../src/policies/rpRegistrationPolicy.ts","../../../../src/policies/signingPolicy.ts","../../../../src/policies/systemErrorRetryPolicy.ts","../../../../src/policies/throttlingRetryPolicy.ts","../../../../src/util/throttlingRetryStrategy.ts","../../../src/serviceClient.ts","../../../../src/generated/src/storageClientContext.ts","../../src/setFocusVisibility.ts","../../../src/ErrorState/ErrorStateComponent.types.ts","../../src/elementContains.ts","../../../src/tokenCredential.ts","../node_modules/axios/lib/cancel/Cancel.js","../../../src/utils/utils.ts","../DomHelperFuncs.js","../TelemetryItemCreator.js","../../src/warn/warn.ts","../node_modules/@babel/runtime/helpers/esm/typeof.js","../../../src/logger/Logger.ts","../DbgExtensionUtils.js","../UnloadHandlerContainer.js","../../src/extractStyleParts.ts","../../src/findElementRecursive.ts","../node_modules/react-dom/index.js","../../src/components/Button/SplitButton/SplitButton.styles.ts","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../../../../src/util/sanitizer.ts","../../../../src/BlobLeaseClient.ts","../../../../src/sas/BlobSASPermissions.ts","../../../../src/sas/ContainerSASPermissions.ts","../../../../src/credentials/UserDelegationKeyCredential.browser.ts","../../../../src/sas/BlobSASSignatureValues.ts","../../src/components/Image/Image.base.tsx","../../src/components/Image/Image.styles.ts","../../src/components/Image/Image.tsx","../../src/setVersion.ts","../../../../src/policies/deserializationPolicy.ts","../../../src/webResource.ts","../../../../src/PageBlobRangeResponse.ts","../../src/useOnEvent.ts","../node_modules/object-assign/index.js","../node_modules/axios/lib/defaults/index.js","../../../src/utils/Enum.ts","../ApplicationInsightsDeprecated.js","../LoggingEnums.js","../ApplicationInsightsContainer.js","../Envelope.js","../Event.js","../Exception.js","../PageView.js","../RemoteDependencyData.js","../Trace.js","../PageViewPerformance.js","../Data.js","../SeverityLevel.js","../IConfig.js","../DataPoint.js","../Metric.js","../../../es/index.mjs","../BaseTelemetryPlugin.js","../../src/Async.ts","../../src/setPortalAttribute.ts","../../../../src/policies/keepAlivePolicy.ts","../../../../src/policies/generateClientRequestIdPolicy.ts","../../../../src/policies/logPolicy.ts","../../../../src/utils/Batch.ts","../../../../src/utils/Mutex.ts","../node_modules/path-to-regexp/index.js","../../src/hoist.ts","../../src/utilities/decorators/BaseDecorator.ts","../../src/utilities/decorators/withResponsiveMode.tsx","../../src/mergeStyles.ts","../../../../src/generated/src/operations/blob.ts","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/env/data.js","../../../src/contracts/BusinessProcessEvent.ts","../../../src/config/UsageAttributeHandler.ts","../../../../src/platform/browser/globalThis.ts","../node_modules/buffer/index.js","../node_modules/react-is/index.js","../node_modules/is-retry-allowed/index.js","../NotificationManager.js","../../src/GlobalSettings.ts","../../src/components/Icon/FontIcon.tsx","../../src/warn/warnDeprecations.ts","../../src/slots.tsx","../../src/array.ts","../../src/object.ts","../../src/EventGroup.ts","../../src/hoistStatics.ts","../../src/warn/warnConditionallyRequiredProps.ts","../../../../src/TelemetryPolicyFactory.ts","../../../../src/policies/TelemetryPolicy.ts","../../../src/log.browser.ts","../../../../src/policies/disableResponseDecompressionPolicy.browser.ts","../../../../src/BlobDownloadResponse.browser.ts","../../../../src/policies/bearerTokenAuthenticationPolicy.ts","../node_modules/events/events.js","../../../../src/BlobQueryResponse.browser.ts","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.js","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../ChannelController.js","../TelemetryInitializerPlugin.js","../BaseCore.js","../../src/components/Button/DefaultButton/DefaultButton.styles.ts","../../src/components/Button/ButtonThemes.ts","../../src/components/Button/DefaultButton/DefaultButton.tsx","../../src/components/Dialog/DialogFooter.base.tsx","../../src/components/Dialog/DialogFooter.styles.ts","../../src/components/Dialog/DialogFooter.tsx","../../../../src/policies/tracingPolicy.ts","../../../../src/utils/traceParentHeader.ts","../../../src/poller.ts","../../../../src/pollers/BlobStartCopyFromUrlPoller.ts","../../src/css.ts","../../src/getId.ts","../../../src/AbortSignal.ts","../../../src/AbortController.ts","../node_modules/react/cjs/react.production.min.js","../node_modules/webpack/buildin/module.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../../../src/contracts/FeatureUsageEventV2.ts","../../../src/contracts/SystemEvent.ts","../../../src/contracts/EnvironmentValues.ts","../../../src/config/Correlator.ts","../node_modules/jquery/dist/jquery.js","../../../src/utils/HttpUtil.ts","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../src/usePrevious.ts","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/isarray/index.js","../node_modules/timers-browserify/main.js","../node_modules/setimmediate/setImmediate.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/path-to-regexp/node_modules/isarray/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../AppInsightsCore.js","../../src/mergeStyleSets.ts","../../src/useMergedRefs.ts","../../src/createMergedRef.ts","../../src/getPropsWithDefaults.ts","../../src/useAsync.ts","../../src/dom/on.ts","../../src/scroll.ts","../../src/portalContainsElement.ts","../../src/modalize.ts","../../src/customizations/customizable.tsx","../../../src/createSpan.ts","../../../../src/generated/src/operations/container.ts","../../../../src/generated/src/operations/appendBlob.ts","../../../../src/generated/src/operations/blockBlob.ts","../../../../storage-common/src/BufferScheduler.browser.ts","../../../../src/generated/src/operations/pageBlob.ts","../Application.js","../Device.js","../Internal.js","../Location.js","../Session.js","../TelemetryTrace.js","../User.js","../TelemetryContext.js","../PropertiesPlugin.js","../EnvelopeCreator.js","../Offline.js","../SendBuffer.js","../Sender.js","../Serializer.js","../HashCodeScoreGenerator.js","../SamplingScoreGenerator.js","../Sample.js","../PageViewManager.js","../PageViewPerformanceManager.js","../PageVisitTimeManager.js","../Timing.js","../AnalyticsPlugin.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/regex.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/validate.js","../node_modules/uuid/dist/esm-browser/v4.js","../ajaxRecord.js","../ajax.js","../../src/appendFunction.ts","../../src/initializeComponentRef.ts","../../src/extendComponent.ts","../../src/BaseComponent.ts","../InstrumentHooks.js","../ReactPlugin.js","../../src/classNamesFunction.ts","../../src/concatStyleSetsWithProps.ts","../../src/fontFace.ts","../../src/merge.ts","../../src/useIsomorphicLayoutEffect.ts","../../src/DelayedRender.tsx","../../src/createComponent.tsx","../../src/components/Button/PrimaryButton/PrimaryButton.tsx","../../src/componentAs/composeComponentAs.tsx","../../src/useId.ts","../../src/utilities/hooks/useResponsiveMode.tsx","../../src/components/FocusZone/FocusZone.tsx","../../src/components/Popup/Popup.tsx","../../src/renderFunction/composeRenderFunction.tsx","../../src/useBoolean.ts","../../../src/xhrHttpClient.ts","../../../../src/telemetry/performance/PerformanceEvent.ts","../../../src/crypto/CryptoOps.ts","../../../src/error/JoseHeaderError.ts","../../../src/crypto/JoseHeader.ts","../../../src/utils/MathUtils.ts","../../../src/crypto/GuidGenerator.ts","../../../src/utils/BrowserStringUtils.ts","../../../src/encode/Base64Encode.ts","../../../src/encode/Base64Decode.ts","../../../src/error/BrowserAuthError.ts","../../../src/crypto/PkceGenerator.ts","../../../src/crypto/BrowserCrypto.ts","../../../src/cache/DatabaseStorage.ts","../../../src/cache/MemoryStorage.ts","../../../src/cache/AsyncMemoryStorage.ts","../../../src/account/CcsCredential.ts","../../../../src/telemetry/performance/PerformanceClient.ts","../../../../src/telemetry/performance/StubPerformanceClient.ts","../../../src/crypto/ICrypto.ts","../../../src/error/ServerError.ts","../../../../src/cache/entities/CredentialEntity.ts","../../../src/error/ClientConfigurationError.ts","../../../src/request/ScopeSet.ts","../../../src/account/AuthToken.ts","../../../src/cache/CacheManager.ts","../../../../src/cache/entities/IdTokenEntity.ts","../../../src/utils/TimeUtils.ts","../../../../src/cache/entities/AccessTokenEntity.ts","../../../../src/cache/entities/RefreshTokenEntity.ts","../../../../src/cache/entities/AppMetadataEntity.ts","../../../../src/cache/entities/ServerTelemetryEntity.ts","../../../../src/cache/entities/AuthorityMetadataEntity.ts","../../../../src/cache/entities/ThrottlingEntity.ts","../../../src/utils/ProtocolUtils.ts","../../../src/authority/ProtocolMode.ts","../../../src/authority/AuthorityOptions.ts","../../../src/cache/BrowserStorage.ts","../../../src/url/UrlString.ts","../../../src/utils/BrowserProtocolUtils.ts","../../../src/cache/BrowserCacheManager.ts","../../../src/config/ClientConfiguration.ts","../../../src/network/INetworkModule.ts","../../../src/network/FetchClient.ts","../../../src/network/XhrClient.ts","../../../src/utils/BrowserUtils.ts","../../../src/navigation/NavigationClient.ts","../../../src/config/Configuration.ts","../../../src/crypto/PopTokenGenerator.ts","../../../src/event/EventHandler.ts","../../../src/network/ThrottlingUtils.ts","../../../src/network/NetworkManager.ts","../../../src/client/BaseClient.ts","../../../src/request/RequestValidator.ts","../../../src/request/RequestParameterBuilder.ts","../../../../src/cache/entities/CacheRecord.ts","../../../../src/cache/persistence/TokenCacheContext.ts","../../../src/response/ResponseHandler.ts","../../../src/client/AuthorizationCodeClient.ts","../../../src/authority/OpenIdConfigResponse.ts","../../../src/authority/AuthorityMetadata.ts","../../../src/authority/RegionDiscovery.ts","../../../src/error/NativeAuthError.ts","../../../src/authority/Authority.ts","../../../src/authority/CloudInstanceDiscoveryResponse.ts","../../../src/authority/AuthorityFactory.ts","../../../../src/telemetry/server/ServerTelemetryManager.ts","../../../src/interaction_client/BaseInteractionClient.ts","../../../src/interaction_client/StandardInteractionClient.ts","../../../src/client/RefreshTokenClient.ts","../../../src/client/SilentFlowClient.ts","../../../src/interaction_client/SilentCacheClient.ts","../../../src/interaction_client/NativeInteractionClient.ts","../../../../src/broker/nativeBroker/NativeMessageHandler.ts","../../../src/interaction_handler/InteractionHandler.ts","../../../src/interaction_client/PopupClient.ts","../../../src/interaction_handler/RedirectHandler.ts","../../../src/interaction_client/RedirectClient.ts","../../../src/interaction_handler/SilentHandler.ts","../../../src/interaction_client/SilentIframeClient.ts","../../../src/interaction_client/SilentRefreshClient.ts","../../../src/cache/TokenCache.ts","../../../src/interaction_client/HybridSpaAuthorizationCodeClient.ts","../../../src/interaction_client/SilentAuthCodeClient.ts","../../../src/telemetry/BrowserPerformanceMeasurement.ts","../../../src/telemetry/BrowserPerformanceClient.ts","../../../src/app/PublicClientApplication.ts","../../../src/app/ClientApplication.ts","../../src/fabric-icons.ts","../../src/fabric-icons-0.ts","../../src/fabric-icons-1.ts","../../src/fabric-icons-2.ts","../../src/fabric-icons-3.ts","../../src/fabric-icons-4.ts","../../src/fabric-icons-5.ts","../../src/fabric-icons-6.ts","../../src/fabric-icons-7.ts","../../src/fabric-icons-8.ts","../../src/fabric-icons-9.ts","../../src/fabric-icons-10.ts","../../src/fabric-icons-11.ts","../../src/fabric-icons-12.ts","../../src/fabric-icons-13.ts","../../src/fabric-icons-14.ts","../../src/fabric-icons-15.ts","../../src/fabric-icons-16.ts","../../src/fabric-icons-17.ts","../../src/iconAliases.ts","../../src/useEventCallback.ts","../../src/useUnmount.ts","../../src/components/FocusTrapZone/FocusTrapZone.tsx","../../src/components/Modal/Modal.styles.ts","../../src/components/Overlay/Overlay.base.tsx","../../src/components/Overlay/Overlay.styles.ts","../../src/components/Overlay/Overlay.tsx","../../src/utilities/DraggableZone/DraggableZone.styles.ts","../../src/utilities/DraggableZone/DraggableZone.tsx","../../src/useSetTimeout.ts","../../src/components/Modal/Modal.base.tsx","../../src/components/Modal/Modal.ts","../../src/components/Dialog/DialogContent.base.tsx","../../src/components/Dialog/DialogContent.styles.ts","../../src/components/Dialog/DialogContent.tsx","../../src/components/Dialog/Dialog.base.tsx","../../src/components/Dialog/Dialog.styles.ts","../../src/components/Dialog/Dialog.tsx","../../src/customizations/mergeSettings.ts","../../src/customizations/Customizer.tsx","../../src/customizations/mergeCustomizations.ts","../../src/components/Fabric/Fabric.base.tsx","../../src/components/Fabric/Fabric.styles.ts","../../src/components/Fabric/Fabric.tsx","../../../../src/generated/src/operations/service.ts","../../../../src/BatchUtils.browser.ts","../../../../src/BatchResponseParser.ts","../../../../src/BlobBatch.ts","../../../../src/BlobBatchClient.ts","../../../../src/ContainerClient.ts","../../../../src/sas/AccountSASPermissions.ts","../../../../src/sas/AccountSASResourceTypes.ts","../../../../src/sas/AccountSASServices.ts","../../../../src/sas/AccountSASSignatureValues.ts","../../../../src/BlobServiceClient.ts","../../src/components/Text/Text.ts","../../src/components/Text/Text.view.tsx","../../src/components/Text/Text.styles.ts","../../../../src/ErrorState/__icons__/ErrorStateUtility.ts","../../../../src/ErrorState/__icons__/CatHoldingCableSvg.tsx","../../../../src/ErrorState/__icons__/DitachedCableAndSwitchBoardSvg.tsx","../../../src/ErrorState/ErrorStateComponent.base.tsx","../../../../src/ErrorState/__icons__/OrangeCapSvg.tsx","../../../../src/ErrorState/__icons__/OrangeCapWithCatSvg.tsx","../../../src/ErrorState/ErrorStateComponent.ts","../../../src/ErrorState/ErrorStateComponent.styles.ts","../../src/PortalCompatContext.ts","../../src/components/Layer/Layer.notification.ts","../../src/components/Layer/Layer.base.tsx","../../src/setVirtualParent.ts","../../src/components/Layer/Layer.styles.ts","../../src/components/Layer/Layer.tsx","../../src/components/Stack/StackUtils.ts","../../src/components/Stack/Stack.styles.ts","../../src/components/Stack/StackItem/StackItem.styles.ts","../../src/components/Stack/StackItem/StackItem.tsx","../../src/components/Stack/Stack.tsx","../../src/components/Nav/Nav.base.tsx","../../src/components/Button/ActionButton/ActionButton.styles.ts","../../src/components/Button/ActionButton/ActionButton.tsx","../../src/components/Nav/Nav.styles.ts","../../src/components/Nav/Nav.tsx","../../src/components/Link/useLink.ts","../../src/components/Link/Link.base.tsx","../../src/components/Link/Link.styles.ts","../../src/components/Link/Link.tsx","../../src/components/Icon/Icon.types.ts","../../src/components/Icon/Icon.base.tsx","../../src/components/Icon/Icon.tsx","../../src/components/Spinner/Spinner.base.tsx","../../src/components/Spinner/Spinner.styles.tsx","../../src/components/Spinner/Spinner.tsx","../../src/components/MessageBar/MessageBar.base.tsx","../../src/components/MessageBar/MessageBar.styles.ts","../../src/components/MessageBar/MessageBar.tsx","../../src/customizations/useCustomizationSettings.ts","../../src/styled.tsx","../../src/language.ts","../../src/localStorage.ts","../../src/keyboard.ts","../../src/useFocusRects.ts","../../src/components/Button/IconButton/IconButton.styles.ts","../../src/components/Button/IconButton/IconButton.tsx"],"names":["contentType","parameterPath","mapper","defaultValue","isConstant","serializedName","type","name","blobServiceProperties","accept","url","required","xmlName","skipEncoding","restype","comp","timeoutInSeconds","constraints","InclusiveMinimum","version","requestId","accept1","comp1","comp2","prefix","marker","maxPageSize","include","xmlElementName","element","allowedValues","collectionFormat","Csv","keyInfo","comp3","restype1","body","comp4","contentLength","multipartContentType","comp5","where","restype2","metadata","value","headerCollectionPrefix","access","defaultEncryptionScope","preventEncryptionScopeOverride","leaseId","ifModifiedSince","ifUnmodifiedSince","comp6","comp7","containerAcl","xmlIsWrapped","className","comp8","deletedContainerName","deletedContainerVersion","comp9","sourceContainerName","sourceLeaseId","comp10","action","duration","proposedLeaseId","action1","leaseId1","action2","action3","breakPeriod","action4","proposedLeaseId1","include1","delimiter","snapshot","versionId","range","rangeGetContentMD5","rangeGetContentCRC64","encryptionKey","encryptionKeySha256","encryptionAlgorithm","ifMatch","ifNoneMatch","ifTags","deleteSnapshots","blobDeleteType","comp11","expiryOptions","expiresOn","blobCacheControl","blobContentType","blobContentMD5","blobContentEncoding","blobContentLanguage","blobContentDisposition","comp12","immutabilityPolicyExpiry","immutabilityPolicyMode","comp13","legalHold","encryptionScope","comp14","tier","rehydratePriority","sourceIfModifiedSince","sourceIfUnmodifiedSince","sourceIfMatch","sourceIfNoneMatch","sourceIfTags","copySource","blobTagsString","sealBlob","legalHold1","xMsRequiresSync","sourceContentMD5","copySourceAuthorization","copySourceTags","comp15","copyActionAbortConstant","copyId","comp16","tier1","queryRequest","comp17","comp18","tags","transactionalContentMD5","transactionalContentCrc64","blobType","blobContentLength","blobSequenceNumber","contentType1","body1","accept2","comp19","pageWrite","ifSequenceNumberLessThanOrEqualTo","ifSequenceNumberLessThan","ifSequenceNumberEqualTo","pageWrite1","sourceUrl","sourceRange","sourceContentCrc64","range1","comp20","prevsnapshot","prevSnapshotUrl","sequenceNumberAction","comp21","blobType1","comp22","maxSize","appendPosition","sourceRange1","comp23","blobType2","copySourceBlobProperties","comp24","blockId","blocks","comp25","listType","module","exports","require","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","result","done","then","__generator","f","y","g","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","pop","push","__createBinding","o","m","k","k2","undefined","__esModule","writable","configurable","enumerable","get","__exportStar","__values","__read","ar","error","__spread","concat","__spreadArrays","il","a","j","jl","__spreadArray","to","from","pack","l","slice","__await","__asyncGenerator","asyncIterator","q","resume","fulfill","settle","shift","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","raw","__setModuleDefault","__importStar","mod","__importDefault","default","__classPrivateFieldGet","receiver","state","kind","has","__classPrivateFieldSet","set","__classPrivateFieldIn","_regeneratorRuntime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","toStringTag","define","obj","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","context","Context","_invoke","method","arg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","abrupt","record","tryCatch","fn","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","AsyncIterator","PromiseImpl","invoke","unwrapped","previousPromise","callInvokeWithMethodAndArg","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","iter","keys","object","reverse","skipTempReset","prev","charAt","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","BlobServiceProperties","modelProperties","blobAnalyticsLogging","hourMetrics","minuteMetrics","cors","defaultServiceVersion","deleteRetentionPolicy","staticWebsite","Logging","deleteProperty","read","write","retentionPolicy","RetentionPolicy","enabled","days","Metrics","includeAPIs","CorsRule","allowedOrigins","allowedMethods","allowedHeaders","exposedHeaders","maxAgeInSeconds","StaticWebsite","indexDocument","errorDocument404Path","defaultIndexDocumentPath","StorageError","message","code","BlobServiceStatistics","geoReplication","GeoReplication","status","lastSyncOn","ListContainersSegmentResponse","serviceEndpoint","xmlIsAttribute","containerItems","continuationToken","ContainerItem","deleted","properties","ContainerProperties","lastModified","etag","leaseStatus","leaseState","leaseDuration","publicAccess","hasImmutabilityPolicy","hasLegalHold","deletedOn","remainingRetentionDays","isImmutableStorageWithVersioningEnabled","KeyInfo","startsOn","UserDelegationKey","signedObjectId","signedTenantId","signedStartsOn","signedExpiresOn","signedService","signedVersion","FilterBlobSegment","blobs","FilterBlobItem","containerName","BlobTags","blobTagSet","BlobTag","SignedIdentifier","id","accessPolicy","AccessPolicy","permissions","ListBlobsFlatSegmentResponse","segment","BlobFlatListSegment","blobItems","BlobItemInternal","isCurrentVersion","blobTags","objectReplicationMetadata","hasVersionsOnly","BlobName","encoded","content","BlobPropertiesInternal","createdOn","contentEncoding","contentLanguage","contentMD5","contentDisposition","cacheControl","copyStatus","copyProgress","copyCompletedOn","copyStatusDescription","serverEncrypted","incrementalCopy","destinationSnapshot","accessTier","accessTierInferred","archiveStatus","customerProvidedKeySha256","accessTierChangedOn","tagCount","isSealed","lastAccessedOn","immutabilityPolicyExpiresOn","ListBlobsHierarchySegmentResponse","BlobHierarchyListSegment","blobPrefixes","BlobPrefix","BlockLookupList","committed","uncommitted","latest","BlockList","committedBlocks","uncommittedBlocks","Block","size","PageList","pageRange","clearRange","PageRange","start","end","ClearRange","QueryRequest","queryType","expression","inputSerialization","outputSerialization","QuerySerialization","format","QueryFormat","delimitedTextConfiguration","jsonTextConfiguration","arrowConfiguration","parquetTextConfiguration","DelimitedTextConfiguration","columnSeparator","fieldQuote","recordSeparator","escapeChar","headersPresent","JsonTextConfiguration","ArrowConfiguration","schema","ArrowField","precision","scale","ServiceSetPropertiesHeaders","clientRequestId","errorCode","ServiceSetPropertiesExceptionHeaders","ServiceGetPropertiesHeaders","ServiceGetPropertiesExceptionHeaders","ServiceGetStatisticsHeaders","date","ServiceGetStatisticsExceptionHeaders","ServiceListContainersSegmentHeaders","ServiceListContainersSegmentExceptionHeaders","ServiceGetUserDelegationKeyHeaders","ServiceGetUserDelegationKeyExceptionHeaders","ServiceGetAccountInfoHeaders","skuName","accountKind","isHierarchicalNamespaceEnabled","ServiceGetAccountInfoExceptionHeaders","ServiceSubmitBatchHeaders","ServiceSubmitBatchExceptionHeaders","ServiceFilterBlobsHeaders","ServiceFilterBlobsExceptionHeaders","ContainerCreateHeaders","ContainerCreateExceptionHeaders","ContainerGetPropertiesHeaders","blobPublicAccess","denyEncryptionScopeOverride","ContainerGetPropertiesExceptionHeaders","ContainerDeleteHeaders","ContainerDeleteExceptionHeaders","ContainerSetMetadataHeaders","ContainerSetMetadataExceptionHeaders","ContainerGetAccessPolicyHeaders","ContainerGetAccessPolicyExceptionHeaders","ContainerSetAccessPolicyHeaders","ContainerSetAccessPolicyExceptionHeaders","ContainerRestoreHeaders","ContainerRestoreExceptionHeaders","ContainerRenameHeaders","ContainerRenameExceptionHeaders","ContainerSubmitBatchHeaders","ContainerSubmitBatchExceptionHeaders","ContainerFilterBlobsHeaders","ContainerFilterBlobsExceptionHeaders","ContainerAcquireLeaseHeaders","ContainerAcquireLeaseExceptionHeaders","ContainerReleaseLeaseHeaders","ContainerReleaseLeaseExceptionHeaders","ContainerRenewLeaseHeaders","ContainerRenewLeaseExceptionHeaders","ContainerBreakLeaseHeaders","leaseTime","ContainerBreakLeaseExceptionHeaders","ContainerChangeLeaseHeaders","ContainerChangeLeaseExceptionHeaders","ContainerListBlobFlatSegmentHeaders","ContainerListBlobFlatSegmentExceptionHeaders","ContainerListBlobHierarchySegmentHeaders","ContainerListBlobHierarchySegmentExceptionHeaders","ContainerGetAccountInfoHeaders","ContainerGetAccountInfoExceptionHeaders","BlobDownloadHeaders","objectReplicationPolicyId","objectReplicationRules","contentRange","acceptRanges","blobCommittedBlockCount","isServerEncrypted","lastAccessed","contentCrc64","BlobDownloadExceptionHeaders","BlobGetPropertiesHeaders","isIncrementalCopy","BlobGetPropertiesExceptionHeaders","BlobDeleteHeaders","BlobDeleteExceptionHeaders","BlobUndeleteHeaders","BlobUndeleteExceptionHeaders","BlobSetExpiryHeaders","BlobSetExpiryExceptionHeaders","BlobSetHttpHeadersHeaders","BlobSetHttpHeadersExceptionHeaders","BlobSetImmutabilityPolicyHeaders","BlobSetImmutabilityPolicyExceptionHeaders","BlobDeleteImmutabilityPolicyHeaders","BlobDeleteImmutabilityPolicyExceptionHeaders","BlobSetLegalHoldHeaders","BlobSetLegalHoldExceptionHeaders","BlobSetMetadataHeaders","BlobSetMetadataExceptionHeaders","BlobAcquireLeaseHeaders","BlobAcquireLeaseExceptionHeaders","BlobReleaseLeaseHeaders","BlobReleaseLeaseExceptionHeaders","BlobRenewLeaseHeaders","BlobRenewLeaseExceptionHeaders","BlobChangeLeaseHeaders","BlobChangeLeaseExceptionHeaders","BlobBreakLeaseHeaders","BlobBreakLeaseExceptionHeaders","BlobCreateSnapshotHeaders","BlobCreateSnapshotExceptionHeaders","BlobStartCopyFromURLHeaders","BlobStartCopyFromURLExceptionHeaders","BlobCopyFromURLHeaders","xMsContentCrc64","BlobCopyFromURLExceptionHeaders","BlobAbortCopyFromURLHeaders","BlobAbortCopyFromURLExceptionHeaders","BlobSetTierHeaders","BlobSetTierExceptionHeaders","BlobGetAccountInfoHeaders","BlobGetAccountInfoExceptionHeaders","BlobQueryHeaders","copyCompletionTime","BlobQueryExceptionHeaders","BlobGetTagsHeaders","BlobGetTagsExceptionHeaders","BlobSetTagsHeaders","BlobSetTagsExceptionHeaders","PageBlobCreateHeaders","PageBlobCreateExceptionHeaders","PageBlobUploadPagesHeaders","PageBlobUploadPagesExceptionHeaders","PageBlobClearPagesHeaders","PageBlobClearPagesExceptionHeaders","PageBlobUploadPagesFromURLHeaders","PageBlobUploadPagesFromURLExceptionHeaders","PageBlobGetPageRangesHeaders","PageBlobGetPageRangesExceptionHeaders","PageBlobGetPageRangesDiffHeaders","PageBlobGetPageRangesDiffExceptionHeaders","PageBlobResizeHeaders","PageBlobResizeExceptionHeaders","PageBlobUpdateSequenceNumberHeaders","PageBlobUpdateSequenceNumberExceptionHeaders","PageBlobCopyIncrementalHeaders","PageBlobCopyIncrementalExceptionHeaders","AppendBlobCreateHeaders","AppendBlobCreateExceptionHeaders","AppendBlobAppendBlockHeaders","blobAppendOffset","AppendBlobAppendBlockExceptionHeaders","AppendBlobAppendBlockFromUrlHeaders","AppendBlobAppendBlockFromUrlExceptionHeaders","AppendBlobSealHeaders","AppendBlobSealExceptionHeaders","BlockBlobUploadHeaders","BlockBlobUploadExceptionHeaders","BlockBlobPutBlobFromUrlHeaders","BlockBlobPutBlobFromUrlExceptionHeaders","BlockBlobStageBlockHeaders","BlockBlobStageBlockExceptionHeaders","BlockBlobStageBlockFromURLHeaders","BlockBlobStageBlockFromURLExceptionHeaders","BlockBlobCommitBlockListHeaders","BlockBlobCommitBlockListExceptionHeaders","BlockBlobGetBlockListHeaders","BlockBlobGetBlockListExceptionHeaders","NativeExtensionMethod","BrowserCacheLocation","HTTP_REQUEST_TYPE","TemporaryCacheKeys","InMemoryCacheKeys","ApiId","InteractionType","InteractionStatus","BrowserConstants","INTERACTION_IN_PROGRESS_VALUE","INVALID_GRANT_ERROR","POPUP_WIDTH","POPUP_HEIGHT","POPUP_NAME_PREFIX","POLL_INTERVAL_MS","MSAL_SKU","NativeConstants","CHANNEL_ID","PREFERRED_EXTENSION_ID","MATS_TELEMETRY","WrapperSKU","DEFAULT_REQUEST","scopes","KEY_FORMAT_JWK","DB_NAME","DB_VERSION","DB_TABLE_NAME","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","_classCallCheck","instance","Constructor","_defineProperties","props","descriptor","_createClass","protoProps","staticProps","createSpan","packagePrefix","namespace","convertTracingToRequestOptionsBase","options","spanOptions","tracingOptions","tracingContext","ExtractPageRangeInfoItems","escapeURLPath","urlParsed","parse","path","getPath","encodeURIComponent","replace","setPath","toString","getValueInConnString","connectionString","argument","elements","split","trim","startsWith","match","extractConnectionStringParts","proxyUri","search","matchCredentials","getProxyUriFromDevConnString","blobEndpoint","endsWith","accountName","defaultEndpointsProtocol","accountKey","Buffer","endpointSuffix","protocol","toLowerCase","accountSas","getAccountNameFromUrl","appendToURLPath","setURLParameter","setQueryParameter","getURLParameter","getQueryParameterValue","setURLHost","host","setHost","getURLPath","getURLScheme","getScheme","getURLPathAndQuery","pathString","RangeError","queryString","getQuery","appendToURLQuery","queryParts","query","setQuery","truncatedISO8061Date","withMilliseconds","dateString","toISOString","substring","generateBlockID","blockIDPrefix","blockIndex","maxSourceStringLength","res","currentString","targetLength","padString","padStart","repeat","btoa","delay","timeInMs","aborter","abortError","timeout","abortHandler","clearTimeout","setTimeout","removeEventListener","addEventListener","iEqual","str1","str2","toLocaleLowerCase","parsedUrl","getHost","isIpEndpointStyle","getPort","test","toBlobTagsString","tagPairs","join","toBlobTags","toTags","blobTag","toQuerySerialization","textConfiguration","escapeCharacter","hasHeaders","parseObjectReplicationRecord","objectReplicationRecord","orProperties","ids","rule","ruleId","replicationStatus","policyIndex","findIndex","policy","policyId","rules","attachCredential","thing","credential","httpAuthorizationToString","httpAuthorization","scheme","BlobNameToString","decodeURIComponent","ConvertInternalResponseOfListBlobFlat","internalResponse","map","blobItemInteral","ConvertInternalResponseOfListBlobHierarchy","blobPrefixInternal","ParseBoolean","ParseBlobName","blobNameInXML","ParseBlobProperties","blobPropertiesInXML","blobProperties","Date","parseFloat","byteString","atob","arr","Uint8Array","charCodeAt","decodeBase64String","ParseBlobItem","blobInXML","blobItem","blobTagsInXML","blobTagInXML","ParseBlobTag","ParseBlobTags","ParseBlobPrefix","blobPrefixInXML","ProcessBlobItems","blobArrayInXML","ProcessBlobPrefixes","blobPrefixesInXML","getPageRangesSegment","pageRangeIndex","clearRangeIndex","isClear","SDK_VERSION","SERVICE_VERSION","BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES","BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES","BLOCK_BLOB_MAX_BLOCKS","DEFAULT_BLOCK_BUFFER_SIZE_BYTES","DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES","DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS","StorageOAuthScopes","URLConstants","Parameters","FORCE_BROWSER_NO_CACHE","SIGNATURE","SNAPSHOT","VERSIONID","TIMEOUT","HTTPURLConnection","HTTP_ACCEPTED","HTTP_CONFLICT","HTTP_NOT_FOUND","HTTP_PRECON_FAILED","HTTP_RANGE_NOT_SATISFIABLE","HeaderConstants","AUTHORIZATION","AUTHORIZATION_SCHEME","CONTENT_ENCODING","CONTENT_ID","CONTENT_LANGUAGE","CONTENT_LENGTH","CONTENT_MD5","CONTENT_TRANSFER_ENCODING","CONTENT_TYPE","COOKIE","DATE","IF_MATCH","IF_MODIFIED_SINCE","IF_NONE_MATCH","IF_UNMODIFIED_SINCE","PREFIX_FOR_STORAGE","RANGE","USER_AGENT","X_MS_CLIENT_REQUEST_ID","X_MS_COPY_SOURCE","X_MS_DATE","X_MS_ERROR_CODE","X_MS_VERSION","ETagNone","ETagAny","BATCH_MAX_REQUEST","HTTP_LINE_ENDING","HTTP_VERSION_1_1","EncryptionAlgorithmAES25","DevelopmentConnectionString","StorageBlobLoggingAllowedHeaderNames","StorageBlobLoggingAllowedQueryParameters","BlobUsesCustomerSpecifiedEncryptionMsg","BlobDoesNotUseCustomerSpecifiedEncryption","keyframes","timeline","stylesheet","Stylesheet","getInstance","rulesArray","prop","classNameFromKey","getClassName","insertRule","cacheClassName","EASING_FUNCTION_1","EASING_FUNCTION_2","DURATION_1","DURATION_2","DURATION_3","DURATION_4","FADE_IN","opacity","FADE_OUT","visibility","SLIDE_RIGHT_IN10","_createSlideInX","SLIDE_RIGHT_IN20","SLIDE_RIGHT_IN40","SLIDE_RIGHT_IN400","SLIDE_LEFT_IN10","SLIDE_LEFT_IN20","SLIDE_LEFT_IN40","SLIDE_LEFT_IN400","SLIDE_UP_IN10","_createSlideInY","SLIDE_UP_IN20","SLIDE_DOWN_IN10","SLIDE_DOWN_IN20","SLIDE_RIGHT_OUT10","_createSlideOutX","SLIDE_RIGHT_OUT20","SLIDE_RIGHT_OUT40","SLIDE_RIGHT_OUT400","SLIDE_LEFT_OUT10","SLIDE_LEFT_OUT20","SLIDE_LEFT_OUT40","SLIDE_LEFT_OUT400","SLIDE_UP_OUT10","_createSlideOutY","SLIDE_UP_OUT20","SLIDE_DOWN_OUT10","SLIDE_DOWN_OUT20","SCALE_UP100","transform","SCALE_DOWN98","SCALE_DOWN100","SCALE_UP103","ROTATE90","ROTATE_N90","AnimationVariables","easeFunction1","easeFunction2","durationValue1","durationValue2","durationValue3","durationValue4","_createAnimation","animationName","animationDuration","animationTimingFunction","animationFillMode","fromX","pointerEvents","fromY","toX","toY","LocalizedFontNames","LocalizedFontFamilies","FontSizes","FontWeights","IconFontSizes","AnimationClassNames","styles","classes","styleName","mergeStyles","buildClassMap","slideRightIn10","slideRightIn20","slideRightIn40","slideRightIn400","slideLeftIn10","slideLeftIn20","slideLeftIn40","slideLeftIn400","slideUpIn10","slideUpIn20","slideDownIn10","slideDownIn20","slideRightOut10","slideRightOut20","slideRightOut40","slideRightOut400","slideLeftOut10","slideLeftOut20","slideLeftOut40","slideLeftOut400","slideUpOut10","slideUpOut20","slideDownOut10","slideDownOut20","scaleUpIn100","scaleDownIn100","scaleUpOut103","scaleDownOut98","fadeIn100","fadeIn200","fadeIn400","fadeIn500","fadeOut100","fadeOut200","fadeOut400","fadeOut500","rotate90deg","rotateN90deg","Arabic","Cyrillic","EastEuropean","Greek","Hebrew","Thai","Vietnamese","WestEuropean","Selawik","Armenian","Georgian","ChineseSimplified","ChineseTraditional","Hindi","Japanese","Korean","size10","size12","size14","size16","size18","size20","size24","size28","size32","size42","size68","mini","xSmall","small","smallPlus","medium","mediumPlus","icon","large","xLarge","xLargePlus","xxLarge","xxLargePlus","superLarge","mega","light","semilight","regular","semibold","bold","HighContrastSelector","ScreenWidthMinSmall","ScreenWidthMinMedium","ScreenWidthMaxSmall","ScreenWidthMaxMedium","ScreenWidthMinLarge","getScreenSelector","min","max","getHighContrastNoAdjustStyle","forcedColorAdjust","MsHighContrastAdjust","ZIndexes","getFocusStyle","theme","insetOrOptions","position","highContrastStyle","borderColor","outlineColor","isFocusedOnly","_getFocusStyleInternal","inset","width","palette","white","neutralSecondary","outline","selectors","border","left","top","bottom","right","zIndex","FocusStyle","focusClear","Nav","ScrollablePane","Coachmark","Layer","KeytipLayer","hiddenContentStyle","height","margin","padding","overflow","whiteSpace","_getGlobalClassNames","memoize","classNames","disableGlobalClassNames","styleSheet","reduce","acc","getGlobalClassNames","Depths","DefaultPalette","themeDarker","themeDark","themeDarkAlt","themePrimary","themeSecondary","themeTertiary","themeLight","themeLighter","themeLighterAlt","black","blackTranslucent40","neutralDark","neutralPrimary","neutralPrimaryAlt","neutralSecondaryAlt","neutralTertiary","neutralTertiaryAlt","neutralQuaternary","neutralQuaternaryAlt","neutralLight","neutralLighter","neutralLighterAlt","accent","whiteTranslucent40","yellowDark","yellow","yellowLight","orange","orangeLight","orangeLighter","redDark","red","magentaDark","magenta","magentaLight","purpleDark","purple","purpleLight","blueDark","blueMid","blue","blueLight","tealDark","teal","tealLight","greenDark","green","greenLight","depth0","depth4","depth8","depth16","depth64","DefaultEffects","elevation4","elevation8","elevation16","elevation64","roundedCorner2","roundedCorner4","roundedCorner6","defaultFontFamily","LanguageToFontMap","bg","cs","el","et","he","hi","hr","hu","ja","kk","ko","lt","lv","pl","ru","sk","th","tr","uk","vi","hy","ka","_createFont","weight","fontFamily","MozOsxFontSmoothing","WebkitFontSmoothing","fontSize","fontWeight","DefaultFontStyles","localeCode","localizedFont","language","lang","_getLocalizedFontFamily","fontFamilyWithFallback","tiny","createFontStyles","_registerFontFace","localFontName","localFontSrc","fontFace","src","fontStyle","fontDisplay","_registerFontFaceSet","baseUrl","cdnFolder","cdnFontName","urlBase","fontUrl","registerDefaultFontFaces","fabricConfig","getWindow","FabricConfig","fontBaseUrl","_getFontBaseUrl","makeSemanticColors","isInverted","depComments","dep","listTextColor","listText","menuItemBackgroundChecked","warningHighlight","warningText","messageText","successText","_fixDeprecatedSlots","getSemanticColors","primaryButtonBorder","errorText","messageLink","messageLinkHovered","infoIcon","errorIcon","blockingIcon","warningIcon","severeWarningIcon","successIcon","infoBackground","errorBackground","blockingBackground","warningBackground","severeWarningBackground","successBackground","bodyBackground","bodyFrameBackground","accentButtonText","buttonBackground","primaryButtonText","primaryButtonTextHovered","primaryButtonTextPressed","inputBackground","inputForegroundChecked","listBackground","menuBackground","cardStandoutBackground","bodyTextChecked","buttonTextCheckedHovered","link","primaryButtonBackground","inputBackgroundChecked","inputIcon","inputFocusBorderAlt","menuIcon","menuHeader","accentButtonBackground","primaryButtonBackgroundPressed","inputBackgroundCheckedHovered","inputIconHovered","linkHovered","primaryButtonBackgroundHovered","inputPlaceholderBackgroundChecked","bodyBackgroundChecked","bodyFrameDivider","bodyDivider","variantBorder","buttonBackgroundCheckedHovered","buttonBackgroundPressed","listItemBackgroundChecked","listHeaderBackgroundPressed","menuItemBackgroundPressed","bodyBackgroundHovered","buttonBackgroundHovered","buttonBackgroundDisabled","buttonBorderDisabled","primaryButtonBackgroundDisabled","disabledBackground","listItemBackgroundHovered","listHeaderBackgroundHovered","menuItemBackgroundHovered","primaryButtonTextDisabled","disabledSubtext","listItemBackgroundCheckedHovered","disabledBodyText","variantBorderHovered","buttonTextDisabled","inputIconDisabled","disabledText","bodyText","actionLink","buttonText","inputBorderHovered","inputText","menuItemText","bodyStandoutBackground","defaultStateBackground","actionLinkHovered","buttonTextHovered","buttonTextChecked","buttonTextPressed","inputTextHovered","menuItemTextHovered","bodySubtext","focusBorder","inputBorder","smallInputBorder","inputPlaceholderText","buttonBorder","disabledBodySubtext","disabledBorder","buttonBackgroundChecked","menuDivider","cardShadow","cardShadowHovered","DefaultSpacing","s2","s1","l1","l2","createTheme","partialTheme","mergedTheme","merge","semanticColors","effects","defaultFontStyle","fonts","mergeThemes","spacing","rtl","_theme","_onThemeChangeCallbacks","ThemeSettingName","initializeThemeInCustomizations","win","legacyTheme","lines","fontName","font","propName","toUpperCase","_loadFonts","Customizations","applySettings","callback","loadTheme","getSettings","getTheme","_iconSettings","GlobalSettings","getValue","__options","disableWarnings","warnOnMissingIcons","__remapped","onReset","subset","normalizeIconName","registerIcons","iconSubset","isRegistered","icons","iconName","normalizedIconName","_warnDuplicateIcon","registerIconAlias","mappedToName","getIcon","style","warn","_missingIcons","_missingIconsTimer","strShimFunction","strShimObject","strShimUndefined","strShimPrototype","strShimHasOwnProperty","strDefault","ObjClass","ObjProto","ObjAssign","ObjCreate","ObjDefineProperty","ObjHasOwnProperty","ClientAuthErrorMessage","clientInfoDecodingError","clientInfoEmptyError","tokenParsingError","nullOrEmptyToken","endpointResolutionError","networkError","unableToGetOpenidConfigError","hashNotDeserialized","blankGuidGenerated","invalidStateError","stateMismatchError","stateNotFoundError","nonceMismatchError","nonceNotFoundError","noTokensFoundError","multipleMatchingTokens","multipleMatchingAccounts","multipleMatchingAppMetadata","tokenRequestCannotBeMade","appendEmptyScopeError","removeEmptyScopeError","appendScopeSetError","emptyInputScopeSetError","DeviceCodePollingCancelled","DeviceCodeExpired","DeviceCodeUnknownError","NoAccountInSilentRequest","invalidCacheRecord","invalidCacheEnvironment","noAccountFound","CachePluginError","noCryptoObj","invalidCacheType","unexpectedAccountType","unexpectedCredentialType","invalidAssertion","invalidClientCredential","tokenRefreshRequired","userTimeoutReached","tokenClaimsRequired","noAuthorizationCodeFromServer","noAzureRegionDetected","accessTokenEntityNullError","bindingKeyNotRemovedError","logoutNotSupported","keyIdMissing","errorMessage","ClientAuthError","caughtError","createClientInfoEmptyError","caughtExtractionError","invalidRawTokenString","errDetail","createNetworkError","endpoint","hashParamObj","createInvalidStateError","invalidState","errorString","createStateMismatchError","missingState","createNonceMismatchError","missingNonce","createMultipleMatchingTokensInCacheError","createMultipleMatchingAccountsInCacheError","createMultipleMatchingAppMetadataInCacheError","createTokenRequestCannotBeMadeError","givenScope","appendError","createEmptyInputScopeSetError","createDeviceCodeCancelledError","createDeviceCodeExpiredError","createDeviceCodeUnknownError","createNoAccountInSilentRequestError","createNullOrUndefinedCacheRecord","createInvalidCacheEnvironmentError","createNoAccountFoundError","createCachePluginError","operationName","createInvalidCacheTypeError","createUnexpectedAccountTypeError","createUnexpectedCredentialTypeError","createInvalidAssertionError","createInvalidCredentialError","createRefreshRequiredError","createUserTimeoutReachedError","createTokenClaimsRequiredError","createNoAuthCodeInServerResponseError","createBindingKeyNotRemovedError","createLogoutNotSupportedError","createKeyIdMissingError","_inherits","subClass","superClass","_possibleConstructorReturn","assertThisInitialized","_createSuper","Derived","hasNativeReflectConstruct","isNativeReflectConstruct","Super","NewTarget","construct","_createForOfIteratorHelper","allowArrayLike","it","isArray","F","_e","normalCompletion","didErr","_e2","authToken","StringUtils","isEmpty","createTokenNullOrEmptyError","matches","exec","createTokenParsingError","JSON","stringify","header","JWSPayload","JWSSig","str","strObj","lastIndexOf","params","decode","pair","filter","matchPattern","pattern","input","RegExp","EventType","SpanKind","setSpan","span","isSpanContextValid","getTracer","SpanStatusCode","strWindow","strJSON","strMsie","strTrident","strXMLHttpRequest","_isTrident","_navUserAgentCheck","_enableMocks","_useXDomainRequest","_beaconsSupported","_hasProperty","theClass","property","_getNamedValue","operationOptionsToRequestOptionsBase","opts","requestOptions","_slicedToArray","_i","_s","_arr","_n","_d","unsupportedIterableToArray","_a","AuthErrorMessage","suberror","AuthError","EMPTY_STRING","subError","correlationId","errDesc","Prototype","strFunction","DynClassName","UnknownValue","DynProtoBaseProto","Obj","_objGetPrototypeOf","_objGetOwnProps","_dynamicNames","_hasOwnProperty","_isObjectOrArrayPrototype","_isObjectArrayOrFunctionPrototype","Function","_getObjProto","newProto","curProto","_forEachProp","func","name_1","lp","_isDynamicCandidate","funcName","skipOwn","_throwTypeError","_hasVisited","_getInstFunc","proto","currentDynProtoProxy","instFunc","instFuncTable","canAddInst","objProto","visited","protoFunc","_getProtoFunc","_populatePrototype","baseInstFuncs","setInstanceFunc","instFuncs_1","dynProtoProxy","_createDynamicPrototype","_getObjName","unknownValue","dynamicProto","delegateFunc","classProto","thisTarget","thisProto","_checkPrototype","perfOptions","useBaseInst","instFuncs","_getInstanceFuncs","baseFuncs","_instFuncProxy","funcHost","theFunc","baseProto","_getBaseFuncs","setInstFuncs","validUuidRegex","isNode","process","versions","node","isValidUuid","uuid","generateUuid","prepareXMLRootList","elementName","xmlNamespaceKey","xmlNamespace","validateISODuration","isDuration","replaceAll","searchValue","replaceValue","isPrimitiveType","isObject","MessageBarType","_defineProperty","StorageRetryPolicyType","nextPolicy","request","_nextPolicy","sendRequest","getTime","headers","remove","DEFAULT_RETRY_OPTIONS","maxRetryDelayInMs","maxTries","retryDelayInMs","retryPolicyType","EXPONENTIAL","secondaryHost","tryTimeoutInMs","RETRY_ABORT_ERROR","retryOptions","Math","floor","attemptSendRequest","secondaryHas404","attempt","newRequest","clone","isPrimaryRetry","log","response","shouldRetry","abortSignal","retriableError","includes","statusCode","delayTimeInMs","FIXED","pow","random","_defaultHttpClient","getCachedDefaultHttpClient","Constants","DEFAULT_CYCLER_OPTIONS","forcedRefreshWindowInMs","retryIntervalInMs","refreshWindowInMs","getAccessToken","timeoutInMs","tryGetAccessToken","now","finalToken","token","createTokenCycler","tokenCyclerOptions","refreshWorker","cycler","isRefreshing","shouldRefresh","expiresOnTimestamp","mustRefresh","refresh","getTokenOptions","beginRefresh","getToken","_token","catch","reason","tokenOptions","getChallenge","challenge","parseChallenge","bearerChallenge","x","keyValue","storageBearerTokenChallengeAuthenticationPolicy","StorageBearerTokenChallengeAuthenticationPolicy","webResource","getTokenInternal","challengeInfo","challengeScopes","resource_id","parsedAuthUri","authorization_uri","pathSegments","tenantId","getTokenForChallenge","tokenForChallenge","isPipelineLike","pipeline","castPipeline","factories","toServiceClientOptions","httpClient","requestPolicyFactories","newPipeline","pipelineOptions","AnonymousCredential","telemetryPolicy","TelemetryPolicyFactory","userAgentOptions","tracingPolicy","userAgent","telemetryString","keepAlivePolicy","keepAliveOptions","generateClientRequestIdPolicy","deserializationPolicy","xmlCharKey","logPolicy","logger","allowedHeaderNames","allowedQueryParameters","proxyOptions","audience","FeatureUsageEventV2","BusinessProcessEvent","SystemEvent","EnvironmentValues","Correlator","ComponentType","ItEventType","ActionType","EventName","TaskStatus","ActionStatus","ExtensionVersion","userContext","usageProvider","InitializeTelemetry","environmentName","iKey","serviceOffering","serviceLine","service","componentName","componentId","ictoid","plugins","enableLogs","randomizationUnitId","assignmentContext","experimentId","appInsights","ApplicationInsights","config","instrumentationKey","maxAjaxCallsPerView","isCookieUseDisabled","disableFetchTracking","extensions","Logger","setDevConfig","environmentData","loadAppInsights","AddMsitEnvironmentInitializer","InitializeTelemetryWithConfiguration","environmentValue","configuration","TrackPageview","trackPageView","TrackEvent","eventName","measurements","trackEvent","TrackTrace","severityLevel","trackTrace","TrackException","trackException","TrackFeatureUsageEventV2","eventData","BuildFeatureEventPropertiesV2","featureUsageEventName","getFeatureUsageName","TrackBusinessProcessEvent","isValidEvent","BuildBusinessEventProperties","BusinessProcessName","TrackSystemEvent","BuildSystemEventProperties","StartFeatureUsageEvent","startTrackEvent","EndFeatureUsageEvent","stopTrackEvent","StartTask","Start","EndTask","Completed","setUserContext","featureInstance","Aware","BackEndAPICall","DynamicLinkLibrary","thisPointer","ComponentId","HttpUtil","GET","SDK_SERVICE_ENDPOINT","data","UsageUserId","setAuthenticatedUserContext","Succeeded","Failed","Exception","Flush","AddMsitTelemetryInitializers","appInsightsOrCorrelator","environmentValueOrUsageProvider","correlator","applicationInsightsObject","initialize","AddMsitInternalCorrelationIntializer","AddMsitInternalUsageProviderIntializer","AddMsitTelemetryInitializerswithSubCorrelation","correlationProvider","subCorrelationProvider","addTelemetryInitializer","envelope","baseData","EnvironmetName","ServiceOffering","ServiceLine","Service","ComponentName","RandomizationUnitId","AssignmentContext","ExperimentId","flush","refreshSession","refreshSessionAttribute","environment","populateEnvironmentValues","ex","startDateTime","toUTCString","usageAttributes","getUsageAttributes","UsageSessionId","ValueNotAvailable","UsagePageTrackingId","UsagePageName","ConstantStrings","Configuration","FeatureUsageEventV2TemplateType","getValidationUsageErrorDetails","endDateTime","errors","getUsageErrorDetails","UsageErrorKeys","UserContextNotSet","UserAccountIdMustBeGUID","isGUID","UsageSessionIdMustBeGUID","UsagePageTrackingIdMustBeGUID","ComponentIdIsManadatory","ComponentIdShouldBeValidGuid","getCorrelationId","subcorrelationId","getSubCorrelationId","renewSubCorrelationId","PopulateCommonSchemaValues","IctoId","populateCorrelationAttributes","eventProperties","TemplateType","FeatureName","SubFeatureName","ActionName","NA","TaskName","Duration","ComponentUri","UserRoleName","StartDateTime","EndDateTime","EntityId","ExperimentationConfigId","ExperimentationConfigName","ExperimentationConfigResult","CapabilityType","IsEmbeddedExperience","EmbeddedExpereinceName","ActionUri","AppAction","TargetEntityKey","Xcv","SenderId","ReceiverId","MessageId","EventOccurrenceTime","getDate","getISO8601String","SystemMessage","ItTelemetryConfig","isTrackable","IsValidEvent","active","EnableBpmValidation","bpmSpecificConfig","ReadBpmValidation","PartBValidation","Properties","bpmPropertiesLocal","numberOfPropertiesFound","index","item","AppInsights","HttpPipelineLogLevel","_options","logLevel","shouldLog","_logger","OFF","minimumLogLevel","ownKeys","enumerableOnly","symbols","sym","_objectSpread2","source","getOwnPropertyDescriptors","defineProperties","signRequest","_sanitizeDiagnosticText","text","_logToConsole","_InternalLogMessage","DiagnosticLogger","_getLogger","XML_ATTRKEY","XML_CHARKEY","_window","window","rootElement","ownerDocument","defaultView","getFirstFocusable","currentElement","includeElementsInFocusZones","getNextElement","getLastFocusable","getPreviousElement","getFirstTabbable","checkNode","getLastTabbable","focusFirstChild","focusAsync","suppressParentTraversal","traverseChildren","allowFocusRoot","tabbable","isCurrentElementVisible","isElementVisible","isElementFocusZone","isElementFocusSubZone","childMatch","lastElementChild","isElementTabbable","childMatchSiblingMatch","previousElementSibling","childMatchParent","parentElement","childMatchParentMatch","siblingMatch","suppressChildTraversal","firstElementChild","nextElementSibling","getAttribute","visibilityAttribute","offsetHeight","offsetParent","isVisible","checkTabIndex","disabled","tabIndex","tabIndexAttributeValue","parseInt","isFocusableAttribute","isTabIndexSet","tagName","doesElementContainFocus","document","getDocument","currentActiveElement","activeElement","elementContains","shouldWrapFocus","noWrapDataAttribute","attribute","elementMatch","findElementRecursive","testElement","hasAttribute","elementContainsAttribute","targetToFocusOnNextRepaint","requestAnimationFrame","focus","getFocusableByIndexPath","parent","nextChild","children","getElementIndexPath","fromElement","toElement","getParent","unshift","ImageFit","ImageCoverStyle","ImageLoadState","DirectionalHint","topLeftEdge","topCenter","topRightEdge","topAutoEdge","bottomLeftEdge","bottomCenter","bottomRightEdge","bottomAutoEdge","leftTopEdge","leftCenter","leftBottomEdge","rightTopEdge","rightCenter","rightBottomEdge","KeyCodes","backspace","tab","enter","ctrl","alt","pauseBreak","capslock","escape","space","pageUp","pageDown","home","up","down","insert","del","zero","one","two","three","four","five","six","seven","eight","nine","colon","h","u","w","z","leftWindow","rightWindow","select","zero_numpad","one_numpad","two_numpad","three_numpad","four_numpad","five_numpad","six_numpad","seven_numpad","eight_numpad","nine_numpad","multiply","add","subtract","decimalPoint","divide","f1","f2","f3","f4","f5","f6","f7","f8","f9","f10","f11","f12","numlock","scrollLock","semicolon","equalSign","comma","dash","period","forwardSlash","graveAccent","openBracket","backSlash","closeBracket","singleQuote","BlockBlobTier","PremiumPageBlobTier","StorageBlobAudience","toAccessTier","ensureCpkIfSpecified","cpk","isHttps","StorageSharedKeyCredential","_canUseLocalStorage","_canUseSessionStorage","_getLocalStorageObject","_getVerifiedStorageObject","storageType","_getSessionStorageObject","createNamedContext","createContext","historyContext","Router","location","computeRootMatch","isExact","pathname","componentDidMount","history","listen","_pendingLocation","componentWillUnmount","render","RouterContext","staticContext","HistoryContext","React","Component","cache","cacheCount","matchPath","exact","strict","sensitive","matched","cacheKey","pathCache","regexp","pathToRegexp","compilePath","memo","Route","component","isEmptyChildren","addLeadingSlash","stripBasename","basename","base","createURL","createPath","staticHandler","methodName","invariant","noop","Switch","child","computedMatch","BrowserConfigurationAuthErrorMessage","BrowserConfigurationAuthError","createRedirectUriEmptyError","createPostLogoutRedirectUriEmptyError","createStorageNotSupportedError","givenStorageLocation","createRedirectCallbacksNotSetError","createStubPcaInstanceCalledError","createInMemoryRedirectUnavailableError","encodeByteArray","fromCharCode","decodeString","modelMappers","isXML","objectName","failValidation","constraintName","constraintValue","valueAsNumber","ExclusiveMaximum","ExclusiveMinimum","InclusiveMaximum","MaxItems","MaxLength","MinItems","MinLength","MultipleOf","Pattern","UniqueItems","valueAsArray","some","updatedOptions","rootName","includeRoot","payload","mapperType","nullable","serializeBasicTypes","enumMapper","serializeEnumType","serializeDateTypes","serializeByteArrayType","serializeBase64UrlType","serializeSequenceType","Boolean","serializeDictionaryType","serializeCompositeType","responseBody","deserializeCompositeType","castResponseBody","unixTimeToDate","base64UrlToByteArray","deserializeSequenceType","deserializeDictionaryType","valueOf","splitSerializeName","partialclass","subwords","substr","typeName","utils","objectType","ArrayBuffer","isView","Blob","returnValue","buffer","ch","len","trimEnd","bufferToBase64Url","dateToUnixTime","serializer","isXml","elementType","tempArray","serializedValue","serialize","xmlnsKey","xmlNamespacePrefix","valueType","tempDictionary","getXmlObjectValue","resolveReferencedMapper","resolveModelProperties","modelProps","modelMapper","getPolymorphicDiscriminatorRecursively","getPolymorphicMapper","propertyMapper","readOnly","parentObject","paths","pathName","propertyObjectName","toSerialize","polymorphicDiscriminator","clientName","additionalPropertiesMapper","additionalProperties","resolveAdditionalProperties","propNames","clientPropName","every","pn","isSpecialXmlProperty","propertyName","handledPropertyNames","dictionary","headerKey","deserialize","wrapped","elementList","propertyInstance","arrayInstance","entries","isAdditionalProperty","responsePropName","polymorphicPropertyName","discriminatorName","discriminatorValue","uberParent","indexDiscriminator","polymorphicMapper","discriminators","getPolymorphicDiscriminatorSafely","MapperType","strEnum","_extends","bind","URLQuery","_rawQuery","parameterName","parameterValue","caseParameterValue","newValue","parameterStrings","parameterValueElement","currentState","currentCharacter","URLBuilder","_scheme","_host","port","_port","schemeIndex","schemeStart","_path","currentPath","_query","queryParameterName","queryParameterValue","startState","tokenizer","URLTokenizer","current","tokenPath","any","setScheme","setPort","URLToken","_text","_textLength","_currentState","_currentIndex","_currentToken","hasCurrentCharacter","readWhile","character","characterCode","isAlphaNumericCharacter","readWhileLetterOrDigit","nextScheme","schemeOrHost","readUntilCharacter","getCurrentCharacter","peekCharacters","nextSchemeOrHost","nextCharacter","nextHost","nextPort","nextPath","readRemaining","nextQuery","charactersToPeek","endIndex","condition","terminatingCharacters","_document","_htmlAnchorIdx","_htmlAnchorElement","strTelemetryPluginChain","_chainId","_createInternalContext","telemetryChain","proxy","core","startAt","isAbsolute","spliceOne","list","resolvePathname","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","last","part","valueEqual","aValue","bValue","stripLeadingSlash","hasBasename","stripTrailingSlash","hash","createLocation","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","URIError","locationsAreEqual","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","isActive","listener","notifyListeners","_len","_key","canUseDOM","createElement","getConfirmation","confirm","PopStateEvent","HashChangeEvent","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","ua","navigator","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","getDOMLocation","historyState","_ref","_window$location","createKey","transitionManager","setState","nextState","handlePopState","event","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","isBlocked","href","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","unlisten","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","baseTag","querySelector","pushHashPath","nextPaths","clamp","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","nextIndex","nextEntries","splice","canGo","_internalEndpoints","buildClientInfo","rawClientInfo","crypto","decodedClientInfo","base64Decode","createClientInfoDecodingError","buildClientInfoFromHomeAccountId","homeAccountId","clientInfoParts","CLIENT_INFO_SEPARATOR","uid","utid","val","isUndefined","isArrayBuffer","isPlainObject","isFunction","isBuffer","isFormData","isArrayBufferView","isString","isNumber","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","isStandardBrowserEnv","product","assignValue","extend","stripBOM","_stylesheet","InjectionMode","REUSE_STYLE_NODE","_global","serializedStylesheet","_rules","_preservedRules","_counter","_keyToClassName","_onInsertRuleCallbacks","_onResetCallbacks","_classNameToArgs","_config","injectionMode","defaultPrefix","cspSettings","classNameToArgs","counter","classNameCache","keyToClassName","preservedRules","_lastStyleElement","setConfig","cb","onInsertRule","getClassNameCache","argsFromClassName","insertedRulesFromClassName","preserve","_getStyleElement","sheet","cssRules","appendChild","createTextNode","getRules","includePreservedRules","resetKeys","_styleElement","_createStyleElement","head","styleElement","nodeToInsertBefore","setAttribute","nonce","placeholderStyleTag","_findPlaceholderStyleTag","childNodes","insertBefore","contains","pluginStateData","rangeToString","iRange","offset","count","DEFAULT_VERSION","INVALID_VERSION","INVALID_TRACE_ID","INVALID_SPAN_ID","_isValid","invalidValue","_formatValue","defValue","_formatFlags","_inheritsLoose","_initializedStylesheetResets","_resetCounter","_emptyObject","empty","_dictionary","_weakMap","WeakMap","resetMemoizations","memoizeFunction","maxCacheSize","ignoreNullOrUndefinedResult","rootNode","cacheSize","localResetCounter","currentNode","_createNode","_normalizeArg","createMemoizer","strEvents","strVisibilityChangeEvt","strPageHide","strUnload","strBeforeUnload","strPageHideNamespace","rRemoveEmptyNs","rRemoveTrailingEmptyNs","_guid","elmNodeData","eventNamespace","_normalizeNamespace","_getEvtNamespace","evtNamespace","_getRegisteredEvents","evtName","addDefault","_doDetach","handlerRef","useCapture","_doUnregister","events","unRegFn","_addEventListeners","excludeEvents","FocusZoneDirection","FocusZoneTabbableElements","none","all","inputOnly","NO_CUSTOMIZATIONS","settings","scopedSettings","inCustomizerContext","_allSettings","_events","_raiseChange","applyScopedSettings","scopeName","localSettings","localScopedSettings","globalScopedSettings","applyBatchedUpdates","suppressUpdate","_suppressUpdates","observe","onChange","unobserve","ipRangeToString","ipRange","UInt32Mask","MaxUInt32","_mwcSeeded","_mwcW","_mwcZ","_mwcSeed","seedValue","_autoSeedMwc","coreHttpVersion","HTTP","HTTPS","HTTP_PROXY","HTTPS_PROXY","NO_PROXY","ALL_PROXY","HttpConstants","HttpVerbs","PUT","DELETE","POST","MERGE","HEAD","PATCH","StatusCodes","TooManyRequests","ServiceUnavailable","RETRY_AFTER","custom","errorSanitizer","RestError","sanitize","REQUEST_SEND_ERROR","PARSE_ERROR","VERSION","re","isCompatible","ownVersion","acceptedVersions","Set","rejectedVersions","myVersionMatch","ownVersionParsed","globalVersion","_reject","_accept","globalVersionMatch","globalVersionParsed","_makeCompatibilityCheck","major","GLOBAL_OPENTELEMETRY_API_KEY","for","registerGlobal","diag","allowOverride","api","stack","debug","getGlobal","unregisterGlobal","DiagLogLevel","_namespace","logProxy","verbose","_logProxy","setLogger","INFO","oldLogger","newLogger","maxLevel","_filterFunc","theLevel","NONE","ALL","ERROR","WARN","DEBUG","VERBOSE","createLogLevelDiagLogger","disable","createComponentLogger","DiagComponentLogger","_instance","DiagAPI","_entries","Map","getEntry","getAllEntries","setEntry","newBaggage","BaggageImpl","removeEntry","delete","removeEntries","clear","createBaggage","defaultTextMapGetter","carrier","defaultTextMapSetter","createContextKey","description","TraceFlags","ROOT_CONTEXT","parentContext","_currentContext","setValue","BaseContext","deleteValue","with","_context","enable","NOOP_CONTEXT_MANAGER","ContextAPI","setGlobalContextManager","contextManager","_getContextManager","INVALID_SPANID","INVALID_TRACEID","INVALID_SPAN_CONTEXT","traceId","spanId","traceFlags","_spanContext","spanContext","_value","setAttributes","_attributes","addEvent","_name","setStatus","_status","updateName","_endTime","isRecording","recordException","_exception","_time","SPAN_KEY","getSpan","deleteSpan","setSpanContext","getSpanContext","VALID_TRACEID_REGEX","VALID_SPANID_REGEX","wrapSpanContext","startSpan","root","parentFromContext","startActiveSpan","arg2","arg3","arg4","ctx","contextWithSpanSet","SamplingDecision","NOOP_TRACER","_provider","_getTracer","_fn","tracer","_delegate","getDelegateTracer","NOOP_TRACER_PROVIDER","_version","ProxyTracer","getDelegate","setDelegate","VALID_KEY_REGEX","VALID_VALUE_BASE_REGEX","INVALID_VALUE_COMMA_EQUAL_REGEX","rawTraceState","_internalState","_parse","traceState","_clone","unset","_keys","agg","listMember","validateKey","validateValue","TraceStateImpl","_proxyTracerProvider","TraceAPI","setGlobalTracerProvider","provider","success","getTracerProvider","inject","_carrier","extract","fields","BAGGAGE_KEY","getBaggage","setBaggage","baggage","deleteBaggage","NOOP_TEXT_MAP_PROPAGATOR","NoopTextMapPropagator","PropagationAPI","setGlobalPropagator","propagator","setter","_getGlobalPropagator","getter","allowVirtualParents","_virtual","getVirtualParent","parentNode","delayInMs","timer","onAborted","rejectOnAbort","abortErrorMsg","removeListeners","aborted","setRTL","isRTL","_rtl","getRTL","documentElement","getStyleOptions","useConst","initialValue","ref","display","placeholder","image","MS_ICON","getStyles","iconClassName","isPlaceholder","isImage","imageContainer","getHeaderKey","headerName","isHttpHeadersLike","castObject","rawHeaders","headersArray","headerValues","headerNames","toJson","HttpHeaders","_headersMap","headerValue","preserveCase","resultPreservingCasing","_toConsumableArray","arrayLikeToArray","SpinnerSize","SpinnerType","BlobClient","urlOrConnectionString","credentialOrPipelineOrContainerName","blobNameOrOptions","blobName","extractedCreds","sharedKeyCredential","getBlobAndContainerNamesFromUrl","_containerName","blobContext","storageClientContext","_snapshot","_versionId","AppendBlobClient","BlockBlobClient","PageBlobClient","conditions","customerProvidedKey","download","leaseAccessConditions","modifiedAccessConditions","tagConditions","onDownloadProgress","onProgress","rangeGetContentCrc64","cpkInfo","wrappedRes","_response","objectReplicationDestinationPolicyId","objectReplicationSourceProperties","maxRetryRequests","updatedDownloadOptions","readableStreamBody","getProperties","details","succeeded","parsedHeaders","undelete","blobHTTPHeaders","setHttpHeaders","blobHttpHeaders","setMetadata","setTags","getTags","wrappedResponse","proposeLeaseId","createSnapshot","client","abortCopyFromURL","startCopyFromURL","poller","blobClient","intervalInMs","resumeFrom","startCopyFromURLOptions","poll","sourceConditions","copyFromURL","sourceModifiedAccessConditions","sourceAuthorization","immutabilityPolicy","expiriesOn","policyMode","setTier","param1","param2","param3","param4","blockSize","alloc","transferProgress","batch","concurrency","off","addOperation","chunkEnd","maxRetryRequestsPerBlock","stream","loadedBytes","do","filePath","blobDownloadStream","pathComponents","sas","snapshotTime","deleteImmutabilityPolicy","setImmutabilityPolicy","modifiedAccessCondition","legalHoldEnabled","setLegalHold","appendBlobContext","seal","appendPositionAccessConditions","appendBlock","onUploadProgress","sourceURL","sourceOffset","appendBlockFromUrl","blockBlobContext","_blobContext","inputTextConfiguration","outputTextConfiguration","onError","upload","putBlobFromUrl","stageBlock","stageBlockFromURL","commitBlockList","getBlockList","byteOffset","byteLength","uploadSeekableInternal","browserBlob","browserData","bodyFactory","maxSingleShotSize","ceil","numBlocks","blockList","blockID","autoClose","Infinity","bufferSize","maxConcurrency","blockNum","scheduler","pageBlobContext","uploadPages","sequenceNumberAccessConditions","destOffset","uploadPagesFromURL","clearPages","getPageRanges","listPageRangesSegment","getPageRangeItemSegmentsResponse","listPageRangeItemSegments","listPageRangeItems","prevSnapshot","getPageRangesDiff","prevSnapshotOrUrl","listPageRangesDiffSegment","listPageRangeDiffItemSegments","listPageRangeDiffItems","resize","sequenceNumber","updateSequenceNumber","copyIncremental","_cachedGlobal","useCached","globalThis","global","throwTypeError","objCreateFn","tmpFunc","_assertThisInitialized","ReferenceError","_vendorSettings","kebabRules","rulePairs","autoPrefixNames","prefixRules","vendorSettings","doc","nav","isWebkit","isMoz","isOpera","isMs","getVendorSettings","NON_PIXEL_NUMBER_PROPS","provideUnits","isNonPixelProp","isVariableOrPrefixed","unit","LEFT","RIGHT","NAME_REPLACEMENTS","VALUE_REPLACEMENTS","rtlifyRules","parts","flipQuad","partIndex","numberVal","negateNum","getDisplayName","rootStyle","globalSelectorRegExp","expandSelector","newSelector","currentSelector","extractSelector","selector","__order","extractRules","selectorWithGlobals","replacementInfo","findGlobal","matchIndex","matchEndIndex","replacement","expandCommaSeparatedGlobals","separatedSelector","currentRules","expandedRules","propValue","expandQuads","partStart","parens","tokenizeWithParentheses","getKeyForRules","serialized","hasProps","rulesForSelector","repeatString","serializeRuleEntries","ruleEntries","allEntries","styleToRegistration","registration","rulesToInsert","applyRegistration","specificityMultiplier","processedRule","styleToClassName","AuthorityType","_objDefineProperty","instanceName","_dataUid","_canAcceptData","_getCache","_defaultPerfManager","PerfEvent","PerfManager","doPerfActiveKey","InteractionRequiredServerErrorMessage","InteractionRequiredAuthSubErrorMessage","InteractionRequiredAuthErrorMessage","native_account_unavailable","InteractionRequiredAuthError","isInteractionRequiredError","isInteractionRequiredErrorCode","isInteractionRequiredSubError","isInteractionRequiredErrorDesc","irErrorCode","createNoTokensFoundError","createNativeAccountUnavailableError","SASProtocol","SASQueryParameters","signature","permissionsOrOptions","services","resourceTypes","identifier","resource","userDelegationKey","preauthorizedAgentObjectId","ipRangeInner","signedOid","queries","param","tryAppendQueryParameter","_canUseCookies","_cookieMgrs","QueryCollectionFormat","_setPrototypeOf","CustomizerContext","customizations","generateAccountId","CACHE_KEY_SEPARATOR","generateAccountKey","AccountEntity","generateAccountCacheKey","realm","username","localAccountId","generateType","authorityType","ADFS_ACCOUNT_TYPE","ADFS","MSAV1_ACCOUNT_TYPE","MSA","MSSTS_ACCOUNT_TYPE","MSSTS","GENERIC_ACCOUNT_TYPE","GENERIC","getAccountInfo","idTokenClaims","nativeAccountId","accountInterface","createAccount","clientInfo","idToken","authority","cloudGraphHostName","msGraphHost","account","env","getPreferredCache","claims","tid","oid","sub","preferred_username","emails","createGenericAccount","Adfs","upn","serverClientInfo","authType","cryptoObj","accountId","entity","accountInfoIsEqual","accountA","accountB","compareClaims","claimsMatch","accountAClaims","accountBClaims","iat","_isRTL","RTL_LOCAL_STORAGE_KEY","savedRTL","persistSetting","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","run","runClearTimeout","Item","array","nextTick","title","browser","argv","on","addListener","once","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","dir","umask","Parent","Class","_cache","Wrapper","DialogType","blobToString","blob","fileReader","FileReader","onloadend","ev","onerror","readAsText","streamToBuffer","readStreamToLocalFile","fsStat","fsCreateReadStream","_objectWithoutPropertiesLoose","excluded","sourceKeys","enabledString","debugEnvVariable","enabledNamespaces","skippedNamespaces","debuggers","debugObj","createDebugger","namespaces","wildcard","namespaceList","ns","newDebugger","destroy","proxyNotSupportedInBrowser","getDefaultProxySettings","_proxyUrl","proxyPolicy","_proxySettings","__assignFn","__extendsFn","__spreadArrayFn","_unsupportedIterableToArray","minLen","noOutline","iconStyle","lineHeight","textAlign","flexShrink","buttonHighContrastFocus","boxSizing","userSelect","textDecoration","cursor","borderRadius","rootDisabled","backgroundColor","color","iconDisabled","menuIconDisabled","flexContainer","flexWrap","justifyContent","alignItems","textContainer","flexGrow","screenReaderText","StorageClient","factory","requestContentType","mergeAriaAttributeValues","mergedAttribute","ariaAttributes","ContextualMenuItemType","imageProps","nativeProps","altText","hasName","imageNameProps","containerProps","css","Image","isMacResult","isMac","isIOS","getIsChecked","canCheck","isChecked","checked","hasSubmenu","subMenuProps","items","isItemDisabled","isDisabled","getMenuItemAriaRole","RectangleEdge","Position","equals","rect","toFixed","_createPositionData","targetEdge","alignmentEdge","isAuto","DirectionalDictionary","_isRectangleWithinBounds","boundingRect","_getOutOfBoundsEdges","outOfBounds","_getEdgeValue","edge","_setEdgeValue","_getCenterValue","edges","_getFlankingEdges","positiveEdge","negativeEdge","_getRelativeEdgeValue","_getRelativeRectEdgeValue","_getRelativeEdgeDifference","hostRect","_moveEdge","maintainSize","difference","returnRect","_alignEdges","gap","_isEdgeInBounds","bounds","_getOutOfBoundsDegree","total","_adjustFitWithinBounds","bounding","positionData","directionalHintFixed","coverTarget","alignTargetEdge","elementEstimate","elementRectangle","directions","oobDegree","currentEstimate","currentEdge","currentAlignment","bestEdge","bestAlignment","currentOOBDegree","_estimatePosition","_flipToFit","fixedEdge","flippedElementEstimate","oppositeEdge","_flipAlignmentEdge","_alignOutOfBoundsEdges","outOfBoundsEdges","preserveEdge","direction","edgeAttempt","forcedInBounds","_centerEdgeToPoint","point","elementToPosition","estimatedElementPosition","Rectangle","elementEdge","adjustedGap","_alignOppositeEdges","_finalizeReturnEdge","returnEdge","abs","_finalizeElementPosition","hostElement","doNotFinalizeReturnEdge","forceWithinBounds","_getRectangleFromElement","_isEdgeOnBounds","_calculateActualBeakWidthInPixels","beakWidth","sqrt","_getPositionData","directionalHint","directionalHintForRTL","previousPositions","positionInformation","getClosestEdge","targetCenter","boundingCenter","_positionElementWithinBounds","_finalizeBeakPosition","elementPosition","positionedBeak","actualElement","showBeak","targetRectangle","closestEdge","hideBeak","_positionBeak","beakTargetPoint","elementBounds","beakPosition","clientRect","getBoundingClientRect","_getRectangleFromIRect","_positionElementRelative","gapSpace","targetRect","preventDefault","clientX","clientY","rectOrPoint","_getTargetRect","_getAlignmentData","positionedElement","_finalizePositionData","_positionCallout","callout","isBeakVisible","positionProps","innerWidth","innerHeight","finalizedBeakPosition","positionCard","_positionCard","WindowContext","useTarget","previousTargetProp","targetRef","targetWindow","currentDoc","ANIMATIONS","BEAK_ORIGIN_POSITION","OFF_SCREEN_STYLE","ARIA_ROLE_ATTRIBUTES","DEFAULT_PROPS","preventDismissOnLostFocus","preventDismissOnScroll","preventDismissOnResize","minPagePadding","classNamesFunction","disableCaching","usePositions","calloutElement","getBounds","positions","setPositions","positionAttempts","previousTarget","useAsync","hidden","finalHeight","calloutMaxHeight","onPositioned","prevElementPositions","newElementPosition","currentProps","dupeCalloutElement","cloneNode","maxHeight","newPositions","positionCallout","removeChild","comparePositions","cancelAnimationFrame","CalloutContentBase","propsWithoutDefaults","forwardedRef","getPropsWithDefaults","ariaLabel","ariaDescribedBy","ariaLabelledBy","calloutWidth","calloutMaxWidth","calloutMinWidth","doNotLayer","hideOverflow","onScroll","shouldRestoreFocus","onLayerMounted","popupProps","setCalloutElement","calloutCallback","calloutEl","rootRef","useMergedRefs","targetWindowResized","setTargetWindowResized","cachedBounds","currentBounds","segments","getWindowSegments","_getBoundsFromTargetWindow","getBoundsFromTargetWindow","useOnEvent","debounce","leading","useBounds","setMaxHeight","topBounds","bottomBounds","useMaxHeight","onDismiss","dismissOnTargetClick","shouldDismissOnWindowFocus","preventDismissOnEvent","isMouseDownOnPopup","mouseDownHandlers","positionsExists","dismissOnScroll","dismissOnClickOrScroll","dismissOnResize","dismissOnLostFocus","eventPaths","composedPath","isEventTargetOutsideCallout","dismissOnTargetWindowBlur","hasFocus","relatedTarget","disposablesPromise","dispose","useDismissHandlers","mouseDownOnPopup","mouseUpOnPopup","isForcedInBounds","cssPositions","setInitialFocus","hasPositions","useAutoFocus","overflowYHidden","beakVisible","overflowStyle","overflowY","visibilityStyle","container","beak","getBeakPosition","beakCurtain","Popup","role","calloutMain","onMouseDown","onMouseUp","onRestoreFocus","previousProps","nextProps","shouldUpdateWhenHidden","beakPositionStyle","newElementPositions","oldPositionEdge","newPositionEdge","getBeakStyle","GlobalClassNames","CalloutContent","styled","boxShadow","borderWidth","borderStyle","maxWidth","minWidth","overflowX","scope","Callout","layerProps","rest","KeytipEvents","iconProps","Icon","renderItemIcon","onRenderIcon","onCheckmarkClick","isItemChecked","checkmarkIcon","onClick","secondaryText","submenuIconProps","subMenuIcon","openSubMenu","getSubmenuTarget","submenuTarget","dismissSubMenu","dismissMenu","dismissAll","initializeComponentRef","renderContent","onRenderContent","_renderLayout","linkContentMenu","linkContent","renderCheckMarkIcon","renderItemName","renderSecondaryText","renderSubMenuIcon","defaultRenders","wrapper","divider","CONTEXTUAL_MENU_ITEM_HEIGHT","MediumScreenSelector","getMenuItemStyles","ContextualMenuItemBackgroundHoverColor","ContextualMenuItemTextHoverColor","ContextualMenuItemBackgroundSelectedColor","ContextualMenuItemDividerColor","menuItemStyles","rootHovered","rootFocused","rootChecked","rootPressed","rootExpanded","anchorLink","textRendering","letterSpacing","wordSpacing","textTransform","textIndent","textShadow","verticalAlign","textOverflow","paddingLeft","minHeight","iconColor","splitButtonFlexContainer","CONTEXTUAL_SPLIT_MENU_MINWIDTH","getSplitButtonVerticalDividerClassNames","isExpanded","splitMenu","expanded","isAnchorLink","knownIcon","itemClassName","dividerClassName","subMenuClassName","primaryDisabled","background","splitPrimary","flexBasis","splitContainer","getItemStyles","ContextualMenuItem","_onItemMouseEnter","onItemMouseEnter","currentTarget","_onItemClick","onItemClickBase","_onItemMouseLeave","onItemMouseLeave","_onItemKeyDown","onItemKeyDown","_onItemMouseMove","onItemMouseMove","_getSubmenuTarget","shouldComponentUpdate","newProps","DATAKTP_TARGET","DATAKTP_EXECUTE_TARGET","KEYTIP_ADDED","KEYTIP_REMOVED","KEYTIP_UPDATED","PERSISTED_KEYTIP_ADDED","PERSISTED_KEYTIP_REMOVED","PERSISTED_KEYTIP_EXECUTE","ENTER_KEYTIP_MODE","EXIT_KEYTIP_MODE","keytips","persistedKeytips","sequenceMapping","inKeytipMode","shouldEnterKeytipMode","delayUpdatingKeytipChange","init","register","keytipProps","persisted","addParentOverflow","keySequences","uniqueKeytip","_getUniqueKtp","uniqueID","EventGroup","raise","keytip","update","newKeytipProps","oldKeyTip","visible","unregister","keytipToRemove","enterKeytipMode","exitKeytipMode","getKeytips","fullSequence","parentKeytip","overflowSetSequence","menuExecute","overflowButtonSequences","keytipSequences","getId","KeytipManager","sequencesToID","prevValue","keySequence","useKeytipData","uniqueId","keytipManager","prevOptions","usePrevious","useIsomorphicLayoutEffect","nativeKeytipProps","keytipId","describedByPrepend","describedby","getAriaDescribedBy","overflowKeySequences","overflowSequenceLen","overflowSequence","newKeySequences","mergeOverflows","getKeytipData","_anchor","_getMemoizedMenuButtonKeytipProps","hasMenu","onItemClick","_renderAriaDescription","ariaDescription","_ariaDescriptionId","focusableElementIndex","totalItemCount","hasCheckmarks","hasIcons","contextualMenuItemAs","ChildrenRenderer","expandedMenuItemKey","anchorRel","rel","itemHasSubmenu","itemProps","ariaDescribedByIds","additionalItemProperties","keytipAttributes","onMouseEnter","onMouseLeave","onMouseMove","onKeyDown","componentRef","VerticalDividerBase","deprecatedGetClassNames","getClassNames","VerticalDivider","names","which","_executeItemClick","stopPropagation","_splitButton","_onItemMouseEnterPrimary","_onItemMouseEnterIcon","_onItemMouseMovePrimary","_onItemMouseMoveIcon","_onIconItemClick","executeItemClick","_processingTouch","_onTouchStart","_handleTouchAndPointerEvent","_onPointerDown","pointerType","stopImmediatePropagation","_async","Async","splitButton","onTouchStart","_renderSplitPrimaryButton","_renderSplitDivider","_renderSplitIconButton","itemComponentProps","getDividerClassNames","onItemMouseDown","buttonProps","onTap","_lastTouchTimeoutId","_btn","defaultRole","buttonNativeProperties","itemRole","itemButtonProperties","MenuContext","getContextualMenuItemClassNames","shouldFocusOnMount","getSubmenuItems","overrideItems","subItem","preferMenuTargetAsEventTarget","contextItem","getOnClickWithOverrideTarget","_getMenuItemStylesFunction","styleProps","useSubMenuState","dismiss","menuTarget","setExpandedMenuItemKey","setSubmenuTarget","shouldFocusOnContainer","setShouldFocusOnContainer","subMenuId","useId","closeSubMenu","focusContainer","submenuItemKey","onSubMenuDismiss","isMountedRef","useOnSubmenuDismiss","findItemByKeyFromItems","submenuProps","isSubMenu","useKeyHandlers","focusZoneProps","checkForNoWrap","focusZoneDirection","vertical","lastKeyDownWasAltOrMeta","keyHandler","shouldHandleKey","dismissAllMenus","handled","shouldHandleKeyDown","submenuCloseKey","shouldCloseSubMenu","altKey","metaKey","isAltOrMeta","shouldHandleKeyUp","keyPressIsAltOrMetaAlone","hasModifier","isUp","isDown","elementToFocus","lastChild","firstChild","openKey","ContextualMenuBase","asyncTracker","menuId","tryFocusPreviousActiveElement","previousElementsQueue","documentContainsFocus","originalElement","containsFocus","targetElement","targetPosition","usePreviousActiveElement","getSubmenuProps","delayUpdateFocusOnHover","shouldUpdateFocusOnMouseEvent","gotMouseMove","onMenuFocusCapture","useShouldUpdateFocusOnMouseMove","isScrollIdle","scrollIdleTimeoutId","useScrollHandler","subMenuHoverDelay","enterTimerRef","cancelSubMenuTimer","onTimerExpired","useSubmenuEnterTimer","startSubmenuTimer","subMenuEntryTimer","responsiveMode","useResponsiveMode","onMenuDismissed","onMenuOpened","previousHidden","onMenuOpenedRef","onMenuClosedRef","propsRef","useVisibility","onKeyUp","onMenuKeyDown","shouldIgnoreMouseEvent","updateFocusOnMouseEvent","nativeEvent","overrideTarget","shouldDismiss","defaultPrevented","setActive","useMouseHandlers","onItemMouseEnterBase","onItemMouseMoveBase","onMouseItemLeave","onAnchorClick","onDefaultRenderMenuList","menuListProps","menuClassNames","defaultRender","indexCorrection","menuItem","renderMenuItem","itemType","Divider","Header","indexIncrease","customOnRenderListLength","itemClassNames","renderedItems","getItemClassNames","subMenuIconClassName","itemStyleProps","subComponentStyles","renderSeparator","headerItem","renderHeaderMenuItem","renderListItem","Section","renderSectionItem","defaultRenderNormalItem","renderNormalItem","onRenderContextualMenuItem","sectionItem","sectionProps","groupProps","headerContextualMenuItem","ariaLabelledby","topDivider","contextualMenuItem","itemsIndex","bottomDivider","fromSection","onRender","commonProps","divHtmlProperties","labelElementId","useTargetWidth","useTargetAsMinWidth","calloutProps","onRenderSubMenu","onDefaultRenderSubMenu","onRenderMenuList","getMenuClassNames","itemsHaveIcons","contextualMenuItems","contextMenuStyle","adjustedFocusZoneProps","handleTabKey","isCircularNavigation","submenuItem","canAnyMenuItemsCheck","targetAsHtmlElement","offsetWidth","targetWidth","itemCount","Consumer","menuContext","onFocusCapture","FocusZone","renderFocusZone","defaultMenuItemRenderer","prevProps","persist","Event","Element","isopen","LocalContextualMenu","listStyleType","paddingRight","paddingBottom","paddingTop","composeRenderFunction","ContextualMenu","ButtonGlobalClassNames","msButton","msButtonHasMenu","msButtonIcon","msButtonMenuIcon","msButtonLabel","msButtonDescription","msButtonScreenReaderText","msButtonFlexContainer","msButtonTextContainer","getBaseButtonClassNames","variantClassName","menuIconClassName","isSplit","iconExpandedHovered","menuIconExpandedHovered","rootExpandedHovered","rootHasMenu","labelHovered","iconHovered","descriptionHovered","menuIconHovered","iconPressed","descriptionPressed","menuIconPressed","rootCheckedDisabled","rootCheckedHovered","rootCheckedPressed","iconExpanded","iconChecked","labelChecked","labelDisabled","menuIconChecked","menuIconExpanded","descriptionChecked","descriptionDisabled","splitButtonMenuButton","splitButtonMenuButtonExpanded","splitButtonMenuButtonDisabled","splitButtonMenuButtonChecked","splitButtonMenuFocused","splitButtonContainer","splitButtonContainerChecked","splitButtonContainerCheckedHovered","splitButtonContainerHovered","splitButtonContainerFocused","splitButtonContainerDisabled","splitButtonMenuIcon","splitButtonMenuIconDisabled","splitButtonDivider","splitButtonDividerDisabled","_buttonElement","_splitButtonContainer","_mergedRef","createMergedRef","_renderedVisibleMenu","_onRenderIcon","_classNames","FontIcon","_onRenderTextContents","onRenderText","_onRenderText","onRenderDescription","_onRenderDescription","_hasText","_labelId","_onRenderChildren","_descriptionId","_onRenderAriaDescription","_onRenderMenuIcon","menuIconProps","_onRenderMenu","menuProps","MenuType","menuAs","composeComponentAs","_onDismissMenu","_dismissMenu","_menuShouldFocusOnMount","_menuShouldFocusOnContainer","menuHidden","_openMenu","_onToggleMenu","_onSplitContainerFocusCapture","portalContainsElement","_onSplitButtonPrimaryClick","_onMenuClick","_onKeyDown","_onMenuKeyDown","_onKeyUp","_onKeyPress","onKeyPress","_onMouseUp","_onMouseDown","_onClick","_onSplitButtonContainerKeyDown","click","_isValidMenuOpenKey","onMenuClick","setFocusVisibility","forceUpdate","_isSplitButton","warnConditionallyRequiredProps","warnDeprecations","rootProps","toggled","ariaHidden","allowDisabledFocus","toggle","isPrimaryButtonDisabled","renderAsAnchor","tag","resolvedAriaLabel","dataIsFocusable","isCheckboxTypeRole","checkedOrPressedValue","elementRef","_onRenderSplitButtonContent","_onRenderContent","onPointerUp","componentDidUpdate","prevState","onAfterMenuDismiss","openMenu","Tag","onRenderAriaDescription","onRenderChildren","onRenderMenu","onRenderMenuIcon","Button","_shouldRenderMenu","_getMenuProps","Content","persistMenu","renderPersistedMenuHiddenOnMount","getSplitButtonClassNames","primaryActionButtonProps","onPointerDown","SplitButton","_onRenderSplitButtonMenuButton","_onRenderSplitButtonDivider","splitButtonMenuProps","splitButtonAriaLabel","splitButtonProps","BaseButton","menuTriggerKeyCode","defaultProps","baseClassName","stubbedPublicClientApplication","acquireTokenPopup","acquireTokenRedirect","acquireTokenSilent","acquireTokenByCode","getAllAccounts","getAccountByHomeId","getAccountByUsername","getAccountByLocalId","handleRedirectPromise","loginPopup","loginRedirect","logout","logoutRedirect","logoutPopup","ssoSilent","addEventCallback","removeEventCallback","addPerformanceCallback","removePerformanceCallback","enableAccountStorageEvents","disableAccountStorageEvents","getTokenCache","getLogger","setActiveAccount","getActiveAccount","initializeWrapperLibrary","setNavigationClient","getConfiguration","getInteractionStatusFromEvent","currentStatus","eventType","LOGIN_START","Login","SSO_SILENT_START","SsoSilent","ACQUIRE_TOKEN_START","interactionType","Redirect","AcquireToken","HANDLE_REDIRECT_START","HandleRedirect","LOGOUT_START","Logout","SSO_SILENT_SUCCESS","SSO_SILENT_FAILURE","None","LOGOUT_END","HANDLE_REDIRECT_END","LOGIN_SUCCESS","LOGIN_FAILURE","ACQUIRE_TOKEN_SUCCESS","ACQUIRE_TOKEN_FAILURE","defaultMsalContext","inProgress","accounts","MsalContext","accountArraysAreEqual","arrayA","arrayB","comparisonArray","elementA","elementB","getAccountByIdentifiers","allAccounts","accountIdentifiers","accountObj","matchedAccounts","MsalProviderActionType","reducer","previousState","newInProgress","EventMessageUtils","currentAccounts","MsalProvider","useEffect","useMemo","useReducer","callbackId","updateState","EVENT","UNBLOCK_INPROGRESS","contextValue","useMsal","useContext","matchAccount","useIsAuthenticated","useState","isAuthenticated","setHasAuthenticated","hasAuthenticated","ReactAuthErrorMessage","strToGMTString","strToUTCString","strExpires","_supportsCookies","_allowUaSameSite","_parsedCookieValue","_doc","_cookieCache","_globalCookieConfig","_isMgrEnabled","cookieMgr","rootConfig","_extractParts","theValue","_formatDate","theDate","_formatCookieValue","_getCookieValue","_setCookieValue","cookieValue","getItem","sessionStorage","setItem","toObjectMap","baseElementEvents","baseElementProperties","htmlElementProperties","audioProperties","anchorProperties","buttonProperties","imgProperties","divProperties","getNativeProps","allowedPropNames","excludedPropNames","_internalSdkSrc","_ignoreUpdateSnippetProperties","Initialization","_aiNameFunc","baseName","_aiApplication","_aiDevice","_aiLocation","_aiOperation","_aiSession","_aiUser","_aiCloud","_aiInternal","ContextTagKeys","_arrayLikeToArray","arr2","hookCallback","hooks","setHookCallback","hasOwnProp","isObjectEmpty","getOwnPropertyNames","arrLen","createUTC","locale","createLocalOrUTC","utc","defaultParsingFlags","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","_pf","isValid","flags","parsedParts","isNowValid","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","momentProperties","updateInProgress","copyConfig","momentPropertiesLen","_isAMomentObject","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","updateOffset","isMoment","msg","suppressDeprecationWarnings","console","deprecate","firstTime","deprecationHandler","argLen","deprecations","deprecateSimple","_dayOfMonthOrdinalParseLenient","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","mom","output","_calendar","zeroFill","number","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","ordinal","localeData","removeFormattingTokens","makeFormatFunction","formatMoment","expandFormat","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","_longDateFormat","formatUpper","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","future","past","ss","mm","hh","dd","ww","M","MM","yy","relativeTime","withoutSuffix","string","isFuture","_relativeTime","pastFuture","diff","aliases","addUnitAlias","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","sort","isLeapYear","year","absFloor","toInt","argumentForCoercion","coercedNumber","isFinite","makeGetSet","keepTime","set$1","month","daysInMonth","stringGet","stringSet","prioritized","prioritizedLen","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","p1","p2","p3","p4","tokens","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","YEAR","MONTH","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","isFormat","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","parseTwoDigitYear","getSetYear","getIsLeapYear","createDate","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","shiftWeekdays","ws","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","day","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","hours","kFormat","lowercase","minutes","matchMeridiem","_meridiemParse","localeIsPM","seconds","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","isLower","globalLocale","baseConfig","dayOfMonthOrdinalParse","meridiemParse","locales","localeFamilies","commonPrefix","arr1","minl","normalizeLocale","chooseLocale","loadLocale","isLocaleNameSane","oldLocale","_abbr","aliasedRequire","getSetGlobalLocale","getLocale","defineLocale","abbr","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","setUTCMinutes","getUTCMinutes","configFromString","createFromInputFallback","defaults","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekYear","temp","weekdayOverflow","curWeek","GG","W","E","createLocal","gg","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","hour","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromObject","dayOrDate","minute","second","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","orderLen","isValid$1","createInvalid$1","createDuration","years","quarters","quarter","weeks","isoWeek","milliseconds","_milliseconds","_days","_data","_bubble","absRound","round","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","separator","utcOffset","sign","offsetFromString","chunkOffset","matcher","cloneWithOffset","model","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","toArray","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","isAfter","isBefore","createAdder","tmp","isAdding","invalid","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","propertyLen","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","time","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","keepOffset","toDate","inspect","datetime","suffix","zone","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","isoWeekday","unix","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","localeEras","eras","_eras","since","until","localeErasParse","eraName","narrow","localeErasConvertYear","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","_eraYearOrdinalRegex","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","isoWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","erasParse","eraYearOrdinalParse","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetMillisecond","getSetSecond","parseMs","getZoneAbbr","getZoneName","createUnix","createInZone","parseZone","preParsePostFormat","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","zoneAbbr","zoneName","dates","isDSTShifted","proto$1","get$1","field","listMonthsImpl","out","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","firstDayOfWeek","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","argWithSuffix","argThresholds","withSuffix","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","proto$2","toIsoString","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","concatStyleSets","styleSets","mergedSet","workingSubcomponentStyles","currentSet","currentComponentStyles","subCompProp","mergedValue","currentValue","mergedSubStyles","styleFunctionOrObject","_getPrototypeOf","cachedDoc","cachedParser","cachedSerializer","ttPolicy","errorNS","DOMParser","Node","XMLSerializer","getDoc","implementation","createDocument","getParser","getSerializer","parseXML","dom","parseFromString","createHTML","throwIfError","domToObject","parserErrors","getElementsByTagName","invalidXML","namespaceURI","ignored","getErrorNamespace","innerHTML","childNodeCount","firstChildNode","onlyChildTextValue","nodeType","TEXT_NODE","nodeValue","elementWithAttributes","attributes","isElement","hasAttributes","asElementWithAttributes","attr","nodeName","childObject","stringifyXML","buildNode","serializeToString","buildAttributes","attrs","createAttribute","elem","textContent","arrayElem","setNamedItem","trustedTypes","createPolicy","getDefaultUserAgentKey","getDefaultUserAgentHeaderName","getDefaultUserAgentValue","runtimeInfo","platformSpecificData","oscpu","platform","getPlatformSpecificData","telemetryInfo","keySeparator","valueSeparator","getUserAgentString","userAgentPolicy","userAgentData","addUserAgentHeader","allowedRedirect","redirectPolicy","maximumRetries","maxRetries","handleRedirect","currentRetries","locationHeader","builder","DEFAULT_CLIENT_RETRY_INTERVAL","DEFAULT_CLIENT_MAX_RETRY_INTERVAL","retryLimit","predicate","retryData","retryCount","updateRetryData","retryInterval","innerError","incrementDelta","boundedRandDelta","minRetryInterval","maxRetryInterval","RetryMode","exponentialRetryPolicy","retry","requestError","shouldPolicyRetry","responseParam","isAborted","getPathStringFromParameter","parameter","getPathStringFromParameterPath","getStreamResponseStatusCodes","operationSpec","responses","operationResponse","bodyMapper","Stream","Number","cachedHttpClient","_retryTimeout","rpName","matchRes","checkRPNotRegisteredError","bodyAsText","urlPrefix","extractSubscriptionUrl","registerRP","registrationStatus","registerIfNeeded","getRequestEssentials","originalRequest","reuseUrlToo","reqOptions","postUrl","getUrl","getRegistrationStatus","parsedBody","registrationState","authenticationProvider","nextRequest","systemErrorRetryPolicy","throttlingRetryPolicy","StandardAbortMessage","_handleResponse","numberOfRetries","_defaultResponseHandler","httpRequest","httpResponse","retryAfterHeader","ThrottlingRetryPolicy","parseRetryAfterHeader","retryAfterInSeconds","parseDateRetryAfterHeader","credentials","_withCredentials","withCredentials","_httpClient","_requestPolicyOptions","httpPipelineLogger","authPolicyFactory","bearerTokenPolicyFactory","serviceClient","serviceClientOptions","createOptions","credentialScopes","baseUri","URL","getCredentialScopes","bearerTokenAuthenticationPolicy","wrappedPolicyFactory","generateClientRequestIdHeader","clientRequestIdHeaderName","userAgentHeaderName","getValueOrFunctionResult","userAgentHeaderValue","retryTimeout","rpRegistrationPolicy","rpRegistrationRetryTimeout","noRetryPolicy","deserializationContentTypes","proxySettings","createDefaultRequestPolicyFactories","newRequestPolicyFactories","_requestPolicyFactories","validateRequestProperties","prepare","httpPipeline","operationArguments","serializerOptions","httpMethod","requestUrl","appendPath","urlParameters","urlParameter","urlParameterValue","getOperationArgumentValueFromParameter","queryParameters","queryParameter","Multi","Ssv","Tsv","requestBody","headerParameters","headerParameter","customHeaders","customHeaderName","shouldDeserialize","serializeRequestBody","streamResponseStatusCodes","rawResponse","sendRequestError","flattenResponse","requestBodyParameterPathString","getXmlValueWithNamespace","Sequence","mediaType","formDataParameters","formData","formDataParameter","formDataParameterValue","formDataParameterPropertyName","defaultValueCreator","getOperationArgumentValueFromParameterPath","parameterMapper","propertySearchResult","getPropertyFromParameterPath","propertyFound","useDefaultValue","propertyValue","parameterPathString","propertyPath","propertyPathString","parameterPathPart","responseSpec","addOperationResponse","blobBody","isPageableResponse","arrayResponse","defaultUserAgent","IsFocusVisibleClassName","IsFocusHiddenClassName","providerElem","classList","isContained","nextParent","isTokenCredential","castCredential","Cancel","__CANCEL__","givenDate","dateWithoutZulu","GUID_REGEX","maybeGuid","Guid","s4","SessionManager","addEventListeners","tabs","Storage","TOTAL_TABS_KEY","LAST_ACTIVITY_TIME","timeHasElapsed","loadSessionFromStorage","setSessionId","getValidSessionId","refreshTimer","setInterval","checkSessionValidity","MAX_INACTIVITY_DURATION","clearInterval","ACTIVITY_EVENTS","activity","removeSessionFromStorage","removeEventListeners","storageExists","removeItem","SESSION_ID_KEY","sessionIdIsValid","sessionId","timespan","newSessionId","verifiedStorage","getVerifiedStorage","localStorage","enableDevLogs","TelemetryItemCreator","_typeof","LogLevel","loggerOptions","packageName","packageVersion","level","Info","localCallback","loggerCallback","piiLoggingEnabled","logMessage","containsPii","timestamp","executeCallback","errorPii","warning","Warning","warningPii","infoPii","Verbose","verbosePii","trace","Trace","tracePii","isPiiLoggingEnabled","_debugListener","listenerFuncs","_aiNamespace","_listenerProxyFunc","extractStyleParts","objects","_processArgs","argsList","translatedArgs","matchFunction","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","customStyles","splitButtonDividerBaseStyles","splitButtonStyles","borderTopRightRadius","borderBottomRightRadius","borderRight","borderRightWidth","borderLeftWidth","borderLeft","marginLeft","marginTop","marginRight","marginBottom","_isNativeReflectConstruct","sham","Proxy","RedactedString","defaultAllowedHeaderNames","defaultAllowedQueryParameters","Sanitizer","seen","sanitizeHeaders","sanitizeUrl","sanitizeQuery","sanitizeObject","allowedKeys","accessor","sanitized","urlBuilder","BlobLeaseClient","clientContext","_url","_isContainer","_containerOrBlobOperation","_leaseId","acquireLease","changeLease","releaseLease","renewLease","operationOptions","breakLease","deleteVersion","move","execute","permanentDelete","blobSASPermissions","BlobSASPermissions","char","permissionLike","filterByTags","containerSASPermissions","ContainerSASPermissions","generateBlobSASQueryParameters","blobSASSignatureValues","sharedKeyCredentialOrUserDelegationKey","userDelegationKeyCredential","SASSignatureValuesSanityCheckAndAutofill","verifiedPermissions","stringToSign","getCanonicalName","computeHMACSHA256","generateBlobSASQueryParameters20201206","generateBlobSASQueryParametersUDK20201206","generateBlobSASQueryParameters20181109","generateBlobSASQueryParametersUDK20200210","generateBlobSASQueryParametersUDK20181109","generateBlobSASQueryParameters20150405","SVG_REGEX","ImageBase","frameElement","imageElement","onLoadingStateChange","onLoad","notLoaded","loadState","setLoadState","naturalWidth","naturalHeight","loaded","onImageLoaded","onImageError","useLoadState","shouldFadeIn","shouldStartVisible","imageFit","maximizeFrame","loading","coverStyle","previousLoadState","cover","contain","centerContain","centerCover","desiredRatio","clientWidth","clientHeight","landscape","portrait","computeCoverStyle","useCoverStyle","isLoaded","isLandscape","isCenter","center","isCenterContain","isCenterCover","isContain","isCover","isNone","isError","isNotImageFit","rootMaximizeFrame","imageCenter","imageContain","imageCover","imageCenterContain","imageCenterCover","imageNone","imageLandscape","imagePortrait","ImageFitStyles","supportsObjectFit","msMaxTouchPoints","fallbackObjectFitStyles","objectFit","packagesCache","_win","setVersion","packages","__packages__","parsingOptions","DeserializationPolicy","defaultJsonContentTypes","defaultXmlContentTypes","DefaultDeserializationOptions","expectedContentTypes","json","xml","requestPolicyOptions","jsonContentTypes","xmlContentTypes","deserializeResponseBody","getOperationResponse","parsedResponse","operationResponseGetter","shouldDeserializeResponse","handleErrorResponse","shouldReturnResponse","valueToDeserialize","headersMapper","isSuccessByStatus","isExpectedStatusCode","expectedStatusCodes","isOperationSpecEmpty","errorResponseSpec","initialErrorMessage","streamResponseBody","defaultBodyMapper","defaultHeadersMapper","parsedError","internalError","defaultError","errorHandler","errCode","contentComponents","isWebResourceLike","WebResource","keepAlive","decompressResponse","pathTemplate","validMethods","pathParameters","pathParamName","pathParam","stringifiedPathParameters","skipUrlEncoding","queryParams","queryParamName","queryParam","disableClientRequestId","bodyIsStream","serializationMapper","mappers","disableJsonStringifyOnBody","rangeResponseFromModel","callbackRef","propIsEnumerable","test1","test2","test3","letter","shouldUseNative","normalizeHeaderName","enhanceError","transitionalDefaults","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","transitional","adapter","XMLHttpRequest","getDefaultAdapter","transformRequest","rawValue","parser","encoder","stringifySafely","transformResponse","silentJSONParsing","forcedJSONParsing","strictJSONParsing","responseType","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","StorageType","PAGE_ID_KEY","PAGE_NAME_KEY","ONE_SECOND_TIME_OUT","X_CORRELATION_ID","CORRELATION_EXCLUDED_DOMAINS","DISABLED_PROPERTY_NAME","FeatureNameIsMandatory","ActionTypeIsMandatory","ActionNameIsMandatory","UsageSessionTrackingIdIsMandatory","UsagePageTrackingIdIsMandatory","CorrelationIdNotExists","Envelope","_stringify","convertToString","_formatMessage","theEvent","errorType","_isStackDetails","_convertStackObj","errorStack","_getStackFromErrorObj","errorObj","_getErrorType","_ExceptionDetails","stackDetails","_StackFrame","PageView","RemoteDependencyData","PageViewPerformance","Data","ConfigurationManager","DataPoint","isNetworkError","isRetryAllowed","SAFE_HTTP_METHODS","IDEMPOTENT_HTTP_METHODS","isRetryableError","isIdempotentRequestError","isNetworkOrIdempotentRequestError","noDelay","getCurrentState","getRequestOptions","defaultOptions","fixConfig","axios","shouldRetryOrPromise","retryCondition","shouldRetryPromiseResult","axiosRetry","retries","retryDelay","shouldResetTimeout","onRetry","lastRequestDuration","retryNumber","randomSum","BaseTelemetryPlugin","_timeoutIds","_immediateIds","_intervalIds","_animationFrameIds","_isDisposed","_parent","_onErrorHandler","_noop","clearImmediate","timeoutId","_logError","setImmediate","immediateId","intervalId","throttle","wait","lastResult","lastArgs","waitMS","trailing","lastExecuteTime","userCall","waitLength","noOpFunction","cancel","pending","maxWait","lastCallTime","markExecuted","invokeFunction","executeImmediately","maxWaitDelta","maxWaitExpired","resultFunction","animationFrameId","animationFrameCallback","DATA_PORTAL_ATTRIBUTE","setPortalAttribute","DefaultKeepAliveOptions","KeepAlivePolicy","requestIdHeaderName","GenerateClientRequestIdPolicy","_requestIdHeaderName","loggingOptions","LogPolicy","sanitizer","logRequest","logResponse","BatchStates","Batch","actives","completed","operations","Good","emitter","operation","parallelExecute","nextOperation","MutexLockStatus","Mutex","UNLOCKED","LOCKED","onUnlockEvent","emitUnlockEvent","handler","isarray","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","defaultDelimiter","escaped","capture","group","modifier","asterisk","partial","optional","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","encode","pretty","attachKeys","route","endsWithDelimiter","groups","regexpToRegexp","arrayToRegexp","stringToRegexp","REACT_LIFECYCLE_EXCLUSIONS","ResponsiveMode","_updateComposedComponentRef","composedComponentInstance","_composedComponentInstance","_hoisted","destination","exclusions","hoisted","hoistMethods","_defaultMode","_lastMode","RESPONSIVE_MAX_CONSTRAINT","getInitialResponsiveMode","withResponsiveMode","ComposedComponent","resultClass","_onResize","getResponsiveMode","unknown","contextType","hoistStatics","getWidthOfCurrentWindow","currentWindow","mergeCss","styleArgs","sendOperationRequest","downloadOperationSpec","getPropertiesOperationSpec","deleteOperationSpec","undeleteOperationSpec","setExpiryOperationSpec","setHttpHeadersOperationSpec","setImmutabilityPolicyOperationSpec","deleteImmutabilityPolicyOperationSpec","setLegalHoldOperationSpec","setMetadataOperationSpec","acquireLeaseOperationSpec","releaseLeaseOperationSpec","renewLeaseOperationSpec","changeLeaseOperationSpec","breakLeaseOperationSpec","createSnapshotOperationSpec","startCopyFromURLOperationSpec","copyFromURLOperationSpec","abortCopyFromURLOperationSpec","setTierOperationSpec","getAccountInfoOperationSpec","queryOperationSpec","getTagsOperationSpec","setTagsOperationSpec","xmlSerializer","paramsSerializer","serializedParams","hashmarkIndex","isAxiosError","fileName","lineNumber","columnNumber","clarifyTimeoutError","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","onCanceled","requestData","requestHeaders","cancelToken","unsubscribe","signal","auth","password","unescape","Authorization","fullPath","baseURL","responseHeaders","getAllResponseHeaders","responseText","statusText","open","onreadystatechange","readyState","responseURL","onabort","ontimeout","timeoutErrorMessage","xsrfValue","setRequestHeader","abort","subscribe","send","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","businessProcessName","componentType","templateType","targetEntityKey","actionUri","appAction","xcv","userRoleName","senderId","receiverId","messageId","eventOccurenceTime","pageID","pageName","locationPath","page","UsageErrorDetails","setUsageAttibutes","getUsageErrorMessage","UsageAttributeHandler","_globalThis","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","encodingOrOffset","allocUnsafe","fromArrayLike","fromArrayBuffer","encoding","isEncoding","actual","fromString","copy","fromObject","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","buf","readUInt16BE","foundIndex","found","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","lo","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","SlowBuffer","INSPECT_MAX_BYTES","foo","subarray","typedArraySupport","poolSize","_augment","species","fill","allocUnsafeSlow","_isBuffer","compare","swap16","swap32","swap64","thisStart","thisEnd","thisCopy","targetCopy","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","dst","denyList","_runListeners","isAsync","NotificationManager","globalSettings","_getGlobalSettings","callbacks","oldValue","changeDescription","addChangeListener","__id__","_getCallbacks","removeChangeListener","globalObj","getIconContent","mergeImageProps","iconContent","accessibleName","finalChildren","deprecationMap","withSlots","slotType","isSlot","createFactory","DefaultComponent","defaultProp","componentProps","userProps","userSlotOptions","defaultStyles","flattenedUserProps","slotProps","transformedProps","_translateShorthand","finalProps","allProps","_constructFinalProps","UserComponent","defaultFactory","getSlots","slots","mixedProps","slot","_renderSlot","_defaultStyles","slotOptions","addElementAtIndex","itemToAdd","arraysEqual","shallowCompare","filteredAssign","isAllowed","sourceObject","_id","_uniqueId","_eventRecords","eventArgs","bubbleEvent","retVal","_isElement","createEvent","initEvent","dispatchEvent","createEventObject","evObj","fireEvent","__events__","eventRecords","eventRecordList","listIndex","objectCallback","isObserved","isDeclared","declaredEvents","__declaredEvents","cancelBubble","HTMLElement","onAll","eventRecord","processElementEvent","elementCallback","attachEvent","targetArrayLookup","targetArray","detachEvent","declare","dest","requiredProps","conditionalPropName","telemetry","userAgentInfo","userAgentPrefix","libInfo","TelemetryPolicy","firstArg","DisbleResponseDecompressionNotSupportedInBrowser","disableResponseDecompressionPolicy","BlobDownloadResponse","BearerTokenAuthenticationPolicy","ReflectOwnKeys","R","ReflectApply","NumberIsNaN","EventEmitter","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","prepend","existing","newListener","warned","onceWrapper","fired","wrapFn","_onceWrap","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","wrapListener","setMaxListeners","getMaxListeners","doError","er","originalListener","rawListeners","eventNames","BlobQueryResponse","originalResponse","BrowserRouter","createHistory","resolveToLocation","normalizeToLocation","forwardRefShim","C","forwardRef","LinkAnchor","innerRef","navigate","isModifiedEvent","Link","isDuplicateNavigation","ariaCurrent","activeClassName","activeStyle","classNameProp","isActiveProp","locationProp","styleProp","escapedPath","classnames","joinClassnames","MAX_SIGNED_31_BIT_INT","commonjsGlobal","createEventEmitter","handlers","changedBits","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","Provider","_Component","_this","_proto","getChildContext","componentWillReceiveProps","childContextTypes","PropTypes","isRequired","_Component2","_this2","onUpdate","observedBits","_proto2","contextTypes","reactIs","REACT_STATICS","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","_addChannelQueue","channelQueue","strValidationError","strSdkUnloadingError","defaultInitConfig","_createPerfManager","notificationMgr","_isPluginPresent","thePlugin","channelPriority","allExtensions","primary","baseButtonStyles","defaultButtonStyles","primaryStyles","standardStyles","DefaultButton","customizable","actions","actionsRight","_renderChildrenAsActions","DialogFooter","tryCreateSpan","tryProcessResponse","tryProcessError","CLIENT","namespaceFromContext","traceParentHeader","missingFields","hexFlags","getTraceParentHeader","serviceRequestId","OK","PollerStoppedError","PollerCancelledError","stopped","pollProgressCallbacks","promise","isStopped","isDone","fireProgress","processUpdatedState","pollOncePromise","pollOnce","clearPollOncePromise","isCancelled","startPolling","isCompleted","cancelPromise","cancelOnce","makeBlobBeginCopyFromURLPollOperation","isStarted","prevCopyProgress","resetIds","useWindow","useDocument","Fragment","StrictMode","Profiler","Suspense","A","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","B","refs","updater","D","isReactComponent","isPureReactComponent","G","H","I","__self","__source","J","$$typeof","_owner","N","O","K","Q","_result","S","T","ReactCurrentDispatcher","ReactCurrentBatchConfig","transition","ReactCurrentOwner","IsSomeRendererActing","Children","only","PureComponent","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","createRef","isValidElement","lazy","_payload","_init","useCallback","useDebugValue","useImperativeHandle","useLayoutEffect","useRef","webpackPolyfill","Axios","mergeConfig","createInstance","defaultConfig","instanceConfig","CancelToken","isCancel","promises","spread","InterceptorManager","dispatchRequest","validator","validators","interceptors","configOrUrl","assertOptions","boolean","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","responseInterceptorChain","chain","newConfig","onFulfilled","onRejected","getUri","use","eject","transformData","throwIfCancellationRequested","throwIfRequested","fns","normalizedName","expires","domain","secure","cookie","toGMTString","isAbsoluteURL","combineURLs","requestedURL","relativeURL","ignoreDuplicateOf","line","originURL","msie","urlParsingNode","resolveURL","hostname","requestURL","deprecatedWarnings","formatMessage","opt","allowUnknown","executor","resolvePromise","onfulfilled","_resolve","featureName","actionType","actionName","FeatureUsageEvent","taskName","taskStatus","actionStatus","capabilityType","embeddedExpereinceName","isEmbeddedExperience","subFeatureName","experimentationConfigId","experimentationConfigName","experimentationConfigResult","componentUri","entityId","systemMessage","ictoId","ajaxSetup","setCorrelationId","newId","renewCorrelationId","subCorelationId","setSubCorrelationId","noGlobal","flat","class2type","fnToString","ObjectFunctionString","support","isWindow","preservedScriptAttributes","noModule","DOMEval","script","toType","jQuery","isArrayLike","jquery","num","pushStack","elems","prevObject","each","first","eq","even","grep","_elem","odd","copyIsArray","deep","expando","isReady","Ctor","isEmptyObject","globalEval","makeArray","results","inArray","invert","callbackExpect","guid","Sizzle","Expr","getText","tokenize","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","pushNative","booleans","whitespace","pseudos","rwhitespace","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","nonHex","high","rcssescape","fcssescape","asCodePoint","unloadHandler","inDisabledFieldset","addCombinator","els","seed","nid","newContext","getElementById","getElementsByClassName","qsa","testContext","toSelector","querySelectorAll","qsaError","removeAttribute","cacheLength","markFunction","assert","addHandle","attrHandle","siblingCheck","cur","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","createPositionalPseudo","matchIndexes","hasCompare","subWindow","createComment","getById","getElementsByName","attrId","find","getAttributeNode","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","sortDetached","aup","ap","bp","expr","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","operator","check","what","_argument","simple","forward","ofType","uniqueCache","outerCache","nodeIndex","useCache","pseudo","setFilters","idx","unmatched","elemLang","selected","selectedIndex","_matchIndexes","radio","checkbox","file","submit","combinator","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","compiled","unique","isXMLDoc","escapeSelector","truncate","is","siblings","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","contents","sibling","targets","closest","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","rnothtmlwhite","Identity","Thrower","adoptValue","noValue","fail","Callbacks","flag","firing","memory","locked","firingIndex","fire","stopOnFalse","lock","fireWith","Deferred","tuples","always","deferred","newDefer","tuple","returned","progress","notify","maxDepth","depth","special","mightThrow","notifyWith","resolveWith","exceptionHook","stackTrace","rejectWith","getStackHook","stateString","when","singleValue","resolveContexts","resolveValues","updateFunc","rerrorNames","readyException","readyList","readyWait","doScroll","chainable","emptyGet","bulk","rmsPrefix","rdashAlpha","fcamelCase","_all","camelCase","acceptData","owner","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","getData","removeData","_removeData","dequeue","startLength","_queueHooks","clearQueue","defer","pnum","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","adjustCSS","valueParts","tween","adjusted","maxIterations","initial","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","show","hide","rcheckableType","rtagName","rscriptType","div","createDocumentFragment","checkClone","noCloneChecked","option","wrapMap","thead","col","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","optgroup","buildFragment","scripts","selection","attached","fragment","nodes","htmlPrefilter","rtypenamespace","returnTrue","returnFalse","expectSync","safeActiveElement","types","origFn","leverageNative","notAsync","saved","isTrigger","delegateType","trigger","handleObjIn","eventHandle","handleObj","origType","elemData","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","button","addProp","hook","originalEvent","load","noBubble","beforeunload","isDefaultPrevented","timeStamp","isSimulated","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","pageX","pageY","shiftKey","view","charCode","keyCode","buttons","offsetX","offsetY","pointerId","screenX","screenY","targetTouches","touches","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","original","rnumnonpx","opener","getComputedStyle","old","rboxStyle","curCSS","computed","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","measure","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","borderTopWidth","borderBottomWidth","cssPrefixes","emptyStyle","vendorProps","finalPropName","final","cssProps","capName","vendorPropName","rdisplayswap","rcustomProp","cssShow","cssNormalTransform","setPositiveNumber","boxModelAdjustment","dimension","box","isBorderBox","computedVal","extra","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","origName","isCustomProp","setProperty","scrollboxSizeBuggy","expand","propHooks","percent","eased","fx","scrollTop","scrollLeft","linear","swing","cos","PI","fxNow","rfxtypes","rrun","schedule","interval","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","prefilters","currentTime","startTime","tweens","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","anim","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","prefilter","speed","speeds","fadeTo","animate","optall","doAnimation","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","bool","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","addClass","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parserErrorElem","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","valueOrFunction","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","processData","accepts","responseFields","converters","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","requestHeadersNames","strAbort","getResponseHeader","overrideMimeType","mimeType","finalText","crossDomain","hasContent","ifModified","beforeSend","nativeStatusText","isSuccess","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","conv","dataFilter","throws","ajaxConvert","getJSON","getScript","wrapAll","wrapInner","htmlIsFunction","xhr","xhrSuccessStatus","xhrSupported","errorCallback","xhrFields","onload","binary","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","keepScripts","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","pageYOffset","pageXOffset","parentOffset","scrollTo","Height","Width","defaultExtra","unbind","undelegate","hover","fnOver","fnOut","holdReady","hold","parseJSON","isNumeric","_jQuery","_$","$","noConflict","onSuccesCallback","onExceptionCallback","jsx","jsxs","aa","ba","ca","da","ea","fa","ha","ia","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","oa","pa","qa","ma","na","la","setAttributeNS","xlinkHref","ra","sa","ta","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","Oa","Pa","prepareStackTrace","Qa","_render","Ra","Sa","Ta","Va","_valueTracker","stopTracking","Ua","Wa","Xa","Ya","defaultChecked","_wrapperState","initialChecked","Za","controlled","$a","ab","bb","eb","db","fb","defaultSelected","gb","dangerouslySetInnerHTML","hb","ib","jb","kb","lb","mb","nb","ob","MSApp","execUnsafeLocalFunction","pb","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexPositive","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","order","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","rb","sb","tb","ub","menuitem","area","br","embed","img","keygen","meta","track","wbr","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","$b","memoizedState","dehydrated","ac","cc","bc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","nc","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","targetContainers","sc","tc","vc","wc","lanePriority","unstable_runWithPriority","hydrate","containerInfo","xc","yc","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","LN2","unstable_UserBlockingPriority","ed","fd","gd","hd","uc","jd","kd","ld","md","nd","od","pd","qd","rd","_reactName","_targetInst","isPersistent","wd","xd","yd","sd","isTrusted","ud","vd","Ad","getModifierState","zd","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","isPrimary","Vd","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","ie","le","email","tel","me","ne","oe","pe","qe","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","Be","Ce","De","Ee","Fe","He","Ie","Je","Ke","Le","Me","Ne","HTMLIFrameElement","contentWindow","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","$e","af","bf","cf","df","passive","Nb","ef","ff","gf","hf","je","ke","jf","kf","lf","mf","autoFocus","nf","__html","of","pf","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","cg","dg","eg","fg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","yg","zg","eventTime","lane","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","Mg","Ng","UNSAFE_componentWillReceiveProps","Og","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","mode","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","dh","eh","fh","gh","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","sh","uh","_workInProgressVersionPrimary","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","Ih","Jh","Kh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","U","getSnapshot","setSnapshot","Oh","Ph","Qh","Rh","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","fi","gi","ji","ki","li","mi","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","componentWillUpdate","qi","ri","pendingContext","Bi","Di","Ei","si","retryLane","ti","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","tail","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onclick","createElementNS","V","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","aj","bj","onCommitFiberUnmount","cj","dj","ej","fj","gj","hj","_reactRootContainer","ij","jj","kj","lj","mj","nj","oj","pj","X","Y","qj","rj","sj","tj","uj","vj","wj","ck","Z","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","createRange","setStart","removeAllRanges","addRange","setEnd","onCommitFiberRoot","fk","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","lk","mk","nk","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","hk","unstable_observedBits","unmount","form","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","yk","supportsFiber","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","performance","MessageChannel","unstable_forceFrameRate","port2","port1","onmessage","postMessage","sortIndex","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","maxChunkLength","len2","encodeChunk","lookup","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","Timeout","clearFn","_clearFn","close","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","messagePrefix","onGlobalMessage","installPostMessageImplementation","channel","installMessageChannelImplementation","installReadyStateChangeImplementation","task","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propFullName","secret","getShim","ReactPropTypes","bigint","symbol","arrayOf","instanceOf","objectOf","oneOf","oneOfType","shape","checkPropTypes","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","AppInsightsCore","mergeStyleSets","mergeCssSets","classNameSet","concatenatedStyleSet","registrations","styleSetArea","mergedCallback","createResolver","newRefs","asyncRef","_scrollbarWidth","_bodyScrollDisabledCount","DisabledScrollClassName","DATA_IS_SCROLLABLE_ATTRIBUTE","allowScrollOnElement","_previousClientY","_element","scrollableParent","findScrollableParent","scrollHeight","allowOverscrollOnElement","_disableIosBodyScroll","disableBodyScroll","enableBodyScroll","getScrollbarWidth","scrollDiv","startingElement","computedStyles","tagsToIgnore","modalize","targetDocument","affectedNodes","originalValue","unmodalize","concatStyles","_styleCache","_onSettingChanged","mergedStyles","merged","createSpanFunction","INTERNAL","spanName","azureTracingDisabledValue","AZURE_TRACING_DISABLED","isTracingDisabled","newSpanOptions","newTracingOptions","Container","createOperationSpec","getAccessPolicyOperationSpec","setAccessPolicyOperationSpec","restoreOperationSpec","renameOperationSpec","submitBatchOperationSpec","filterBlobsOperationSpec","listBlobFlatSegmentOperationSpec","listBlobHierarchySegmentOperationSpec","AppendBlob","appendBlockOperationSpec","appendBlockFromUrlOperationSpec","sealOperationSpec","BlockBlob","uploadOperationSpec","putBlobFromUrlOperationSpec","stageBlockOperationSpec","stageBlockFromURLOperationSpec","commitBlockListOperationSpec","getBlockListOperationSpec","BufferScheduler","PageBlob","uploadPagesOperationSpec","clearPagesOperationSpec","uploadPagesFromURLOperationSpec","getPageRangesOperationSpec","getPageRangesDiffOperationSpec","resizeOperationSpec","updateSequenceNumberOperationSpec","copyIncrementalOperationSpec","Application","Device","Location","Session","_validateUserInput","strExt","strTags","_removeEmpty","strTrue","_setValueIf","_extractPropsAndMeasurements","_convertPropsUndefinedToCustomDefinedValue","customUndefinedValue","_createEnvelope","envelopeType","telemetryItem","EnvelopeCreatorInit","_disableEvents","_getResponseText","_getDefaultAppInsightsChannelConfig","EnvelopeTypeCreator","MAX_DURATION_ALLOWED","botAgentNames","_isPerformanceTimingSupported","_isPerformanceTimingDataReady","_getPerformanceTiming","_getPerformanceNavigationTiming","_shouldCollectDuration","_dispatchEvent","evnt","_configMilliseconds","_getDefaultConfig","extConfig","getRandomValues","rnds8","rng","msCrypto","validate","REGEX","byteToHex","v4","rnds","_calcPerfDuration","resourceEntry","_setPerfDuration","_setPerfValue","ajaxData","dependency","AJAX_MONITOR_PREFIX","strFetch","_markCount","_getFailedAjaxDiagnosticsMessage","_throwInternalCritical","ajaxMonitorInstance","msgId","isUserAct","_throwInternalWarning","_createErrorCallbackFunc","internalMessage","_indexOf","appendFunction","functions","methods","extendComponent","_onMount","_onUpdate","_onUnmount","_setComponentRef","methodNames","_makeSafe","_makeAllSafe","BaseComponent","_updateComponentRef","__disposables","_disposables","disposable","__className","__async","__events","_resolveRef","refName","__resolves","_warnDeprecations","_warnMutuallyExclusive","mutuallyExclusiveMap","_warnConditionallyRequiredProps","_skipComponentRefResolution","classMethod","prototypeMethod","nullRender","cbNames","_arrLoop","_doCallbacks","callDetails","cbArgs","hookCtx","_getOwner","checkPrototype","_createInstrumentHook","aiHook","ReactPlugin","_memoizedClassNames","styleCalcCount","getClassNamesCount","currentMemoizedClassNames","useStaticStyles","__noStyleOverride__","_traverseMap","enableClassNameCacheFullWarning","_traverseEdge","_normalizeValue","inputs","__cachedInputs__","concatStyleSetsWithProps","allStyles","_merge","circularReferences","isCircularReference","isRendered","_timeoutId","createComponent","ResultComponent","DefaultFields","_getCustomizations","stateReducer","_resolveTokens","_resolveStyles","viewProps","statics","allTokens","currentTokens","PrimaryButton","componentAsMemoizer","outer","Outer","inner","Inner","innerMemoizer","innerProps","outerProps","providedId","overrideResponsiveMode","lastResponsiveMode","setLastResponsiveMode","onResize","newResponsiveMode","focusZoneStyles","IS_FOCUSABLE_ATTRIBUTE","FOCUSZONE_ID_ATTRIBUTE","TABINDEX","NO_VERTICAL_WRAP","NO_HORIZONTAL_WRAP","LARGE_DISTANCE_FROM_CENTER","LARGE_NEGATIVE_DISTANCE_FROM_CENTER","raiseClickFromKeyboardEvent","MouseEvent","initMouseEvent","_allInstances","_outerZones","ALLOWED_INPUT_TYPES","ALLOW_VIRTUAL_ELEMENTS","_root","_onFocus","_portalContainsElement","newActiveElement","onActiveElementChanged","doNotAllowFocusEventToPropagate","stopFocusPropagation","onFocusNotification","onFocus","shouldFocusInnerElementWhenReceivedFocus","defaultTabbableElement","isImmediateDescendant","_isImmediateDescendantOfZone","maybeElementToFocus","_activeElement","initialElementFocused","_setFocusAlignment","_updateTabIndexes","_onBlur","_setParkedFocus","_setActiveElement","isInnerZoneKeystroke","pagingSupportDisabled","shouldEnterInnerZone","_getDocument","_isInnerZone","innerZone","_getFirstInnerZone","focusElement","_shouldRaiseClicksOnSpace","_tryInvokeClickForFocusable","_preventDefaultWhenHandled","_moveFocusLeft","_moveFocusRight","horizontal","_moveFocusUp","_moveFocusDown","_moveFocusPaging","allowTabKey","_isElementInput","focusChanged","_processingTabKey","_shouldWrapFocus","shouldResetActiveElementWhenTabFromZone","_isContentEditableElement","_shouldInputLoseFocus","_shouldRaiseClicksOnEnter","_getHorizontalDistanceFromCenter","isForward","activeRect","leftAlignment","_focusAlignment","targetRectTop","activeRectBottom","targetRectBottom","activeRectTop","shouldRaiseClicksFallback","shouldRaiseClicks","shouldRaiseClicksOnEnter","shouldRaiseClicksOnSpace","getOuterZones","_onKeyDownCapture","defaultActiveElement","_defaultFocusElement","preventFocusRestoration","_lastIndexPath","divProps","_evaluateFocusBeforeRender","onMouseDownCapture","forceIntoFirstElement","ownerZoneElement","_getOwnerZone","ownerZone","focusLast","forceAlignment","onBeforeFocus","shouldReceiveFocus","setFocusAlignment","focusedElement","isParked","_isParked","_parkedTabIndex","previousActiveElement","preventDefaultWhenHandled","_moveFocus","getDistanceFromCenter","useDefaultWrap","candidateDistance","candidateElement","changedFocus","isBidirectional","bidirectional","elementDistance","targetTop","distance","shouldWrap","targetBottom","pagesize","isHorizontal","isVertical","childIndex","isRangeSelected","inputValue","isReadonly","shouldInputLoseFocusOnArrowKey","defaultFocusRestorer","enableAriaHiddenSiblings","mergedRootRef","shouldHideSiblings","useHideSiblingNodes","originalFocusedElement","useRestoreFocus","needsVerticalScrollBar","needsVerticalScrollBarState","setNeedsVerticalScrollBar","rootHeight","firstChildHeight","useScrollbarAsync","memoizer","useBoolean","initialState","setTrue","setFalse","XhrHttpClient","DONE","addProgressListener","requestForm","FormData","appendFormValue","formKey","formValue","rej","HEADERS_RECEIVED","rejectOnTerminalEvent","reader","handleBlobResponse","rawEvent","headerLines","PerformanceEvents","PerformanceEventStatus","CryptoKeyStoreNames","JoseHeaderErrorMessage","JoseHeaderError","createMissingKidError","createMissingAlgError","typ","alg","kid","shrHeaderOptions","shrHeader","JoseHeader","Jwt","decimalToHex","hex","generateGuid","MathUtils","guidHolder","guidResponse","isGuid","stringToUtf8Arr","sDOMStr","nChr","nArrLen","nStrLen","nMapIdx","aBytes","nIdx","nChrIdx","stringToArrayBuffer","dataString","dataView","utf8ArrToString","sView","nPart","nLen","urlEncode","urlEncodeArr","inputArr","base64EncArr","inputUtf8Arr","eqLen","sB64Enc","nMod3","nUint24","uint6ToB64","nUint6","encodedString","base64DecToArr","base64String","nBlockSize","nInLen","nOutLen","nMod4","nOutIdx","nInIdx","b64ToUint6","charNum","BrowserAuthErrorMessage","BrowserAuthError","createPkceNotGeneratedError","createCryptoNotAvailableError","createHttpMethodNotImplementedError","createEmptyNavigationUriError","createEmptyHashError","hashValue","createHashDoesNotContainStateError","createHashDoesNotContainKnownPropertiesError","createUnableToParseStateError","createStateInteractionTypeMismatchError","createInteractionInProgressError","createPopupWindowError","createEmptyWindowCreatedError","createUserCancelledError","createMonitorPopupTimeoutError","createMonitorIframeTimeoutError","createRedirectInIframeError","windowParentCheck","createBlockReloadInHiddenIframeError","createBlockAcquireTokenInPopupsError","createIframeClosedPrematurelyError","createSilentLogoutUnsupportedError","createNoAccountError","createSilentPromptValueError","givenPrompt","createUnableToParseTokenRequestCacheError","createNoTokenRequestCacheError","createAuthRequestNotSetError","createNoCachedAuthorityError","createNonBrowserEnvironmentError","createDatabaseNotOpenError","createNoNetworkConnectivityError","createPostRequestFailedError","errorDesc","createGetRequestFailedError","createFailedToParseNetworkResponseError","createUnableToLoadTokenError","errorDetail","createSigningKeyNotFoundInStorageError","keyId","createAuthCodeRequiredError","createAuthCodeOrNativeAccountIdRequiredError","createDatabaseUnavailableError","createUnableToAcquireTokenFromNativePlatformError","createNativeHandshakeTimeoutError","createNativeExtensionNotInstalledError","createNativeConnectionNotEstablishedError","createNativeBrokerCalledBeforeInitialize","createNativePromptParameterNotSupportedError","base64Encode","generateCodes","codeVerifier","generateCodeVerifier","generateCodeChallengeFromVerifier","codeChallenge","verifier","pkceCodeVerifier","sha256Digest","pkceHashedCodeVerifier","S256_HASH_ALG","PUBLIC_EXPONENT","hasCryptoAPI","_keygenAlgorithmOptions","modulusLength","publicExponent","hasIECrypto","getMSCryptoDigest","getSubtleCryptoDigest","dataBuffer","generateKeyPair","extractable","usages","msCryptoGenerateKey","subtle","generateKey","exportJwk","msCryptoExportJwk","exportKey","importJwk","keyString","BrowserCrypto","getJwkString","keyBuffer","msCryptoImportKey","importKey","msCryptoSign","hasBrowserCrypto","algorithm","digest","digestOperation","msGenerateKey","msExportKey","resultBuffer","resultString","msImportKey","msSign","jwk","dbName","tableName","dbOpen","openDB","indexedDB","createObjectStore","closeConnection","validateDbIsOpen","dbGet","transaction","objectStore","dbPut","put","dbDelete","getKeys","dbGetKeys","getAllKeys","containsKey","dbContainsKey","deleteDatabase","databases","existingDatabases","database","deleteDbRequest","cacheKeys","storeName","inMemoryCache","MemoryStorage","indexedDBCache","handleDatabaseAccessError","dbDeleted","CcsCredentialType","performanceClient","browserCrypto","b64Encode","b64Decode","guidGenerator","pkceGenerator","asymmetricKeys","symmetricKeys","createNewGuid","generatePkceCodes","getPublicKeyThumbprint","publicKeyThumbMeasurement","startMeasurement","CryptoOptsGetPublicKeyThumbprint","CryptoOps","EXTRACTABLE","POP_KEY_USAGES","keyPair","publicKey","publicKeyJwk","pubKeyThumprintObj","kty","publicJwkString","hashString","publicJwkHash","privateKey","privateKeyJwk","unextractablePrivateKey","requestMethod","resourceRequestMethod","requestUri","resourceRequestUri","endMeasurement","removeTokenBindingKey","clearKeystore","signJwt","signJwtMeasurement","CryptoOptsSignJwt","cachedKeyPair","publicKeyJwkString","encodedKeyIdThumbprint","getShrHeaderString","encodedShrHeader","cnf","encodedPayload","tokenString","tokenBuffer","signatureBuffer","encodedSignature","signedJwt","plainText","hashBuffer","hashBytes","clientId","libraryName","libraryVersion","applicationTelemetry","eventsByCorrelationId","measurementsById","measureName","eventCorrelationId","generateId","performanceMeasurement","startPerformanceMeasuremeant","inProgressEvent","eventId","InProgress","appName","appVersion","startTimeMs","cacheEventByCorrelationId","cacheMeasurement","completedEvent","flushMeasurement","flushMeasurements","discardMeasurement","discardMeasurements","measurement","durationMs","existingEvents","eventsForCorrelationId","sortedCompletedEvents","eventA","eventB","topLevelEvents","topLevelEvent","eventToEmit","previous","subMeasurementName","accessTokenSize","idTokenSize","emitEvents","StubPerformanceMeasurement","DEFAULT_CRYPTO_IMPLEMENTATION","createUnexpectedError","ServerError","CredentialEntity","generateAccountIdForCacheKey","generateCredentialId","generateCredentialIdForCacheKey","credentialType","familyId","generateTarget","generateTargetForCacheKey","generateCredentialKey","generateCredentialCacheKey","tokenType","requestedClaimsHash","ID_TOKEN","ACCESS_TOKEN","ACCESS_TOKEN_WITH_AUTH_SCHEME","REFRESH_TOKEN","NOT_DEFINED","generateClaimsHashForCacheKey","generateSchemeForCacheKey","BEARER","ClientConfigurationErrorMessage","ClientConfigurationError","claimsRequestParseError","urlString","urlParseError","createUrlEmptyError","createEmptyScopesArrayError","inputScopes","promptValue","createInvalidClaimsRequestError","createEmptyLogoutRequestError","createEmptyTokenRequestError","createInvalidCodeChallengeMethodError","createInvalidCodeChallengeParamsError","createInvalidCloudDiscoveryMetadataError","createInvalidAuthorityMetadataError","createUntrustedAuthorityError","createInvalidAzureCloudInstanceError","createMissingSshJwkError","createMissingSshKidError","createMissingNonceAuthenticationHeadersError","createInvalidAuthenticationHeaderError","invalidHeaderName","scopeArr","trimArrayEntries","filteredInput","removeEmptyStringsFromArray","validateInputScopes","inputScopeString","ScopeSet","lowerCaseScopesSet","printScopesLowerCase","scopeSet","asArray","containsScope","containsOnlyOIDCScopes","defaultScopeCount","defaultScope","newScope","newScopes","appendScope","createAppendScopeSetError","createRemoveEmptyScopeFromSetError","removeOIDCScopes","otherScopes","unionScopes","unionScopeSets","sizeOtherScopes","getScopeCount","sizeThisScopes","printScopes","rawToken","AuthToken","extractTokenClaims","encodedToken","decodedToken","decodeAuthToken","base64TokenPayload","base64Decoded","cryptoImpl","getAccountsFilteredBy","accountValues","accountInfo","CacheManager","readIdTokenFromCache","cacheRecord","setAccount","setIdTokenCredential","accessToken","saveAccessToken","refreshToken","setRefreshTokenCredential","appMetadata","setAppMetadata","currentTokenCache","getCredentialsFilteredBy","currentScopes","currentAccessTokens","accessTokens","tokenEntity","intersectingScopeSets","removeCredential","setAccessTokenCredential","accountFilter","getAccountsFilteredByInternal","allCacheKeys","matchingAccounts","getAccount","matchHomeAccountId","matchEnvironment","matchRealm","matchNativeAccountId","getCredentialsFilteredByInternal","userAssertionHash","matchingCredentials","idTokens","refreshTokens","credType","getCredentialType","getSpecificCredential","matchUserAssertionHash","matchCredentialType","matchClientId","matchFamilyId","matchTarget","matchTokenType","SSH","matchKeyId","updatedCacheKey","updateCredentialCacheKey","getAppMetadataFilteredByInternal","matchingAppMetadata","isAppMetadata","getAppMetadata","getAuthorityMetadataKeys","matchedEntity","isAuthorityMetadata","getAuthorityMetadata","removeAllAccounts","removedAccounts","removeAccount","removeAccountContext","ACCOUNT","removedCredentials","cacheEntity","POP","CREDENTIAL","removeAppMetadata","APP_METADATA","cachedAccount","readAccountFromCache","cachedIdToken","cachedAccessToken","readAccessTokenFromCache","cachedRefreshToken","readRefreshTokenFromCache","cachedAppMetadata","readAppMetadataFromCache","accountCache","idTokenFilter","credentialCache","numIdTokens","authScheme","authenticationScheme","accessTokenFilter","sshKid","numAccessTokens","familyRT","refreshTokenFilter","appMetadataFilter","getAppMetadataFilteredBy","appMetadataEntries","numAppMetadata","isAppMetadataFOCI","cloudMetadata","getAuthorityMetadataByAlias","entityScopeSet","requestTargetScopeSet","removeScope","OFFLINE_ACCESS_SCOPE","containsScopeSet","CACHE_KEY","getIdTokenCredential","getAccessTokenCredential","getRefreshTokenCredential","setServerTelemetry","getServerTelemetry","setAuthorityMetadata","setThrottlingCache","getThrottlingCache","idTokenEntity","IdTokenEntity","nowSeconds","isTokenExpired","expirationSec","TimeUtils","cachedAt","createAccessTokenEntity","extExpiresOn","cryptoUtils","refreshOn","requestedClaims","atEntity","AccessTokenEntity","extendedExpiresOn","tokenClaims","createRefreshTokenEntity","rtEntity","RefreshTokenEntity","generateAppMetadataKey","AppMetadataEntity","generateAppMetadataCacheKey","createAppMetadataEntity","isAppMetadataEntity","failedRequests","cacheHits","isServerTelemetryEntity","validateEntity","expiresAt","REFRESH_TIME_SECONDS","updateCloudDiscoveryMetadata","fromNetwork","preferred_cache","preferred_network","aliasesFromNetwork","updateEndpointMetadata","authorization_endpoint","token_endpoint","end_session_endpoint","issuer","endpointsFromNetwork","jwks_uri","canonical_authority","resetExpiresAt","isExpired","isAuthorityMetadataEntity","isThrottlingEntity","THROTTLING_PREFIX","setRequestState","userState","libraryState","ProtocolUtils","generateLibraryState","RESOURCE_DELIM","createNoCryptoObjectError","stateObj","parseRequestState","splitState","libraryStateString","libraryStateObj","userRequestState","ProtocolMode","AzureCloudInstance","cacheLocation","validateWindowStorage","windowStorage","LocalStorage","SessionStorage","_urlString","getHash","UrlString","canonicalizeUri","lowerCaseUrl","validateAsUri","components","getUrlComponents","createUrlParseError","HostNameAndPort","PathSegments","Protocol","createInsecureAuthorityUriError","appendQueryString","urlObject","pathArray","COMMON","ORGANIZATIONS","constructAuthorityUriFromObject","parseHash","regEx","urlComponents","AbsolutePath","QueryString","getAbsoluteUrl","relativeUrl","FORWARD_SLASH","baseComponents","hashIndex1","hashIndex2","parsedHash","deserializedHash","queryStringToObject","createHashNotDeserializedError","parameters","getDeserializedHash","error_description","extractBrowserRequestState","parseServerResponseFromHash","locationHash","hashUrlString","cacheConfig","COOKIE_LIFE_MULTIPLIER","internalStorage","browserStorage","setupBrowserStorage","temporaryCacheStorage","setupTemporaryCacheStorage","migrateCacheEntries","idTokenKey","CACHE_PREFIX","clientInfoKey","CLIENT_INFO","errorKey","errorDescKey","ERROR_DESC","migrateCacheEntry","newKey","setTemporaryCache","validateAndParseJson","jsonValue","parsedJson","parsedAccount","isAccountEntity","parsedIdToken","isIdTokenEntity","accessTokenKey","parsedAccessToken","isAccessTokenEntity","refreshTokenKey","parsedRefreshToken","isRefreshTokenEntity","appMetadataKey","parsedMetadata","serverTelemetryKey","serverTelemetry","setWrapperMetadata","wrapperSKU","wrapperVersion","WRAPPER_SKU","WRAPPER_VER","getWrapperMetadata","activeAccountKeyFilters","generateCacheKey","ACTIVE_ACCOUNT_FILTERS","activeAccountValueFilters","activeAccountKeyLocal","ACTIVE_ACCOUNT","activeAccountValueLocal","activeAccount","getAccountInfoByFilter","activeAccountValueObj","activeAccountKey","activeAccountValue","getAccountInfoByHints","loginHint","sid","accountSid","throttlingCacheKey","parsedThrottlingCache","throttlingCache","getTemporaryCache","storeAuthStateInCookie","itemCookie","getItemCookie","setItemCookie","clearItemCookie","cookieName","cookieStr","getCookieExpirationTime","secureCookies","cookieList","clearMsalCookies","cookiePrefix","cookieKey","cookieLifeDays","today","getCache","setCache","ADAL_ID_TOKEN","generateAuthorityKey","stateId","AUTHORITY","generateNonceKey","NONCE_IDTOKEN","generateStateKey","REQUEST_STATE","getCachedAuthority","cachedState","stateCacheKey","authorityCacheKey","updateCacheEntries","authorityInstance","nonceCacheKey","ccsCredential","HOME_ACCOUNT_ID","CCS_CREDENTIAL","UPN","resetRequestCache","REQUEST_PARAMS","ORIGIN_URI","URL_HASH","CORRELATION_ID","NATIVE_REQUEST","setInteractionInProgress","cleanRequestByState","stateKey","cleanRequestByInteractionType","stateValue","parsedState","cacheCodeRequest","authCodeRequest","encodedValue","getCachedRequest","encodedTokenRequest","parsedRequest","cachedAuthority","getCachedNativeRequest","cachedRequest","isInteractionInProgress","getInteractionInProgress","INTERACTION_STATUS_KEY","getLegacyLoginHint","adalIdTokenString","msalIdTokenString","cachedIdTokenString","currentCacheKey","cacheItem","DEFAULT_SYSTEM_OPTIONS","tokenRenewalOffsetSeconds","preventCorsPreflight","proxyUrl","DEFAULT_LOGGER_IMPLEMENTATION","DEFAULT_NETWORK_IMPLEMENTATION","sendGetRequestAsync","sendPostRequestAsync","DEFAULT_LIBRARY_INFO","sku","SKU","cpu","os","DEFAULT_CLIENT_CREDENTIALS","clientSecret","clientAssertion","DEFAULT_AZURE_CLOUD_OPTIONS","azureCloudInstance","tenant","DEFAULT_COMMON_TENANT","application","StubbedNetworkModule","fetch","getFetchHeaders","onLine","getHeaderDict","reqBody","Headers","optionsHeaders","headerDict","sendRequestAsync","setXhrHeaders","jsonResponse","networkResponse","headerArr","headerVal","clearHash","origin","replaceHash","urlParts","isInIframe","isInPopup","getCurrentUri","getHomepage","getBrowserNetworkClient","blockReloadInHiddenIframes","hashContainsKnownProperties","BrowserUtils","blockRedirectInIframe","allowRedirectInIframe","isIframedApp","blockAcquireTokenInPopups","blockNonBrowserEnvironment","isBrowserEnvironment","blockNativeBrokerCalledBeforeInitialized","allowNativeBroker","initialized","detectIEOrEdge","msie11","msedge","navigateInternal","NavigationClient","defaultNavigateWindow","navigateExternal","noHistory","DEFAULT_IFRAME_TIMEOUT_MS","KeyLocation","eventCallbacks","listeningToStorageEvents","handleAccountCacheChange","emitEvent","cacheValue","parsedValue","ACCOUNT_ADDED","ACCOUNT_REMOVED","thumbprint","preProcess","cacheManager","ThrottlingUtils","generateThrottlingStorageKey","throttleTime","THROTTLING","errorCodes","postProcess","checkResponseStatus","checkResponseForRetryAfter","thumbprintValue","calculateThrottleTime","error_codes","currentSeconds","DEFAULT_THROTTLE_TIME_SECONDS","DEFAULT_MAX_THROTTLE_TIME_SECONDS","homeAccountIdentifier","shrClaims","networkClient","sendPostRequest","tokenEndpoint","authOptions","userAuthOptions","userSystemOptions","userLoggerOption","storageImplementation","networkImplementation","cryptoImplementation","clientCredentials","libraryInfo","serverTelemetryManager","persistencePlugin","serializableCache","clientCapabilities","azureCloudOptions","skipAuthorityMetadataCache","systemOptions","storageInterface","networkInterface","cryptoInterface","buildClientConfiguration","networkManager","ccsCred","URL_FORM_CONTENT_TYPE","CCS_HEADER","clearTelemetryCache","updatedAuthority","discoveryComplete","createEndpointDiscoveryIncompleteError","redirectUri","promptValues","createInvalidPromptError","validateCodeChallengeParams","codeChallengeMethod","validateCodeChallengeMethod","PLAIN","S256","sanitizeEQParams","eQParams","addResponseTypeCode","RESPONSE_TYPE","CODE_RESPONSE_TYPE","addResponseTypeForTokenAndIdToken","TOKEN_RESPONSE_TYPE","ID_TOKEN_RESPONSE_TYPE","responseMode","RESPONSE_MODE","QUERY","addNativeBroker","NATIVE_BROKER","addScopes","addOidcScopes","requestScopes","SCOPE","CLIENT_ID","validateRedirectUri","REDIRECT_URI","POST_LOGOUT_URI","idTokenHint","ID_TOKEN_HINT","domainHint","DOMAIN_HINT","LOGIN_HINT","SID","addClaims","mergedClaims","addClientCapabilitiesToClaims","validateClaims","CLAIMS","CLIENT_REQUEST_ID","X_CLIENT_SKU","X_CLIENT_VER","X_CLIENT_OS","X_CLIENT_CPU","appTelemetry","X_APP_NAME","X_APP_VER","validatePrompt","PROMPT","STATE","NONCE","addCodeChallengeParams","CODE_CHALLENGE","CODE_CHALLENGE_METHOD","CODE","DEVICE_CODE","CODE_VERIFIER","CLIENT_SECRET","CLIENT_ASSERTION","clientAssertionType","CLIENT_ASSERTION_TYPE","oboAssertion","OBO_ASSERTION","tokenUse","REQUESTED_TOKEN_USE","grantType","GRANT_TYPE","addClientInfo","eQparams","XMS_CC","cnfString","TOKEN_TYPE","REQ_CNF","sshJwkString","X_CLIENT_CURR_TELEM","generateCurrentRequestHeaderValue","X_CLIENT_LAST_TELEM","generateLastRequestHeaderValue","addThrottling","X_MS_LIB_CAPABILITY","X_MS_LIB_CAPABILITY_VALUE","logoutHint","LOGOUT_HINT","createQueryString","queryParameterArray","accountEntity","accessTokenEntity","refreshTokenEntity","appMetadataEntity","generateKid","reqCnf","reqCnfString","reqCnfHash","xms_ksl","SW","signPopToken","signPayload","shrNonce","resourceUrlString","resourceUrlComponents","at","ts","client_claims","hasChanged","cacheStorage","validateServerAuthorizationCodeResponse","serverResponseHash","createStateNotFoundError","client_info","serverResponse","errString","correlation_id","trace_id","handleServerTokenResponse","serverTokenResponse","reqTimestamp","authCodePayload","handlingRefreshTokenResponse","forceCacheRefreshTokenResponse","id_token","idTokenObj","generateHomeAccountId","requestStateObj","key_id","generateCacheRecord","cacheContext","TokenCacheContext","beforeCacheAccess","saveCacheRecord","ResponseHandler","generateAuthenticationResult","afterCacheAccess","spa_code","createIdTokenEntity","generateAccountEntity","access_token","responseScopes","expiresIn","expires_in","extExpiresIn","ext_expires_in","refreshIn","refresh_in","tokenExpirationSeconds","extendedTokenExpirationSeconds","refreshOnSeconds","token_type","refresh_token","foci","CacheRecord","cloud_graph_host_name","msGraphhost","msgraph_host","protocolMode","fromTokenCache","requestState","popTokenGenerator","canonicalAuthority","fromCache","fromNativeBroker","createAuthCodeUrlQueryString","authorizationEndpoint","acquireToken","executeTokenRequest","responseHandler","validateTokenResponse","handleFragmentResponse","hashFragment","serverParams","logoutRequest","createLogoutUrlQueryString","endSessionEndpoint","createTokenRequestBody","createTokenQueryParameters","createTokenRequestHeaders","executePostToTokenEndpoint","parameterBuilder","tokenQueryParameters","addExtraQueryParameters","addClientId","includeRedirectUri","addRedirectUri","addAuthorizationCode","addLibraryInfo","addApplicationTelemetry","addServerTelemetry","addCodeVerifier","addClientSecret","addClientAssertion","assertion","addClientAssertionType","assertionType","addGrantType","AUTHORIZATION_CODE_GRANT","generateCnf","reqCnfData","addPopToken","sshJwk","addSshJwk","addCorrelationId","isEmptyObj","addCcsOid","addCcsUpn","tokenBodyParameters","enableSpaAuthorizationCode","RETURN_SPA_CODE","extraScopesToConsent","addResponseMode","addPrompt","addDomainHint","SELECT_ACCOUNT","addSid","extractAccountSid","accountLoginHintClaim","extractLoginHint","addLoginHint","addNonce","addState","extraQueryParameters","nativeBroker","postLogoutRedirectUri","addPostLogoutRedirectUri","addIdTokenHint","addLogoutHint","login_hint","isOpenIdConfigResponse","EndpointMetadata","InstanceDiscoveryMetadata","NativeStatusCode","detectRegion","environmentRegion","regionDiscoveryMetadata","autodetectedRegionName","RegionDiscovery","IMDS_OPTIONS","getRegionFromIMDS","IMDS_VERSION","localIMDSVersionResponse","httpSuccess","region_source","IMDS","httpBadRequest","getCurrentVersion","currentIMDSVersion","FAILED_AUTO_DETECTION","currentIMDSVersionResponse","ENVIRONMENT_VARIABLE","IMDS_ENDPOINT","IMDS_TIMEOUT","Metadata","authorityOptions","_canonicalAuthority","regionDiscovery","region_used","region_outcome","canonicalAuthorityUrlComponents","Default","_canonicalAuthorityUrlComponents","replacePath","replaceTenant","cachedAuthorityParts","currentPart","cachedPart","OIDC","resolveEndpointsAsync","metadataEntity","hostnameAndPort","updateCanonicalAuthority","cloudDiscoverySource","endpointSource","CACHE","generateAuthorityMetadataCacheKey","getEndpointMetadataFromConfig","CONFIG","isAuthoritySameType","harcodedMetadata","getEndpointMetadataFromHardcodedValues","getEndpointMetadataFromNetwork","azureRegionConfiguration","azureRegion","updateMetadataWithRegionalInformation","NETWORK","HARDCODED_VALUES","createUnableToGetOpenidConfigError","defaultOpenIdConfigurationEndpoint","authorityMetadata","AZURE_REGION_AUTO_DISCOVER_FLAG","AUTO_DETECTION_REQUESTED_SUCCESSFUL","AUTO_DETECTION_REQUESTED_FAILED","CONFIGURED_MATCHES_DETECTED","CONFIGURED_NOT_DETECTED","CONFIGURED_NO_AUTO_DETECTION","Authority","replaceWithRegionalInformation","getCloudDiscoveryMetadataFromConfig","getCloudDiscoveryMetadataFromHarcodedValues","getCloudDiscoveryMetadataFromNetwork","cloudDiscoveryMetadata","getCloudDiscoveryMetadataFromNetworkResponse","isInKnownAuthorities","createCloudDiscoveryMetadataFromHost","instanceDiscoveryEndpoint","AAD_INSTANCE_DISCOVERY_ENDPT","isCloudInstanceDiscoveryResponse","knownAuthorities","getDomainFromUrl","generateAuthority","authorityString","authorityAzureCloudInstance","KNOWN_PUBLIC_CLOUDS","buildRegionalAuthorityString","region","authorityUrlInstance","authorityUrlParts","hostNameAndPort","isPublicCloudAuthority","REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX","authorityUri","acquireTokenAuthority","AuthorityFactory","authorityUrl","telemetryRequest","cacheOutcome","NO_CACHE_HIT","apiId","wrapperVer","telemetryCacheKey","VALUE_SEPARATOR","platformFields","requestWithRegionDiscoveryFields","getRegionDiscoveryFields","SCHEMA_VERSION","CATEGORY_SEPARATOR","lastRequests","getLastRequests","maxErrors","ServerTelemetryManager","maxErrorsToSend","errorCount","OVERFLOW_TRUE","OVERFLOW_FALSE","MAX_CACHED_ERRORS","UNKNOWN_ERROR","incrementCacheHits","numErrorsFlushed","serverTelemEntity","serverTelemetryEntity","dataSize","MAX_LAST_HEADER_BYTES","regionDiscoveryFields","regionUsed","regionSource","regionOutcome","storageImpl","eventHandler","navigationClient","nativeMessageHandler","system","clearCacheOnLogout","initializeBaseRequest","validatedRequest","getRedirectUri","requestRedirectUri","initializeServerTelemetryManager","telemetryPayload","getDiscoveredAuthority","requestAuthority","createDiscoveredInstance","initializeAuthorizationCodeRequest","generatedPkceParams","S256_CODE_CHALLENGE_METHOD","initializeLogoutRequest","validLogoutRequest","getLogoutHintFromIdTokenClaims","createAuthCodeClient","requestAzureCloudOptions","getClientConfiguration","clientConfig","discoveredAuthority","validateAndExtractStateFromHash","requestCorrelationId","platformStateObj","getAuthorityMeasurement","StandardInteractionClientGetDiscoveredAuthority","userAuthority","builtAuthority","subErrorCode","initializeAuthorizationRequest","browserState","FRAGMENT","legacyLoginHint","NativeAuthErrorMessage","NativeAuthError","isFatal","PERSISTENT_ERROR","DISABLED","ACCOUNT_UNAVAILABLE","USER_INTERACTION_REQUIRED","USER_CANCEL","NO_NETWORK","createUserSwitchError","createTokensNotFoundInCacheError","forceCache","acquireTokenWithCachedRefreshToken","noFamilyRTInCache","clientMismatchErrorWithFamilyRT","CLIENT_MISMATCH_ERROR","refreshTokenRequest","acquireTokenMeasurement","RefreshTokenClientExecuteTokenRequest","BaseClientCreateTokenRequestHeaders","REFRESH_TOKEN_GRANT","addRefreshToken","acquireCachedToken","acquireTokenByRefreshToken","setCacheOutcome","FORCE_REFRESH","readCacheRecord","NO_CACHED_ACCESS_TOKEN","wasClockTurnedBack","CACHED_ACCESS_TOKEN_EXPIRED","REFRESH_CACHED_ACCESS_TOKEN","generateResultFromCacheRecord","silentRequest","SilentCacheClientAcquireToken","acquireTokenSilent_silentFlow","createSilentFlowClient","silentAuthClient","cachedToken","initializeSilentRequest","nativeStorageImpl","nativeStorageManager","silentCacheClient","nativeATMeasurement","NativeInteractionClientAcquireToken","initializeNativeRequest","nativeRequest","acquireTokensFromCache","isNativeBroker","messageBody","GetToken","sendMessage","validatedResponse","validateNativeResponse","handleNativeResponse","createSilentCacheRequest","readAccountFromCacheWithNativeAccountId","navigationOptions","redirectNavigationTimeout","navigateToLoginRequestUrl","authorityPreferredCache","accountProperties","responseTokenType","shr","responseAccessToken","shrParameters","mats","getMATSFromResponse","isResponseFromCache","SHR_NONCE_VALIDITY","MATS","is_cached","remainingProperties","appendScopes","getPrompt","CONSENT","LOGIN","windowTitleSubstring","extraParameters","extendedExpiryToken","handshakeTimeoutMs","extensionId","resolvers","handshakeResolvers","responseId","messageChannel","windowListener","onWindowMessage","req","createProvider","preferredProvider","NativeMessageHandler","sendHandshakeRequest","backupProvider","HandshakeRequest","onChannelMessage","handshakeResolver","Response","HandshakeResponse","isNativeAvailable","nativeExtensionProvider","authCodeModule","authModule","handleCodeResponseFromHash","networkModule","authCodeResponse","handleCodeResponseFromServer","validateNonce","nonceKey","cachedNonce","cloud_instance_host_name","updateTokenEndpointAuthority","cachedCcsCred","checkCcsCredentials","tokenResponse","cloudInstanceHostname","cloudInstanceAuthorityUri","cloudInstanceAuthority","updateAuthority","unloadWindow","nativeStorage","popupName","generatePopupName","popupWindowAttributes","asyncPopups","acquireTokenPopupAsync","popup","openSizedPopup","generateLogoutPopupName","mainWindowRedirectUri","logoutPopupAsync","validRequest","authClient","fetchNativeAccountIdMeasurement","FetchAccountIdWithNativeBroker","getAuthCodeUrl","navigateUrl","interactionHandler","popupParameters","popupWindow","initiateAuthRequest","POPUP_OPENED","monitorPopupForHash","removeThrottle","nativeInteractionClient","finally","cacheFailedRequest","logoutUri","getLogoutUri","LOGOUT_SUCCESS","openPopup","waitForLogoutPopup","absoluteUrl","LOGOUT_FAILURE","maxTicks","windowHashTimeout","ticks","closed","cleanPopup","urlNavigate","popupParams","winLeft","screenLeft","winTop","screenTop","winWidth","winHeight","popupSize","popupPosition","redirectStartPage","redirectTimeout","onRedirectNavigate","handleBackButton","getRedirectStartPage","responseHash","getRedirectResponseHash","loginRequestUrl","loginRequestUrlNormalized","removeHashFromUrl","currentUrlNormalized","handleHash","handleHashResult","processHashOnRedirect","homepage","cachedHash","currentAuthority","requestStartPage","navigateFrameWait","loadFrame","loadFrameSync","monitorIframeForHash","iframe","timeoutMark","removeHiddenIframe","contentHash","frameHandle","createHiddenIframe","authFrame","SilentIframeClientAcquireToken","Silent","silentTokenHelper","silentHandler","msalFrame","iframeHashTimeout","SilentRefreshClientAcquireToken","createRefreshTokenClient","refreshTokenClient","storage","loadExternalTokens","loadIdToken","loadAccessToken","idAuthToken","cloudInstanceHostName","startMark","endMark","supportsBrowserPerformance","clearMarks","clearMeasures","getEntriesByName","BrowserPerformanceMeasurement","entriesForMeasurement","getPageVisibility","visibilityState","startPageVisibility","endPageVisibility","activeSilentTokenRequests","getRequestCorrelationId","atsMeasurement","AcquireTokenSilent","preflightBrowserEnvironmentCheck","silentRequestKey","cachedResponse","acquireTokenSilentAsync","astsAsyncMeasurement","AcquireTokenSilentAsync","acquireTokenNative","createSilentIframeClient","createSilentCacheClient","tokenRenewalError","userInputAuth","userInputCache","userInputSystem","userInputTelemetry","DEFAULT_AUTH_OPTIONS","DEFAULT_AUTHORITY","AAD","DEFAULT_CACHE_OPTIONS","DEFAULT_LOGGER_OPTIONS","DEFAULT_BROWSER_SYSTEM_OPTIONS","loadFrameTimeout","nativeBrokerHandshakeTimeout","DEFAULT_TELEMETRY_OPTIONS","buildConfiguration","redirectResponse","hybridAuthCodeResponses","cacheOptions","nativeCacheOptions","nativeInternalStorage","INITIALIZE_START","INITIALIZE_END","loggedInAccounts","redirectResponseKey","nativeClient","redirectClient","createRedirectClient","isLoggedIn","canUseNative","getNativeAccountId","atPopupMeasurement","AcquireTokenPopup","createPopupClient","ssoSilentMeasurement","silentIframeClient","ACQUIRE_TOKEN_BY_CODE_START","atbcMeasurement","AcquireTokenByCode","acquireTokenByCodeAsync","ACQUIRE_TOKEN_BY_CODE_SUCCESS","ACQUIRE_TOKEN_BY_CODE_FAILURE","createSilentAuthCodeClient","atbrtMeasurement","AcquireTokenByRefreshToken","ACQUIRE_TOKEN_NETWORK_START","createSilentRefreshClient","isServerError","isInvalidGrantError","userName","preflightInteractiveRequest","initializeIcons","speak","GlobalNavButton","ChevronDown","ChevronUp","Edit","Add","More","Settings","Mail","Filter","Search","Share","BlockedSite","FavoriteStar","FavoriteStarFill","CheckMark","Delete","ChevronLeft","ChevronRight","Calendar","Megaphone","Undo","Flag","Page","Pinned","View","Clear","Download","Upload","Folder","Sort","AlignRight","AlignLeft","AddFriend","SortLines","List","CircleRing","Heart","HeartFill","Tiles","Embed","Glimmer","Ascending","Descending","SortUp","SortDown","SyncToPC","LargeGrid","SkypeCheck","SkypeClock","SkypeMinus","ClearFilter","Flow","StatusCircleCheckmark","MoreVertical","iconBaseUrl","useEventCallback","unmountRef","disableFirstFocus","forceFocusInsideTrap","isClickableOutsideFocusTrap","FocusTrapZone","firstBumper","lastBumper","isFirstRender","internalState","focusStackId","focusPreviouslyFocusedInnerElement","firstFocusableSelector","firstFocusableTarget","disableRestoreFocus","ignoreExternalFocusing","bumperProps","focusElementAsync","focusFTZ","previouslyFocusedElementInTrapZone","firstFocusableChild","focusSelector","focusBumper","isFirstBumper","nextFocusable","returnFocusToInitiator","elementToFocusOnDismiss","focusStack","forceFocusOrClickInTrap","disposables","previouslyFocusedElement","onBlurCapture","globalClassNames","main","scrollableContent","isOpen","layer","allowTouchBodyScroll","_allowTouchBodyScroll","isDark","rootDark","Overlay","isDragging","touchAction","eventMapping","_currentEventType","_onDragStart","_onDragStop","_onTouchEnd","onTouchEnd","handleSelector","_matchesSelector","preventDragSelector","_touchId","_getTouchId","_getControlPosition","dragData","_createDragDataFromPosition","onStart","lastPosition","_onDrag","updatedData","_createUpdatedDragData","updatedPosition","onDragChange","baseDragData","onStop","statePosition","touchObj","_getActiveTouch","eventToGetOffset","_findTouchInTouchList","touch","matchesSelectorFn","touchList","timeoutIds","ZERO","isDarkOverlay","containerClassName","ModalBase","scrollableContentClassName","focusTrapZoneProps","isBlocking","isAlert","overlay","titleAriaId","subtitleAriaId","topOffsetFixed","onLayerDidMount","isModeless","dragOptions","onDismissed","focusTrapZone","focusTrapZoneRef","focusTrapZoneElm","mergedRef","modalResponsiveMode","focusTrapZoneId","isModalOpen","setIsModalOpen","setIsVisible","coordinates","setCoordinates","modalRectangleTop","setModalRectangleTop","isModalMenuOpen","toggleModalMenuOpen","setModalMenuClose","onModalCloseTimer","lastSetCoordinates","keepInBounds","isAlertRole","layerClassName","hasBeenOpened","windowInnerHeight","isDefaultDragHandle","dragHandleSelector","mergedLayerProps","eventBubblingEnabled","insertFirst","allowScrollOnModal","elt","registerInitialModalPosition","dialogMain","modalRectangle","minPosition","maxPosition","getClampedAxis","axis","handleModalClose","isInKeyboardMoveMode","disposeOnKeyUp","handleDragStart","handleDrag","handleDragStop","handleKeyUp","registerForKeyUp","modalContent","onBlur","disposeOnKeyDown","keyboardMoveIconContainer","keyboardMoveIconProps","keyboardMoveIcon","menu","moveMenuItemText","handleKeyDown","newLocal","handledEvent","getMoveDelta","closeMenuItemText","isDarkThemed","Modal","DialogFooterType","titleId","subTextContent","showCloseButton","closeButtonAriaLabel","subTextId","subText","titleProps","draggableHeaderClassName","isLargeHeader","largeHeader","isClose","groupings","_groupChildren","topButton","topButtonsProps","IconButton","innerContent","footers","DialogContentBase","contentLgHeader","headerLg","DialogContent","isMultiline","borderTop","wordWrap","flexDirection","DefaultModalProps","DefaultDialogContentProps","normal","_getSubTextId","ariaDescribedById","modalProps","dialogContentProps","_defaultSubTextId","_getTitleTextId","ariaLabelledById","_defaultTitleTextId","dialogDraggableClassName","contentClassName","mergedModalProps","dialogDefaultMinWidth","dialogDefaultMaxWidth","DialogBase","Dialog","mergeSettings","oldSettings","newSettings","mergeSettingsWith","_isSettingsFunction","_settingsMergeWith","mergeScopedSettings","scopedSettingsFromProps","oldScopedSettings","newScopedSettings","_scopedSettingsMergeWith","_onCustomizationChange","contextTransform","mergeCustomizations","getFabricTheme","FabricBase","applyTheme","applyThemeToBody","bodyThemed","useApplyThemeToBody","Root","contextDir","pageDir","componentDir","rootDir","needsTheme","parentProviderRef","focusRectsContext","providerRef","renderedContent","useRenderedContent","inheritFont","Fabric","setPropertiesOperationSpec","getStatisticsOperationSpec","listContainersSegmentOperationSpec","getUserDelegationKeyOperationSpec","getBodyAsText","batchResponse","utf8ByteLength","HTTP_HEADER_DELIMITER","subRequests","responseBatchBoundary","perResponsePrefix","batchResponseEnding","responseBodyAsText","subResponses","subResponseCount","deserializedSubResponses","subResponsesSucceededCount","subResponsesFailedCount","subResponse","deserializedSubResponse","responseLines","subRespHeaderStartFound","subRespHeaderEndFound","subRespFailed","contentId","responseLine","statusMessage","isInteger","_request","batchRequest","getMultipartContentType","getHttpRequestBody","getSubRequests","subRequest","assembleSubRequestFunc","preAddSubRequest","postAddSubRequest","unlock","batchType","urlOrBlobClient","credentialOrOptions","setBatchType","addSubRequestInternal","createPipeline","credentialOrTier","tierOrOptions","setAccessTier","operationCount","tempGuid","boundary","subRequestPrefix","batchRequestEnding","isAnonymousCreds","policyFactoryLength","Pipeline","dummyResponse","appendSubRequestToBody","xMsHeaderName","credentialOrPipeline","serviceOrContainerContext","urlsOrBlobClients","deleteBlob","submitBatch","setBlobAccessTier","batchRequestBody","getMultiPartContentType","rawBatchResponse","batchResponseParser","parseBatchResponse","responseSummary","getContainerNameFromUrl","containerContext","getAccessPolicy","signedIdentifiers","acl","setAccessPolicy","blockBlobClient","getBlockBlobClient","getBlobClient","withVersion","listBlobFlatSegment","listBlobHierarchySegment","listBlobsFlatSegmentResponse","listSegments","includeCopy","includeDeleted","includeMetadata","includeSnapshots","includeVersions","includeUncommitedBlobs","includeTags","includeDeletedWithVersions","includeImmutabilityPolicy","includeLegalHold","listItems","listBlobsHierarchySegmentResponse","listHierarchySegments","listItemsByHierarchy","tagFilterSqlExpression","filterBlobs","tagValue","findBlobsByTagsSegment","findBlobsByTagsSegments","listSegmentOptions","findBlobsByTagsItems","accountSASPermissions","AccountSASPermissions","accountSASResourceTypes","AccountSASResourceTypes","accountSASServices","AccountSASServices","generateAccountSASQueryParameters","accountSASSignatureValues","parsedPermissions","parsedServices","parsedResourceTypes","serviceContext","containerClient","getContainerClient","containerCreateResponse","destinationContainerName","restore","containerUndeleteResponse","rename","sourceCondition","containerRenameResponse","setProperties","getStatistics","listContainersSegment","listContainersSegmentResponse","includeSystem","getUserDelegationKey","BlobServiceClient","Text","RootType","Slots","nowrap","variant","variantObject","mozOsxFontSmoothing","webkitFontSmoothing","GetIconDimensions","browserWidth","computedWidth","computedHeight","actualIconWidth","actualIconHeight","PortalCompatContext","_layersByHostId","_layerHostsById","defaultHostId","_defaultHostSelector","filteredEventProps","LayerBase","registerPortalEl","layerRef","fabricRef","needRaiseLayerMount","setNeedRaiseLayerMount","hostId","onLayerWillUnmount","isNotHost","layerHost","layerHosts","getLayerHost","defaultHostSelector","createDefaultLayerHost","removeLayerElement","createLayerElement","virtualChild","virtualParent","oldParent","setVirtualParent","notifyLayersChanged","registerLayer","unregisterPortalEl","layers","unregisterLayer","getFilteredEvents","onFilterEvent","BUBBLING_PHASE","rootNoHost","_getThemedSpacing","_getValueUnitGap","numericalPart","numericalValue","numericalString","parsePadding","paddingValues","padding1","padding2","nameMap","alignMap","StackItem","grow","shrink","disableShrink","align","verticalFill","basis","alignSelf","StackStatics","Stack","stackChildren","defaultItemProps","reversed","horizontalAlign","childrenGap","rowGap","columnGap","splitGap","calculatedGap","parseGap","horizontalMargin","verticalMargin","childStyles","commonSelectors","_urlResolver","actionButtonStyles","ActionButton","linkText","compositeLink","chevronButton","chevronIcon","navItem","navItems","groupContent","buttonStyles","_focusZone","_onRenderLink","_renderGroup","groupIndex","onRenderGroupHeader","_renderGroupHeader","_isGroupExpanded","isGroup","onHeaderClick","isCollapsing","_onGroupHeaderClicked","_renderLinks","links","expandButtonAriaLabel","collapseAriaLabel","expandAriaLabel","isGroupCollapsed","isLinkExpandStateChanged","selectedKey","initialSelectedKey","isOnTop","groupElements","_renderNavLink","linkIndex","nestingLevel","isLinkWithIcon","isSelectedLink","_isLinkSelected","isSelected","isButtonEntry","forceAnchor","leftPadding","LinkAs","linkAs","onRenderLink","_onNavButtonLinkClicked","_onNavAnchorLinkClicked","_renderCompositeLink","isLink","finalExpandBtnAriaLabel","_onLinkExpandClicked","_renderLink","linkElements","_toggleCollapsed","onLinkExpandClick","_preventBounce","onLinkClick","collapseByDefault","newGroupCollapsed","navHeight","leftPaddingExpanded","rightPadding","WebkitOverflowScrolling","borderBottom","restProps","LinkBase","underline","mergedRootRefs","useFocusRects","isButton","isUnderlined","rootType","linkColor","linkInteractedColor","linkDisabledColor","focusBorderColor","IconType","_onImageLoadingStateChange","imageLoadError","imageErrorAs","iconType","iconContentChildren","ImageType","finalIconContentChildren","ariaLive","labelPosition","styleSize","circle","DelayedRender","spinAnimation","Spinner","borderTopColor","ICON_MAP","blocked","severeWarning","messageBarType","MessageBarBase","expandSingleLine","toggleExpandSingleLine","labelId","overflowButtonAriaLabel","dismissIconProps","truncated","dismissButtonAriaLabel","messageBarIconProps","delayedRender","expandButtonProps","expandIconProps","regionProps","actionsDiv","dismissButton","dismissal","iconContainer","innerText","dismissSingleLine","multiline","singleline","dismissalSingleLine","expandingSingleLine","actionsSingleline","highContrastBackgroundColor","MessageBar","SmallScreenSelector","dismissalAndExpandIconStyle","dismissalAndExpandStyle","outlineOffset","wordBreak","useCustomizationSettings","useForceUpdate","baseStyles","getProps","pure","Wrapped","customizedStyles","additionalProps","propStyles","concatenatedStyles","pureComponent","_language","STORAGE_KEY","getLanguage","persistenceType","savedLanguage","DirectionalKeyCodes","isDirectionalKeyCode","mountCounters","callbackMap","setMountCounters","currValue","FocusRectsContext","FocusRectsProvider","disableFocusRects","setCallbackMap","FocusRects","iconButtonStyles"],"mappings":"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qBAGlB,EAAS,CAClB,oBAAqB,gBACrB,sBAAuB,oBAM3B,SAAY,GACR,sBACA,qBAFJ,EAAY,MAGX,KAKD,SAAa,GACT,mCACA,wCAFJ,EAAa,MAGZ,KAKD,SAAY,GACR,4BACA,qBACA,2BACA,UAJJ,EAAY,MAKX,KAKD,SAAY,GACR,kCACA,mCACA,8BACA,0CACA,qCALJ,EAAY,MAMX,KAED,SAAY,GACR,mBACA,oBACA,6BACA,kCACA,iCALJ,EAAY,MAMX,KAED,SAAY,GACR,YACA,WAFJ,EAAY,MAGX,I,m8CC1XD,gBACA,MACA,aAEA,GADA,SACA,UACA,cACA,SACA,aAGA,GAFA,aACA,UACA,aACA,gBACA,eACA,eAEA,cACA,cACA,iBACA,mBAKA,wBAKA,cACA,MAEA,KACA,YAGA,yCACA,KACA,QAEA,CACA,WACA,CAIA,gBACA,mBACA,CACA,cACA,iCACA,CAIA,cACA,qBACA,CACA,cACA,WACA,CACA,gBACA,2BACA,CACA,cAEA,2BACA,CACA,cAEA,2BACA,CAWA,cACA,QAWA,OAVA,UAMA,GADA,GAHA,0BACA,sBACA,KACA,aACA,sBACA,WACA,KAEA,CACA,CAOA,gBACA,KACA,eACA,eACA,gBAIA,CAOA,gBACA,SAKA,OAJA,mBAEA,kBAUA,cACA,SACA,aACA,aACA,2BAEA,IADA,UACA,gBACA,cACA,SAEA,GACA,CACA,IACA,CACA,QACA,CAzBA,OAEA,CACA,CA8DA,gBACA,kBACA,aAGA,CAIA,cACA,wCACA,CAKA,SACA,YACA,yCACA,EAIA,cACA,yCACA,CAMA,cAEA,yBACA,CAMA,cAEA,yBACA,CAMA,cAEA,0BACA,CAcA,cACA,SACA,2BAEA,kBACA,GAMA,+BACA,iBAEA,iCAPA,IASA,CACA,QACA,CAIA,cACA,KAEA,yBAMA,YACA,wBACA,kBACA,gBAIA,OAHA,aACA,SAEA,CACA,EACA,0BACA,yBACA,sBACA,uBACA,yBACA,yBACA,+DACA,GACA,CACA,CAxBA,GAEA,CA+BA,kBACA,aACA,IACA,oBACA,UACA,2BAFA,KAUA,CAFA,SAEA,CACA,CASA,kBACA,MAEA,aACA,sBAEA,aACA,OACA,IACA,mDACA,oBACA,QAMA,CAFA,SAEA,CACA,CACA,QACA,CASA,kBACA,MACA,MAEA,SACA,kBAEA,aACA,OACA,eACA,IACA,oBACA,SACA,sBAMA,CAFA,SAEA,CACA,CACA,QACA,CASA,kBACA,MACA,MAEA,YACA,qBAEA,aACA,IAEA,qBACA,mBAEA,CACA,qBACA,IAEA,QACA,CACA,UACA,SACA,iBAEA,GAEA,CACA,QACA,CAIA,cAKA,OAJA,IAEA,wDAEA,CACA,CACA,wDACA,GACA,WACA,iBACA,UACA,iBACA,gBACA,uBACA,eAQA,cACA,eAKA,GAJA,4BACA,6CAGA,KACA,YAEA,SACA,eACA,kBACA,UAGA,KAEA,IADA,aACA,YACA,qBACA,aAIA,QACA,CAWA,oBACA,KACA,IACA,OACA,cACA,iBASA,OAPA,IACA,SAEA,IACA,SAEA,UACA,CAKA,CAHA,SAGA,CAEA,QACA,CACA,cACA,QACA,CACA,cAQA,OAPA,GACA,oBACA,aACA,IAEA,IAEA,KACA,CACA,YAMA,cACA,WACA,sCACA,CAIA,eACA,YACA,OAEA,GACA,CAWA,uBACA,QAQA,OAPA,KACA,UACA,wBACA,IACA,SAGA,CACA,CAOA,mBACA,MAaA,OAZA,IACA,SACA,OAEA,YACA,QAKA,YAEA,CACA,CAMA,iBACA,eACA,CAIA,eACA,SACA,CACA,eACA,kBACA,CACA,iBACA,WACA,OAOA,OANA,KACA,IAGA,IAEA,WAEA,gBAIA,GAHA,IACA,OAEA,EACA,qBAEA,CACA,CAgBA,mBACA,qBACA,kBACA,SACA,WACA,KACA,kBAEA,cAGA,kBACA,eAEA,KAEA,kBACA,WACA,gBACA,MACA,MAIA,QAGA,CACA,EAEA,eACA,IAEA,CACA,QACA,CAUA,uBACA,WACA,kBACA,aAGA,CASA,qBAQA,OAPA,kBACA,iBACA,MACA,aAEA,IAEA,CACA,CAMA,eACA,OACA,WACA,WACA,GACA,mBACA,MACA,GAEA,CAGA,CAQA,eAMA,OAHA,SACA,kCAEA,CACA,C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,iBAChBC,YAAa,cACbC,0BAA2B,4BAC3BC,aAAc,eACdC,OAAQ,SACRC,KAAM,OACNC,SAAU,WACVC,kBAAmB,oBACnBC,cAAe,gBACfC,oBAAqB,sBACrBC,mBAAoB,QACpBC,MAAO,QACPC,WAAY,aACZC,uBAAwB,yBACxBC,iBAAkB,mBAClBC,UAAW,YACXC,gBAAiB,kBACjBC,aAAc,gBAGHC,EAAW,GACXC,EAAU,IAGVC,EAAoB,IAEpBC,EAAmB,OACnBC,EAAmB,WAEnBC,EAA2B,SAE3BC,EAA8B,uNAE9BC,EAAuC,CAClD,8BACA,gBACA,iBACA,eACA,OACA,aACA,cACA,oBACA,aACA,yBACA,YACA,kBACA,kBACA,gCACA,eACA,gBACA,sBACA,mBACA,mBACA,cACA,gBACA,OACA,gBACA,SACA,OACA,qBACA,mBACA,4BACA,eACA,qBACA,mBACA,+BACA,sBACA,mBACA,oBACA,aACA,gCACA,wBACA,gBACA,oBACA,WACA,oBACA,gBACA,sBACA,mBACA,+BACA,4BACA,oBACA,sBACA,0BACA,0BACA,kCACA,gCACA,8BACA,gCACA,6BACA,6BACA,2BACA,wBACA,yBACA,0BACA,4BACA,iBACA,iCACA,qBACA,gCACA,wBACA,6BACA,sCACA,4BACA,6BACA,6BACA,6BACA,wBACA,oBACA,0BACA,sBACA,gBACA,kBACA,kBACA,yBACA,6BACA,0BACA,8BACA,gBACA,0BACA,uBACA,gCACA,4BACA,kCACA,iBACA,6BACA,eACA,uBAGWC,EAA2C,CACtD,OACA,aACA,OACA,OACA,OACA,OACA,OACA,KACA,KACA,MACA,KACA,MACA,KACA,MACA,KACA,KACA,KACA,UACA,SACA,SACA,SACA,UACA,UACA,gBACA,YACA,eACA,MACA,QACA,MACA,MACA,QACA,MACA,YAGWC,EAAyC,sCACzCC,EACX,2C,y7BCvMI,SAAUC,EAAUC,GACxB,IAAMC,EAAaC,EAAA,EAAWC,cACxBC,EAAuB,GAE7B,IAAK,IAAMC,KAAQL,EACbA,EAASlyB,eAAeuyB,IAC1BD,EAAWhuB,KA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A,uBAMA,2BAMA,0BAxBF,EAAYA,MAAQ,KAwJb,IAGKK,EAHC5yC,EAAsB,KAGnC,SAAY4yC,GAIV,qBAKA,eAIA,oBAbF,EAAYA,MAAc,I,45BCxOtBC,EAAY,SAQZC,EAAU,OAIVC,EAAU,OACVC,EAAa,WACbC,EAAoB,iBACpBC,EAAa,KACbC,EAAqB,KACrBC,GAAe,EACfC,EAAqB,KACrBC,EAAoB,KACxB,SAASC,EAAaC,EAAUC,GAChC,SACA,MACA,IAEA,KADA,UACA,CACA,aACA,IACA,SAEA,CAIA,CAFA,SAEA,CACA,MACA,IACA,YACA,oBAIA,CAFA,SAEA,CAEA,CACA,QACA,CAYA,cACA,oBACA,eACA,KAGA,WAEA,OAEA,IACA,CAQA,aACA,2CACA,CAMA,aACA,WACA,OAGA,IACA,CAQA,aACA,+CACA,CAMA,aACA,WACA,SAEA,EA9GkB,WA+GlB,CAQA,aACA,iDACA,CAMA,aACA,WACA,UAEA,EAjImB,YAkInB,CAQA,aACA,6CACA,CAMA,aACA,WACA,QAEA,EArJiB,UAsJjB,CAMA,cACA,SACA,0BACA,KACA,QAEA,CACA,uCACA,SAEA,EArKkB,WAsKlB,CAIA,aACA,4BACA,QAEA,EA7KiB,UA8KjB,CAMA,aACA,SApLqB,cAqLrB,CAQA,aACA,oDACA,CAMA,aACA,WACA,WAEA,IACA,CAMA,aACA,SA/MgB,SAgNhB,CAMA,aACA,SAtNkB,WAuNlB,CAIA,aAEA,UACA,yBA7NqB,gBA8NrB,SAGA,CAIA,aACA,UACA,+BAGA,QADA,YACA,YACA,oCACA,CACA,QACA,CAIA,cAEA,QADA,iBACA,GACA,cACA,6BACA,CACA,sBAEA,qBACA,cACA,yDACA,CACA,qBACA,6BACA,KACA,UAEA,CACA,WACA,CAIA,cACA,mCACA,MAOA,MANA,qBACA,yEAEA,MACA,oBAEA,GACA,CAaA,aAIA,OAHA,WACA,gCAEA,CACA,CAMA,cACA,SACA,IACA,eACA,mBACA,UACA,mBAKA,CAFA,SAEA,CACA,QACA,CACA,aAOA,OANA,WACA,gCACA,MACA,iCAGA,CACA,CAKA,aACA,SACA,IAEA,IADA,IAKA,CAFA,SAEA,CACA,QACA,CACA,SAASC,EAAenyC,EAAQjV,GAChC,KACA,0BACA,WACA,WACA,WACA,QAGA,CAEA,QACA,CAKA,cACA,UACA,YAEA,wCAEA,IACA,CAKA,cACA,MACA,MACA,MAEA,2CACA,kDACA,CACA,QACA,C,usBnCxYA,IAGA,YACA,iBACA,mBACA,kBACA,UACA,oBACA,mBACA,4BACA,QACA,qBACA,cACA,iBACA,eACA,eACA,gBACA,kBACA,mBACA,wBACA,gCACA,iC,+BoC7BA,6CA6DM,SAAUqnD,EACdC,GAEA,IAAQC,EAAyDD,EAAzDC,eAAgBn4B,EAAyCk4B,EAAzCl4B,eAEpBthB,EAFwD,iBAAKw5C,EAA3D,qCAcN,OAVIC,IACFz5C,EAAS,OAAH,wBAAQA,GAAWy5C,IAGvBn4B,IACFthB,EAAOuhB,eAAiBD,EAAeC,eAEvCvhB,EAAOqhB,YAAqC,OAAtBC,QAAc,IAAdA,OAAc,EAAdA,EAAwBD,aAGzCrhB,CACR,C,8EC3Ec,SAAS05C,EAAe3vB,EAAKtsB,GAC1C,OCLa,SAAyBssB,GACtC,GAAIttB,MAAM45C,QAAQtsB,GAAM,OAAOA,CACjC,CDGS,CAAeA,IELT,SAA+BA,EAAKtsB,GACjD,IAAIk8C,EAAY,MAAP5vB,EAAc,KAAyB,qBAAXlpB,QAA0BkpB,EAAIlpB,OAAOC,WAAaipB,EAAI,cAE3F,GAAU,MAAN4vB,EAAJ,CACA,IAIIC,EAAIrD,EAJJsD,EAAO,GACPC,GAAK,EACLC,GAAK,EAIT,IACE,IAAKJ,EAAKA,EAAG98C,KAAKktB,KAAQ+vB,GAAMF,EAAKD,EAAG75C,QAAQG,QAC9C45C,EAAK34C,KAAK04C,EAAGrlD,QAETkJ,GAAKo8C,EAAKj8C,SAAWH,GAH4Bq8C,GAAK,GAc9D,CATE,MAAO10C,GACP20C,GAAK,EACLxD,EAAKnxC,CACP,CAAE,QACA,IACO00C,GAAsB,MAAhBH,EAAW,QAAWA,EAAW,QAG9C,CAFE,QACA,GAAII,EAAI,MAAMxD,CAChB,CACF,CAEA,OAAOsD,CAxBe,CAyBxB,CFvBgC,CAAqB9vB,EAAKtsB,IAAM,OAAAu8C,EAAA,GAA2BjwB,EAAKtsB,IGLjF,WACb,MAAM,IAAIV,UAAU,4IACtB,CHGsG,EACtG,C,mTIJIk9C,E,+BAGJ,kBACA,aACA,SAEA,eAGA,IAFA,QACA,SACA,UACA,IACA,qBAEA,GACA,CACA,QACA,CACA,gBACA,MAUA,OATA,IAEA,yBAEA,WACA,gBACA,+FAGA,IACA,CACA,kBAEA,MASA,YAVA,gBAEA,IACA,WACA,kBACA,oBACA,qBACA,0GAGA,IACA,CACA,gBACA,qBACA,CACA,gBACA,MAOA,OANA,GACA,eACA,kBACA,sGAGA,IACA,CACA,gBACA,MACA,MAEA,WACA,eACA,kBACA,yGAEA,CACA,WACA,CACA,gBACA,MACA,SACA,6BACA,iCAEA,IACA,uBAIA,CAFA,SACA,mEACA,CAEA,cACA,WACA,MACA,IACA,GACA,CACA,QACA,CACA,gBACA,MACA,SACA,6BACA,WACA,MACA,IACA,GACA,CACA,QACA,CACA,gBACA,+BACA,CACA,oBACA,MAQA,OAPA,IACA,kBACA,SACA,cACA,gGAGA,IACA,CACA,cACA,aACA,yBACA,CAIA,WACA,oBACA,kBACA,yBACA,uBACA,oBACA,yBACA,6BAEA,OACA,gBACA,mBACA,gBACA,oBACA,SACA,SACA,SACA,eACA,kBACA,cACA,WACA,E,oFCvIaC,EACQ,CACbztC,KAAM,mBACNlO,KAAM,uCAHD27C,EAKU,CACfztC,KAAM,sBACNlO,KAAM,wIAOd,cAsBI,WAAYkW,EAAoBg+B,EAAuB0H,GAAvD,IASC,OARS9G,EAAcZ,EAAkBh+B,EAAS,KAAKg+B,EAAiBh+B,E,OACrE,cAAM4+B,IAAa,KACnB/2C,OAAOC,eAAe,EAAM69C,EAAUz9C,WAEtC,EAAK8X,UAAYA,GAAa,IAAU4lC,aACxC,EAAK5H,aAAeA,GAAgB,IAAU4H,aAC9C,EAAKC,SAAWH,GAAY,IAAUE,aACtC,EAAKnoD,KAAO,Y,CACf,CAsBL,OArD+B,YAAK,KAiChC,EAAgB,2BAAhB,SAAiBqoD,GACbr9C,KAAKq9C,cAA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YC,GAIV,UAIA,UAIA,YAIA,YAIA,YAIA,YAIA,YAIA,YAIA,YAIA,YAIA,WA5CF,EAAYA,MAAmB,KA+L/B,SAAYC,GAIV,0DAIA,kEARF,EAAYA,MAAmB,I,qFC1TlBK,EAAb,gD,0cCEIC,OAAsB39D,EACtB49D,OAAwB59D,EAK5B,SAAS69D,IACT,WACA,oBAEA,IACA,CAOA,SAASC,EAA0BC,GACnC,IACA,8BACA,YAEA,wBACA,oEACA,eACA,uBAEA,GADA,WACA,EACA,QAKA,CAFA,SAEA,CACA,WACA,CAKA,SAASC,IACT,WACA,sBAEA,IACA,CAIA,aACA,KACA,IACA,CAIA,aACA,QACA,OACA,CAMA,cAIA,OAHA,iBACA,yBAEA,CACA,CACA,gBACA,UACA,YACA,IACA,mBAKA,CAHA,SACA,KACA,qGACA,CAEA,WACA,CACA,kBACA,UACA,YACA,IAEA,OADA,gBACA,CAKA,CAHA,SACA,KACA,sGACA,CAEA,QACA,CACA,gBACA,UACA,YACA,IAEA,OADA,WACA,CAKA,CAHA,SACA,KACA,6GACA,CAEA,QACA,CACA,cAIA,OAHA,iBACA,2BAEA,CACA,CACA,aACA,SAMA,OALA,KACA,uDACA,SACA,IAEA,CACA,CACA,gBACA,UACA,YACA,IACA,mBAKA,CAHA,SACA,KACA,uGACA,CAEA,WACA,CACA,kBACA,UACA,YACA,IAEA,OADA,gBACA,CAKA,CAHA,SACA,KACA,wGACA,CAEA,QACA,CACA,gBACA,UACA,YACA,IAEA,OADA,WACA,CAKA,CAHA,SACA,KACA,+GACA,CAEA,QACA,C,2SC1KMC,G,OAAqB,SAAAvtE,G,IACnB0T,EAAU85D,c,OAChB95D,gBAEA,CAJF,GCDM+5D,EAA+BF,EAArC,kBCAM75D,EAAwB65D,EAA9B,UCQMG,c,WAKJ,G,2BACE,UAEA,MAAa,CACXC,SAAUl/C,UAAck/C,U,EAQ1B,c,EACA,sBAEKl/C,EAAL,gB,EACE,SAAgBA,EAAA,gBAAqB,SAAAk/C,G,EACnC,kBADF,K,qBApBGC,iBAAP,Y,MACS,CAAEl+C,KAAF,IAAavvB,IAAb,IAAuBqlD,OAAvB,CAAC,EAAkCqoB,QAAsB,MAAbC,E,6BAyBrDC,6B,gBACE,cAEI/iE,KAAJ,U,KAGE,WAEGA,KAAKyjB,MAAV,gB,KACE,SAAgBzjB,KAAKyjB,MAAMu/C,QAAQC,QAAO,SAAAN,GACpC,EAAJ,YACE,WAAc,CAAEA,YAFpB,KAME3iE,KAAJ,kB,KACE,SAAc,CAAE2iE,SAAU3iE,KAAKkjE,kB,IAInCC,gCACMnjE,KAAJ,W,KACE,W,KACA,c,KACA,sB,IAIJojE,kB,OAEI,kBAACC,EAAD,UACEhsE,MAAO,CACL2rE,QAAShjE,KAAKyjB,MADT,QAELk/C,SAAU3iE,KAAKkH,MAFV,SAGLqe,MAAOm9C,mBAAwB1iE,KAAKkH,MAAMy7D,SAHrC,UAILW,cAAetjE,KAAKyjB,MAAM6/C,gBAG5B,kBAACC,EAAD,UACEjI,SAAUt7D,KAAKyjB,MAAM63C,UADvB,KAEEjkE,MAAO2I,KAAKyjB,MAAMu/C,U,IAnEtBN,CAAec,IAAMC,WCAAD,IAAMC,UCRTD,IAAMC,UCA9B,IAAMC,EAAN,GAEIC,EAAJ,EAuBA,SAASC,EAAUd,EAAU5+C,QAAc,IAAdA,MAAU,CAAC,IACf,kBAAZA,GAAwB3kB,cAAnC,MACE2kB,EAAU,CAAEQ,KAAMR,I,MAFqB,EAKjCQ,EALiC,O,IAAA,MAK3Bm/C,OAL2B,S,IAAA,OAKZC,OALY,S,IAAA,UAKIC,OALJ,S,MAO3B,GAAG7+D,OAAjB,GAEO,QAAa,c,IACbwf,GAAL,KAAaA,EAAa,OAAO,K,GACjC,EAAa,OAAOs/C,E,MAhCxB,c,IACQC,EAAW,GAAG//C,EAAN,IAAoBA,EAApB,OAAqCA,EAAnD,UACMggD,EAAYR,OAAoBA,KAAtC,I,GAEIQ,EAAJ,GAAqB,OAAOA,EAAP,G,IAEf93D,EAAN,GAEMtJ,EAAS,CAAEqhE,OADFC,IAAa1/C,EAAMtY,EAAlC,GACyBA,Q,OAErBu3D,EAbN,MAcIO,OACAP,KAGF,C,CAmB2BU,CAAY3/C,EAAM,CACzC/O,IADyC,EAEzCmuD,OAFyC,EAGzCC,cAHMI,EAJ6B,SAIrB/3D,EAJqB,OAS/BmZ,EAAQ4+C,OAAd,G,IAEA,EAAY,OAAO,K,IAEZhvE,EAAkBowB,EAbY,GAatBtb,EAAUsb,EAbY,SAc/Bs9C,EAAUC,IAAhB,E,OAEIe,IAAJ,EAA8B,KAEvB,CACLn/C,KADK,EAELvvB,IAAKuvB,cAAgBvvB,EAAhBuvB,IAFA,EAGLm+C,QAHK,EAILroB,OAAQpuC,EAAA,QAAY,gB,OAClBk4D,EAAKljE,EAALkjE,MAAiBr6D,EAAjBq6D,GACA,CAFM,OAtBL,GAAP,K,KCPIC,c,sFACJnB,kB,kBAEI,kBAACC,EAAD,eACG,YACC,mB,IAEMV,EAAW,kBAAuBj6D,EAAxC,SACM6c,EAAQ,sBACV,QADU,cAEV,aACAq+C,EAAUjB,EAAD,SAAoB,EAD7B,OAEAj6D,EAJJ,MAMM+a,EAAQ,OAAH,IAAG,CAAH,MAAiBk/C,SAAjB,EAA2Bp9C,U,EAEA,EAZ5B,MAYJ+1C,EAZI,WAYMkJ,EAZN,YAYiBpB,EAZjB,S,OAgBN7jE,kBAxCd,SAAyB+7D,G,OACvB,IAAOkI,qB,CAuCgCiB,CAA/B,KACEnJ,QAIA,kBAAC+H,EAAD,UAAwBhsE,MAAOosB,GAC5BA,QACG63C,EACsB,oBAAbA,EAGHA,EAHJ,GADM,EAMNkJ,EACAhB,oBADS,GAETJ,EACAA,EADM,GATX3/C,KAYuB,oBAAb63C,EAGLA,EAHF,GAdR,KAtBN,G,IAFEiJ,CAAcf,IAAMC,WCrB1B,SAASiB,EAAgBhgD,G,MAChBA,oBAAgC,IAAvC,C,CAYF,SAASigD,EAAcC,EAAUjC,G,IAC/B,EAAe,OAAOA,E,IAEhBkC,EAAOH,EAAb,G,OAEA,IAAI/B,sBAA8CA,E,eAElD,GAEEG,SAAUH,kBAAyBkC,EAAzBlC,S,CAId,SAASmC,EAAUnC,G,MACU,kBAAbA,EAAwBA,EAAWoC,YAAjD,E,CAGF,SAASC,EAAcC,G,OACd,WACLC,eADF,C,CAKF,SAASC,IAAQ,CAQU3B,IAAMC,U,ICzC3B2B,c,sFACJhC,kB,kBAEI,kBAACC,EAAD,eACG,SAAA36D,GACC,mB,IAIA,EALU,EAGJi6D,EAAW,kBAAuBj6D,EAAxC,S,OAQA86D,qBAAuB,QAAvBA,UAA4C,SAAA6B,G,GACtC9/C,SAAiBi+C,mBAArB,GAAkD,CAChDltE,I,IAEMouB,EAAO2gD,cAAoBA,QAAjC,KAEA9/C,EAAQb,EACJk/C,EAAUjB,EAAD,wBAAyB0C,EAAzB,OAAsC3gD,UAC/Chc,EAFJ6c,K,CANJi+C,IAYOj+C,EACH,mBAA4B,CAAEo9C,SAAF,EAAY2C,cAAe//C,IAD3D,IAzBN,G,IAFE6/C,CAAe5B,IAAMC,WCJRD,IAAnB,U,oFCGa+B,EACU,CACfh2D,KAAM,qBACNlO,KAAM,oEAHDkkE,EAKY,CACjBh2D,KAAM,wBACNlO,KAAM,4CAPDkkE,EASiB,CACtBh2D,KAAM,wBACNlO,KAAM,yDAXDkkE,EAae,CACpBh2D,KAAM,wBACNlO,KAAM,+PAfDkkE,EAuBc,CACnBh2D,KAAM,2CACNlO,KAAM,kLAzBDkkE,EA2BiB,CACtBh2D,KAAM,8BACNlO,KAAM,yR,cASV,WAAYkW,EAAmBg+B,GAA/B,MACI,YAAMh+B,EAAWg+B,IAAa,K,OAC9B,EAAKvgD,KAAO,gCAEZoK,OAAOC,eAAe,EAAMmmE,EAA8B/lE,W,CAC7D,CAgDL,OAvDmD,iBAYxC,EAAAgmE,4BAAP,WACI,OAAO,IAAID,EAA8BD,EAAuDh2D,KAC5Fg2D,EAAuDlkE,KAC9D,EAKM,EAAAqkE,sCAAP,WACI,OAAO,IAAIF,EAA8BD,EAAyDh2D,KAC9Fg2D,EAAyDlkE,KAChE,EAMM,EAAAskE,+BAAP,SAAsCC,GAClC,OAAO,IAAIJ,EAA8BD,EAA8Dh2D,KAASg2D,EAA8DlkE,KAAI,oBAAoBukE,EACzM,EAKM,EAAAC,mCAAP,WACI,OAAO,IAAIL,EAA8BD,EAA4Dh2D,KACjGg2D,EAA4DlkE,KACnE,EAKM,EAAAykE,iCAAP,WACI,OAAO,IAAIN,EAA8BD,EAA2Dh2D,KAChGg2D,EAA2DlkE,KAClE,EAKM,EAAA0kE,uCAAP,WACI,OAAO,IAAIP,EAA8BD,EAA8Dh2D,KAAMg2D,EAA8DlkE,KAC9K,EACL,CAvDA,C,CAAmD,I,+IC/B7C,SAAU2kE,EAAgB3uE,GAE9B,IADA,IAAIgjD,EAAM,GACD95C,EAAI,EAAGA,EAAIlJ,EAAMqJ,OAAQH,IAChC85C,GAAOv6C,OAAOmmE,aAAa5uE,EAAMkJ,IAEnC,OAAOooB,KAAK0xB,EACb,CAMK,SAAU6rB,EAAa7uE,GAG3B,IAFA,IAAMs1B,EAAaC,KAAKv1B,GAClBw1B,EAAM,IAAIC,WAAWH,EAAWjsB,QAC7BH,EAAI,EAAGA,EAAIosB,EAAWjsB,OAAQH,IACrCssB,EAAItsB,GAAKosB,EAAWI,WAAWxsB,GAEjC,OAAOssB,CACR,C,oBCnBY,EAAb,WACE,aAQiC,IAJfs5C,EAIe,uDAJwB,CAAC,EAIxCC,EAAe,2DAJf,KAAAD,eAIA,KAAAC,OACd,CAVN,uDAmBE,SAAoBzxE,EAAgB0C,EAAgBgvE,GAClD,IAAMC,EAAiB,SACrBC,EACAC,GAEA,MAAM,IAAIz9D,MAAJ,WACAs9D,EADA,yBAC2BhvE,EAD3B,4CACoEkvE,EADpE,cACwFC,EADxF,KAGP,EACD,GAAI7xE,EAAOe,kBAAwB4O,GAATjN,EAAoB,CAC5C,IAAMovE,EAAgBpvE,EACtB,EAYI1C,EAAOe,YAXTgxE,EADF,EACEA,iBACAC,EAFF,EAEEA,iBACAC,EAHF,EAGEA,iBACAjxE,EAJF,EAIEA,iBACAkxE,EALF,EAKEA,SACAC,EANF,EAMEA,UACAC,EAPF,EAOEA,SACAC,EARF,EAQEA,UACAC,EATF,EASEA,WACAC,EAVF,EAUEA,QACAC,EAXF,EAWEA,iBAEsB7iE,GAApBoiE,GAAiCD,GAAiBC,GACpDJ,EAAe,mBAAoBI,QAEbpiE,GAApBqiE,GAAiCF,GAAiBE,GACpDL,EAAe,mBAAoBK,QAEbriE,GAApBsiE,GAAiCH,EAAgBG,GACnDN,EAAe,mBAAoBM,QAEbtiE,GAApB3O,GAAiC8wE,EAAgB9wE,GACnD2wE,EAAe,mBAAoB3wE,GAErC,IAAMyxE,EAAe/vE,EAgBrB,QAfgBiN,GAAZuiE,GAAyBO,EAAa1mE,OAASmmE,GACjDP,EAAe,WAAYO,QAEZviE,GAAbwiE,GAA0BM,EAAa1mE,OAASomE,GAClDR,EAAe,YAAaQ,QAEdxiE,GAAZyiE,GAAyBK,EAAa1mE,OAASqmE,GACjDT,EAAe,WAAYS,QAEZziE,GAAb0iE,GAA0BI,EAAa1mE,OAASsmE,GAClDV,EAAe,YAAaU,QAEZ1iE,GAAd2iE,GAA2BR,EAAgBQ,IAAe,GAC5DX,EAAe,aAAcW,GAE3BC,EAAS,CACX,IAAMrsB,EAAqC,kBAAZqsB,EAAuB,IAAInsB,OAAOmsB,GAAWA,EACvD,kBAAV7vE,GAA+C,OAAzBA,EAAMkuB,MAAMs1B,IAC3CyrB,EAAe,UAAWY,EAE7B,CAECC,GACAC,EAAaC,MAAK,SAAC9R,EAAWh1D,EAAWwE,GAAvB,OAA0CA,EAAGjE,QAAQy0D,KAAUh1D,CAA/D,KAElB+lE,EAAe,cAAea,EAEjC,CACF,GApFH,uBA+FE,SACExyE,EACA0X,EACAg6D,GAC+B,I,MAA/BniD,EAA+B,uDAAF,CAAC,EAExBojD,EAA8C,CAClDC,SAA0B,QAAhB,EAAArjD,EAAQqjD,gBAAQ,QAAI,GAC9BC,YAAgC,QAAnB,EAAAtjD,EAAQsjD,mBAAW,SAChCve,WAA8B,QAAlB,EAAA/kC,EAAQ+kC,kBAAU,QAAI,KAEhCwe,EAAe,CAAC,EACdC,EAAa/yE,EAAOI,KAAKC,KAC1BqxE,IACHA,EAAa1xE,EAAOG,gBAEkB,OAApC4yE,EAAWniD,MAAM,iBACnBkiD,EAAU,IAGR9yE,EAAOE,aACTwX,EAAS1X,EAAOC,cAalB,IAAQQ,EAAuBT,EAAvBS,SAAUuyE,EAAahzE,EAAbgzE,SAElB,GAAIvyE,GAAYuyE,QAAuBrjE,IAAX+H,EAC1B,MAAM,IAAItD,MAAJ,UAAas9D,EAAb,0BAER,GAAIjxE,IAAauyE,QAAsBrjE,GAAV+H,EAC3B,MAAM,IAAItD,MAAJ,UAAas9D,EAAb,kCAER,IAAKjxE,IAAyB,IAAbuyE,GAAiC,OAAXt7D,EACrC,MAAM,IAAItD,MAAJ,UAAas9D,EAAb,qBAGR,QAAc/hE,GAAV+H,EACFo7D,EAAUp7D,OAEV,GAAmC,OAA/Bq7D,EAAWniD,MAAM,UACnBkiD,EAAUp7D,OACL,GAA0E,OAAtEq7D,EAAWniD,MAAM,iDAC1BkiD,EAAUG,EAAoBF,EAAYrB,EAAYh6D,QACjD,GAAoC,OAAhCq7D,EAAWniD,MAAM,WAAqB,CAC/C,IAAMsiD,EAAyBlzE,EAC/B8yE,EAAUK,EAAkBzB,EAAYwB,EAAW9yE,KAAKwB,cAAe8V,EACxE,MAC8E,OAA7Eq7D,EAAWniD,MAAM,wDAEjBkiD,EAAUM,EAAmBL,EAAYr7D,EAAQg6D,GACH,OAArCqB,EAAWniD,MAAM,gBAC1BkiD,EAAUO,EAAuB3B,EAAYh6D,GACC,OAArCq7D,EAAWniD,MAAM,gBAC1BkiD,EAAUQ,EAAuB5B,EAAYh6D,GACA,OAApCq7D,EAAWniD,MAAM,eAC1BkiD,EAAUS,EACRloE,KACArL,EACA0X,EACAg6D,EACA8B,QAAQnoE,KAAKomE,OACbkB,GAE6C,OAAtCI,EAAWniD,MAAM,iBAC1BkiD,EAAUW,EACRpoE,KACArL,EACA0X,EACAg6D,EACA8B,QAAQnoE,KAAKomE,OACbkB,GAE4C,OAArCI,EAAWniD,MAAM,kBAC1BkiD,EAAUY,EACRroE,KACArL,EACA0X,EACAg6D,EACA8B,QAAQnoE,KAAKomE,OACbkB,IAIN,OAAOG,CACR,GA7LH,yBAwME,SACE9yE,EACA2zE,EACAjC,GAC+B,I,MAqB3BoB,EArBJvjD,EAA+B,uDAAF,CAAC,EAExBojD,EAA8C,CAClDC,SAA0B,QAAhB,EAAArjD,EAAQqjD,gBAAQ,QAAI,GAC9BC,YAAgC,QAAnB,EAAAtjD,EAAQsjD,mBAAW,SAChCve,WAA8B,QAAlB,EAAA/kC,EAAQ+kC,kBAAU,QAAI,KAEpC,QAAoB3kD,GAAhBgkE,EAWF,OAVItoE,KAAKomE,OAA8B,aAArBzxE,EAAOI,KAAKC,OAAwBL,EAAOqD,eAI3DswE,EAAe,SAGWhkE,IAAxB3P,EAAOC,eACT0zE,EAAe3zE,EAAOC,cAEjB0zE,EAIT,IAAMZ,EAAa/yE,EAAOI,KAAKC,KAK/B,GAJKqxE,IACHA,EAAa1xE,EAAOG,gBAGmB,OAArC4yE,EAAWniD,MAAM,gBACnBkiD,EAAUc,EACRvoE,KACArL,EACA2zE,EACAjC,EACAiB,OAEG,CACL,GAAItnE,KAAKomE,MAAO,CACd,IAAMnd,EAAaqe,EAAere,WAC5Buf,EAAmBF,OAOUhkE,GAAjCkkE,EAAiB,WACelkE,GAAhCkkE,EAAiBvf,KAEjBqf,EAAeE,EAAiBvf,GAEnC,CAEqC,OAAlCye,EAAWniD,MAAM,cACnBkiD,EAAU/6C,WAAW47C,GACjB38D,MAAM87D,KACRA,EAAUa,IAEgC,OAAnCZ,EAAWniD,MAAM,cAExBkiD,EADmB,SAAjBa,GAEwB,UAAjBA,GAGCA,EAEsE,OAAzEZ,EAAWniD,MAAM,oDAC1BkiD,EAAUa,EAC0D,OAA3DZ,EAAWniD,MAAM,sCAC1BkiD,EAAU,IAAIh7C,KAAK67C,GAC0B,OAApCZ,EAAWniD,MAAM,eAC1BkiD,EAAUgB,EAAeH,GACqB,OAArCZ,EAAWniD,MAAM,gBAC1BkiD,EAAU,EAAoBa,GACgB,OAArCZ,EAAWniD,MAAM,gBAC1BkiD,EAAUiB,EAAqBJ,GACc,OAApCZ,EAAWniD,MAAM,eAC1BkiD,EAAUkB,EACR3oE,KACArL,EACA2zE,EACAjC,EACAiB,GAE6C,OAAtCI,EAAWniD,MAAM,mBAC1BkiD,EAAUmB,EACR5oE,KACArL,EACA2zE,EACAjC,EACAiB,GAGL,CAMD,OAJI3yE,EAAOE,aACT4yE,EAAU9yE,EAAOC,cAGZ6yE,CACR,KA/SH,KAuUA,SAASiB,EAAqBruB,GAC5B,GAAKA,EAAL,CAGA,GAAIA,GAAgC,kBAAlBA,EAAIwuB,UACpB,MAAM,IAAI9/D,MAAM,uEAKlB,OAAO,EAFPsxC,EAAMA,EAAIx1B,QAAQ,KAAM,KAAKA,QAAQ,KAAM,KAL1C,CAQF,CAED,SAASikD,EAAmB72C,GAC1B,IAAM0E,EAAoB,GACtBoyC,EAAe,GACnB,GAAI92C,EAAM,CACR,IADQ,EACF+2C,EAAW/2C,EAAK7M,MAAM,KADpB,cAGW4jD,GAHX,IAGR,IAAK,EAAL,qBAA6B,KAAlBzT,EAAkB,QACU,OAAjCA,EAAK9oD,OAAO8oD,EAAK70D,OAAS,GAC5BqoE,GAAgBxT,EAAK0T,OAAO,EAAG1T,EAAK70D,OAAS,GAAK,KAElDqoE,GAAgBxT,EAChB5+B,EAAQ3yB,KAAK+kE,GACbA,EAAe,GAElB,CAXO,+BAYT,CAED,OAAOpyC,CACR,CAaD,SAAS8xC,EAAejoE,GACtB,GAAKA,EAGL,OAAO,IAAIisB,KAAS,IAAJjsB,EACjB,CAED,SAASonE,EAAoBsB,EAAkB7C,EAAoBhvE,GACjE,GAAc,OAAVA,QAA4BiN,IAAVjN,EACpB,GAAoC,OAAhC6xE,EAAS3jD,MAAM,cACjB,GAAqB,kBAAVluB,EACT,MAAM,IAAI0R,MAAJ,UAAas9D,EAAb,uBAAsChvE,EAAtC,kCAEH,GAAoC,OAAhC6xE,EAAS3jD,MAAM,cACxB,GAA+B,kBAApBluB,EAAMwxE,UACf,MAAM,IAAI9/D,MAAJ,UAAas9D,EAAb,wBAAuChvE,EAAvC,mCAEH,GAAkC,OAA9B6xE,EAAS3jD,MAAM,YACxB,GAAiC,kBAApBluB,EAAMwxE,YAA0BM,EAAA,EAAkB9xE,GAC7D,MAAM,IAAI0R,MAAJ,UACDs9D,EADC,wBACyBhvE,EADzB,oDAIH,GAAqC,OAAjC6xE,EAAS3jD,MAAM,eACxB,GAAqB,mBAAVluB,EACT,MAAM,IAAI0R,MAAJ,UAAas9D,EAAb,uBAAsChvE,EAAtC,mCAEH,GAAoC,OAAhC6xE,EAAS3jD,MAAM,aAAuB,CAC/C,IAAM6jD,SAAoB/xE,EAC1B,GACiB,WAAf+xE,GACe,aAAfA,KACE/xE,aAAiBgyE,eAClBA,YAAYC,OAAOjyE,KACD,oBAATkyE,MAAuC,kBAATA,QAAsBlyE,aAAiBkyE,OAE/E,MAAM,IAAIxgE,MAAJ,UACDs9D,EADC,yGAIT,CAGH,OAAOhvE,CACR,CAED,SAASywE,EAAkBzB,EAAoB9vE,EAA2Bc,GACxE,IAAKd,EACH,MAAM,IAAIwS,MAAJ,4DACiDs9D,EADjD,sBAUR,IANkB9vE,EAAc8wE,MAAK,SAAC9R,GACpC,MAA8B,kBAAnBA,EAAKsT,UACPtT,EAAKlvC,gBAAkBhvB,EAAMgvB,cAE/BkvC,IAASl+D,CACjB,IAEC,MAAM,IAAI0R,MAAJ,UACD1R,EADC,qCACiCgvE,EADjC,mCACsErsB,KAAKC,UAC7E1jD,GAFE,MAMR,OAAOc,CACR,CAED,SAAS2wE,EAAuB3B,EAAoBhvE,GAClD,IAAImyE,EAAsB,GAC1B,QAAallE,GAATjN,EAAoB,CACtB,KAAMA,aAAiBy1B,YACrB,MAAM,IAAI/jB,MAAJ,UAAas9D,EAAb,iCAERmD,EAAc,EAAuBnyE,EACtC,CACD,OAAOmyE,CACR,CAED,SAASvB,EAAuB5B,EAAoBhvE,GAClD,IAAImyE,EAAsB,GAC1B,QAAallE,GAATjN,EAAoB,CACtB,KAAMA,aAAiBy1B,YACrB,MAAM,IAAI/jB,MAAJ,UAAas9D,EAAb,iCAERmD,EA9IJ,SAA2BC,GACzB,GAAKA,EAAL,CAGA,KAAMA,aAAkB38C,YACtB,MAAM,IAAI/jB,MAAJ,2EAKR,OAlBF,SAAiBsxC,EAAaqvB,GAE5B,IADA,IAAIC,EAAMtvB,EAAI35C,OACPipE,EAAM,GAAK,GAAKtvB,EAAIsvB,EAAM,KAAOD,KACpCC,EAEJ,OAAOtvB,EAAI4uB,OAAO,EAAGU,EACtB,CAYQC,CAFK,EAAuBH,GAEf,KAAK5kD,QAAQ,MAAO,KAAKA,QAAQ,MAAO,IAP3D,CAQF,CAmIiBglD,CAAkBxyE,IAAU,EAC3C,CACD,OAAOmyE,CACR,CAED,SAASzB,EAAmBmB,EAAkB7xE,EAAYgvE,GACxD,QAAa/hE,GAATjN,EACF,GAAkC,OAA9B6xE,EAAS3jD,MAAM,WAAqB,CACtC,KAEIluB,aAAiBo1B,MACW,kBAApBp1B,EAAMwxE,YAA2Bl9D,MAAM8gB,KAAKhI,MAAMptB,KAG5D,MAAM,IAAI0R,MAAJ,UAAas9D,EAAb,+DAERhvE,EACEA,aAAiBo1B,KACbp1B,EAAM0wB,cAAcC,UAAU,EAAG,IACjC,IAAIyE,KAAKp1B,GAAO0wB,cAAcC,UAAU,EAAG,GAClD,MAAM,GAAsC,OAAlCkhD,EAAS3jD,MAAM,eAAyB,CACjD,KAEIluB,aAAiBo1B,MACW,kBAApBp1B,EAAMwxE,YAA2Bl9D,MAAM8gB,KAAKhI,MAAMptB,KAG5D,MAAM,IAAI0R,MAAJ,UAAas9D,EAAb,+DAERhvE,EAAQA,aAAiBo1B,KAAOp1B,EAAM0wB,cAAgB,IAAI0E,KAAKp1B,GAAO0wB,aACvE,MAAM,GAA6C,OAAzCmhD,EAAS3jD,MAAM,sBAAgC,CACxD,KAEIluB,aAAiBo1B,MACW,kBAApBp1B,EAAMwxE,YAA2Bl9D,MAAM8gB,KAAKhI,MAAMptB,KAG5D,MAAM,IAAI0R,MAAJ,UAAas9D,EAAb,gEAERhvE,EAAQA,aAAiBo1B,KAAOp1B,EAAM25D,cAAgB,IAAIvkC,KAAKp1B,GAAO25D,aACvE,MAAM,GAAsC,OAAlCkY,EAAS3jD,MAAM,eAAyB,CACjD,KAEIluB,aAAiBo1B,MACW,kBAApBp1B,EAAMwxE,YAA2Bl9D,MAAM8gB,KAAKhI,MAAMptB,KAG5D,MAAM,IAAI0R,MACR,UAAGs9D,EAAH,4HAIJhvE,EApJN,SAAwB6H,GACtB,GAAKA,EAOL,MAH2B,kBAAhBA,EAAE2pE,YACX3pE,EAAI,IAAIutB,KAAKvtB,IAERwkD,KAAKC,MAAOzkD,EAAW2jD,UAAY,IAC3C,CA2IainB,CAAezyE,EACxB,MAAM,GAAsC,OAAlC6xE,EAAS3jD,MAAM,iBACnB4jD,EAAA,EAAiB9xE,GACpB,MAAM,IAAI0R,MAAJ,UACDs9D,EADC,8DAC+DhvE,EAD/D,OAMZ,OAAOA,CACR,CAED,SAAS6wE,EACP6B,EACAp1E,EACA0X,EACAg6D,EACA2D,EACA9lD,GAEA,IAAK3kB,MAAM45C,QAAQ9sC,GACjB,MAAM,IAAItD,MAAJ,UAAas9D,EAAb,4BAER,IAAM4D,EAAct1E,EAAOI,KAAKuB,QAChC,IAAK2zE,GAAsC,kBAAhBA,EACzB,MAAM,IAAIlhE,MACR,0GAC4Cs9D,EAD5C,MAKJ,IADA,IAAM6D,EAAY,GACT3pE,EAAI,EAAGA,EAAI8L,EAAO3L,OAAQH,IAAK,CACtC,IAAM4pE,EAAkBJ,EAAWK,UAAUH,EAAa59D,EAAO9L,GAAI8lE,EAAYniD,GAEjF,GAAI8lD,GAASC,EAAYnoB,aAAc,CACrC,IAAMuoB,EAAWJ,EAAYK,mBAAZ,gBACJL,EAAYK,oBACrB,QAC0B,cAA1BL,EAAYl1E,KAAKC,MACnBk1E,EAAU3pE,GAAE,iBAAQ4pE,GACpBD,EAAU3pE,GAAG,KAAb,eAA+B8pE,EAAWJ,EAAYnoB,gBAEtDooB,EAAU3pE,GAAK,CAAC,EAChB2pE,EAAU3pE,GAAG2jB,EAAQ+kC,YAAckhB,EACnCD,EAAU3pE,GAAG,KAAb,eAA+B8pE,EAAWJ,EAAYnoB,cAEzD,MACCooB,EAAU3pE,GAAK4pE,CAElB,CACD,OAAOD,CACR,CAED,SAAS9B,EACP2B,EACAp1E,EACA0X,EACAg6D,EACA2D,EACA9lD,GAEA,GAAsB,kBAAX7X,EACT,MAAM,IAAItD,MAAJ,UAAas9D,EAAb,6BAER,IAAMkE,EAAY51E,EAAOI,KAAKsC,MAC9B,IAAKkzE,GAAkC,kBAAdA,EACvB,MAAM,IAAIxhE,MACR,6GAC4Cs9D,EAD5C,MAKJ,IADA,IAAMmE,EAAyC,CAAC,EAChD,MAAkBprE,OAAOgN,KAAKC,GAA9B,eAAuC,CAAlC,IAAMjL,EAAG,KACN+oE,EAAkBJ,EAAWK,UAAUG,EAAWl+D,EAAOjL,GAAMilE,EAAYniD,GAEjFsmD,EAAeppE,GAAOqpE,EAAkBF,EAAWJ,EAAiBH,EAAO9lD,EAC5E,CAGD,GAAI8lD,GAASr1E,EAAOmtD,aAAc,CAChC,IAAMuoB,EAAW11E,EAAO21E,mBAAP,gBAAqC31E,EAAO21E,oBAAuB,QAE9ExnE,EAAS0nE,EAEf,OADA1nE,EAAO,KAAP,eAAyBunE,EAAW11E,EAAOmtD,cACpCh/C,CACR,CAED,OAAO0nE,CACR,CA6BD,SAASE,EACPX,EACAp1E,EACA0xE,GAEA,IAAMpuE,EAAYtD,EAAOI,KAAKkD,UAC9B,IAAKA,EACH,MAAM,IAAI8Q,MAAJ,gCACqBs9D,EADrB,4CACmErsB,KAAKC,UAC1EtlD,OACA2P,EACA,GAJE,OASR,OAAOylE,EAAW5D,aAAaluE,EAChC,CAOD,SAAS0yE,EACPZ,EACAp1E,EACA0xE,GAEA,IAAIuE,EAAaj2E,EAAOI,KAAK0Y,gBAC7B,IAAKm9D,EAAY,CACf,IAAMC,EAAcH,EAAwBX,EAAYp1E,EAAQ0xE,GAChE,IAAKwE,EACH,MAAM,IAAI9hE,MAAJ,0DAA6DpU,EAAOI,KAAKkD,UAAzE,OAGR,KADA2yE,EAAwB,OAAXC,QAAW,IAAXA,OAAW,EAAXA,EAAa91E,KAAK0Y,iBAE7B,MAAM,IAAI1E,MACR,wEACaixC,KAAKC,UAAU4wB,GAD5B,sBAEIl2E,EAAOI,KAAKkD,UAFhB,yBAGmBouE,EAHnB,MAML,CAED,OAAOuE,CACR,CAED,SAASvC,EACP0B,EACAp1E,EACA0X,EACAg6D,EACA2D,EACA9lD,GAMA,GAJI4mD,EAAuCf,EAAYp1E,KACrDA,EAASo2E,EAAqBhB,EAAYp1E,EAAQ0X,EAAQ,oBAG9C/H,GAAV+H,EAAqB,CAGvB,IAFA,IAAMo7D,EAAe,CAAC,EAChBmD,EAAaD,EAAuBZ,EAAYp1E,EAAQ0xE,GAC9D,MAAkBjnE,OAAOgN,KAAKw+D,GAA9B,eAA2C,CAAtC,IAAMxpE,EAAG,KACN4pE,EAAiBJ,EAAWxpE,GAClC,IAAI4pE,EAAeC,SAAnB,CAIA,IAAIt7B,OAA4B,EAC5Bu7B,EAAoBzD,EACxB,GAAIsC,EAAW3D,MAEXz2B,EADEq7B,EAAehzE,aACNgzE,EAAe31E,QAEf21E,EAAe30E,gBAAkB20E,EAAe31E,YAExD,CACL,IAAM81E,EAAQrC,EAAmBkC,EAAel2E,gBAChD66C,EAAWw7B,EAAMpnE,MAFZ,oBAIkBonE,GAJlB,IAIL,IAAK,EAAL,qBAA8B,KAAnBC,EAAmB,aAGX9mE,GAFG4mE,EAAaE,SAGf9mE,GAAf+H,EAAOjL,SAAqDkD,IAAhC0mE,EAAep2E,eAE5Cs2E,EAAaE,GAAY,CAAC,GAE5BF,EAAeA,EAAaE,EAC7B,CAbI,+BAcN,CAED,QAAoB9mE,GAAhB4mE,EAA2B,CAC7B,GAAIlB,GAASr1E,EAAOmtD,aAAc,CAChC,IAAMuoB,EAAW11E,EAAO21E,mBAAP,gBACJ31E,EAAO21E,oBAChB,QACJY,EAAa,KAAY,+BACpBA,EAAa,MADO,eAEtBb,EAAW11E,EAAOmtD,cAEtB,CACD,IAAMupB,EAC8B,KAAlCL,EAAel2E,eACXuxE,EAAa,IAAM2E,EAAel2E,eAClCuxE,EAEFiF,EAAcj/D,EAAOjL,GACnBmqE,EAA2BT,EAAuCf,EAAYp1E,GAElF42E,GACAA,EAAyBC,aAAepqE,QACzBkD,GAAfgnE,IAEAA,EAAc32E,EAAOG,gBAGvB,IAAMq1E,EAAkBJ,EAAWK,UACjCY,EACAM,EACAD,EACAnnD,GAGF,QAAwB5f,IAApB6lE,QAA6C7lE,GAAZqrC,EAAuB,CAC1D,IAAMt4C,EAAQozE,EAAkBO,EAAgBb,EAAiBH,EAAO9lD,GACpE8lD,GAASgB,EAAej7D,gBAI1Bm7D,EAAa,KAAeA,EAAa,MAAgB,CAAC,EAC1DA,EAAa,KAAav7B,GAAYw6B,GAC7BH,GAASgB,EAAehzE,aACjCkzE,EAAav7B,GAAb,eAA4Bq7B,EAAe30E,eAAkBgB,GAE7D6zE,EAAav7B,GAAYt4C,CAE5B,CACF,CAxEA,CAyEF,CAED,IAAMo0E,EApKV,SACE1B,EACAp1E,EACA0xE,GAEA,IAAMqF,EAAuB/2E,EAAOI,KAAK22E,qBAEzC,IAAKA,GAAwB/2E,EAAOI,KAAKkD,UAAW,CAClD,IAAM4yE,EAAcH,EAAwBX,EAAYp1E,EAAQ0xE,GAChE,OAAkB,OAAXwE,QAAW,IAAXA,OAAW,EAAXA,EAAa91E,KAAK22E,oBAC1B,CAED,OAAOA,CACR,CAuJsCC,CAA4B5B,EAAYp1E,EAAQ0xE,GACnF,GAAIoF,EAA4B,CAC9B,IAAMG,EAAYxsE,OAAOgN,KAAKw+D,GADA,WAEnBiB,GACoBD,EAAUE,OAAM,SAACC,GAAD,OAAQA,IAAOF,CAAf,MAE3CpE,EAAQoE,GAAkB9B,EAAWK,UACnCqB,EACAp/D,EAAOw/D,GACPxF,EAAa,KAAOwF,EAAiB,KACrC3nD,GATwB,EAE9B,IAAK,IAAM2nD,KAAkBx/D,EAAQ,EAA1Bw/D,EAWZ,CAED,OAAOpE,CACR,CACD,OAAOp7D,CACR,CAED,SAASo+D,EACPO,EACAb,EACAH,EACA9lD,GAEA,IAAK8lD,IAAUgB,EAAelpB,aAC5B,OAAOqoB,EAGT,IAAME,EAAWW,EAAeV,mBAAf,gBACJU,EAAeV,oBACxB,QACExoB,EAAe,eAAGuoB,EAAWW,EAAelpB,cAElD,GAAI,CAAC,aAAayC,SAASymB,EAAej2E,KAAKC,MAAO,CACpD,GAAIm1E,EAAgB,KAClB,OAAOA,EAEP,IAAM,EAAM,iBAAaA,GAEzB,OADA,EAAO,KAAeroB,EACf,CAEV,CACD,IAAMh/C,EAAc,CAAC,EAGrB,OAFAA,EAAOohB,EAAQ+kC,YAAckhB,EAC7BrnE,EAAO,KAAeg/C,EACfh/C,CACR,CAED,SAASkpE,EAAqBC,EAAsB/nD,GAClD,MAAO,CAAC,IAAaA,EAAQ+kC,YAAY1E,SAAS0nB,EACnD,CAED,SAAS1D,EACPwB,EACAp1E,EACA2zE,EACAjC,EACAniD,G,MAEI4mD,EAAuCf,EAAYp1E,KACrDA,EAASo2E,EAAqBhB,EAAYp1E,EAAQ2zE,EAAc,mBAOlE,IAJA,IAAMsC,EAAaD,EAAuBZ,EAAYp1E,EAAQ0xE,GAC1D/iD,EAAmC,CAAC,EAClC4oD,EAAiC,GAEvC,MAAkB9sE,OAAOgN,KAAKw+D,GAA9B,eAA2C,CAAtC,IAAMxpE,EAAG,KACN4pE,EAAiBJ,EAAWxpE,GAC5B+pE,EAAQrC,EAAmB8B,EAAWxpE,GAAKtM,gBACjDo3E,EAAqBloE,KAAKmnE,EAAM,IAChC,IAAQr2E,EAA4Ck2E,EAA5Cl2E,eAAgBO,EAA4B21E,EAA5B31E,QAASgB,EAAmB20E,EAAnB30E,eAC7Bg1E,EAAqBhF,EACF,KAAnBvxE,QAA4CwP,IAAnBxP,IAC3Bu2E,EAAqBhF,EAAa,IAAMvxE,GAG1C,IAAMwC,EAA0B0zE,EAAoC1zE,uBACpE,GAAIA,EAAwB,CAE1B,IADA,IAAM60E,EAAkB,CAAC,EACzB,MAAwB/sE,OAAOgN,KAAKk8D,GAApC,eAAmD,CAA9C,IAAM8D,EAAS,KACdA,EAAU9mD,WAAWhuB,KACvB60E,EAAWC,EAAUpkD,UAAU1wB,EAAuBoJ,SAAWqpE,EAAWsC,YACzErB,EAAoCj2E,KAAKsC,MAC1CixE,EAAa8D,GACbf,EACAnnD,IAIJgoD,EAAqBloE,KAAKooE,EAC3B,CACD9oD,EAASliB,GAAO+qE,CACjB,MAAM,GAAIpC,EAAW3D,MACpB,GAAI4E,EAAej7D,gBAAkBu4D,EAAa,KAChDhlD,EAASliB,GAAO2oE,EAAWsC,YACzBrB,EACA1C,EAAa,KAAajzE,GAC1Bg2E,EACAnnD,OAEG,CACL,IAAM+nD,EAAe51E,GAAkBhB,GAAWP,EAClD,GAAIk2E,EAAehzE,aAAc,CAe/B,IAAMs0E,EAAUhE,EAAajzE,GACvBk3E,EAAwC,QAA1B,EAAO,OAAPD,QAAO,IAAPA,OAAO,EAAPA,EAAUj2E,UAAgB,QAAI,GAClDitB,EAASliB,GAAO2oE,EAAWsC,YACzBrB,EACAuB,EACAlB,EACAnnD,EAEH,KAAM,CACL,IAAMi4B,EAAWmsB,EAAa2D,GAC9B3oD,EAASliB,GAAO2oE,EAAWsC,YACzBrB,EACA7uB,EACAkvB,EACAnnD,EAEH,CACF,KACI,CAEL,IAFK,EAEDsoD,OAAgB,EAChBnkD,EAAMigD,EAHL,cAKc6C,GALd,IAKL,IAAK,EAAL,qBAA0B,KAAf5V,EAAe,QACxB,IAAKltC,EAAK,MACVA,EAAMA,EAAIktC,EACX,CARI,iCASLiX,EAAmBnkD,EACnB,IAAMkjD,EAA2B52E,EAAOI,KAAKw2E,yBAW3CA,GACAnqE,IAAQmqE,EAAyBC,iBACblnE,GAApBkoE,IAEAA,EAAmB73E,EAAOG,gBAG5B,IAAIq1E,OAAe,EAEnB,GAAI5qE,MAAM45C,QAAQmvB,EAAalnE,KAA4C,KAAnCwpE,EAAWxpE,GAAKtM,eAAuB,CAC7E03E,EAAmBlE,EAAalnE,GAShC,IARA,IAAMqrE,EAAgB1C,EAAWsC,YAC/BrB,EACAwB,EACAnB,EACAnnD,GAIF,MAAqB9kB,OAAOstE,QAAQppD,GAApC,eAA+C,CAA1C,0BAAOlf,EAAP,KAAUP,EAAV,KACEzE,OAAOK,UAAUC,eAAeC,KAAK8sE,EAAeroE,KACvDqoE,EAAcroE,GAAKP,EAEtB,CACDyf,EAAWmpD,CACZ,WAA+BnoE,IAArBkoE,QAAkEloE,IAAhC0mE,EAAep2E,eAC1Du1E,EAAkBJ,EAAWsC,YAC3BrB,EACAwB,EACAnB,EACAnnD,GAEFZ,EAASliB,GAAO+oE,EAEnB,CACF,CAED,IAAMsB,EAA6B92E,EAAOI,KAAK22E,qBAC/C,GAAID,EAA4B,CAC9B,IAAMkB,EAAuB,SAACC,GAC5B,IAAK,IAAMf,KAAkBjB,EAAY,CAEvC,GADc9B,EAAmB8B,EAAWiB,GAAgB/2E,gBAClD,KAAO83E,EACf,OAAO,CAEV,CACD,OAAO,CACR,EAED,IAAK,IAAMA,KAAoBtE,EACzBqE,EAAqBC,KACvBtpD,EAASspD,GAAoB7C,EAAWsC,YACtCZ,EACAnD,EAAasE,GACbvG,EAAa,KAAOuG,EAAmB,KACvC1oD,GAIP,MAAM,GAAIokD,EACT,IAAK,IAAL,MAAkBlpE,OAAOgN,KAAKk8D,GAA9B,eAA6C,CAAxC,IAAM,EAAG,UAEQhkE,IAAlBgf,EAAS,IACR4oD,EAAqB3nB,SAAS,IAC9BynB,EAAqB,EAAK9nD,KAE3BZ,EAAS,GAAOglD,EAAa,GAEhC,CAGH,OAAOhlD,CACR,CAED,SAASslD,EACPmB,EACAp1E,EACA2zE,EACAjC,EACAniD,GAEA,IAAM7sB,EAAQ1C,EAAOI,KAAKsC,MAC1B,IAAKA,GAA0B,kBAAVA,EACnB,MAAM,IAAI0R,MACR,6GAC4Cs9D,IAGhD,GAAIiC,EAAc,CAEhB,IADA,IAAMkC,EAAyC,CAAC,EAChD,MAAkBprE,OAAOgN,KAAKk8D,GAA9B,eAA6C,CAAxC,IAAMlnE,EAAG,KACZopE,EAAeppE,GAAO2oE,EAAWsC,YAAYh1E,EAAOixE,EAAalnE,GAAMilE,EAAYniD,EACpF,CACD,OAAOsmD,CACR,CACD,OAAOlC,CACR,CAED,SAASK,EACPoB,EACAp1E,EACA2zE,EACAjC,EACAniD,GAEA,IAAM5tB,EAAU3B,EAAOI,KAAKuB,QAC5B,IAAKA,GAA8B,kBAAZA,EACrB,MAAM,IAAIyS,MACR,0GAC4Cs9D,IAGhD,GAAIiC,EAAc,CACX/oE,MAAM45C,QAAQmvB,KAEjBA,EAAe,CAACA,IAIlB,IADA,IAAM4B,EAAY,GACT3pE,EAAI,EAAGA,EAAI+nE,EAAa5nE,OAAQH,IACvC2pE,EAAU3pE,GAAKwpE,EAAWsC,YACxB/1E,EACAgyE,EAAa/nE,GAFA,UAGV8lE,EAHU,YAGI9lE,EAHJ,KAIb2jB,GAGJ,OAAOgmD,CACR,CACD,OAAO5B,CACR,CAED,SAASyC,EACPhB,EACAp1E,EACA0X,EACAwgE,GAEA,IAAMtB,EAA2BT,EAAuCf,EAAYp1E,GACpF,GAAI42E,EAA0B,CAC5B,IAAMuB,EAAoBvB,EAAyBsB,GACnD,QAAyBvoE,GAArBwoE,EAAgC,CAClC,IAAMC,EAAqB1gE,EAAOygE,GAClC,QAA0BxoE,GAAtByoE,EAAiC,CACnC,IAAM7D,EAAWv0E,EAAOI,KAAKi4E,YAAcr4E,EAAOI,KAAKkD,UACjDg1E,EACJF,IAAuB7D,EACnB6D,EACA7D,EAAW,IAAM6D,EACjBG,EAAoBnD,EAAW5D,aAAagH,eAAeF,GAC7DC,IACFv4E,EAASu4E,EAEZ,CACF,CACF,CACD,OAAOv4E,CACR,CAED,SAASm2E,EACPf,EACAp1E,GAEA,OACEA,EAAOI,KAAKw2E,0BACZ6B,EAAkCrD,EAAYp1E,EAAOI,KAAKi4E,aAC1DI,EAAkCrD,EAAYp1E,EAAOI,KAAKkD,UAE7D,CAED,SAASm1E,EAAkCrD,EAAwBb,GACjE,OACEA,GACAa,EAAW5D,aAAa+C,IACxBa,EAAW5D,aAAa+C,GAAUn0E,KAAKw2E,wBAE1C,CAmWM,IAAM8B,EAZb,SAAmCnpE,GACjC,IAD4C,EACtCpB,EAAc,CAAC,EADuB,cAE1BoB,GAF0B,IAE5C,IAAK,EAAL,qBAAqB,KAAV9C,EAAU,QACnB0B,EAAO1B,GAAOA,CACf,CAJ2C,+BAK5C,OAAO0B,CACR,CAMyBwqE,CAAQ,CAChC,YACA,UACA,YACA,YACA,OACA,WACA,kBACA,aACA,OACA,SACA,SACA,WACA,SACA,SACA,WACA,Y,+BCl9Ca,SAASC,IActB,OAbAA,EAAWnuE,OAAOgB,OAAShB,OAAOgB,OAAOotE,OAAS,SAAUrsE,GAC1D,IAAK,IAAIZ,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CACzC,IAAI81D,EAAS51D,UAAUF,GAEvB,IAAK,IAAIa,KAAOi1D,EACVj3D,OAAOK,UAAUC,eAAeC,KAAK02D,EAAQj1D,KAC/CD,EAAOC,GAAOi1D,EAAOj1D,GAG3B,CAEA,OAAOD,CACT,EACOosE,EAAS5sE,MAAMX,KAAMS,UAC9B,CAfA,iC,uICUagtE,EAAb,4CACmB,KAAAC,UAAiE,CAAC,CAiIpF,CAlID,uCAMS,WACL,OAAOtuE,OAAOgN,KAAKpM,KAAK0tE,WAAWhtE,OAAS,CAC7C,GARH,kBAaS,WACL,OAAOtB,OAAOgN,KAAKpM,KAAK0tE,UACzB,GAfH,iBAsBS,SAAIC,EAAuBC,GAChC,IAAMC,EAAqBD,EAG3B,GAAID,EACF,QAA2BrpE,IAAvBupE,GAA2D,OAAvBA,EAA6B,CACnE,IAAMC,EAAWvuE,MAAM45C,QAAQ00B,GAC3BA,EACAA,EAAmB9oD,WACvB/kB,KAAK0tE,UAAUC,GAAiBG,CACjC,aACQ9tE,KAAK0tE,UAAUC,EAG3B,GApCH,iBA0CS,SAAIA,GACT,OAAOA,EAAgB3tE,KAAK0tE,UAAUC,QAAiBrpE,CACxD,GA5CH,sBAiDS,WACL,IAAIxB,EAAS,GACb,IAAK,IAAM6qE,KAAiB3tE,KAAK0tE,UAAW,CACtC5qE,IACFA,GAAU,KAEZ,IAAM8qE,EAAiB5tE,KAAK0tE,UAAUC,GACtC,GAAIpuE,MAAM45C,QAAQy0B,GAAiB,CACjC,IADiC,EAC3BG,EAAmB,GADQ,cAEGH,GAFH,IAEjC,IAAK,EAAL,qBAAoD,KAAzCI,EAAyC,QAClDD,EAAiB/pE,KAAjB,UAAyB2pE,EAAzB,YAA0CK,GAC3C,CAJgC,+BAKjClrE,GAAUirE,EAAiB9jD,KAAK,IACjC,MACCnnB,GAAU,GAAJ,OAAO6qE,EAAP,YAAwBC,EAEjC,CACD,OAAO9qE,CACR,IAnEH,oBAwES,SAAa4zD,GAClB,IAAM5zD,EAAS,IAAI2qE,EAEnB,GAAI/W,EAAM,CACJA,EAAKpxC,WAAW,OAClBoxC,EAAOA,EAAK1uC,UAAU,IAOxB,IAJA,IAAIimD,EAAmC,gBAEnCN,EAAgB,GAChBC,EAAiB,GACZrtE,EAAI,EAAGA,EAAIm2D,EAAKh2D,SAAUH,EAAG,CACpC,IAAM2tE,EAA2BxX,EAAKn2D,GACtC,OAAQ0tE,GACN,IAAK,gBACH,OAAQC,GACN,IAAK,IACHD,EAAe,iBACf,MAEF,IAAK,IACHN,EAAgB,GAChBC,EAAiB,GACjB,MAEF,QACED,GAAiBO,EAGrB,MAEF,IAAK,iBACH,GACO,MADCA,EAEJprE,EAAOwE,IAAIqmE,EAAeC,GAC1BD,EAAgB,GAChBC,EAAiB,GACjBK,EAAe,qBAIfL,GAAkBM,EAGtB,MAEF,QACE,MAAM,IAAInlE,MAAM,sCAAwCklE,GAE7D,CACoB,mBAAjBA,GACFnrE,EAAOwE,IAAIqmE,EAAeC,EAE7B,CAED,OAAO9qE,CACR,KAjIH,KAuIaqrE,EAAb,yFAWS,SAAUziD,GACVA,EAGH1rB,KAAKsH,IAAIokB,EAAQ,UAFjB1rB,KAAKouE,aAAU9pE,CAIlB,GAjBH,uBAsBS,WACL,OAAOtE,KAAKouE,OACb,GAxBH,qBA8BS,SAAQtnD,GACRA,EAGH9mB,KAAKsH,IAAIwf,EAAM,kBAFf9mB,KAAKquE,WAAQ/pE,CAIhB,GApCH,qBAyCS,WACL,OAAOtE,KAAKquE,KACb,GA3CH,qBAiDS,SAAQC,QACAhqE,IAATgqE,GAA+B,OAATA,GAA0B,KAATA,EACzCtuE,KAAKuuE,WAAQjqE,EAEbtE,KAAKsH,IAAIgnE,EAAKvpD,WAAY,OAE7B,GAvDH,qBA4DS,WACL,OAAO/kB,KAAKuuE,KACb,GA9DH,qBAoES,SAAQ7pD,GACb,GAAKA,EAEE,CACL,IAAM8pD,EAAc9pD,EAAK5jB,QAAQ,OACjC,IAAqB,IAAjB0tE,EAAoB,CACtB,IAAMC,EAAc/pD,EAAK61B,YAAY,IAAKi0B,GAG1CxuE,KAAKsH,KAAqB,IAAjBmnE,EAAqB/pD,EAAOA,EAAKukD,OAAOwF,EAAc,GAAI,SACpE,MACCzuE,KAAKsH,IAAIod,EAAM,OAElB,MAXC1kB,KAAK0uE,WAAQpqE,CAYhB,GAlFH,wBAwFS,SAAWogB,GAChB,GAAIA,EAAM,CACR,IAAIiqD,EAAkC3uE,KAAK2kB,UACvCgqD,IACGA,EAAY7oD,SAAS,OACxB6oD,GAAe,KAGbjqD,EAAKY,WAAW,OAClBZ,EAAOA,EAAKsD,UAAU,IAGxBtD,EAAOiqD,EAAcjqD,GAEvB1kB,KAAKsH,IAAIod,EAAM,OAChB,CACF,GAxGH,qBA6GS,WACL,OAAO1kB,KAAK0uE,KACb,GA/GH,sBAoHS,SAAShnD,GAIZ1nB,KAAK4uE,OAHFlnD,EAGW+lD,EAAShpD,MAAMiD,QAFfpjB,CAIjB,GA1HH,+BAiIS,SAAkBuqE,EAA4BC,GAC/CD,IACG7uE,KAAK4uE,SACR5uE,KAAK4uE,OAAS,IAAInB,GAEpBztE,KAAK4uE,OAAOtnE,IAAIunE,EAAoBC,GAEvC,GAxIH,oCA8IS,SAAuBD,GAC5B,OAAO7uE,KAAK4uE,OAAS5uE,KAAK4uE,OAAOjqE,IAAIkqE,QAAsBvqE,CAC5D,GAhJH,sBAqJS,WACL,OAAOtE,KAAK4uE,OAAS5uE,KAAK4uE,OAAO7pD,gBAAazgB,CAC/C,GAvJH,iBA4JU,SAAIoyD,EAAcqY,GAGxB,IAFA,IAAMC,EAAY,IAAIC,EAAavY,EAAMqY,GAElCC,EAAUpsE,QAAQ,CACvB,IAAM6iD,EAA8BupB,EAAUE,UAC1CC,OAA6B,EACjC,GAAI1pB,EACF,OAAQA,EAAM1wD,MACZ,IAAK,SACHiL,KAAKouE,QAAU3oB,EAAMiR,WAAQpyD,EAC7B,MAEF,IAAK,OACHtE,KAAKquE,MAAQ5oB,EAAMiR,WAAQpyD,EAC3B,MAEF,IAAK,OACHtE,KAAKuuE,MAAQ9oB,EAAMiR,WAAQpyD,EAC3B,MAEF,IAAK,OACH6qE,EAAY1pB,EAAMiR,WAAQpyD,EACrBtE,KAAK0uE,OAAwB,MAAf1uE,KAAK0uE,OAA+B,MAAdS,IACvCnvE,KAAK0uE,MAAQS,GAEf,MAEF,IAAK,QACHnvE,KAAK4uE,OAASnB,EAAShpD,MAAMghC,EAAMiR,MACnC,MAEF,QACE,MAAM,IAAI3tD,MAAJ,qCAAwC08C,EAAM1wD,OAG3D,CACF,GAhMH,sBAsMS,WACL,IAAI+N,EAAS,GAyBb,OAvBI9C,KAAKouE,UACPtrE,GAAU,GAAJ,OAAO9C,KAAKouE,QAAZ,QAGJpuE,KAAKquE,QACPvrE,GAAU9C,KAAKquE,OAGbruE,KAAKuuE,QACPzrE,GAAU,IAAJ,OAAQ9C,KAAKuuE,QAGjBvuE,KAAK0uE,QACF1uE,KAAK0uE,MAAMppD,WAAW,OACzBxiB,GAAU,KAEZA,GAAU9C,KAAK0uE,OAGb1uE,KAAK4uE,QAAU5uE,KAAK4uE,OAAOQ,QAC7BtsE,GAAU,IAAJ,OAAQ9C,KAAK4uE,OAAO7pD,aAGrBjiB,CACR,GAjOH,wBAuOS,SAAWo/C,EAAqBC,GACjCD,IACFliD,KAAKqvE,UAAU,YAAWrvE,KAAKknB,YAAag7B,EAAaC,IACzDniD,KAAK+mB,QAAQ,YAAW/mB,KAAK2pB,UAAWu4B,EAAaC,IACrDniD,KAAKsvE,QAAQ,YAAWtvE,KAAK6pB,UAAWq4B,EAAaC,IACrDniD,KAAK8kB,QAAQ,YAAW9kB,KAAK2kB,UAAWu9B,EAAaC,IACrDniD,KAAK2nB,SAAS,YAAW3nB,KAAKunB,WAAY26B,EAAaC,IAE1D,IA/OH,oBAoPS,SAAauU,GAClB,IAAM5zD,EAAS,IAAIqrE,EAEnB,OADArrE,EAAOwE,IAAIovD,EAAM,kBACV5zD,CACR,KAxPH,KA+PaysE,EAAb,WACE,WAAmC7Y,EAA8B3hE,GAAkB,oBAAhD,KAAA2hE,OAA8B,KAAA3hE,MAAsB,CADzF,+CAGS,SAAc2hE,GACnB,OAAO,IAAI6Y,EAAS7Y,EAAM,SAC3B,GALH,kBAOS,SAAYA,GACjB,OAAO,IAAI6Y,EAAS7Y,EAAM,OAC3B,GATH,kBAWS,SAAYA,GACjB,OAAO,IAAI6Y,EAAS7Y,EAAM,OAC3B,GAbH,kBAeS,SAAYA,GACjB,OAAO,IAAI6Y,EAAS7Y,EAAM,OAC3B,GAjBH,mBAmBS,SAAaA,GAClB,OAAO,IAAI6Y,EAAS7Y,EAAM,QAC3B,KArBH,KAwCO,IAAMuY,EAAb,WAME,WAA4BO,EAAetoE,GAAyB,oBAAxC,KAAAsoE,QAC1BxvE,KAAKyvE,YAAcD,EAAQA,EAAM9uE,OAAS,EAC1CV,KAAK0vE,mBAA0BprE,IAAV4C,GAAiC,OAAVA,EAAiBA,EAAQ,iBACrElH,KAAK2vE,cAAgB,CACtB,CAVH,2CAgBS,WACL,OAAO3vE,KAAK4vE,aACb,GAlBH,kBAuBS,WACL,GAAKC,EAAoB7vE,MAGvB,OAAQA,KAAK0vE,eACX,IAAK,UA0Hb,SAAoBV,GAClB,IAAMtjD,EAhBR,SAAgCsjD,GAC9B,OAAOc,EAAUd,GAAW,SAACe,GAAD,OApJxB,SAAkCA,GACtC,IAAMC,EAAwBD,EAAUhjD,WAAW,GACnD,OACG,IAAgBijD,GAAiBA,GAAiB,IAClD,IAAgBA,GAAiBA,GAAiB,IAClD,IAAgBA,GAAiBA,GAAiB,GAEtD,CA6IoDC,CAAwBF,EAA/C,GAC7B,CAcwBG,CAAuBlB,GAC9CA,EAAUY,cAAgBL,EAAS7jD,OAAOA,GACrCmkD,EAAoBb,GAGvBA,EAAUU,cAAgB,OAF1BV,EAAUU,cAAgB,MAI7B,CAjISS,CAAWnwE,MACX,MAEF,IAAK,kBAgIb,SAA0BgvE,GACxB,IAAMoB,EAAuBC,EAAmBrB,EAAW,IAAK,IAAK,KAChEa,EAAoBb,GAGqB,MAAnCsB,EAAoBtB,GACQ,QAAjCuB,EAAevB,EAAW,IAC5BA,EAAUY,cAAgBL,EAAS7jD,OAAO0kD,GAC1CpB,EAAUU,cAAgB,SAE1BV,EAAUY,cAAgBL,EAASzoD,KAAKspD,GACxCpB,EAAUU,cAAgB,SAG5BV,EAAUY,cAAgBL,EAASzoD,KAAKspD,GACD,MAAnCE,EAAoBtB,GACtBA,EAAUU,cAAgB,OAE1BV,EAAUU,cAAgB,UAf5BV,EAAUY,cAAgBL,EAASzoD,KAAKspD,GACxCpB,EAAUU,cAAgB,OAiB7B,CApJSc,CAAiBxwE,MACjB,MAEF,IAAK,QAmJb,SAAkBgvE,GACqB,QAAjCuB,EAAevB,EAAW,IAC5ByB,EAAczB,EAAW,GAG3B,IAAMloD,EAAeupD,EAAmBrB,EAAW,IAAK,IAAK,KAC7DA,EAAUY,cAAgBL,EAASzoD,KAAKA,GAEnC+oD,EAAoBb,GAEqB,MAAnCsB,EAAoBtB,GAC7BA,EAAUU,cAAgB,OACkB,MAAnCY,EAAoBtB,GAC7BA,EAAUU,cAAgB,OAE1BV,EAAUU,cAAgB,QAN1BV,EAAUU,cAAgB,MAQ7B,CAnKSgB,CAAS1wE,MACT,MAEF,IAAK,QAkKb,SAAkBgvE,GACuB,MAAnCsB,EAAoBtB,IACtByB,EAAczB,GAGhB,IAAMV,EAAe+B,EAAmBrB,EAAW,IAAK,KACxDA,EAAUY,cAAgBL,EAASjB,KAAKA,GAEnCuB,EAAoBb,GAEqB,MAAnCsB,EAAoBtB,GAC7BA,EAAUU,cAAgB,OAE1BV,EAAUU,cAAgB,QAJ1BV,EAAUU,cAAgB,MAM7B,CAhLSiB,CAAS3wE,MACT,MAEF,IAAK,QA+Kb,SAAkBgvE,GAChB,IAAMtqD,EAAe2rD,EAAmBrB,EAAW,KACnDA,EAAUY,cAAgBL,EAAS7qD,KAAKA,GAEnCmrD,EAAoBb,GAGvBA,EAAUU,cAAgB,QAF1BV,EAAUU,cAAgB,MAI7B,CAvLSkB,CAAS5wE,MACT,MAEF,IAAK,SAsLb,SAAmBgvE,GACsB,MAAnCsB,EAAoBtB,IACtByB,EAAczB,GAGhB,IAAMtnD,EA5KR,SAAuBsnD,GACrB,IAAIlsE,EAAS,GACTksE,EAAUW,cAAgBX,EAAUS,cACtC3sE,EAASksE,EAAUQ,MAAMxnD,UAAUgnD,EAAUW,eAC7CX,EAAUW,cAAgBX,EAAUS,aAEtC,OAAO3sE,CACR,CAqKuB+tE,CAAc7B,GACpCA,EAAUY,cAAgBL,EAAS7nD,MAAMA,GACzCsnD,EAAUU,cAAgB,MAC3B,CA7LSoB,CAAU9wE,MACV,MAEF,QACE,MAAM,IAAI+I,MAAJ,0CAA6C/I,KAAK0vE,qBA5B5D1vE,KAAK4vE,mBAAgBtrE,EA+BvB,QAAStE,KAAK4vE,aACf,KAzDH,KA2EA,SAASC,EAAoBb,GAC3B,OAAOA,EAAUW,cAAgBX,EAAUS,WAC5C,CAKD,SAASa,EAAoBtB,GAC3B,OAAOA,EAAUQ,MAAMR,EAAUW,cAClC,CAMD,SAASc,EAAczB,EAAyBrsE,GAC1CktE,EAAoBb,KACjBrsE,IACHA,EAAO,GAETqsE,EAAUW,eAAiBhtE,EAE9B,CAMD,SAAS4tE,EAAevB,EAAyB+B,GAC/C,IAAIC,EAAmBhC,EAAUW,cAAgBoB,EAIjD,OAHI/B,EAAUS,YAAcuB,IAC1BA,EAAWhC,EAAUS,aAEhBT,EAAUQ,MAAMxnD,UAAUgnD,EAAUW,cAAeqB,EAC3D,CAMD,SAASlB,EAAUd,EAAyBiC,GAG1C,IAFA,IAAInuE,EAAS,GAEN+sE,EAAoBb,IAAY,CACrC,IAAMd,EAA2BoC,EAAoBtB,GACrD,IAAKiC,EAAU/C,GACb,MAEAprE,GAAUorE,EACVuC,EAAczB,EAEjB,CAED,OAAOlsE,CACR,CAcD,SAASutE,EAAmBrB,GAA2D,2BAA/BkC,EAA+B,iCAA/BA,EAA+B,kBACrF,OAAOpB,EACLd,GACA,SAACe,GAAD,OAAqE,IAA9CmB,EAAsBpwE,QAAQivE,EAArD,GAEH,C,uQCxkBGoB,EAAY,OAAhB,IAAgB,IAAhB,GACIC,EAAiB,EAGjBC,EAAqB,CAAC,KAAM,KAAM,KAAM,KAAM,MAClD,cACA,QACA,IACA,OAgBA,OAfA,gBAIA,OAEA,6BAJA,iBAMA,WAEA,GACA,SACA,KAEA,IACA,CACA,CACA,cACA,MACA,OAIA,OAHA,IACA,UAEA,CACA,CACA,cACA,MACA,OAIA,OAHA,IACA,UAEA,CACA,CACA,gBACA,SACA,sBAEA,CACA,CAEA,gBACA,iBACA,MACA,oDACA,qDACA,sBAEA,CACA,QACA,CACA,gBACA,WACA,MACA,gDACA,uDACA,WACA,cACA,wBACA,YAEA,uBAGA,2BAFA,MAKA,IACA,CAEA,CACA,QACA,C,+BCpFA,+CASM,SAAUjX,EAAYjD,GAC1B,GAAK,eAAmC,qBAAbgD,SAEpB,CACL,IAAMr2B,EAAKqzB,EAEX,OAAOrzB,GAAMA,EAAGszB,cAAgBtzB,EAAGszB,cAAgB+C,QACpD,CACF,C,kOCPGmX,EAA0B,uBAG1BC,EAAW,EAmBf,SAASC,EAAuBC,EAAgBnmB,EAAQ,EAAxD,GAGA,WACA,KACA,WAEA,IAzBA,SAA4BomB,EAAOC,EAAMC,GACzC,SACA,gBACA,SAEA,UACA,CAEA,0BACA,CAgBA,WAEA,OACA,MAuCA,WACA,QAGA,GADA,mBACA,GACA,QACA,cACA,2BACA,IACA,0BAIA,CAFA,SACA,mFACA,CACA,IACA,KAEA,CACA,QACA,EAzDA,KACA,gBACA,QACA,EACA,mBACA,uBACA,EACA,kBACA,QACA,EACA,YACA,UAmFA,qBACA,cACA,MACA,YACA,sBACA,OAEA,wBACA,QAEA,yBACA,EA7FA,mBACA,SACA,EACA,mBACA,QACA,EACA,oBACA,GACA,EACA,QAqFA,YAEA,MACA,mBACA,eACA,GAEA,IAEA,CACA,EA9FA,WAGA,cAEA,IADA,SACA,2BACA,oBAEA,GACA,QACA,OACA,4BACA,QAGA,IAqBA,kBAGA,MACA,QAHA,mBACA,aAEA,GACA,aACA,OACA,OAEA,CACA,MAIA,mBACA,OAEA,0BACA,UAGA,2BAEA,sBACA,WACA,iBACA,OAEA,CACA,IAEA,GACA,OApBA,IAsBA,QACA,CAwBA,QACA,CAQA,oBACA,iBACA,QAgBA,OAFA,OAbA,YACA,gBAGA,OADA,gBACA,CACA,EASA,OARA,cAKA,YAJA,gBACA,iBACA,cAEA,oBACA,EAGA,CACA,CAQA,kBACA,iBACA,aACA,QAeA,OAFA,OAZA,YACA,gBAEA,OADA,kBACA,CACA,EASA,OARA,cAKA,YAJA,gBACA,iBACA,cAEA,kBACA,EAGA,CACA,CAQA,kBACA,iBAEA,EADA,WACA,IAiBA,OAFA,OAdA,YACA,8BACA,qBACA,WAEA,GACA,EASA,OARA,cAKA,YAJA,gBACA,iBACA,cAEA,kBACA,EAGA,CACA,CAQA,oBACA,WACA,KACA,6BAEA,WACA,2BAIA,GAHA,WACA,MAEA,2BAEA,MA6BA,gBACA,IAGA,EAHA,OACA,sBACA,sBAGA,EADA,EACA,0BAGA,iBAEA,OACA,qBACA,QACA,EACA,mBACA,QACA,EACA,mBACA,SACA,SACA,MACA,qBACA,GACA,GAEA,aACA,MAUA,OARA,+BAEA,kBAEA,IAEA,YAEA,CACA,CACA,sBACA,SACA,aACA,YAiCA,OAhCA,IAEA,gBAGA,aACA,GACA,8DAEA,QACA,IAEA,kBACA,IACA,SAEA,MAaA,CAXA,SACA,mBACA,IAEA,MAEA,MAGA,gHAEA,CACA,QAEA,CACA,CACA,gBAEA,cACA,UACA,SAEA,qBACA,yBAMA,GAEA,UAEA,aAEA,EACA,CACA,EApBA,SAoBA,4DAGA,SAEA,CACA,gBACA,aAEA,SACA,MACA,qBACA,kBAEA,6BAEA,YACA,UACA,UACA,2BAEA,MAGA,CACA,QACA,CACA,uCAEA,SAEA,CACA,gBACA,aAEA,SACA,MACA,qBACA,kBAEA,4BACA,2BAEA,KAGA,CACA,QACA,CACA,mCAEA,SAEA,CACA,qBACA,CA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EAAQihF,EAASC,QAC/C,cACA,sBACA,OAIA,OAHA,IACA,WAEA,CACA,CACA,SAASC,EAAUr6E,EAAKm6E,EAASG,EAAYC,GAC7C,eACA,sBACA,kCAEA,eACA,cApGkB,KAoGlB,UAGA,CAiBA,SAASC,EAActhF,EAAQuhF,EAAQN,EAASO,GAEhD,IADA,aACA,MACA,WACA,IACA,2BACA,WACA,gCAEA,aAIA,CACA,CAgBA,gBAeA,OAbA,EAQA,OAPA,eACA,cAGA,OAGA,aAGA,CAGA,CAYA,sBACA,WACA,cACA,SACA,KACA,IACA,aAEA,GADA,EAjFA,SAAmB16E,EAAKm6E,EAASG,EAAYC,GAC7C,SAaA,OAZA,kBACA,oBAEA,+BACA,MAEA,gBAEA,cAlHkB,KAkHlB,UACA,OAGA,CACA,CAkEA,UACA,gBACA,WACA,SACA,YAEA,OACA,YACA,GACA,mBACA,CAIA,CAFA,SAEA,CAEA,QACA,CAaA,sBAEA,QADA,cACA,EACA,IACA,aACA,MArFA,SAA2BrhF,EAAQihF,EAASO,GAC5C,UACA,yBAEA,CACA,oBACA,6BACA,UACA,IAEA,yBACA,WAEA,CACA,CAwEA,kBACA,kCACA,MACA,EAGA,IACA,GAEA,UAKA,CAFA,SAEA,CAEA,CASA,oBAEA,YADA,cACA,eACA,CAWA,yBACA,cACA,eACA,CAQA,kBACA,SACA,gBACA,IACA,aACA,sBAEA,oBAIA,OAHA,IACA,iBAEA,CACA,CA6BA,SAASC,EAAmBF,EAAQzO,EAAU4O,EAAeX,GAC7D,SAUA,OATA,gBACA,2BACA,IACA,2BACA,eAGA,IAEA,CACA,CA0BA,kBACA,mBACA,2BACA,GA5DA,gBACA,oBACA,IACA,WACA,iBAEA,oBACA,GACA,UAEA,CAmDA,OAEA,GAEA,CAYA,kBAGA,OAxCA,kBACA,SAQA,OAPA,wBACA,eACA,cAEA,iBAGA,CACA,CA8BA,eACA,CAQA,gBACA,cACA,CAaA,kBAQA,aACA,eAQA,OAPA,2BACA,SAVA,YACA,oBACA,oCACA,IAEA,GAKA,UAEA,OAEA,eAEA,CACA,CAQA,gBAEA,aACA,WACA,aACA,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B,uCACA,CACA,SAASohG,EAAU3zC,EAAMztD,GACzB,cACA,OACA,KACA,IACA,OA/BA,SAAyBA,EAAQ8wB,EAAM56B,GACvC,KACA,IAMA,OALA,OACA,QACA,cACA,mBAEA,CAKA,CAHA,SAGA,CAEA,QACA,CAgBA,aAEA,WAMA,CAFA,SAEA,CACA,CACA,QACA,CACA,gBAEA,YADA,cACA,qCACA,CACA,cACA,OACA,gCACA,mBACA,WACA,EACA,sBACA,cACA,SAQA,mBAPA,KAEA,UACA,mBAEA,EAGA,EACA,mBACA,WACA,WACA,IAIA,CAFA,SAEA,CAEA,GAEA,QACA,C,yMChFImrG,EAAsB,KACtBC,EAAJ,WACA,kBACA,IAQA,EARA,OACA,MACA,sBACA,SACA,SACA,4BACA,kBAGA,sCAOA,OALA,oBACA,MAEA,QAEA,CACA,KAEA,mBACA,SAEA,iDACA,MAEA,cAEA,IACA,EACA,qBACA,KAEA,0BAEA,OACA,6BAEA,YAEA,4BACA,WAEA,EACA,iBACA,IACA,CAEA,EACA,kBACA,QACA,+BACA,kBACA,0BACA,WACA,IACA,UAEA,CAEA,6BACA,kBACA,qBACA,oBAEA,cAEA,CACA,CAGA,OAFA,4BACA,iCACA,CACA,CAzEA,GA2EIC,EAAJ,WACA,cAKA,YACA,gCACA,yBAGA,mBACA,EACA,mBACA,IACA,SACA,wBACA,UAGA,EACA,qBACA,KACA,iBACA,KAEA,EACA,mBACA,oBACA,CACA,GACA,C,mBAkCuB,CACvB,CAlEA,GAoEIC,EAAkB,mBAStB,sBACA,MACA,QAKA,GAJA,SAEA,YAEA,GACA,aACA,YACA,IAEA,GADA,oBACA,CACA,eACA,6BACA,iBACA,mCACA,IACA,KACA,gCAEA,SACA,CAIA,OADA,YACA,IACA,CAcA,CAZA,SACA,WACA,qBAEA,CAvBC,QA0BD,GACA,UAGA,WACA,CACA,CACA,CACA,UACA,CAYA,aACA,QACA,C,uHCnNaC,EAAwC,CACjD,uBACA,mBACA,kBAGSC,EAAyC,CAClD,eACA,oBACA,eACA,wBACA,oBAMSC,EAAsC,CAC/CvvD,mBAA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oCAE3BlO,KAAM,sIAIsB67C,G,iNCbhC+rF,EAAiB,cACjBC,EAAiB,cAEjBC,EAAa,UAKbC,EAAmB,KACnBC,EAAmB,KACnBC,EAAqB,KACrBC,EAAO,OAAX,IAAW,GACPC,EAAe,CAAC,EAChBC,EAAsB,CAAC,EAU3B,gBAEA,yBAOA,OANA,IAGA,kBACA,YAEA,CACA,CACA,SAASC,EAAcC,GACvB,UACA,aAGA,CA0BA,gBACA,MACA,KAEA,wBAEA,MACA,aAEA,EADA,SACA,SAGA,IAEA,CAKA,OAJA,IAEA,qBAEA,CACA,CACA,gBACA,MACA,EAhDA,SAAgCC,GAChC,wBAIA,GAFA,+CACA,iDACA,wBAEA,aACA,qCACA,0BAEA,qCACA,0BAEA,WACA,CACA,QACA,CA+BA,OACA,cACA,WAEA,iBACA,OACA,qBACA,cAGA,WAMA,OALA,cAGA,QAEA,CACA,IAEA,iBAEA,QACA,EACA,0BACA,SACA,SACA,SACA,sBACA,cAOA,IANA,QACA,2BACA,kBAGA,sCACA,gBACA,oBACA,2BACA,IAEA,EAFA,cAEA,MAEA,QACA,eACA,aACA,gDACA,CACA,CACA,GAEA,uCAEA,CACA,oBACA,2BACA,sCAEA,WACA,iCAEA,GACA,2CAGA,qCACA,gBACA,UACA,IACA,CACA,QACA,EACA,kBACA,UAIA,OAHA,OACA,uBAEA,CACA,EACA,oBACA,SAKA,OAJA,OAEA,gBAEA,CACA,EACA,sBACA,MACA,KACA,SAEA,cACA,YACA,0CACA,GACA,gBAEA,mBAEA,gBACA,YACA,IACA,CACA,QACA,EACA,GAGA,OADA,WACA,CACA,CAIA,cACA,aACA,KACA,IAEA,YADA,OACA,MAIA,CAFA,SACA,gGACA,CACA,CACA,QACA,CACA,SAASC,EAAcC,GACvB,SACA,cACA,+BACA,2BAEA,GADA,sBACA,CACA,mBACA,MACA,UAGA,oDAEA,CACA,GACA,CACA,QACA,CACA,SAASC,EAAYC,EAASxrF,GAC9B,yBACA,OAEA,IACA,CACA,SAASyrF,EAAmB5yI,EAAO4S,GACnC,aAIA,OAHA,6BACA,oCACA,IACA,CACA,CACA,SAASigI,EAAgBl1I,GACzB,UACA,MACA,oBACA,QACA,OACA,KAEA,wBACA,CACA,QACA,CACA,SAASm1I,EAAgBn1I,EAAMo1I,GAC/B,IACA,iBAEA,CACA,cACA,4BAQA,2EAUA,2GAUA,mHAMA,4DAKA,4DAMA,mEAIA,C,+BC9TA,gFAMM,SAAUC,EAAQjpI,GACtB,IAAI0B,EAAS,KACb,IACE,IAAMwsC,EAAM,cACZxsC,EAASwsC,EAAMA,EAAIg7F,eAAeD,QAAQjpI,GAAO,IAGlD,CAFC,MAAOP,GAER,CACD,OAAOiC,CACR,CAOK,SAAUynI,EAAQnpI,EAAawtD,G,MACnC,IACa,QAAX,uBAAW,SAAE07E,eAAeC,QAAQnpI,EAAKwtD,EAG1C,CAFC,MAAO/tD,GAER,CACF,C,+BC5BD,gNAAM2pI,EAAc,W,IAAC,sDAGnB,IAFA,IAAM1nI,EAAiC,CAAC,EAErB,MAAAmtG,EAAA,eAGjB,IAHG,IAAM16C,EAAI,KACPnpD,EAAO7M,MAAM45C,QAAQoc,GAAQA,EAAOn2D,OAAOgN,KAAKmpD,GAEpC,MAAAnpD,EAAA,eAAM,CAAnB,IAAMhL,EAAG,KACZ0B,EAAO1B,GAAO,CACf,CAGH,OAAO0B,CACR,EAOY2nI,EAAoBD,EAAY,CAC3C,SACA,QACA,UACA,mBACA,qBACA,sBACA,UACA,iBACA,SACA,gBACA,WACA,UACA,WACA,SACA,UACA,YACA,mBACA,aACA,UACA,UACA,YACA,mBACA,mBACA,YACA,cACA,UACA,eACA,mBACA,cACA,UACA,SACA,YACA,aACA,eACA,WACA,YACA,YACA,YACA,eACA,iBACA,YACA,UACA,iBACA,gBACA,gBACA,SACA,YACA,cACA,aACA,cACA,aACA,cACA,SACA,cACA,qBACA,eACA,eACA,cACA,aACA,cACA,YACA,mBACA,WACA,gBACA,aACA,cACA,eACA,WACA,UACA,kBACA,gBACA,iBACA,iBACA,gBACA,eACA,gBACA,cACA,sBACA,yBAQWE,EAAwBF,EAAY,CAC/C,YACA,WACA,YACA,kBACA,MACA,YACA,SACA,UACA,KACA,OACA,MACA,OACA,QACA,WACA,QACA,YACA,aACA,SAQWG,EAAwBH,EAAYE,EAAuBD,GAgB3DG,GATkBJ,EAAYG,EAAuB,CAChE,SAQ6BH,EAAYG,EAAuB,CAChE,SACA,OACA,QACA,UACA,MACA,WAmCWE,GA3BkBL,EAAYI,EAAiB,CAC1D,WAQ0BJ,EAAYG,EAAuB,CAC7D,UAQ0BH,EAAYG,EAAuB,CAC7D,UAQ8BH,EAAYG,EAAuB,CACjE,WACA,OACA,WACA,QACA,MACA,SACA,UAQWG,EAAmBN,EAAYG,EAAuB,CACjE,YACA,WACA,OACA,aACA,cACA,aACA,iBACA,aACA,OACA,UA8JWI,GAtJkBP,EAAYM,EAAkB,CAC3D,SACA,MACA,iBACA,eACA,UACA,UACA,OACA,SACA,YACA,OACA,MACA,YACA,MACA,YACA,WACA,UACA,cACA,WACA,WACA,MACA,OACA,OACA,OACA,QACA,UAQgCN,EAAYM,EAAkB,CAC9D,iBACA,OACA,UACA,OACA,YACA,YACA,cACA,WACA,WACA,OACA,SAQ8BN,EAAYM,EAAkB,CAC5D,OACA,WACA,aAG8BN,EAAYG,EAAuB,CACjE,WACA,UAQ6BH,EAAYG,EAAuB,CAChE,cACA,gBAe0BH,EAAYG,EAAuB,CAC7D,UACA,UAQ0BH,EAAYG,EAAuB,CAC7D,UACA,UACA,UACA,UAGgCH,EAAYG,EAAuB,CACnE,SAG2BH,EAAYG,EAAuB,CAC9D,SAQ4BH,EAAYG,EAAuB,CAC/D,gBACA,SACA,UACA,UACA,SACA,aACA,WAQ8BH,EAAYG,EAAuB,CACjE,QACA,kBACA,sBACA,oBACA,MACA,SACA,aACA,iBACA,UACA,MACA,SACA,UAQ2BH,EAAYG,EAAuB,CAC9D,MACA,cACA,SACA,MACA,SACA,SACA,WAaWK,EAAgBL,EAiBvB,SAAUM,EAEdxnH,EACAynH,EACAC,GAaA,IALA,IAAMhyF,EAAU55C,MAAM45C,QAAQ+xF,GAExBpoI,EAA8B,CAAC,EAGnB,MAFL1D,OAAOgN,KAAKqX,GAEP,eAAM,CAAnB,IAAMriB,EAAG,QAER+3C,GAAY+xF,EAA4C9pI,IACzD+3C,GAAY+xF,EAA8BpqI,QAAQM,IAAQ,GAClC,IAAzBA,EAAIN,QAAQ,UACa,IAAzBM,EAAIN,QAAQ,WAEQqqI,IAA0D,KAApB,OAAjBA,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBrqI,QAAQM,MAEpE0B,EAAO1B,GAAOqiB,EAAOriB,GAExB,CAED,OAAO0B,CACR,C,wGC5aGsoI,E,+SAGAC,EAAiC,CACrC,qFAeA,GACA,eACA,+BACA,4BACA,8BACA,SACA,wBACA,cACA,kBACA,2BACA,UAnBgB,CAChB,UACA,WACA,QACA,UAgBA,mBACA,yBACA,kBACA,eACA,eACA,4BACA,aACA,UACA,cACA,WACA,aACA,yBACA,UACA,wBACA,SACA,kBACA,yBACA,mBACA,kBACA,yBACA,eACA,eACA,6BAOIC,EAAJ,WACA,cACA,IAEA,EACA,EACA,EACA,EACA,EACA,EACA,EARA,OASA,gCAgPA,uBACA,OACA,OACA,OACA,OACA,OAlPA,wBACA,kBACA,iBACA,iBACA,WACA,0BACA,sBACA,sBACA,mCACA,CACA,eACA,UACA,UACA,UACA,UACA,SACA,oCACA,WACA,gGAEA,SACA,SAgNA,cACA,6CA/MA,wBACA,cACA,4DACA,kCACA,2BACA,SACA,GACA,GACA,UACA,EACA,wBACA,cACA,kCACA,2BACA,OACA,SAGA,SAEA,GACA,GACA,EACA,uBA+CA,YA9CA,cAyBA,kDACA,qDAEA,2EACA,SACA,UACA,UACA,UACA,eAEA,2BACA,cACA,YACA,0BArCA,YACA,MACA,SACA,iBACA,MAEA,IACA,UAEA,0BACA,mCAGA,6BACA,iBACA,gBACA,gBACA,uBACA,OAEA,GACA,CACA,CAiBA,SAEA,eACA,SACA,SACA,IACA,CACA,EACA,mBAGA,6BAEA,+BACA,GACA,EACA,wBAEA,IACA,gCAGA,IADA,4BACA,cAEA,EADA,oBAEA,CACA,6BACA,cACA,CAaA,CAXA,SAEA,4BACA,YAQA,CACA,EACA,mBAEA,iCACA,iBAWA,GAHA,WAGA,0BACA,uBACA,MACA,eACA,mCACA,+BAEA,CACA,CACA,EACA,KACA,6CACA,IACA,mCAEA,4BAGA,qBACA,MAGA,qBACA,MAIA,kBACA,4FAGA,8BAEA,kBAEA,CACA,EACA,uBACA,QACA,EACA,yBACA,UAEA,IACA,oBACA,qBAEA,yBACA,EACA,sBACA,IACA,IACA,IACA,2BACA,IACA,WACA,IACA,IACA,IACA,IACA,IACA,MAEA,eA0BA,WACA,QACA,GA5BA,CACA,IACA,0BAEA,iBACA,IACA,IACA,0BACA,IACA,YACA,IACA,cACA,gBAEA,0BACA,aACA,oBACA,IACA,IACA,KAkBA,GACA,C,mBA0P0B,CAC1B,CA9fA,IAigBA,WACA,WAEA,GACA,2BACA,8BAEA,IAGA,mCACA,IACA,QAWA,CAFA,SAEA,CACA,KACA,IACA,sBACA,KAEA,IADA,SACA,mBACA,sBACA,eACA,2BACA,qBACA,YAEA,uBACA,aAGA,OACA,KACA,CAMA,CAFA,SAEA,CAhDA,G,8ECrkBA,eACA,2CACA,oCACA,8CACA,iCACA,oCACA,kCACA,mCACA,yCACA,qD,8HCLA,cACA,MACA,SAEA,aANwB,KAOxB,+BACA,aAPiC,KAQjC,eACA,kBACA,OACA,MACA,CACA,QACA,OACA,0BAEA,qBAEA,mCACA,kDACA,CAEA,kBACA,CACA,QACA,CACA,OACA,Q,qFC9BA,SAASC,EAAYC,GACrB,kBACA,mBACA,UACA,CACA,CACA,IAAIC,EAAiBF,EAAY,eAC7BG,EAAYH,EAAY,UACxBI,EAAcJ,EAAY,YAC1BK,EAAeL,EAAY,aAC3BM,EAAaN,EAAY,WACzBO,EAAUP,EAAY,QACtBQ,EAAWR,EAAY,SACvBS,EAAcT,EAAY,YAC1BU,EAAJ,YAEA,aACA,yBACA,CACA,OAJA,iBAIA,CACA,CANA,CAMA,aACA,4BACA,4BACA,8BACA,iCACA,4BACA,iBACA,iBACA,6BACA,yBACA,uBACA,qCACA,2BACA,mCACA,2BACA,iBACA,+BACA,qCACA,6BACA,6CACA,qBACA,mCACA,yBACA,2BACA,yCACA,mBACA,6BACA,+BACA,uBACA,oBACA,wBACA,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C,8BAA+B,gCAC/BqrH,uBAAwB,yBACxBC,sBAAuB,wBACvBC,sBAAuB,wBACvBC,kCAAmC,oCACnCC,+BAAgC,iCAChCC,uBAAwB,yBACxBzrH,wBAAyB,uDACzBC,6BAA8B,wDAElCb,cAAc,CACVC,gCAAiC,gC,q4CuU7BrC45E,EAAiC,CACrC,uFAqCA,IC3CItuF,ED2CA,EAAJ,WACA,gBACA,IAGA,EAHA,OACA,KACA,KAEA,gCAzCA,IAA0BuO,EAgD1B,cAEA,IACA,qBAiGA,YAEA,aAEA,CApGA,GACA,IACA,MAEA,SACA,EAzD0BA,EA0C1B,UAxCA,MAGA,uBACA,wBACA,4BACA,8BACA,iCACA,yCACA,2BACA,2BACA,+CACA,2BACA,mBACA,4BACA,yCACA,YAEA,2BACA,gCACA,8BACA,2BACA,mBACA,2BACA,kEACA,8BACA,iDACA,2BACA,2BACA,2BACA,2BAUA,EATA,EAUA,SACA,SACA,mBACA,2CACA,SAWA,iBACA,IACA,IACA,IACA,IACA,IACA,MAEA,2BACA,OACA,OACA,MACA,aACA,gBAGA,SACA,EACA,uBACA,gBACA,EACA,0CACA,QACA,KACA,SACA,OACA,WACA,0BACA,UACA,gBAEA,EACA,2BACA,QACA,aAEA,EACA,6BACA,oDACA,EACA,uBACA,mCACA,EACA,uBACA,uBACA,EACA,kBACA,kBACA,EACA,+BACA,iEACA,EACA,+BACA,0DACA,EACA,mBAGA,6BAEA,+BACA,GACA,EAEA,kBAIA,gBACA,aACA,uBACA,uBACA,CACA,CAGA,kCACA,8BACA,kBACA,GASA,OALA,+BACA,2BACA,aACA,GAEA,CACA,CAMA,GACA,C,mBAkEiC,CACjC,CA1LA,GE1CI,EAAJ,WACA,aACA,CAuBA,OAtBA,+BACA,iBACA,UAQA,GALA,cAKA,EAKA,CACA,iBAGA,OAFA,UACA,UACA,CACA,CAPA,OAFA,UACA,UACA,CAQA,EACA,CACA,CA1BA,G,kBDgBA,eACA,WACA,YAKA,sBAEA,oCACA,kCACA,oCACA,mCACA,qCACA,yCACA,2CACA,6BACA,+BACA,gCACA,iBACA,gCACA,mCACA,4BACA,0BACA,2BACA,0BACA,2BACA,2CACA,yCACA,iCACA,4BACA,iBACA,+BACA,uCACA,kCACA,aACA,8BACA,0BACA,2BACA,0BACA,sBACA,qBACA,gCACA,sBACA,0BACA,uBACA,mBACA,uBACA,sBACA,wBACA,8BACA,kCACA,4BACA,iCACA,0BACA,8BACA,yBAEA,2BACA,0CACA,+BACA,4BACA,wBACA,wBACA,oBACA,0BACA,sBACA,iBACA,0BACA,0BACA,qCACA,wBACA,6BACA,4BACA,gCACA,gCACA,gBACA,8BACA,wBACA,eACA,kBACA,uCACA,+BACA,qBACA,2BACA,8BACA,gCACA,6BACA,yBACA,iCACA,8CACA,gCACA,oCACA,I,2PE3GIwyH,EAIJ,gBACA,WACA,OACA,QACA,iBACA,UACA,6BACA,SACA,6BACA,kBACA,OACA,OACA,OACA,sBACA,6BACA,EACA,OACA,OAEA,C,6FCxBIvkD,EAAJ,WAIA,oBACA,qBACA,MACA,OACA,aACA,gBAEA,WACA,QACA,6BACA,wBACA,uBACA,CAGA,OAFA,yDACA,uBACA,CACA,CApBA,E,6GCSA,SAASwkD,EAAW1mL,EAAO2mL,GAC3B,QAiBA,OAhBA,qBACA,iBACA,gBACA,iBAEA,EADA,oBACA,SAGA,OAKA,mCAGA,KACA,CACA,SAASC,EAAeC,EAAUC,GAClC,QAmBA,OAlBA,IACA,qBACA,+BAGA,qBAEA,WAEA,aAEA,mEAIA,mEACA,YAEA,KACA,CAuBA,SAASC,EAAgBhoF,GACzB,8DACA,CACA,SAASioF,EAAiBC,GAC1B,YACA,iBAEA,EADA,qBACA,QAGA,MAGA,mBACA,OACA,MACA,MAEA,CAiBA,SAASC,EAAsBC,GAC/B,WACA,KACA,IAGA,WAEA,kBAEA,0BAEA,wBAEA,kCACA,4BAEA,QACA,SAEA,qBACA,sBAEA,mCAEA,EAzCA,SAAwBjpI,GAGxB,IAFA,SACA,eACA,kBACA,WACA,SACA,cACA,KAEA,SACA,CACA,OACA,MACA,MAEA,CA0BA,cAEA,kBACA,WAEA,CACA,mCACA,0BACA,IACA,SAEA,wBAEA,IACA,OAEA,CAMA,CAJA,SAGA,MACA,CAEA,WACA,OACA,SAEA,CA4DA,SAASkpI,EAAcN,GAEvB,SACA,QACA,0BAEA,IACA,IACA,EADA,wBACA,2BACA,qBAIA,CAFA,SAEA,CAGA,QACA,CAKA,cACA,KACA,IACA,oBACA,WACA,UASA,OARA,cACA,UAGA,IADA,YAGA,WAEA,4BACA,QAEA,CACA,CAIA,CAFA,SAEA,CAGA,gBACA,CACA,IAAIlvH,EAAJ,WAIA,wBACA,qBACA,MACA,aACA,gBACA,aACA,gBAEA,WACA,SA7NA,SAA8B53D,GAC9B,IACA,kBACA,mDAKA,CAFA,SAEA,CACA,QACA,CAoNA,KACA,IACA,MAEA,sBACA,wBACA,wBACA,IACA,UAEA,IACA,UAIA,kBACA,cACA,cACA,SACA,eAEA,OACA,WAEA,SACA,eAGA,sBACA,eAGA,CA2DA,OA1DA,gDACA,MACA,aACA,aACA,YACA,QACA,eACA,iBACA,mBACA,cACA,SACA,0BACA,aACA,CACA,EACA,wCACA,cACA,sDAEA,OADA,0DAEA,EACA,mCACA,MACA,OAAI,EAAJ,aAAI,EAAJ,aAAI,EAAJ,eAAI,EAAJ,gBAAI,EAAJ,eAAI,EAAJ,KAAI,EAAJ,WACA,sBACA,2DACA,EACA,UACA,YAEA,OACA,kBACA,eACA,iBACA,iBACA,OACA,aACA,CACA,EAIA,8CACA,MACA,OACA,aACA,KACA,UACA,YACA,UACA,aACA,IAGA,EACA,6DACA,2BACA,gBACA,CACA,CA1GA,GA4GIqnL,EAAJ,WACA,kBACA,qBACA,KACA,UACA,WACA,UACA,eACA,QACA,eAEA,WACA,GAnVA,SAAqCrnL,GACrC,IACA,kBACA,wCAKA,CAFA,SAEA,CACA,QACA,CAyUA,IAiBA,cACA,cACA,gBACA,kBACA,kBArBA,CACA,QACA,WACA,iBACA,iBAEA,gCACA,0CACA,2BACA,OA/NA,SAAqBywF,GACrB,MACA,QACA,gBACA,KACA,QACA,IAYA,GAXA,2BACA,eACA,oBACA,mBACA,UACA,SACA,CACA,IAIA,EADA,MAOA,IALA,QACA,WACA,IACA,IACA,IACA,MAKA,IADA,GAFA,UACA,WAVA,MAYA,CAEA,YACA,cACA,KACA,CAEA,IACA,IACA,IACA,GACA,CAEA,CACA,QACA,CAmLA,IACA,sBA9OA,SAA2B62F,GAC3B,SAWA,OAVA,IACA,MACA,+BACA,SACA,IAGA,aAGA,CACA,CAiOA,KACA,gEACA,IACA,sBAEA,CAQA,CAyBA,OAxBA,mCACA,MACA,OACA,0BACA,0DAWA,OAVA,GACA,QACA,kBACA,gBACA,eACA,oBACA,gBAEA,eACA,CAEA,EACA,oCACA,8BACA,qDACA,OAEA,OADA,uDAEA,EACA,CACA,CA7DA,GA+DIC,EAAJ,WACA,gBACA,qBACA,QACA,SACA,WACA,WACA,QAEA,WAIA,GAHA,SAGA,qBACA,QACA,SACA,OAvce,cAwcf,sBACA,UACA,SACA,uBACA,eACA,iCACA,yBACA,yBAEA,MAEA,cACA,cACA,cACA,cACA,cACA,SAEA,6BACA,+BACA,+BAEA,mBACA,uCACA,qCACA,CAkBA,OAjBA,kCACA,oBACA,EACA,mCACA,WACA,OACA,aACA,cACA,gBACA,gBACA,YAEA,EAGA,+FACA,cACA,CACA,CA7DA,E,qGCxbIC,EAAJ,WAIA,0BACA,qBACA,MACA,OACA,MACA,WACA,aACA,eACA,MAEA,WACA,QACA,sBACA,uBACA,6BACA,WACA,uBAEA,wBACA,uBACA,CAGA,OAFA,4DACA,0BACA,CACA,CA5BA,E,qGCAIC,EAAJ,WAIA,yCACA,kBACA,qBACA,KACA,MACA,OACA,aACA,WACA,UACA,OACA,SACA,OACA,aACA,eACA,OACA,QACA,QACA,MACA,MACA,SACA,iBACA,mBACA,cACA,sBAEA,WACA,QACA,OACA,sBACA,YACA,kBACA,wBACA,2BACA,gCACA,iCACA,IACA,8CAEA,6BACA,wBACA,uBACA,CAGA,OAFA,oEACA,kCACA,CACA,CAjDA,E,6FCDIrQ,EAAJ,WAIA,sBACA,qBACA,MACA,UACA,gBACA,cAEA,WACA,QACA,SACA,wBACA,wBA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WA,IAAI,EAAJ,WACA,aAEA,MACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EAIA,IACA,gCAgQA,aACA,KAEA,uBACA,SACA,kBACA,WACA,QACA,KACA,OACA,OACA,OACA,OACA,OACA,OACA,KACA,OACA,OACA,OACA,KACA,OACA,+BACA,gBACA,MACA,CACA,aACA,2BACA,CAEA,cAEA,MAlXA,SAA6B5B,EAAQo7I,EAAiBC,GACtD,MAEA,KAGA,KAwBA,OAtBA,4BAEA,sCACA,eAEA,aACA,SACA,OACA,kBAKA,OAJA,4EAQA,SAEA,SAEA,KACA,GACA,QAEA,OACA,CACA,CA+UA,aACA,SACA,OAEA,YAGA,GADA,cFxNA,gBACA,SAKA,GAJA,GAEA,8CAEA,GAEA,SACA,2BACA,UACA,SAEA,IACA,QACA,CACA,QACA,CEuMA,SACA,GAKA,wBACA,OACA,aAGA,KADA,qBAEA,YAEA,cACA,MAEA,EFpZA,cACA,aACA,sCACA,CACA,oBACA,mBACA,aAEA,MADA,IAEA,OACA,OAEA,CACA,KACA,2BAEA,sBACA,cACA,YACA,UAEA,IACA,MAEA,GAEA,IAEA,GACA,CA+CA,SACA,GACA,qCACA,WACA,6BACA,KACA,2BACA,mBACA,uCAEA,GACA,EACA,yBACA,QACA,EACA,+BACA,wBACA,SACA,eACA,SACA,GACA,EACA,OApEA,cACA,UACA,UAOA,OALA,mBACA,SACA,eACA,SACA,KACA,CACA,EA2DA,iBACA,qBACA,uBACA,kBACA,GACA,QACA,EACA,kBACA,qBACA,uBACA,oBACA,GACA,QACA,EACA,SAxEA,cACA,UACA,SACA,YAQA,OANA,mBACA,SACA,eACA,UACA,IACA,KACA,CACA,EA6DA,WA5DA,YACA,WAmBA,OAlBA,aACA,2BAEA,uBACA,iCACA,cAGA,OAFA,KAEA,CAEA,IACA,GAEA,QAGA,IAEA,CACA,EAwCA,wBAEA,QACA,KACA,OAEA,aACA,IACA,WACA,IACA,gBACA,QAEA,QACA,OAEA,CAgCA,OA3CA,SAYA,qBACA,uBACA,WACA,IACA,SAEA,qBACA,KACA,GACA,OACA,IAIA,WACA,yBACA,OACA,GACA,MAGA,IAIA,CACA,GACA,eACA,KACA,GACA,KACA,CACA,EACA,sBACA,GACA,GAEA,QACA,CE0OA,MAGA,UACA,UAEA,uBAEA,cACA,mBAEA,gDACA,GA8JA,YACA,yBACA,wCACA,SAEA,CAlKA,GAEA,CACA,cACA,MACA,OACA,OA4CA,OA3CA,iCACA,4BAEA,OADA,KACA,CAEA,KACA,OAEA,mBAEA,KACA,GACA,WAEA,iBACA,sBACA,EACA,uBACA,qBACA,sBACA,EACA,uBACA,WACA,cACA,UACA,OACA,WAEA,OACA,GACA,mBACA,GAEA,GACA,UACA,YAGA,OACA,GACA,EA7BA,EA8BA,GAEA,CACA,CACA,aACA,OAEA,uBAEA,sBACA,UAEA,iCACA,CACA,QACA,CACA,kBACA,gBACA,yBACA,mBACA,mBACA,SAEA,KACA,6BACA,OAIA,KAHA,SAKA,IACA,IAEA,SACA,IACA,6BACA,SACA,2BACA,OAIA,KAHA,SAKA,IACA,SACA,IACA,KAEA,OACA,IACA,SACA,MAEA,KAEA,CACA,aACA,6BACA,IACA,2BACA,MACA,UACA,qCACA,2BACA,6BACA,wBACA,4BACA,GACA,UACA,IACA,SAEA,CACA,oBACA,SACA,oBAEA,UACA,EACA,CAkCA,cACA,aACA,EAEA,sBAGA,cAEA,CA7eA,IACA,4BAEA,yBACA,GACA,eAGA,UACA,6DAEA,QACA,SACA,qBACA,kDAEA,IAEA,yBAibA,WACA,oCACA,WAEA,UACA,QAEA,gBACA,iBACA,UAEA,CA3bA,GA4bA,WACA,oCACA,OAEA,QAEA,GAEA,oBAEA,CArcA,GAucA,sBACA,sBArcA,IACA,UAEA,6BAEA,MACA,qDACA,wBACA,QACA,eACA,oCAEA,KACA,gBACA,EACA,qCACA,SAMA,OALA,GACA,2BACA,eACA,IAEA,cACA,EACA,oBAEA,sBAEA,qCAEA,oBACA,YAEA,YAIA,SAEA,EACA,SACA,kBAOA,OANA,IAEA,EA1GA,WACA,MACA,2BACA,mBACA,qBACA,qBACA,uBACA,uBACA,GACA,CAiGA,GAEA,0BAEA,CACA,EAOA,mBACA,GACA,SAEA,EAKA,mBACA,GACA,SAEA,EACA,0BAIA,OAHA,IACA,yBAEA,CACA,EACA,2BACA,GACA,EACA,kBACA,WACA,8BACA,0BACA,iBACA,gBAEA,CAEA,0BACA,EACA,yBACA,GACA,EACA,sBACA,aACA,EACA,0BACA,gBACA,QACA,KACA,2BACA,WACA,GACA,CACA,EAIA,+BACA,UACA,2CAUA,OATA,SACA,OAEA,GACA,iBAEA,0BACA,GACA,KAEA,EAIA,kBACA,IACA,iBACA,IACA,IAEA,EAEA,kEACA,yBACA,WACA,cACA,GAEA,YArQ2B,0BAwQ3B,GAEA,eAEA,WACA,YAEA,OACA,mBACA,GACA,qBAKA,cACA,kBACA,KAEA,WAEA,SAEA,SACA,CAbA,mBACA,IACA,OACA,MAWA,YACA,KAEA,EACA,SACA,8BACA,MAGA,OAFA,cACA,KAGA,gBACA,SAGA,OAFA,cACA,4CAGA,OACA,WAEA,cACA,UACA,YAEA,KACA,QACA,CACA,MACA,iBAKA,IAJA,CACA,SACA,cAEA,YACA,GAKA,YACA,aACA,KALA,QAOA,GACA,MAEA,GAEA,EACA,0BACA,QACA,EACA,SACA,0BAIA,OAHA,IACA,iBAEA,CACA,EACA,0BACA,SACA,EAEA,yDAiPA,GACA,C,mBAiKoB,CACpB,CA9qBA,E,yJCnFA,IAGa7xG,EAAY,OAAAvzD,EAAA,IACvB,SAACnC,EAAeuyI,EAA8Bi1B,GAC5C,IAAMC,EAAkC,YAAoBznK,GACtDyyI,EAAmC,YAAqBzyI,GACxD0nK,EAAqC,CACzCn3G,KAAM,CACJmzB,SARyB,OASzB7hF,OAVsB,QAYxBx7B,MAAO,CACLkiC,WAAY,IAAYvJ,WAI5B,OAAO,YACLyoK,EACAC,EACAF,EC4HA,SAAwBxnK,G,sBACXz9B,EAAyBy9B,EAAxB,QAAkB38B,EAAM28B,EAAL,eAErC,MAAO,CACLuwD,KAAM,CACJsgB,gBAAiBxtG,EAAE2p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,eACZqW,cAAe,mCAGnBpR,gBAAiB,CAAC,MAClBJ,cAAe,CAAC,MAChBU,iBAAkB,CAChB,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,IACA,KACA,IACA,IACA,KAEF3hG,OAAO,EACP2D,WAAY2/G,GAERg0E,EAAmD,CACvDh5O,KAAM,0BACNwiJ,WAAY,MACZ5E,UAAW,CACT,IAAK,CACHuW,cAAe,8BAEjB9xK,QAAS,CACPy7J,WAAY,eACZqW,cAAe,wCAGnB/Q,YAAa,IACbL,gBAAiB,CAAC,KAA6B,KAC/CJ,cAAe,CAAC,MAChBU,iBAAkB,CAChB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,MAEFa,UAAW,SACX7+F,cAEI4zL,EAAkD,CACtDj5O,KAAM,0BACNwiJ,WAAY,MACZ5E,UAAW,CACT,IAAK,CACHuW,cAAe,6BAEjB9xK,QAAS,CACPy7J,WAAY,eACZqW,cAAe,uCAGnBpR,gBAAiB,CAAC,KAA6B,KAC/CJ,cAAe,CAAC,MAChBU,iBAAkB,CAChB,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEF3hG,OAAO,EACP2D,WAAY2/G,GAERk0E,EAA0D,CAC9Dl5O,KAAM,0BACNwiJ,WAAY,MACZ5E,UAAW,CACT,IAAK,CACHuW,cAAe,qCAEjB9xK,QAAS,CACPy7J,WAAY,eACZqW,cAAe,+CAGnBpR,gBAAiB,CAAC,KAA6B,KAC/CJ,cAAe,CAAC,MAChBU,iBAAkB,CAChB,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEF3hG,OAAO,EACP2D,WAAY2/G,GAERm0E,EAAqD,CACzDn5O,KAAM,0BACNwiJ,WAAY,MACZ5E,UAAW,CACT,IAAK,CACHE,WAAY,WACZqW,cAAe,gCAEjB9xK,QAAS,CACPy7J,WAAY,eACZqW,cAAe,0CAGnBpR,gBAAiB,CACf,KACA,KACA,KACA,KACA,KAEFJ,cAAe,CAAC,MAChBU,iBAAkB,CAChB,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEF3hG,OAAO,EACP2D,WAAY2/G,GAERo0E,EAAyD,CAC7Dp5O,KAAM,0BACNwiJ,WAAY,MACZ5E,UAAW,CACT,IAAK,CACHE,WAAY,WACZqW,cAAe,oCAEjB9xK,QAAS,CACPy7J,WAAY,eACZqW,cAAe,8CAGnBpR,gBAAiB,CACf,KACA,KACA,KACA,KACA,IACA,MAEFJ,cAAe,CAAC,MAChBU,iBAAkB,CAChB,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEF3hG,OAAO,EACP2D,WAAY2/G,GAERq0E,EAA8C,CAClDr5O,KAAM,0BACNwiJ,WAAY,MACZ5E,UAAW,CACT,IAAK,CACHuW,cAAe,yBAEjB9xK,QAAS,CACPy7J,WAAY,eACZqW,cAAe,mCAGnBpR,gBAAiB,CAAC,IAAiB,MACnCJ,cAAe,CAAC,MAChBU,iBAAkB,CAChB,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KAEF3hG,OAAO,EACP2D,WAAY2/G,GAERs0E,EAA4D,CAChEt5O,KAAM,0BACNwiJ,WAAY,MACZ5E,UAAW,CACT,IAAK,CACHuW,cAAe,uCAEjB9xK,QAAS,CACPy7J,WAAY,eACZqW,cAAe,iDAGnBpR,gBAAiB,CAAC,IAAiB,MACnCJ,cAAe,CAAC,MAChBU,iBAAkB,CAChB,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,MAEF3hG,OAAO,EACP2D,WAAY2/G,GAERu0E,EAAuD,CAC3Dv5O,KAAM,0BACNwiJ,WAAY,MACZ5E,UAAW,CACT,IAAK,CACHuW,cAAe,kCAEjB9xK,QAAS,CACPy7J,WAAY,eACZqW,cAAe,4CAGnBpR,gBAAiB,CAAC,KAA6B,KAC/CJ,cAAe,CAAC,MAChBU,iBAAkB,CAChB,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,MAEF3hG,OAAO,EACP2D,WAAY2/G,E,8HCtkBVw0E,EACJ,WACA,ECFIC,EAIJ,WAEA,kBAGA,0BACA,ECRI,EAIJ,YACA,6FACA,ECRIC,EACJ,WACA,E,yBCGIC,EACJ,WACA,EAII,EAAJ,WACA,gBACA,IACA,EACA,EACA,iBACA,iBACA,cALA,MAKA,YACA,IACA,MAEA,qCACA,4DAEA,kCACA,qDAEA,WAEA,qEACA,gCACA,oEAwEA,gBACA,SACA,4BACA,eACA,eACA,IACA,eACA,WACA,eACA,yDAEA,eACA,qDAEA,OAEA,UACA,oBACA,gBACA,KAKA,CAFA,SACA,mHACA,CAEA,QACA,CAYA,gBACA,wBACA,gBACA,eACA,uBAGA,8BACA,aACA,IAEA,EADA,IACA,MAGA,MAEA,2CAIA,0DACA,GACA,CApIA,mBA7BsB,aA6BtB,GACA,yBACA,oBAGA,oBACA,KACA,qBACA,OACA,GAqCA,cACA,SACA,aACA,2BACA,aAEA,CAKA,yBACA,IACA,SAEA,CACA,gBACA,CAtDA,KAEA,qCACA,YACA,kCACA,sBACA,kBAGA,GADA,GADA,aACA,MACA,GACA,CAEA,EA8EA,YACA,mBACA,sCACA,oDACA,qCACA,wBAEA,eACA,kGAEA,CAtFA,MAIA,gCACA,MAGA,EAMA,oBACA,IA+FA,MA/FA,qBA+FA,EA9FA,KA8FA,EA9FA,kBA8FA,EA9FA,cAkGA,oCAjGA,CAmGA,GACA,CAeA,OAHA,wBACA,mBACA,2BACA,CACA,CAlLA,G,iBCTI,EACJ,kBACA,WACA,2BACA,aACA,qBACA,mBACA,cAEA,uBACA,ECRA,SAASC,EAAmBpsP,GAI5B,8BACA,GACA,sBAIA,CACA,IAAI,EAAJ,WACA,gBAIA,kBAIA,wBACA,IAEA,EAFA,iBACA,iBAEA,gCACA,WACA,+FACA,wCAEA,iBACA,MACA,eACA,iCACA,aACA,UAEA,yBAEA,CACA,aACA,YAGA,QAFA,oCACA,2BAEA,CACA,cACA,4BAIA,OAHA,2BACA,eACA,KAEA,CACA,cAKA,8BADA,QAEA,CACA,UACA,SAEA,EADA,QACA,yBAGA,4EACA,gBACA,CAGA,6CAGA,kCACA,MAEA,OADA,gBACA,yBACA,OACA,wBAEA,mBACA,iBAEA,CACA,8CAIA,QAHA,eAEA,eAEA,mLACA,OAFA,CAMA,oBACA,wBACA,IACA,cACA,2DAEA,GAGA,wCAXA,CAaA,EAKA,2CACA,uBACA,iBACA,2BACA,EACA,qBAEA,6BAGA,EADA,EADA,QAEA,wBAEA,CACA,GACA,CA6BA,OAHA,sBACA,2BACA,mCACA,CACA,CA/IA,GCFIqsP,EAAS,MACTC,EAAU,OACd,SAASC,EAAat9P,EAAQnM,GAC9B,8CACA,IAEA,CACA,IAAI,EAAJ,WACA,kBACA,WACA,WACA,mCACA,0CACA,gCAGA,GAFA,oBACA,oBACA,eACA,4BACA,eACA,iBACA,kBACA,IAEA,EAFA,SACA,SAEA,IACA,iBACA,gBACA,eAEA,gCACA,eACA,CACA,0BACA,gBACA,OAEA,wBACA,WAEA,CAEA,8CACA,gCACA,CACA,QACA,EACA,oCACA,uEACA,EACA,2CACA,iCACA,EACA,wCACA,oBACA,MAEA,uBACA,gDACA,+CACA,CACA,EACA,mCACA,eACA,MAEA,kDACA,kCACA,6BACA,mCACA,8CACA,CACA,EACA,qCACA,iBACA,MACA,uBACA,2DACA,uDACA,uDACA,oDACA,+CAEA,CACA,EACA,qCACA,iBACA,GACA,wDAEA,EACA,sCACA,uBACA,MACA,kFACA,2CACA,qCACA,4CACA,CACA,EACA,gCACA,YACA,GACA,0CAEA,EACA,iCACA,aACA,MACA,0BAEA,iDAEA,gDACA,6BACA,6CACA,CACA,EACA,wBACA,YACA,IACA,mBACA,iBACA,gBACA,eACA,gBACA,kBAEA,CACA,GACA,C,mBA+B4B,CAC5B,CA1JA,GCZI,EAAJ,YAEA,aACA,IAGA,EACA,EACA,EALA,qBAkGA,OAjGA,eACA,iBAIA,+BAkDA,aACA,OACA,OACA,MACA,CArDA,IACA,+BACA,sBAoDA,YACA,mBACA,SACA,wBACA,uBACA,QACA,6BACA,4CACA,IACA,oBACA,uBACA,0CACA,iBACA,2BACA,uBACA,6BACA,EAEA,cACA,CAtEA,GACA,EAKA,iCACA,uBAGA,CACA,kBAEA,2BACA,wCAEA,oBACA,WAEA,0DACA,0BAGA,aAKA,GAJA,uBACA,oBA8CA,cAEA,yBACA,wBACA,gBACA,2BACA,+BACA,0BACA,6BACA,wBACA,kCACA,uBACA,4BACA,4BACA,cACA,CA3DA,MACA,gBACA,eACA,oDACA,4BACA,CACA,kBACA,CACA,EACA,4BACA,qBACA,mBACA,oBACA,GACA,kBAGA,GACA,CA0CA,IACA,CACA,CAmCA,OAxIA,iBAsGA,8BACA,MACA,EACA,OAmBA,OAlBA,GACA,0CAEA,+BACA,2CACA,4CACA,+CACA,oCACA,oCACA,oDACA,6BACA,oCACA,kCACA,4CACA,yCACA,iCACA,gCACA,CAEA,EAWA,CACA,CA1IA,CA0IA,KACA,K,kRhevFA,wCierDI0pQ,EAAU,OACd,SAASC,EAAYx9P,EAAQg2J,EAAO9/J,GACpC,6BACA,CAqFA,SAASunQ,EAA6BhwM,EAAMx+C,EAAYo8C,GACxD,gBACA,6BACA,eACA,OAEA,eACA,OAEA,gBACA,gCAEA,GAEA,CACA,SAASqyM,EAA2CzuP,EAAY0uP,GAChE,gBACA,6BACA,SACA,GAEA,CAEA,SAASC,EAAgB51M,EAAQ61M,EAAcC,EAAerwM,GAC9D,qBACA,0BACA,4BACA,0CAEA,cACA,8BAMA,OALA,+BAhHA,SAAiCzF,EAAQoM,EAAMmxC,GAE/C,wBACA,kBACA,oBACA,SACA,IACA,iCACA,iCAEA,YACA,GACA,2BAEA,eACA,IACA,kCACA,kCACA,uBACA,6BACA,kCAEA,gBACA,MACA,sCACA,2CACA,iCACA,wBACA,4BACA,gCACA,uBACA,kCACA,6BACA,uCACA,CACA,WACA,GACA,yBAGA,cACA,IACA,sCACA,6CACA,gCAmBA,IAFA,SAEA,uBACA,WACA,6BACA,MACA,IACA,aACA,CAEA,6BACA,MACA,IACA,uCACA,4BAEA,2DAEA,qBACA,CAkCA,QAEA,kBACA,cACA,CACA,SAASw4J,EAAoB/1M,EAAQ81M,GACrC,yBACA,4DAEA,CACA,OACA,iBAoBA,kBACA,OACA,SACA,KACA,4BACA,6BAEA,2BACA,4BACA,+BAGA,YACA,kBAIA,cACA,gBACA,OAEA,sBACA,mBACA,0BACA,gCACA,CCxLA,SAASE,EAAeh+P,EAAQ+gF,GAChC,0BACA,CCCA,ICLI,EDKA,EAAJ,WACA,gBACA,SACA,KACA,qBACA,QACA,EACA,sBAEA,OADA,GAEA,EACA,gCACA,sBACA,gCAEA,IACA,4EACA,MAIA,SACA,EACA,mBACA,eACA,EACA,kBAEA,IADA,eACA,mBACA,eAKA,OAHA,4BACA,MAEA,CACA,EACA,mBACA,KACA,IACA,EACA,sBACA,iBACA,EACA,4BACA,qBACA,0BACA,aACA,oBAGA,IACA,CACA,GACA,C,mBAuB0B,CAC1B,CA7EA,GAiFI,EAAJ,YAEA,gBACA,6BASA,OARA,+BACA,yBACA,SACA,EACA,wBAEA,CACA,IACA,CACA,C,OAZA,iB,YAmB2B,CAC3B,CArBA,CAqBA,GAKI,EAAJ,YAEA,gBACA,6BACA,KA6FA,OA5FA,+BACA,sBACA,uBACA,sBA4CA,gBACA,SAMA,OALA,2BACA,uCACA,SAEA,IACA,CACA,CACA,cACA,QACA,IACA,sDACA,uBACA,MACA,6BAKA,GAJA,iBAEA,0BAEA,kBACA,QAEA,CAIA,CAFA,SACA,qFACA,CACA,QACA,CACA,gBACA,QACA,IACA,sDACA,wBACA,kBAOA,CALA,SAGA,oCACA,wGACA,CACA,CArFA,6BACA,4BAEA,wBACA,kBACA,sBACA,6BAEA,IACA,iEACA,OAIA,aACA,yBACA,EACA,mBACA,UACA,yBACA,wBACA,IACA,EACA,yBACA,sCACA,2BACA,0CACA,eACA,2BAGA,yEACA,4BAEA,uBAEA,EACA,wBACA,2BACA,SACA,sBACA,CA6CA,IACA,CACA,CAiBA,OAlHA,iBA8GA,yBACA,kCAEA,sBACA,CACA,CApHA,CAoHA,GEjOI,EAAJ,WACA,cACA,gCAcA,gBACA,IACA,KACA,MAEA,OADA,0FACA,EAEA,0BAEA,OADA,uFACA,EAEA,sBAEA,sBACA,uBAEA,oBACA,uBAEA,cACA,uBAEA,kBACA,aAEA,CACA,2GACA,IAEA,2BACA,GAKA,CAHA,SAEA,8FACA,CACA,CACA,QACA,CAmCA,OAlCA,0BACA,4CACA,+BACA,2BACA,MACA,gBACA,iCACA,aAIA,OACA,kBAgBA,KAZA,EAHA,EACA,EAEA,UAIA,UAKA,QAIA,OAEA,OAvBA,4HAwBA,WACA,uBACA,CACA,CACA,gBACA,MACA,KACA,kBAGA,CACA,KACA,4BACA,IACA,IADA,KACA,aACA,SACA,CACA,MATA,yHAWA,QACA,CACA,kBACA,MAyCA,OAxCA,IACA,KACA,6BACA,qBACA,MACA,iBAEA,SACA,YAEA,WAIA,kBAHA,sDAMA,gBACA,cACA,sBAEA,YACA,gBAEA,CACA,oBACA,SACA,WAGA,MAEA,MAGA,gDACA,6BAEA,KAEA,CACA,CAjJA,wBACA,kBACA,IACA,iCAKA,CAHA,SAEA,8FACA,CACA,CAyIA,GACA,C,mBAQsB,CACtB,CAlKA,G,SCEI,EAAJ,WACA,aACA,CAwBA,OAvBA,yCAEA,YADA,oCAEA,EACA,oCACA,UACA,SAEA,cAZuB,GAavB,cAIA,IADA,WACA,mBACA,2BAGA,KAEA,kBACA,EAEA,2BACA,CACA,CA3BA,GCAI,EACJ,WACA,IACA,QACA,UAFA,KAGA,6BAkBA,OAhBA,yBACA,qCAEA,iCACA,kCAEA,8BACA,0CAEA,0DACA,iDAIA,iBAGA,CACA,ECxBI,EAAJ,WACA,gBAEA,8BACA,4BACA,cACA,wLACA,OAEA,kBACA,iCACA,CAiBA,OAbA,oCACA,sBAEA,sCAGA,2BAIA,kDAEA,EACA,CACA,CA7BA,GJMA,SAASk9K,EAAiB1iC,GAC1B,IACA,qBAIA,CAFA,SAEA,CACA,WACA,CACA,SAAS2iC,IACT,MACA,EAGA,UACA,yCAEA,2CACA,2CACA,gDACA,wCACA,kDACA,uCACA,2CACA,kCACA,4CACA,6CACA,0CACA,kCACA,4CACA,6BACA,wCACA,0CACA,CACA,CACA,IAAIC,IAAuB,EAA3B,IACA,gBACA,gBH0OA,gBACA,OACA,yBACA,2BACA,4BACA,8BACA,cACA,gBACA,OAEA,yBACA,0BACA,gCACA,EGtPA,gBHoKA,gBAGA,MAFA,OAGA,iBACA,gBACA,2BACA,mCAIA,qBACA,+BACA,yBACA,kBANA,+BACA,uBAOA,IAEA,EAFA,eAGA,gCACA,uBAEA,cACA,SACA,QACA,mBACA,qBAcA,GAZA,wBACA,mBAGA,0BACA,uBAGA,4BACA,uCAGA,2BACA,mBACA,6BACA,MACA,GACA,CACA,cACA,gBACA,OAEA,6BACA,0BACA,gCACA,EGxNA,gBHyNA,gBACA,OACA,iBACA,SACA,eACA,mBACA,qBACA,cACA,gBACA,OAEA,kCACA,0BACA,gCACA,EGtOA,gBHuIA,gBACA,OAEA,kCACA,4BACA,cACA,gBACA,OAEA,iBACA,mCACA,0BACA,gCACA,EGnJA,gBHoJA,gBACA,OACA,iBACA,mBACA,qBACA,cACA,gBACA,OAEA,yEACA,0BACA,gCACA,EG/JA,gBHyFA,gBACA,OACA,kCACA,4BACA,cACA,gBACA,OAEA,iBACA,kBAEA,OADA,mDACA,KAEA,8DACA,wGACA,0BACA,gCACA,EGzGA,GACI,EAAJ,YAEA,aACA,IAQA,EACA,EAEA,EACA,EACA,EACA,EACA,EAfA,qBACA,gBACA,iBAIA,oBAUA,IACA,EACA,EACA,EACA,EAJA,IAqxBA,OAhxBA,+BAkUA,wBACA,WAOA,GANA,WACA,SACA,UACA,mBAGA,uBAGA,iCACA,KAEA,YADA,iBAIA,yCACA,KACA,gDACA,+CAGA,eAEA,MACA,qBAEA,uCAEA,IADA,IAEA,mKACA,OAKA,KACA,SACA,IACA,QAEA,sCACA,yBAGA,kBAIA,IACA,kBAGA,CACA,cAEA,kBAKA,wBACA,oCACA,mDACA,GACA,GAIA,CACA,gBACA,EAEA,QAIA,MAEA,CACA,cACA,oBACA,YACA,gCACA,6BAGA,kDAEA,oBAMA,OALA,IACA,gBAEA,0BAEA,CACA,CAQA,gBACA,gCAEA,MAGA,IADA,SACA,oBACA,WACA,QAEA,SAEA,CACA,aACA,WACA,wGAEA,CAEA,CAMA,gBACA,yBACA,gCACA,IACA,SAKA,CAHA,SAGA,CACA,mBACA,sDAEA,gBACA,kCAEA,wCACA,0BACA,IACA,6EACA,mDAEA,iCACA,UACA,uBACA,CACA,gBACA,mBAEA,IADA,eACA,mBACA,eAEA,KAziBqC,KA0iBrC,QAEA,cAEA,MAIA,WACA,oGAEA,CACA,CAMA,gBACA,OACA,CAMA,gBACA,MACA,gCACA,6BACA,0CACA,cACA,WACA,KACA,KAEA,gBACA,wBAEA,wCACA,gBACA,IACA,WACA,cACA,UACA,SAEA,QAEA,GACA,IACA,eAGA,KACA,MAEA,uBACA,IAEA,SAKA,CAHA,SAGA,CACA,wBACA,IACA,2BACA,IACA,KACA,KAEA,IACA,KAMA,KAIA,2BACA,2CACA,IALA,2BAQA,IArBA,OAqBA,YACA,IACA,KACA,KAEA,IACA,KACA,wBAEA,GAMA,CAJA,SACA,GACA,4BAEA,CACA,QAEA,KACA,yBAEA,CAKA,cACA,IACA,cACA,6BACA,yDACA,kDACA,QAEA,CAMA,CAJA,SACA,2EACA,YAEA,CACA,WACA,CAKA,gBAEA,QADA,aACA,iBAGA,gBACA,eACA,IACA,gCACA,WACA,YACA,EASA,YACA,IACA,EADA,KAEA,QACA,QAEA,CACA,0BAEA,kCACA,KACA,8BACA,CAEA,0BAEA,GACA,CAxBA,IACA,GAVA,CAWA,CA0BA,aACA,WACA,sCACA,iDACA,yBACA,OACA,wBACA,KACA,CACA,CACA,aACA,gBACA,OACA,MACA,CAKA,cACA,gBACA,SACA,SACA,OACA,CACA,gBACA,SACA,wDAEA,CACA,CAWA,gBACA,gBACA,gBACA,qBACA,8CACA,mDAGA,6CACA,sDAIA,OAHA,uIAEA,UAGA,6DACA,iBAEA,yBACA,UACA,eACA,CACA,gBACA,SACA,oCAEA,CACA,CAkCA,aACA,eACA,eACA,cACA,eACA,KACA,OACA,IACA,OACA,KACA,KACA,OACA,OACA,IACA,IACA,OACA,OACA,MACA,CA7wBA,IACA,mBACA,IACA,IACA,EACA,oBACA,IACA,KACA,OAEA,wDACA,0BAEA,IAEA,EACA,wBAEA,QADA,eACA,GAEA,IACA,IACA,0BAIA,CAFA,SACA,yHACA,CACA,CACA,EACA,2BACA,MACA,4GASA,eARA,IACA,qBAIA,CAFA,SACA,8JACA,CAMA,EACA,0BACA,MACA,EACA,+BACA,mBACA,8DAEA,sBACA,qBACA,eACA,kBACA,IACA,OACA,EACA,eACA,IACA,kBACA,sEACA,EFtIA,YACA,oBACA,gBACA,KACA,KACA,gDACA,IAIA,GAHA,mBACA,MAEA,GAEA,gBACA,YACA,OACA,KAGA,CACA,GAEA,4BACA,WAOA,CAHA,SAEA,IACA,CACA,cACA,SAOA,OANA,IACA,gCAEA,6BAGA,CACA,CACA,aACA,IACA,CACA,aACA,IACA,CAyBA,OACA,SAzBA,WACA,SAOA,OANA,EACA,IAEA,4BACA,YAEA,CACA,EAiBA,iCACA,OAjBA,WACA,oBACA,SAEA,GADA,OACA,GAEA,gBACA,yBACA,MAEA,CACA,IACA,CACA,EAMA,CE2DA,IACA,UACA,6BACA,0DACA,IACA,sEACA,kDACA,wDA6qBA,YAEA,IADA,wBAEA,SAIA,OADA,WADA,kEAEA,0BACA,CAprBA,KACA,0EAEA,uHACA,yDACA,6BACA,IAEA,sBACA,QACA,8BACA,KAEA,gCACA,MAEA,mBACA,KAGA,QACA,yCAEA,KAEA,eAGA,GAFA,0CAEA,EAEA,cAEA,GAEA,8BACA,GAEA,8BACA,EAGA,CAEA,EACA,iCAEA,IA0MA,EA1MA,GADA,mBACA,UACA,IAEA,sCAEA,OAGA,MAEA,YADA,iDAIA,2BAEA,YADA,0EAQA,GALA,aAEA,yBAGA,UAEA,YADA,iDAIA,GA+KA,EA/KA,GAgLA,yBA7KA,YADA,oGAIA,4BAEA,iDAGA,+CACA,+BACA,MAEA,YADA,+DAGA,SAkBA,GAhBA,sBACA,qCACA,IACA,eACA,KACA,yDAOA,CAJA,SAGA,0IACA,CACA,WACA,aAEA,EACA,OAGA,qBAEA,YACA,SACA,gDACA,0BAGA,aAEA,GAIA,CAFA,SACA,6IACA,CAEA,kBACA,EAIA,uCACA,kBACA,mDAEA,EAMA,8BAEA,QADA,eACA,EACA,IACA,gBAEA,sCAgBA,cAhBA,CACA,gBACA,oBAsgBA,cACA,MATA,WACA,qBACA,aACA,mBAGA,kCACA,CAEA,GACA,0BACA,IACA,wBAIA,CAFA,SACA,4GACA,CAEA,CA/gBA,SAEA,EACA,cAGA,cAEA,EAEA,QACA,CAIA,GAQA,CANA,SAEA,sBACA,SACA,sIAEA,CAEA,EACA,4BACA,kBACA,WACA,GACA,EAIA,2BACA,sEACA,sBACA,EAIA,kCAKA,IAJA,SACA,KAGA,MADA,mBACA,gBACA,WACA,yBACA,gBACA,UAIA,SAEA,CACA,YACA,gCAEA,YACA,yFAEA,aACA,KACA,4DACA,+BACA,sEAEA,EAIA,2BACA,sBACA,EAIA,2BACA,WACA,4BAIA,CACA,WACA,sDACA,kCACA,yBAGA,kBAEA,MAZA,IACA,iBAYA,CAidA,IACA,CACA,CA+FA,OAv4BA,iBAyyBA,sCACA,MAQA,OAHA,EAJA,2BAIA,EAHA,yCAKA,kBACA,MACA,EAoFA,CACA,CAz4BA,CAy4BA,I,2Spep7BA,4CAGA,iCAaA,oCACA,qC,QyerBI,EAAJ,WACA,oBACA,gCACA,IAGA,EAHA,OACA,KACA,KAKA,cACA,GACA,UAEA,CAPA,IACA,YAkCA,8BACA,aACA,wCACA,oBACA,uBACA,CACA,YACA,wCACA,oBACA,qBACA,CAIA,qCAKA,OAJA,4BACA,WAEA,sMAGA,IACA,EAWA,EAZA,KAGA,2CACA,MACA,2BACA,6BACA,WAMA,gBACA,0BACA,eAEA,cACA,WAEA,IACA,MAEA,cAGA,4BACA,MACA,MAGA,IA/EA,EAgFA,IACA,MAjFA,EAoFA,WACA,SACA,IACA,qCACA,KACA,OACA,OACA,OAEA,QACA,cAOA,IACA,wBACA,6BAEA,IACA,UACA,QAVA,aACA,4BAYA,MACA,8BAhCA,MAmCA,KACA,IACA,WArCA,IAsCA,6BAMA,CAFA,SACA,+GACA,CACA,QACA,EA5HA,UACA,IACA,0BACA,iBACA,KACA,KACA,2BACA,IAKA,KAHA,SAKA,IACA,eACA,iBACA,QAEA,GAEA,KAEA,QAsGA,EACA,yBACA,MACA,iBACA,OACA,iBAEA,KACA,2BACA,MACA,CAEA,GACA,CACA,CACA,GACA,C,mBAiB2B,CAC3B,CA/KA,GCHIC,EAAuB,KACvBC,EAAgB,CAAC,YAAa,gBAAiB,cAAe,wBAClE,SAASC,IACT,oBACA,oBACA,CAKA,SAASC,IACT,oBACA,eACA,UACA,uBACA,qBACA,mBACA,kBACA,kBACA,iBACA,gBACA,cACA,CACA,SAASC,IACT,WACA,qBAEA,IACA,CACA,SAASC,IACT,OAxBA,WACA,oBACA,uEACA,CAqBA,GACA,gDAEA,IACA,CAIA,SAASC,IAET,IADA,SACA,2BACA,kBAEA,wBAEA,cACA,KACA,KACA,2BACA,wCAGA,KAEA,SAIA,uBACA,mBACA,SAIA,QACA,CAIA,IAAI,EAAJ,WACA,cACA,WACA,iBACA,gCACA,iBACA,aAqBA,UACA,MACA,IACA,IACA,IACA,IACA,KACA,QACA,GACA,aAMA,qEACA,8CACA,6CACA,8CAGA,gDACA,8CACA,8CACA,6CACA,6CAEA,MACA,8GAEA,mCAGA,0DAGA,oGAGA,eAEA,sCACA,gCACA,6BACA,kCACA,+BACA,cAfA,wIAkBA,EACA,yBACA,iCACA,iCACA,yBACA,GACA,C,mBAkCsC,CACtC,CArHA,GClEI,EAAJ,WAMA,gBACA,0BACA,gCACA,uCACA,IAEA,MAeA,cACA,WACA,IACA,EAkCA,WACA,WACA,IACA,kBAEA,oBAEA,mBACA,oBAEA,0BACA,qCAEA,iBAEA,CAKA,CAHA,SACA,+DACA,MACA,CACA,QACA,CAxDA,GAcA,cACA,IACA,kBACA,wBACA,4FAEA,iBACA,6BACA,kBACA,CAKA,CAHA,SAEA,sDACA,CACA,CA5BA,KAKA,CAHA,SACA,yDACA,MACA,CACA,QACA,CA1BA,MAEA,GACA,uCAKA,CAFA,SACA,iGACA,CACA,EAmEA,gDACA,oEACA,GACA,C,mBASgC,CAChC,CArGA,GAuGI,EACJ,cACA,sCACA,gBACA,cACA,EC9GI,EACJ,cACA,WACA,KACA,oBACA,2BACA,6GAEA,cACA,EACA,yBACA,WACA,YACA,2FAEA,CACA,gBACA,mBACA,mBACA,QACA,KACA,WACA,CACA,EChBA,SAASC,EAAe3+P,EAAQ4+P,GAChC,uBACA,kBAEA,CAaA,SAASC,EAAoB3oQ,EAAO2oF,GAKpC,OAJA,QAFsB,MAItB,EAJsB,KAMtB,CACA,CACA,SAASigL,EAAkB30M,GAqB3B,OApBA,IACA,MAGA,8CACA,qDACA,mEACA,+DACA,mEACA,wBACA,mFACA,0BAEA,2DACA,uBACA,iEACA,8BACA,yCACA,uEACA,wFACA,CACA,CAaA,IAAI,EAAJ,YAEA,aACA,IAIA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EAjBA,qBACA,iBACA,eACA,uBAmBA,IAEA,EACA,GACA,GA+iBA,OA9iBA,+BACA,iBA0gBA,uBACA,oCACA,CACA,cACA,OACA,OACA,OACA,OACA,OACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KAKA,EAEA,sBACA,gBACA,QACA,OACA,CAriBA,KACA,0BACA,0BACA,EACA,iCACA,kBACA,EACA,2BACA,IACA,iEACA,eAIA,CAFA,SACA,qGACA,CACA,EAKA,8BACA,IACA,UAIA,CAFA,SACA,0GACA,CACA,EAOA,iCACA,IACA,oBAIA,CAFA,SACA,yGACA,CACA,EAOA,2BACA,IACA,iEACA,eAIA,CAFA,SACA,qGACA,CACA,EAYA,4BACA,IACA,iEACA,eAIA,CAFA,SACA,uGACA,CACA,EAOA,8BACA,IACA,YACA,2FACA,iCACA,sCAKA,CAFA,SACA,4GACA,CACA,EAOA,uCACA,oBACA,IACA,gDAEA,mEACA,gBAEA,CACA,EAMA,qBACA,mEACA,eACA,EAMA,yCACA,YACA,IACA,QACA,SAIA,CAFA,SACA,uHACA,CACA,EAOA,6BACA,IACA,wBACA,oBACA,gBACA,CACA,UAIA,CAFA,SACA,4GACA,CACA,EASA,kCACA,IACA,wBACA,oBACA,gBACA,CACA,wBACA,oBACA,eACA,CACA,gBACA,iCACA,6BAKA,CAFA,SACA,4GACA,CACA,EAOA,wCACA,2CACA,2FACA,+DACA,eACA,EAUA,+BACA,2BACA,qBAEA,IACA,4BAIA,CAFA,SACA,6GACA,CACA,EAMA,uBACA,iBACA,WACA,IACA,OACA,oBACA,IACA,UAEA,CACA,wCAEA,gFACA,GACA,WACA,MACA,2BACA,+BACA,mBAEA,iEAsJA,cACA,iEACA,eACA,CAxJA,kOAGA,aACA,cAEA,kDAOA,CAJA,SACA,qCACA,sFACA,wDACA,CACA,EACA,sCACA,UAEA,yCAGA,IACA,MAEA,SACA,EACA,+BACA,uBAGA,gBACA,kCAEA,sBACA,IACA,2EACA,IACA,2BACA,4BACA,IACA,QAEA,MAmDA,YACA,iCACA,eAEA,OACA,+BACA,OACA,6BAEA,6BACA,WACA,IAEA,IAEA,QACA,CAnEA,KApUA,SAA6B40M,GAG7B,sCACA,uBACA,cAGA,cAGA,CA0TA,IACA,gBACA,+CACA,4CAyEA,gBACA,6BACA,eACA,qBACA,UACA,MACA,MACA,eACA,EACA,CAlFA,WAgEA,cACA,aAkBA,WACA,UACA,iDACA,cACA,iCACA,iBACA,KACA,2BACA,uCACA,QAIA,CACA,QACA,EACA,6BACA,IACA,CACA,CApCA,EACA,CAlEA,OACA,mCACA,OACA,oBACA,IACA,MAEA,IACA,MAEA,wBACA,kDACA,GAEA,sCACA,2BAEA,iBACA,MAEA,wBACA,OACA,OACA,MACA,aACA,gBAEA,2BACA,EACA,gBA6EA,YACA,oBACA,mBACA,+BACA,iCAEA,2BACA,MACA,0BACA,gBACA,oDAEA,IACA,IACA,OA+FA,iBACA,eACA,IAEA,wCACA,MACA,kBACA,gBACA,mCAllBA,SAAoBl7P,GACpB,gBACA,eACA,+CACA,aAEA,cACA,CAEA,YACA,CAwkBA,6BAEA,IACA,IACA,KACA,qCAEA,CA5GA,OACA,CA7FA,IA8FA,YACA,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gBACA,cACA,cACA,uBACA,2BACA,4BACA,4BACA,eACA,2BACA,kBACA,YACA,WACA,2DAEA,gBADA,IACA,MACA,uBACA,uBACA,+BACA,GAGA,KAEA,6BACA,4BACA,kDACA,EACA,yBACA,0EACA,EACA,kCACA,MAGA,GADA,8FACA,sBACA,YAEA,WACA,8BACA,4BAEA,qBACA,SACA,iBACA,+BACA,wCACA,yBACA,kBACA,mCACA,IACA,oBAEA,qBACA,wCA3LA,SAA2B2pQ,EAAUC,GAqBrC,mBACA,mBACA,IACA,SAGA,iBACA,YACA,aACA,YACA,aACA,cAIA,eACA,iBAGA,gBACA,IAhBA,QAiBA,IAhBA,MAiBA,iBACA,oBACA,oBACA,iBACA,MAEA,gBAEA,WAlBA,oBACA,mBAmBA,WAlBA,eAkBA,GAEA,aAjBA,cAmBA,WAlBA,gBAkBA,GAEA,+BAEA,4BAEA,iBACA,IACA,eAEA,YACA,sBACA,qBACA,MACA,SACA,6BACA,gCACA,WACA,8BACA,yCACA,OACA,eAEA,oBAEA,QAGA,IACA,MACA,IACA,WACA,CACA,yBACA,4BACA,2BACA,MAEA,aACA,kCAGA,IACA,eAEA,CAwFA,MACA,KACA,0CACA,iCACA,kCAGA,MACA,UACA,MAEA,2BAIA,GAHA,IACA,wBAEA,YACA,sCACA,iCACA,4BAGA,qCACA,aACA,gCACA,qBACA,8EAEA,aACA,qFAEA,CACA,CACA,CACA,QACA,EACA,2BACA,MACA,OACA,kBACA,6BAEA,OADA,MACA,sBACA,kBACA,oBACA,GACA,4BACA,0BAEA,CACA,QACA,CACA,GACA,C,mBAiBsB,CACtB,CAhJA,GCjJIC,EAAsB,YAGtBC,EAAW,QAEXC,EAAa,EAkDjB,SAASC,EAAiC3kC,GAC1C,SACA,IACA,gBACA,yBACA,qCACA,wCAKA,CAFA,SAEA,CACA,QACA,CAEA,SAAS4kC,EAAuBC,EAAqBC,EAAOlyP,EAASc,EAAYqxP,GACjF,kCACA,CAEA,SAASC,EAAsBH,EAAqBC,EAAOlyP,EAASc,EAAYqxP,GAChF,kCACA,CAEA,SAASE,EAAyBJ,EAAqBK,EAAiBtyP,GAExE,mBACA,SACA,iCACA,8BAEA,CACA,CACA,SAASuyP,EAASxqQ,EAAOkuB,GACzB,YACA,cAEA,CACA,CA+BA,mBACA,0BACA,+BACA,0BACA,kCAEI,EAAJ,YAEA,aACA,IAGA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EAxBA,qBA4xBA,OA3xBA,0BACA,eAuBA,+BACA,iBAmIA,cACA,oBACA,KACA,KACA,kCACA,qBACA,KACA,KACA,IACA,OACA,KACA,KACA,OACA,KACA,IACA,KACA,KACA,KACA,KACA,OACA,OACA,OACA,IACA,IACA,CAsCA,eACA,SASA,OARA,qBACA,yCACA,qCAEA,OADA,MACA,CAEA,IAEA,CACA,CAuFA,mBACA,qBACA,CAsEA,mBACA,SACA,yDAYA,GAVA,2BACA,QACA,iBACA,iBAEA,IACA,YAEA,IAEA,EACA,SAEA,eACA,WAkCA,QAjCA,sBACA,MAEA,QAEA,oBAGA,eAIA,iBAEA,sCACA,gBALA,4BAQA,uBACA,MAEA,EAEA,OACA,QAKA,OACA,MAGA,CACA,CAIA,iBACA,SACA,IAKA,OAJA,iBACA,oCAGA,GAEA,CACA,CACA,cACA,WAQA,OAPA,6BACA,2BAGA,yBACA,iCAEA,CACA,CAoJA,iBACA,uBACA,oBACA,2BACA,IACA,gBACA,UACA,4BACA,kBACA,gBAEA,CACA,CACA,CACA,qBACA,iBACA,gBACA,8BACA,wBACA,eACA,KACA,aACA,IACA,SACA,IAGA,IAFA,WACA,iBACA,uBACA,WACA,MACA,4BACA,sBACA,oCACA,UAGA,0CAEA,eACA,KACA,CACA,+BAEA,KAEA,CACA,CACA,EACA,GACA,cACA,OACA,aACA,8BAEA,qBAEA,iBAEA,KAMA,eAKA,CAFA,SACA,IACA,CAhDA,GAkDA,CAqCA,eACA,SACA,IACA,iBAEA,oBADA,oBACA,EAGA,MAHA,MASA,CAFA,SACA,oFACA,CACA,QACA,CACA,2BAIA,kBACA,YACA,gCACA,IACA,4BAEA,iHACA,CAVA,IAWA,qCACA,WACA,yBACA,IACA,EADA,iCAEA,IACA,IACA,qCAKA,CAFA,SACA,yGACA,CACA,QACA,QACA,0DAEA,yDAGA,WACA,kCACA,6CAGA,gBACA,YACA,IACA,CAjvBA,KACA,+BACA,oBACA,sBACA,uEAuJA,YACA,iCAEA,qBACA,2BACA,6BACA,kCACA,IACA,+BAUA,GATA,gCACA,8BACA,2BACA,wBACA,iCACA,OACA,sBACA,eACA,eACA,GACA,oCAEA,EADA,WACA,8BAGA,OAEA,CACA,0BACA,0BACA,CAnLA,KA9IA,SAAiCg8O,GACjC,SACA,kBACA,0BACA,oBACA,sBACA,sBACA,oBACA,CACA,oBAIA,GAHA,SACA,MAEA,EAEA,KACA,oBACA,YAEA,+BACA,0BAQA,CANA,SAEA,KACA,iFACA,0BAEA,CAEA,QACA,CAgZA,YAEA,0BACA,KACA,sBACA,OACA,aACA,cACA,oBACA,kCA0IA,kBACA,MACA,OACA,mCACA,6BACA,8EACA,kCACA,WACA,eACA,iCACA,oBACA,UACA,oBACA,YACA,CAtJA,UAuJA,YACA,+FACA,MACA,IACA,4BA6BA,YACA,iBAGA,gBACA,YACA,8BACA,IACA,4BAEA,gHACA,CATA,qCACA,kBASA,kCACA,IACA,6CACA,MACA,OACA,0BAEA,eACA,qBA4DA,YACA,MACA,IACA,gCACA,cAEA,IADA,0BACA,CACA,kCACA,mCACA,CAQA,CALA,SACA,+HACA,4BACA,2BACA,GACA,CACA,CA9EA,IACA,sBACA,eAnCA,YACA,IACA,qBACA,sBAEA,qBAKA,CAFA,SAEA,CACA,WACA,CAuBA,IACA,sBACA,GACA,MACA,gCACA,MAGA,sCACA,KACA,2BACA,oBACA,YACA,eACA,QACA,OAEA,IACA,aACA,CACA,CACA,QACA,IACA,SACA,IACA,IACA,6BAKA,CAFA,SACA,yGACA,CACA,QACA,QACA,0DAEA,yDAGA,QACA,kCACA,6CAYA,CA9DC,QAwDD,IACA,eAIA,CAFA,SAEA,CACA,CACA,gBACA,SACA,GACA,CA3GA,GAYA,CATA,SACA,qBAEA,uCACA,yIACA,4BACA,cACA,GAEA,CACA,KACA,CAvKA,IAEA,CACA,EACA,8GAGA,0BACA,KACA,kBACA,OACA,aACA,aACA,wCACA,YACA,gCACA,+CACA,iCAEA,CACA,EACA,yGAGA,2BACA,KACA,gBACA,OACA,aACA,aACA,yCACA,YACA,kCAEA,CACA,EACA,+GAGA,sCACA,KACA,oBACA,UACA,aACA,eACA,+BAEA,CACA,EACA,0HAEA,MA1JA,WACA,MAtWA,WACA,oBACA,UACA,wBACA,6BACA,qBACA,KAEA,OACA,CA6VA,GACA,MACA,OAEA,oBACA,aACA,KAyDA,GAOA,mBACA,KACA,oBAEA,YACA,MApEA,mBACA,KAEA,oBACA,MACA,WACA,gBAEA,QACA,cACA,EAqbA,cACA,MACA,OACA,mCACA,6BACA,8EACA,kCACA,gCACA,oBACA,qBACA,wBAGA,eAEA,YACA,YACA,WAEA,0BACA,YAEA,WACA,SACA,MACA,kEACA,uBACA,QACA,OAEA,GACA,CAGA,OAFA,mBACA,cACA,CACA,CAxdA,MACA,yCACA,OACA,WAEA,QACA,CACA,EACA,kBACA,OACA,mBACA,IAEA,gCAoBA,OAnBA,sCACA,MACA,OACA,0BAEA,eACA,qBA+fA,YACA,gBACA,IACA,4BACA,mCAOA,CALA,SACA,wHACA,8BACA,0BAEA,CAEA,CA5gBA,IACA,GACA,MACA,SACA,iCACA,QACA,OAEA,IACA,aACA,CACA,QACA,IACA,CACA,IArBA,OAqBA,YAEA,MADA,wCACA,CACA,IAEA,CACA,EAEA,yGAEA,MAiBA,IAGA,mBAEA,CA1RA,GAkLA,WACA,4BACA,IACA,mBAEA,CAtLA,GAEA,EACA,yBACA,IACA,EACA,oCACA,kCACA,EACA,8CAEA,8BAEA,GAvFA,SAAqC7tL,EAAW/B,EAAMqvL,EAAUtkC,EAAK5hL,EAAO2sE,GAC5E,MACA,WACA,QAUA,IATA,cACA,OACA,QACA,UACA,SACA,oBACA,kBACA,0BACA,GACA,aACA,WACA,WACA,IACA,iBAKA,CAHA,SACA,aACA,kHACA,CAEA,CACA,oBACA,kBACA,yBACA,CACA,CAyDA,mBACA,GACA,4DACA,IACA,MAKA,kEACA,MACA,iCACA,gBACA,IACA,2BAEA,CAQA,IAPA,2BAEA,uBACA,IACA,oCAGA,GACA,mBACA,iBACA,KAEA,qDACA,gBACA,IACA,2BAEA,CACA,WACA,CACA,QACA,CACA,MACA,4DACA,MACA,6BACA,6BACA,IACA,2BAEA,CACA,MAOA,IAPA,2BAEA,oCACA,IACA,oCAGA,GACA,eACA,iBACA,KAEA,iDACA,6BACA,IACA,2BAEA,CACA,CACA,QACA,CAEA,EACA,8CACA,gBAIA,8BACA,8BACA,oDACA,WAEA,2BACA,sBAEA,mEACA,eACA,MACA,OACA,uMAEA,CACA,EACA,oCACA,OACA,OACA,MAaA,OAXA,UACA,CACA,kBACA,6BACA,eAEA,OADA,eACA,CAEA,GACA,EAGA,CA+nBA,IACA,CACA,CAyEA,OAx2BA,iBAgyBA,8BACA,MA0BA,OAzBA,MACA,wBACA,yBACA,0BACA,YACA,+BACA,2BACA,qCACA,kCACA,0CACA,eACA,2BACA,iCACA,kCACA,+BACA,4BACA,8BACA,yBACA,iBACA,gBACA,YACA,oBAEA,2BACA,CAEA,EACA,4BACA,8BAIA,OAHA,2BACA,WACA,IACA,CACA,EAIA,2CACA,qBACA,EA8BA,oCACA,CACA,CA12BA,CA02BA,I,+BC9+BM,SAAUq6I,EAAe1mM,G,IAAa,wDAC1C,OAAI2mM,EAAUrhQ,OAAS,EACdqhQ,EAAU,GAGZ,W,IAAC,sDACNA,EAAU33P,SAAQ,SAAClH,GAAkB,OAAAA,GAAKA,EAAEvC,MAAMy6D,EAAb,EAA0B,GAChE,CACF,CCJK,SAAU+mD,EAA0Dl6G,ICJpE,SAAqDmzD,EAAW4mM,GACpE,IAAK,IAAI,KAAQA,EACXA,EAAQtiQ,eAAe,KAEzB07D,EAAO,GAAQ0mM,EAAe1mM,EAAQA,EAAO,GAAO4mM,EAAQ,IAGjE,CDFCC,CAAgBh6P,EAAK,CACnB86D,kBAAmBm/L,EACnBzgI,mBAA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","file":"static/js/2.d56fdcbe.chunk.js","sourcesContent":["/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport {\n OperationParameter,\n OperationURLParameter,\n OperationQueryParameter,\n QueryCollectionFormat\n} from \"@azure/core-http\";\nimport {\n BlobServiceProperties as BlobServicePropertiesMapper,\n KeyInfo as KeyInfoMapper,\n QueryRequest as QueryRequestMapper,\n BlobTags as BlobTagsMapper,\n BlockLookupList as BlockLookupListMapper\n} from \"../models/mappers\";\n\nexport const contentType: OperationParameter = {\n parameterPath: [\"options\", \"contentType\"],\n mapper: {\n defaultValue: \"application/xml\",\n isConstant: true,\n serializedName: \"Content-Type\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const blobServiceProperties: OperationParameter = {\n parameterPath: \"blobServiceProperties\",\n mapper: BlobServicePropertiesMapper\n};\n\nexport const accept: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/xml\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const url: OperationURLParameter = {\n parameterPath: \"url\",\n mapper: {\n serializedName: \"url\",\n required: true,\n xmlName: \"url\",\n type: {\n name: \"String\"\n }\n },\n skipEncoding: true\n};\n\nexport const restype: OperationQueryParameter = {\n parameterPath: \"restype\",\n mapper: {\n defaultValue: \"service\",\n isConstant: true,\n serializedName: \"restype\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const comp: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"properties\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const timeoutInSeconds: OperationQueryParameter = {\n parameterPath: [\"options\", \"timeoutInSeconds\"],\n mapper: {\n constraints: {\n InclusiveMinimum: 0\n },\n serializedName: \"timeout\",\n xmlName: \"timeout\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const version: OperationParameter = {\n parameterPath: \"version\",\n mapper: {\n defaultValue: \"2021-08-06\",\n isConstant: true,\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const requestId: OperationParameter = {\n parameterPath: [\"options\", \"requestId\"],\n mapper: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const accept1: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/xml\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const comp1: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"stats\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const comp2: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"list\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const prefix: OperationQueryParameter = {\n parameterPath: [\"options\", \"prefix\"],\n mapper: {\n serializedName: \"prefix\",\n xmlName: \"prefix\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const marker: OperationQueryParameter = {\n parameterPath: [\"options\", \"marker\"],\n mapper: {\n serializedName: \"marker\",\n xmlName: \"marker\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const maxPageSize: OperationQueryParameter = {\n parameterPath: [\"options\", \"maxPageSize\"],\n mapper: {\n constraints: {\n InclusiveMinimum: 1\n },\n serializedName: \"maxresults\",\n xmlName: \"maxresults\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const include: OperationQueryParameter = {\n parameterPath: [\"options\", \"include\"],\n mapper: {\n serializedName: \"include\",\n xmlName: \"include\",\n xmlElementName: \"ListContainersIncludeType\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Enum\",\n allowedValues: [\"metadata\", \"deleted\", \"system\"]\n }\n }\n }\n },\n collectionFormat: QueryCollectionFormat.Csv\n};\n\nexport const keyInfo: OperationParameter = {\n parameterPath: \"keyInfo\",\n mapper: KeyInfoMapper\n};\n\nexport const comp3: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"userdelegationkey\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const restype1: OperationQueryParameter = {\n parameterPath: \"restype\",\n mapper: {\n defaultValue: \"account\",\n isConstant: true,\n serializedName: \"restype\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const body: OperationParameter = {\n parameterPath: \"body\",\n mapper: {\n serializedName: \"body\",\n required: true,\n xmlName: \"body\",\n type: {\n name: \"Stream\"\n }\n }\n};\n\nexport const comp4: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"batch\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const contentLength: OperationParameter = {\n parameterPath: \"contentLength\",\n mapper: {\n serializedName: \"Content-Length\",\n required: true,\n xmlName: \"Content-Length\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const multipartContentType: OperationParameter = {\n parameterPath: \"multipartContentType\",\n mapper: {\n serializedName: \"Content-Type\",\n required: true,\n xmlName: \"Content-Type\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const comp5: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"blobs\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const where: OperationQueryParameter = {\n parameterPath: [\"options\", \"where\"],\n mapper: {\n serializedName: \"where\",\n xmlName: \"where\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const restype2: OperationQueryParameter = {\n parameterPath: \"restype\",\n mapper: {\n defaultValue: \"container\",\n isConstant: true,\n serializedName: \"restype\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const metadata: OperationParameter = {\n parameterPath: [\"options\", \"metadata\"],\n mapper: {\n serializedName: \"x-ms-meta\",\n xmlName: \"x-ms-meta\",\n type: {\n name: \"Dictionary\",\n value: { type: { name: \"String\" } }\n },\n headerCollectionPrefix: \"x-ms-meta-\"\n }\n};\n\nexport const access: OperationParameter = {\n parameterPath: [\"options\", \"access\"],\n mapper: {\n serializedName: \"x-ms-blob-public-access\",\n xmlName: \"x-ms-blob-public-access\",\n type: {\n name: \"Enum\",\n allowedValues: [\"container\", \"blob\"]\n }\n }\n};\n\nexport const defaultEncryptionScope: OperationParameter = {\n parameterPath: [\n \"options\",\n \"containerEncryptionScope\",\n \"defaultEncryptionScope\"\n ],\n mapper: {\n serializedName: \"x-ms-default-encryption-scope\",\n xmlName: \"x-ms-default-encryption-scope\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const preventEncryptionScopeOverride: OperationParameter = {\n parameterPath: [\n \"options\",\n \"containerEncryptionScope\",\n \"preventEncryptionScopeOverride\"\n ],\n mapper: {\n serializedName: \"x-ms-deny-encryption-scope-override\",\n xmlName: \"x-ms-deny-encryption-scope-override\",\n type: {\n name: \"Boolean\"\n }\n }\n};\n\nexport const leaseId: OperationParameter = {\n parameterPath: [\"options\", \"leaseAccessConditions\", \"leaseId\"],\n mapper: {\n serializedName: \"x-ms-lease-id\",\n xmlName: \"x-ms-lease-id\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const ifModifiedSince: OperationParameter = {\n parameterPath: [\"options\", \"modifiedAccessConditions\", \"ifModifiedSince\"],\n mapper: {\n serializedName: \"If-Modified-Since\",\n xmlName: \"If-Modified-Since\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n};\n\nexport const ifUnmodifiedSince: OperationParameter = {\n parameterPath: [\"options\", \"modifiedAccessConditions\", \"ifUnmodifiedSince\"],\n mapper: {\n serializedName: \"If-Unmodified-Since\",\n xmlName: \"If-Unmodified-Since\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n};\n\nexport const comp6: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"metadata\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const comp7: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"acl\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const containerAcl: OperationParameter = {\n parameterPath: [\"options\", \"containerAcl\"],\n mapper: {\n serializedName: \"containerAcl\",\n xmlName: \"SignedIdentifiers\",\n xmlIsWrapped: true,\n xmlElementName: \"SignedIdentifier\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"SignedIdentifier\"\n }\n }\n }\n }\n};\n\nexport const comp8: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"undelete\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const deletedContainerName: OperationParameter = {\n parameterPath: [\"options\", \"deletedContainerName\"],\n mapper: {\n serializedName: \"x-ms-deleted-container-name\",\n xmlName: \"x-ms-deleted-container-name\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const deletedContainerVersion: OperationParameter = {\n parameterPath: [\"options\", \"deletedContainerVersion\"],\n mapper: {\n serializedName: \"x-ms-deleted-container-version\",\n xmlName: \"x-ms-deleted-container-version\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const comp9: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"rename\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const sourceContainerName: OperationParameter = {\n parameterPath: \"sourceContainerName\",\n mapper: {\n serializedName: \"x-ms-source-container-name\",\n required: true,\n xmlName: \"x-ms-source-container-name\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const sourceLeaseId: OperationParameter = {\n parameterPath: [\"options\", \"sourceLeaseId\"],\n mapper: {\n serializedName: \"x-ms-source-lease-id\",\n xmlName: \"x-ms-source-lease-id\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const comp10: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"lease\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const action: OperationParameter = {\n parameterPath: \"action\",\n mapper: {\n defaultValue: \"acquire\",\n isConstant: true,\n serializedName: \"x-ms-lease-action\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const duration: OperationParameter = {\n parameterPath: [\"options\", \"duration\"],\n mapper: {\n serializedName: \"x-ms-lease-duration\",\n xmlName: \"x-ms-lease-duration\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const proposedLeaseId: OperationParameter = {\n parameterPath: [\"options\", \"proposedLeaseId\"],\n mapper: {\n serializedName: \"x-ms-proposed-lease-id\",\n xmlName: \"x-ms-proposed-lease-id\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const action1: OperationParameter = {\n parameterPath: \"action\",\n mapper: {\n defaultValue: \"release\",\n isConstant: true,\n serializedName: \"x-ms-lease-action\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const leaseId1: OperationParameter = {\n parameterPath: \"leaseId\",\n mapper: {\n serializedName: \"x-ms-lease-id\",\n required: true,\n xmlName: \"x-ms-lease-id\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const action2: OperationParameter = {\n parameterPath: \"action\",\n mapper: {\n defaultValue: \"renew\",\n isConstant: true,\n serializedName: \"x-ms-lease-action\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const action3: OperationParameter = {\n parameterPath: \"action\",\n mapper: {\n defaultValue: \"break\",\n isConstant: true,\n serializedName: \"x-ms-lease-action\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const breakPeriod: OperationParameter = {\n parameterPath: [\"options\", \"breakPeriod\"],\n mapper: {\n serializedName: \"x-ms-lease-break-period\",\n xmlName: \"x-ms-lease-break-period\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const action4: OperationParameter = {\n parameterPath: \"action\",\n mapper: {\n defaultValue: \"change\",\n isConstant: true,\n serializedName: \"x-ms-lease-action\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const proposedLeaseId1: OperationParameter = {\n parameterPath: \"proposedLeaseId\",\n mapper: {\n serializedName: \"x-ms-proposed-lease-id\",\n required: true,\n xmlName: \"x-ms-proposed-lease-id\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const include1: OperationQueryParameter = {\n parameterPath: [\"options\", \"include\"],\n mapper: {\n serializedName: \"include\",\n xmlName: \"include\",\n xmlElementName: \"ListBlobsIncludeItem\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Enum\",\n allowedValues: [\n \"copy\",\n \"deleted\",\n \"metadata\",\n \"snapshots\",\n \"uncommittedblobs\",\n \"versions\",\n \"tags\",\n \"immutabilitypolicy\",\n \"legalhold\",\n \"deletedwithversions\"\n ]\n }\n }\n }\n },\n collectionFormat: QueryCollectionFormat.Csv\n};\n\nexport const delimiter: OperationQueryParameter = {\n parameterPath: \"delimiter\",\n mapper: {\n serializedName: \"delimiter\",\n required: true,\n xmlName: \"delimiter\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const snapshot: OperationQueryParameter = {\n parameterPath: [\"options\", \"snapshot\"],\n mapper: {\n serializedName: \"snapshot\",\n xmlName: \"snapshot\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const versionId: OperationQueryParameter = {\n parameterPath: [\"options\", \"versionId\"],\n mapper: {\n serializedName: \"versionid\",\n xmlName: \"versionid\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const range: OperationParameter = {\n parameterPath: [\"options\", \"range\"],\n mapper: {\n serializedName: \"x-ms-range\",\n xmlName: \"x-ms-range\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const rangeGetContentMD5: OperationParameter = {\n parameterPath: [\"options\", \"rangeGetContentMD5\"],\n mapper: {\n serializedName: \"x-ms-range-get-content-md5\",\n xmlName: \"x-ms-range-get-content-md5\",\n type: {\n name: \"Boolean\"\n }\n }\n};\n\nexport const rangeGetContentCRC64: OperationParameter = {\n parameterPath: [\"options\", \"rangeGetContentCRC64\"],\n mapper: {\n serializedName: \"x-ms-range-get-content-crc64\",\n xmlName: \"x-ms-range-get-content-crc64\",\n type: {\n name: \"Boolean\"\n }\n }\n};\n\nexport const encryptionKey: OperationParameter = {\n parameterPath: [\"options\", \"cpkInfo\", \"encryptionKey\"],\n mapper: {\n serializedName: \"x-ms-encryption-key\",\n xmlName: \"x-ms-encryption-key\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const encryptionKeySha256: OperationParameter = {\n parameterPath: [\"options\", \"cpkInfo\", \"encryptionKeySha256\"],\n mapper: {\n serializedName: \"x-ms-encryption-key-sha256\",\n xmlName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const encryptionAlgorithm: OperationParameter = {\n parameterPath: [\"options\", \"cpkInfo\", \"encryptionAlgorithm\"],\n mapper: {\n serializedName: \"x-ms-encryption-algorithm\",\n xmlName: \"x-ms-encryption-algorithm\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const ifMatch: OperationParameter = {\n parameterPath: [\"options\", \"modifiedAccessConditions\", \"ifMatch\"],\n mapper: {\n serializedName: \"If-Match\",\n xmlName: \"If-Match\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const ifNoneMatch: OperationParameter = {\n parameterPath: [\"options\", \"modifiedAccessConditions\", \"ifNoneMatch\"],\n mapper: {\n serializedName: \"If-None-Match\",\n xmlName: \"If-None-Match\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const ifTags: OperationParameter = {\n parameterPath: [\"options\", \"modifiedAccessConditions\", \"ifTags\"],\n mapper: {\n serializedName: \"x-ms-if-tags\",\n xmlName: \"x-ms-if-tags\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const deleteSnapshots: OperationParameter = {\n parameterPath: [\"options\", \"deleteSnapshots\"],\n mapper: {\n serializedName: \"x-ms-delete-snapshots\",\n xmlName: \"x-ms-delete-snapshots\",\n type: {\n name: \"Enum\",\n allowedValues: [\"include\", \"only\"]\n }\n }\n};\n\nexport const blobDeleteType: OperationQueryParameter = {\n parameterPath: [\"options\", \"blobDeleteType\"],\n mapper: {\n serializedName: \"deletetype\",\n xmlName: \"deletetype\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const comp11: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"expiry\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const expiryOptions: OperationParameter = {\n parameterPath: \"expiryOptions\",\n mapper: {\n serializedName: \"x-ms-expiry-option\",\n required: true,\n xmlName: \"x-ms-expiry-option\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const expiresOn: OperationParameter = {\n parameterPath: [\"options\", \"expiresOn\"],\n mapper: {\n serializedName: \"x-ms-expiry-time\",\n xmlName: \"x-ms-expiry-time\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const blobCacheControl: OperationParameter = {\n parameterPath: [\"options\", \"blobHttpHeaders\", \"blobCacheControl\"],\n mapper: {\n serializedName: \"x-ms-blob-cache-control\",\n xmlName: \"x-ms-blob-cache-control\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const blobContentType: OperationParameter = {\n parameterPath: [\"options\", \"blobHttpHeaders\", \"blobContentType\"],\n mapper: {\n serializedName: \"x-ms-blob-content-type\",\n xmlName: \"x-ms-blob-content-type\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const blobContentMD5: OperationParameter = {\n parameterPath: [\"options\", \"blobHttpHeaders\", \"blobContentMD5\"],\n mapper: {\n serializedName: \"x-ms-blob-content-md5\",\n xmlName: \"x-ms-blob-content-md5\",\n type: {\n name: \"ByteArray\"\n }\n }\n};\n\nexport const blobContentEncoding: OperationParameter = {\n parameterPath: [\"options\", \"blobHttpHeaders\", \"blobContentEncoding\"],\n mapper: {\n serializedName: \"x-ms-blob-content-encoding\",\n xmlName: \"x-ms-blob-content-encoding\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const blobContentLanguage: OperationParameter = {\n parameterPath: [\"options\", \"blobHttpHeaders\", \"blobContentLanguage\"],\n mapper: {\n serializedName: \"x-ms-blob-content-language\",\n xmlName: \"x-ms-blob-content-language\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const blobContentDisposition: OperationParameter = {\n parameterPath: [\"options\", \"blobHttpHeaders\", \"blobContentDisposition\"],\n mapper: {\n serializedName: \"x-ms-blob-content-disposition\",\n xmlName: \"x-ms-blob-content-disposition\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const comp12: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"immutabilityPolicies\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const immutabilityPolicyExpiry: OperationParameter = {\n parameterPath: [\"options\", \"immutabilityPolicyExpiry\"],\n mapper: {\n serializedName: \"x-ms-immutability-policy-until-date\",\n xmlName: \"x-ms-immutability-policy-until-date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n};\n\nexport const immutabilityPolicyMode: OperationParameter = {\n parameterPath: [\"options\", \"immutabilityPolicyMode\"],\n mapper: {\n serializedName: \"x-ms-immutability-policy-mode\",\n xmlName: \"x-ms-immutability-policy-mode\",\n type: {\n name: \"Enum\",\n allowedValues: [\"Mutable\", \"Unlocked\", \"Locked\"]\n }\n }\n};\n\nexport const comp13: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"legalhold\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const legalHold: OperationParameter = {\n parameterPath: \"legalHold\",\n mapper: {\n serializedName: \"x-ms-legal-hold\",\n required: true,\n xmlName: \"x-ms-legal-hold\",\n type: {\n name: \"Boolean\"\n }\n }\n};\n\nexport const encryptionScope: OperationParameter = {\n parameterPath: [\"options\", \"encryptionScope\"],\n mapper: {\n serializedName: \"x-ms-encryption-scope\",\n xmlName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const comp14: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"snapshot\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const tier: OperationParameter = {\n parameterPath: [\"options\", \"tier\"],\n mapper: {\n serializedName: \"x-ms-access-tier\",\n xmlName: \"x-ms-access-tier\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"P4\",\n \"P6\",\n \"P10\",\n \"P15\",\n \"P20\",\n \"P30\",\n \"P40\",\n \"P50\",\n \"P60\",\n \"P70\",\n \"P80\",\n \"Hot\",\n \"Cool\",\n \"Archive\"\n ]\n }\n }\n};\n\nexport const rehydratePriority: OperationParameter = {\n parameterPath: [\"options\", \"rehydratePriority\"],\n mapper: {\n serializedName: \"x-ms-rehydrate-priority\",\n xmlName: \"x-ms-rehydrate-priority\",\n type: {\n name: \"Enum\",\n allowedValues: [\"High\", \"Standard\"]\n }\n }\n};\n\nexport const sourceIfModifiedSince: OperationParameter = {\n parameterPath: [\n \"options\",\n \"sourceModifiedAccessConditions\",\n \"sourceIfModifiedSince\"\n ],\n mapper: {\n serializedName: \"x-ms-source-if-modified-since\",\n xmlName: \"x-ms-source-if-modified-since\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n};\n\nexport const sourceIfUnmodifiedSince: OperationParameter = {\n parameterPath: [\n \"options\",\n \"sourceModifiedAccessConditions\",\n \"sourceIfUnmodifiedSince\"\n ],\n mapper: {\n serializedName: \"x-ms-source-if-unmodified-since\",\n xmlName: \"x-ms-source-if-unmodified-since\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n};\n\nexport const sourceIfMatch: OperationParameter = {\n parameterPath: [\"options\", \"sourceModifiedAccessConditions\", \"sourceIfMatch\"],\n mapper: {\n serializedName: \"x-ms-source-if-match\",\n xmlName: \"x-ms-source-if-match\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const sourceIfNoneMatch: OperationParameter = {\n parameterPath: [\n \"options\",\n \"sourceModifiedAccessConditions\",\n \"sourceIfNoneMatch\"\n ],\n mapper: {\n serializedName: \"x-ms-source-if-none-match\",\n xmlName: \"x-ms-source-if-none-match\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const sourceIfTags: OperationParameter = {\n parameterPath: [\"options\", \"sourceModifiedAccessConditions\", \"sourceIfTags\"],\n mapper: {\n serializedName: \"x-ms-source-if-tags\",\n xmlName: \"x-ms-source-if-tags\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const copySource: OperationParameter = {\n parameterPath: \"copySource\",\n mapper: {\n serializedName: \"x-ms-copy-source\",\n required: true,\n xmlName: \"x-ms-copy-source\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const blobTagsString: OperationParameter = {\n parameterPath: [\"options\", \"blobTagsString\"],\n mapper: {\n serializedName: \"x-ms-tags\",\n xmlName: \"x-ms-tags\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const sealBlob: OperationParameter = {\n parameterPath: [\"options\", \"sealBlob\"],\n mapper: {\n serializedName: \"x-ms-seal-blob\",\n xmlName: \"x-ms-seal-blob\",\n type: {\n name: \"Boolean\"\n }\n }\n};\n\nexport const legalHold1: OperationParameter = {\n parameterPath: [\"options\", \"legalHold\"],\n mapper: {\n serializedName: \"x-ms-legal-hold\",\n xmlName: \"x-ms-legal-hold\",\n type: {\n name: \"Boolean\"\n }\n }\n};\n\nexport const xMsRequiresSync: OperationParameter = {\n parameterPath: \"xMsRequiresSync\",\n mapper: {\n defaultValue: \"true\",\n isConstant: true,\n serializedName: \"x-ms-requires-sync\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const sourceContentMD5: OperationParameter = {\n parameterPath: [\"options\", \"sourceContentMD5\"],\n mapper: {\n serializedName: \"x-ms-source-content-md5\",\n xmlName: \"x-ms-source-content-md5\",\n type: {\n name: \"ByteArray\"\n }\n }\n};\n\nexport const copySourceAuthorization: OperationParameter = {\n parameterPath: [\"options\", \"copySourceAuthorization\"],\n mapper: {\n serializedName: \"x-ms-copy-source-authorization\",\n xmlName: \"x-ms-copy-source-authorization\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const copySourceTags: OperationParameter = {\n parameterPath: [\"options\", \"copySourceTags\"],\n mapper: {\n serializedName: \"x-ms-copy-source-tag-option\",\n xmlName: \"x-ms-copy-source-tag-option\",\n type: {\n name: \"Enum\",\n allowedValues: [\"REPLACE\", \"COPY\"]\n }\n }\n};\n\nexport const comp15: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"copy\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const copyActionAbortConstant: OperationParameter = {\n parameterPath: \"copyActionAbortConstant\",\n mapper: {\n defaultValue: \"abort\",\n isConstant: true,\n serializedName: \"x-ms-copy-action\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const copyId: OperationQueryParameter = {\n parameterPath: \"copyId\",\n mapper: {\n serializedName: \"copyid\",\n required: true,\n xmlName: \"copyid\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const comp16: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"tier\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const tier1: OperationParameter = {\n parameterPath: \"tier\",\n mapper: {\n serializedName: \"x-ms-access-tier\",\n required: true,\n xmlName: \"x-ms-access-tier\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"P4\",\n \"P6\",\n \"P10\",\n \"P15\",\n \"P20\",\n \"P30\",\n \"P40\",\n \"P50\",\n \"P60\",\n \"P70\",\n \"P80\",\n \"Hot\",\n \"Cool\",\n \"Archive\"\n ]\n }\n }\n};\n\nexport const queryRequest: OperationParameter = {\n parameterPath: [\"options\", \"queryRequest\"],\n mapper: QueryRequestMapper\n};\n\nexport const comp17: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"query\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const comp18: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"tags\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const tags: OperationParameter = {\n parameterPath: [\"options\", \"tags\"],\n mapper: BlobTagsMapper\n};\n\nexport const transactionalContentMD5: OperationParameter = {\n parameterPath: [\"options\", \"transactionalContentMD5\"],\n mapper: {\n serializedName: \"Content-MD5\",\n xmlName: \"Content-MD5\",\n type: {\n name: \"ByteArray\"\n }\n }\n};\n\nexport const transactionalContentCrc64: OperationParameter = {\n parameterPath: [\"options\", \"transactionalContentCrc64\"],\n mapper: {\n serializedName: \"x-ms-content-crc64\",\n xmlName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n }\n};\n\nexport const blobType: OperationParameter = {\n parameterPath: \"blobType\",\n mapper: {\n defaultValue: \"PageBlob\",\n isConstant: true,\n serializedName: \"x-ms-blob-type\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const blobContentLength: OperationParameter = {\n parameterPath: \"blobContentLength\",\n mapper: {\n serializedName: \"x-ms-blob-content-length\",\n required: true,\n xmlName: \"x-ms-blob-content-length\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const blobSequenceNumber: OperationParameter = {\n parameterPath: [\"options\", \"blobSequenceNumber\"],\n mapper: {\n serializedName: \"x-ms-blob-sequence-number\",\n xmlName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const contentType1: OperationParameter = {\n parameterPath: [\"options\", \"contentType\"],\n mapper: {\n defaultValue: \"application/octet-stream\",\n isConstant: true,\n serializedName: \"Content-Type\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const body1: OperationParameter = {\n parameterPath: \"body\",\n mapper: {\n serializedName: \"body\",\n required: true,\n xmlName: \"body\",\n type: {\n name: \"Stream\"\n }\n }\n};\n\nexport const accept2: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/xml\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const comp19: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"page\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const pageWrite: OperationParameter = {\n parameterPath: \"pageWrite\",\n mapper: {\n defaultValue: \"update\",\n isConstant: true,\n serializedName: \"x-ms-page-write\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const ifSequenceNumberLessThanOrEqualTo: OperationParameter = {\n parameterPath: [\n \"options\",\n \"sequenceNumberAccessConditions\",\n \"ifSequenceNumberLessThanOrEqualTo\"\n ],\n mapper: {\n serializedName: \"x-ms-if-sequence-number-le\",\n xmlName: \"x-ms-if-sequence-number-le\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const ifSequenceNumberLessThan: OperationParameter = {\n parameterPath: [\n \"options\",\n \"sequenceNumberAccessConditions\",\n \"ifSequenceNumberLessThan\"\n ],\n mapper: {\n serializedName: \"x-ms-if-sequence-number-lt\",\n xmlName: \"x-ms-if-sequence-number-lt\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const ifSequenceNumberEqualTo: OperationParameter = {\n parameterPath: [\n \"options\",\n \"sequenceNumberAccessConditions\",\n \"ifSequenceNumberEqualTo\"\n ],\n mapper: {\n serializedName: \"x-ms-if-sequence-number-eq\",\n xmlName: \"x-ms-if-sequence-number-eq\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const pageWrite1: OperationParameter = {\n parameterPath: \"pageWrite\",\n mapper: {\n defaultValue: \"clear\",\n isConstant: true,\n serializedName: \"x-ms-page-write\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const sourceUrl: OperationParameter = {\n parameterPath: \"sourceUrl\",\n mapper: {\n serializedName: \"x-ms-copy-source\",\n required: true,\n xmlName: \"x-ms-copy-source\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const sourceRange: OperationParameter = {\n parameterPath: \"sourceRange\",\n mapper: {\n serializedName: \"x-ms-source-range\",\n required: true,\n xmlName: \"x-ms-source-range\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const sourceContentCrc64: OperationParameter = {\n parameterPath: [\"options\", \"sourceContentCrc64\"],\n mapper: {\n serializedName: \"x-ms-source-content-crc64\",\n xmlName: \"x-ms-source-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n }\n};\n\nexport const range1: OperationParameter = {\n parameterPath: \"range\",\n mapper: {\n serializedName: \"x-ms-range\",\n required: true,\n xmlName: \"x-ms-range\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const comp20: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"pagelist\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const prevsnapshot: OperationQueryParameter = {\n parameterPath: [\"options\", \"prevsnapshot\"],\n mapper: {\n serializedName: \"prevsnapshot\",\n xmlName: \"prevsnapshot\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const prevSnapshotUrl: OperationParameter = {\n parameterPath: [\"options\", \"prevSnapshotUrl\"],\n mapper: {\n serializedName: \"x-ms-previous-snapshot-url\",\n xmlName: \"x-ms-previous-snapshot-url\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const sequenceNumberAction: OperationParameter = {\n parameterPath: \"sequenceNumberAction\",\n mapper: {\n serializedName: \"x-ms-sequence-number-action\",\n required: true,\n xmlName: \"x-ms-sequence-number-action\",\n type: {\n name: \"Enum\",\n allowedValues: [\"max\", \"update\", \"increment\"]\n }\n }\n};\n\nexport const comp21: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"incrementalcopy\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const blobType1: OperationParameter = {\n parameterPath: \"blobType\",\n mapper: {\n defaultValue: \"AppendBlob\",\n isConstant: true,\n serializedName: \"x-ms-blob-type\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const comp22: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"appendblock\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const maxSize: OperationParameter = {\n parameterPath: [\"options\", \"appendPositionAccessConditions\", \"maxSize\"],\n mapper: {\n serializedName: \"x-ms-blob-condition-maxsize\",\n xmlName: \"x-ms-blob-condition-maxsize\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const appendPosition: OperationParameter = {\n parameterPath: [\n \"options\",\n \"appendPositionAccessConditions\",\n \"appendPosition\"\n ],\n mapper: {\n serializedName: \"x-ms-blob-condition-appendpos\",\n xmlName: \"x-ms-blob-condition-appendpos\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const sourceRange1: OperationParameter = {\n parameterPath: [\"options\", \"sourceRange\"],\n mapper: {\n serializedName: \"x-ms-source-range\",\n xmlName: \"x-ms-source-range\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const comp23: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"seal\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const blobType2: OperationParameter = {\n parameterPath: \"blobType\",\n mapper: {\n defaultValue: \"BlockBlob\",\n isConstant: true,\n serializedName: \"x-ms-blob-type\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const copySourceBlobProperties: OperationParameter = {\n parameterPath: [\"options\", \"copySourceBlobProperties\"],\n mapper: {\n serializedName: \"x-ms-copy-source-blob-properties\",\n xmlName: \"x-ms-copy-source-blob-properties\",\n type: {\n name: \"Boolean\"\n }\n }\n};\n\nexport const comp24: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"block\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const blockId: OperationQueryParameter = {\n parameterPath: \"blockId\",\n mapper: {\n serializedName: \"blockid\",\n required: true,\n xmlName: \"blockid\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const blocks: OperationParameter = {\n parameterPath: \"blocks\",\n mapper: BlockLookupListMapper\n};\n\nexport const comp25: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"blocklist\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const listType: OperationQueryParameter = {\n parameterPath: \"listType\",\n mapper: {\n defaultValue: \"committed\",\n serializedName: \"blocklisttype\",\n required: true,\n xmlName: \"blocklisttype\",\n type: {\n name: \"Enum\",\n allowedValues: [\"committed\", \"uncommitted\", \"all\"]\n }\n }\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_REQUEST_URL = \"requestUrl\"; // Count: 12\r\nexport var _DYN_INST = \"inst\"; // Count: 5\r\nexport var _DYN_LENGTH = \"length\"; // Count: 9\r\nexport var _DYN_TRACE_ID = \"traceID\"; // Count: 9\r\nexport var _DYN_SPAN_ID = \"spanID\"; // Count: 8\r\nexport var _DYN_TRACE_FLAGS = \"traceFlags\"; // Count: 13\r\nexport var _DYN_CORE = \"core\"; // Count: 6\r\nexport var _DYN_TRACE_ID0 = \"traceId\"; // Count: 5\r\nexport var _DYN_SPAN_ID1 = \"spanId\"; // Count: 5\r\nexport var _DYN_GET_DEFAULT_CONFIG = \"getDefaultConfig\"; // Count: 2\r\nexport var _DYN_TRACK_DEPENDENCY_DAT2 = \"trackDependencyDataInternal\"; // Count: 4\r\nexport var _DYN_INCLUDE_CORRELATION_3 = \"includeCorrelationHeaders\"; // Count: 4\r\nexport var _DYN_CAN_INCLUDE_CORRELAT4 = \"canIncludeCorrelationHeader\"; // Count: 2\r\nexport var _DYN_GET_ABSOLUTE_URL = \"getAbsoluteUrl\"; // Count: 3\r\nexport var _DYN_HEADERS = \"headers\"; // Count: 6\r\nexport var _DYN_REQUEST_HEADERS = \"requestHeaders\"; // Count: 13\r\nexport var _DYN_APP_ID = \"appId\"; // Count: 5\r\nexport var _DYN_SET_REQUEST_HEADER = \"setRequestHeader\"; // Count: 3\r\nexport var _DYN_DISTRIBUTED_TRACING_5 = \"distributedTracingMode\"; // Count: 3\r\nexport var _DYN_START_TIME = \"startTime\"; // Count: 6\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 6\r\nexport var _DYN_ENABLE_REQUEST_HEADE6 = \"enableRequestHeaderTracking\"; // Count: 2\r\nexport var _DYN_ENABLE_AJAX_ERROR_ST7 = \"enableAjaxErrorStatusText\"; // Count: 2\r\nexport var _DYN_ENABLE_AJAX_PERF_TRA8 = \"enableAjaxPerfTracking\"; // Count: 2\r\nexport var _DYN_MAX_AJAX_CALLS_PER_V9 = \"maxAjaxCallsPerView\"; // Count: 2\r\nexport var _DYN_ENABLE_RESPONSE_HEAD10 = \"enableResponseHeaderTracking\"; // Count: 2\r\nexport var _DYN_EXCLUDE_REQUEST_FROM11 = \"excludeRequestFromAutoTrackingPatterns\"; // Count: 2\r\nexport var _DYN_ADD_REQUEST_CONTEXT = \"addRequestContext\"; // Count: 2\r\nexport var _DYN_DISABLE_AJAX_TRACKIN12 = \"disableAjaxTracking\"; // Count: 2\r\nexport var _DYN_DISABLE_FETCH_TRACKI13 = \"disableFetchTracking\"; // Count: 2\r\nexport var _DYN_STATUS = \"status\"; // Count: 10\r\nexport var _DYN_STATUS_TEXT = \"statusText\"; // Count: 8\r\nexport var _DYN_HEADER_MAP = \"headerMap\"; // Count: 8\r\nexport var _DYN_OPEN_DONE = \"openDone\"; // Count: 3\r\nexport var _DYN_SEND_DONE = \"sendDone\"; // Count: 3\r\nexport var _DYN_REQUEST_SENT_TIME = \"requestSentTime\"; // Count: 9\r\nexport var _DYN_ABORT_DONE = \"abortDone\"; // Count: 3\r\nexport var _DYN_GET_TRACE_ID = \"getTraceId\"; // Count: 3\r\nexport var _DYN_GET_TRACE_FLAGS = \"getTraceFlags\"; // Count: 3\r\nexport var _DYN_METHOD = \"method\"; // Count: 10\r\nexport var _DYN_ERROR_STATUS_TEXT = \"errorStatusText\"; // Count: 3\r\nexport var _DYN_STATE_CHANGE_ATTACHE14 = \"stateChangeAttached\"; // Count: 2\r\nexport var _DYN_RESPONSE_TEXT = \"responseText\"; // Count: 5\r\nexport var _DYN_RESPONSE_FINISHED_TI15 = \"responseFinishedTime\"; // Count: 7\r\nexport var _DYN__CREATE_TRACK_ITEM = \"CreateTrackItem\"; // Count: 3\r\nexport var _DYN_RESPONSE = \"response\"; // Count: 4\r\nexport var _DYN_GET_ALL_RESPONSE_HEA16 = \"getAllResponseHeaders\"; // Count: 2\r\nexport var _DYN_GET_PART_APROPS = \"getPartAProps\"; // Count: 3\r\nexport var _DYN_GET_CORRELATION_CONT17 = \"getCorrelationContext\"; // Count: 2\r\nexport var _DYN_PERF_MARK = \"perfMark\"; // Count: 4\r\nexport var _DYN_AJAX_PERF_LOOKUP_DEL18 = \"ajaxPerfLookupDelay\"; // Count: 2\r\nexport var _DYN_NAME = \"name\"; // Count: 6\r\nexport var _DYN_PERF_TIMING = \"perfTiming\"; // Count: 3\r\nexport var _DYN_AJAX_DIAGNOSTICS_MES19 = \"ajaxDiagnosticsMessage\"; // Count: 3\r\nexport var _DYN_CORRELATION_CONTEXT = \"correlationContext\"; // Count: 3\r\nexport var _DYN_AJAX_TOTAL_DURATION = \"ajaxTotalDuration\"; // Count: 3\r\nexport var _DYN_EVENT_TRACE_CTX = \"eventTraceCtx\"; // Count: 3\r\n//# sourceMappingURL=__DynamicConstants.js.map","import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n \"use strict\";\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n\n _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n };\n\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return generator._invoke = function (innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }(innerFn, self, context), generator;\n }\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n exports.wrap = wrap;\n var ContinueSentinel = {};\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {}\n\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n\n reject(record.arg);\n }\n\n var previousPromise;\n\n this._invoke = function (method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n };\n }\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (undefined === method) {\n if (context.delegate = null, \"throw\" === context.method) {\n if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n\n return next.value = undefined, next.done = !0, next;\n };\n\n return next.next = next;\n }\n }\n\n return {\n next: doneResult\n };\n }\n\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, \"constructor\", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n }\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}","export const SESSION_ID_KEY = \"utp.session.id\"\r\nexport const LAST_ACTIVITY_TIME = \"utp.last.activity.time\"\r\nexport const PAGE_ID_KEY = \"utp.page.id\"\r\nexport const PAGE_NAME_KEY = \"utp.page.name\"\r\nexport const MAX_INACTIVITY_DURATION = 900000\r\nexport const ONE_SECOND_TIME_OUT = 1000\r\nexport const X_CORRELATION_ID = \"X-CorrelationId\"\r\nexport const ACTIVITY_EVENTS = [\r\n 'mousedown', 'mousemove', 'keydown',\r\n 'scroll', 'touchstart',\"keypress\",\"DOMMouseScroll\",\"mousewheel\",\"touchmove\",\"MSPointerMove\"\r\n];\r\nexport const CORRELATION_EXCLUDED_DOMAINS = [\r\n \"*.blob.core.windows.net\", \r\n \"*.blob.core.chinacloudapi.cn\",\r\n \"*.blob.core.cloudapi.de\",\r\n \"*.blob.core.usgovcloudapi.net\"];\r\n \r\nexport const TOTAL_TABS_KEY = \"utp.total.tabs\";\r\nexport const SDK_SERVICE_ENDPOINT = \"https://usageprodtrafficmanager.trafficmanager.net\";\r\nexport const ValueNotAvailable = \"NA\";\r\nexport const DISABLED_PROPERTY_NAME = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nexport const ConstantStrings = {\r\n UsageErrorKeys:{\r\n UserContextNotSet: 'UserContextNotSet',\r\n UserAccountIdMustBeGUID: 'UserAccountIdMustBeGUID',\r\n UsageSessionIdMustBeGUID: 'UsageSessionIdMustBeGUID',\r\n UsagePageTrackingIdMustBeGUID: 'UsagePageTrackingIdMustBeGUID',\r\n FeatureNameIsMandatory: 'FeatureNameIsMandatory',\r\n ActionTypeIsMandatory: 'ActionTypeIsMandatory',\r\n ActionNameIsMandatory: 'ActionNameIsMandatory',\r\n UsageSessionTrackingIdIsMandatory: 'UsageSessionTrackingIdIsMandatory',\r\n UsagePageTrackingIdIsMandatory: 'UsagePageTrackingIdIsMandatory',\r\n CorrelationIdNotExists: 'CorrelationIdNotExists',\r\n ComponentIdIsManadatory: 'ComponentIdIsManadatoryAsPartOfTelemetryInitializers',\r\n ComponentIdShouldBeValidGuid: 'ComponentIdShouldBeValidGuidAsPerServiceTreeMetaData' \r\n },\r\n Configuration:{\r\n FeatureUsageEventV2TemplateType: 'Internal.FeatureUsageEventV2'\r\n }\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { arrForEach, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar strEmpty = \"\";\r\nexport function stringToBoolOrDefault(str, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n if (str === undefined || str === null) {\r\n return defaultValue;\r\n }\r\n return str.toString()[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === \"true\";\r\n}\r\n/**\r\n * Convert ms to c# time span format\r\n */\r\nexport function msToTimeSpan(totalms) {\r\n if (isNaN(totalms) || totalms < 0) {\r\n totalms = 0;\r\n }\r\n totalms = Math.round(totalms);\r\n var ms = strEmpty + totalms % 1000;\r\n var sec = strEmpty + Math.floor(totalms / 1000) % 60;\r\n var min = strEmpty + Math.floor(totalms / (1000 * 60)) % 60;\r\n var hour = strEmpty + Math.floor(totalms / (1000 * 60 * 60)) % 24;\r\n var days = Math.floor(totalms / (1000 * 60 * 60 * 24));\r\n ms = ms[_DYN_LENGTH /* @min:%2elength */] === 1 ? \"00\" + ms : ms[_DYN_LENGTH /* @min:%2elength */] === 2 ? \"0\" + ms : ms;\r\n sec = sec[_DYN_LENGTH /* @min:%2elength */] < 2 ? \"0\" + sec : sec;\r\n min = min[_DYN_LENGTH /* @min:%2elength */] < 2 ? \"0\" + min : min;\r\n hour = hour[_DYN_LENGTH /* @min:%2elength */] < 2 ? \"0\" + hour : hour;\r\n return (days > 0 ? days + \".\" : strEmpty) + hour + \":\" + min + \":\" + sec + \".\" + ms;\r\n}\r\nexport function getExtensionByName(extensions, identifier) {\r\n var extension = null;\r\n arrForEach(extensions, function (value) {\r\n if (value.identifier === identifier) {\r\n extension = value;\r\n return -1;\r\n }\r\n });\r\n return extension;\r\n}\r\nexport function isCrossOriginError(message, url, lineNumber, columnNumber, error) {\r\n return !error && isString(message) && (message === \"Script error.\" || message === \"Script error\");\r\n}\r\n//# sourceMappingURL=HelperFuncs.js.map","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreHttp from \"@azure/core-http\";\n\nexport const BlobServiceProperties: coreHttp.CompositeMapper = {\n serializedName: \"BlobServiceProperties\",\n xmlName: \"StorageServiceProperties\",\n type: {\n name: \"Composite\",\n className: \"BlobServiceProperties\",\n modelProperties: {\n blobAnalyticsLogging: {\n serializedName: \"Logging\",\n xmlName: \"Logging\",\n type: {\n name: \"Composite\",\n className: \"Logging\"\n }\n },\n hourMetrics: {\n serializedName: \"HourMetrics\",\n xmlName: \"HourMetrics\",\n type: {\n name: \"Composite\",\n className: \"Metrics\"\n }\n },\n minuteMetrics: {\n serializedName: \"MinuteMetrics\",\n xmlName: \"MinuteMetrics\",\n type: {\n name: \"Composite\",\n className: \"Metrics\"\n }\n },\n cors: {\n serializedName: \"Cors\",\n xmlName: \"Cors\",\n xmlIsWrapped: true,\n xmlElementName: \"CorsRule\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"CorsRule\"\n }\n }\n }\n },\n defaultServiceVersion: {\n serializedName: \"DefaultServiceVersion\",\n xmlName: \"DefaultServiceVersion\",\n type: {\n name: \"String\"\n }\n },\n deleteRetentionPolicy: {\n serializedName: \"DeleteRetentionPolicy\",\n xmlName: \"DeleteRetentionPolicy\",\n type: {\n name: \"Composite\",\n className: \"RetentionPolicy\"\n }\n },\n staticWebsite: {\n serializedName: \"StaticWebsite\",\n xmlName: \"StaticWebsite\",\n type: {\n name: \"Composite\",\n className: \"StaticWebsite\"\n }\n }\n }\n }\n};\n\nexport const Logging: coreHttp.CompositeMapper = {\n serializedName: \"Logging\",\n type: {\n name: \"Composite\",\n className: \"Logging\",\n modelProperties: {\n version: {\n serializedName: \"Version\",\n required: true,\n xmlName: \"Version\",\n type: {\n name: \"String\"\n }\n },\n deleteProperty: {\n serializedName: \"Delete\",\n required: true,\n xmlName: \"Delete\",\n type: {\n name: \"Boolean\"\n }\n },\n read: {\n serializedName: \"Read\",\n required: true,\n xmlName: \"Read\",\n type: {\n name: \"Boolean\"\n }\n },\n write: {\n serializedName: \"Write\",\n required: true,\n xmlName: \"Write\",\n type: {\n name: \"Boolean\"\n }\n },\n retentionPolicy: {\n serializedName: \"RetentionPolicy\",\n xmlName: \"RetentionPolicy\",\n type: {\n name: \"Composite\",\n className: \"RetentionPolicy\"\n }\n }\n }\n }\n};\n\nexport const RetentionPolicy: coreHttp.CompositeMapper = {\n serializedName: \"RetentionPolicy\",\n type: {\n name: \"Composite\",\n className: \"RetentionPolicy\",\n modelProperties: {\n enabled: {\n serializedName: \"Enabled\",\n required: true,\n xmlName: \"Enabled\",\n type: {\n name: \"Boolean\"\n }\n },\n days: {\n constraints: {\n InclusiveMinimum: 1\n },\n serializedName: \"Days\",\n xmlName: \"Days\",\n type: {\n name: \"Number\"\n }\n }\n }\n }\n};\n\nexport const Metrics: coreHttp.CompositeMapper = {\n serializedName: \"Metrics\",\n type: {\n name: \"Composite\",\n className: \"Metrics\",\n modelProperties: {\n version: {\n serializedName: \"Version\",\n xmlName: \"Version\",\n type: {\n name: \"String\"\n }\n },\n enabled: {\n serializedName: \"Enabled\",\n required: true,\n xmlName: \"Enabled\",\n type: {\n name: \"Boolean\"\n }\n },\n includeAPIs: {\n serializedName: \"IncludeAPIs\",\n xmlName: \"IncludeAPIs\",\n type: {\n name: \"Boolean\"\n }\n },\n retentionPolicy: {\n serializedName: \"RetentionPolicy\",\n xmlName: \"RetentionPolicy\",\n type: {\n name: \"Composite\",\n className: \"RetentionPolicy\"\n }\n }\n }\n }\n};\n\nexport const CorsRule: coreHttp.CompositeMapper = {\n serializedName: \"CorsRule\",\n type: {\n name: \"Composite\",\n className: \"CorsRule\",\n modelProperties: {\n allowedOrigins: {\n serializedName: \"AllowedOrigins\",\n required: true,\n xmlName: \"AllowedOrigins\",\n type: {\n name: \"String\"\n }\n },\n allowedMethods: {\n serializedName: \"AllowedMethods\",\n required: true,\n xmlName: \"AllowedMethods\",\n type: {\n name: \"String\"\n }\n },\n allowedHeaders: {\n serializedName: \"AllowedHeaders\",\n required: true,\n xmlName: \"AllowedHeaders\",\n type: {\n name: \"String\"\n }\n },\n exposedHeaders: {\n serializedName: \"ExposedHeaders\",\n required: true,\n xmlName: \"ExposedHeaders\",\n type: {\n name: \"String\"\n }\n },\n maxAgeInSeconds: {\n constraints: {\n InclusiveMinimum: 0\n },\n serializedName: \"MaxAgeInSeconds\",\n required: true,\n xmlName: \"MaxAgeInSeconds\",\n type: {\n name: \"Number\"\n }\n }\n }\n }\n};\n\nexport const StaticWebsite: coreHttp.CompositeMapper = {\n serializedName: \"StaticWebsite\",\n type: {\n name: \"Composite\",\n className: \"StaticWebsite\",\n modelProperties: {\n enabled: {\n serializedName: \"Enabled\",\n required: true,\n xmlName: \"Enabled\",\n type: {\n name: \"Boolean\"\n }\n },\n indexDocument: {\n serializedName: \"IndexDocument\",\n xmlName: \"IndexDocument\",\n type: {\n name: \"String\"\n }\n },\n errorDocument404Path: {\n serializedName: \"ErrorDocument404Path\",\n xmlName: \"ErrorDocument404Path\",\n type: {\n name: \"String\"\n }\n },\n defaultIndexDocumentPath: {\n serializedName: \"DefaultIndexDocumentPath\",\n xmlName: \"DefaultIndexDocumentPath\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const StorageError: coreHttp.CompositeMapper = {\n serializedName: \"StorageError\",\n type: {\n name: \"Composite\",\n className: \"StorageError\",\n modelProperties: {\n message: {\n serializedName: \"Message\",\n xmlName: \"Message\",\n type: {\n name: \"String\"\n }\n },\n code: {\n serializedName: \"Code\",\n xmlName: \"Code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobServiceStatistics: coreHttp.CompositeMapper = {\n serializedName: \"BlobServiceStatistics\",\n xmlName: \"StorageServiceStats\",\n type: {\n name: \"Composite\",\n className: \"BlobServiceStatistics\",\n modelProperties: {\n geoReplication: {\n serializedName: \"GeoReplication\",\n xmlName: \"GeoReplication\",\n type: {\n name: \"Composite\",\n className: \"GeoReplication\"\n }\n }\n }\n }\n};\n\nexport const GeoReplication: coreHttp.CompositeMapper = {\n serializedName: \"GeoReplication\",\n type: {\n name: \"Composite\",\n className: \"GeoReplication\",\n modelProperties: {\n status: {\n serializedName: \"Status\",\n required: true,\n xmlName: \"Status\",\n type: {\n name: \"Enum\",\n allowedValues: [\"live\", \"bootstrap\", \"unavailable\"]\n }\n },\n lastSyncOn: {\n serializedName: \"LastSyncTime\",\n required: true,\n xmlName: \"LastSyncTime\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const ListContainersSegmentResponse: coreHttp.CompositeMapper = {\n serializedName: \"ListContainersSegmentResponse\",\n xmlName: \"EnumerationResults\",\n type: {\n name: \"Composite\",\n className: \"ListContainersSegmentResponse\",\n modelProperties: {\n serviceEndpoint: {\n serializedName: \"ServiceEndpoint\",\n required: true,\n xmlName: \"ServiceEndpoint\",\n xmlIsAttribute: true,\n type: {\n name: \"String\"\n }\n },\n prefix: {\n serializedName: \"Prefix\",\n xmlName: \"Prefix\",\n type: {\n name: \"String\"\n }\n },\n marker: {\n serializedName: \"Marker\",\n xmlName: \"Marker\",\n type: {\n name: \"String\"\n }\n },\n maxPageSize: {\n serializedName: \"MaxResults\",\n xmlName: \"MaxResults\",\n type: {\n name: \"Number\"\n }\n },\n containerItems: {\n serializedName: \"ContainerItems\",\n required: true,\n xmlName: \"Containers\",\n xmlIsWrapped: true,\n xmlElementName: \"Container\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ContainerItem\"\n }\n }\n }\n },\n continuationToken: {\n serializedName: \"NextMarker\",\n xmlName: \"NextMarker\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerItem: coreHttp.CompositeMapper = {\n serializedName: \"ContainerItem\",\n xmlName: \"Container\",\n type: {\n name: \"Composite\",\n className: \"ContainerItem\",\n modelProperties: {\n name: {\n serializedName: \"Name\",\n required: true,\n xmlName: \"Name\",\n type: {\n name: \"String\"\n }\n },\n deleted: {\n serializedName: \"Deleted\",\n xmlName: \"Deleted\",\n type: {\n name: \"Boolean\"\n }\n },\n version: {\n serializedName: \"Version\",\n xmlName: \"Version\",\n type: {\n name: \"String\"\n }\n },\n properties: {\n serializedName: \"Properties\",\n xmlName: \"Properties\",\n type: {\n name: \"Composite\",\n className: \"ContainerProperties\"\n }\n },\n metadata: {\n serializedName: \"Metadata\",\n xmlName: \"Metadata\",\n type: {\n name: \"Dictionary\",\n value: { type: { name: \"String\" } }\n }\n }\n }\n }\n};\n\nexport const ContainerProperties: coreHttp.CompositeMapper = {\n serializedName: \"ContainerProperties\",\n type: {\n name: \"Composite\",\n className: \"ContainerProperties\",\n modelProperties: {\n lastModified: {\n serializedName: \"Last-Modified\",\n required: true,\n xmlName: \"Last-Modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"Etag\",\n required: true,\n xmlName: \"Etag\",\n type: {\n name: \"String\"\n }\n },\n leaseStatus: {\n serializedName: \"LeaseStatus\",\n xmlName: \"LeaseStatus\",\n type: {\n name: \"Enum\",\n allowedValues: [\"locked\", \"unlocked\"]\n }\n },\n leaseState: {\n serializedName: \"LeaseState\",\n xmlName: \"LeaseState\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"available\",\n \"leased\",\n \"expired\",\n \"breaking\",\n \"broken\"\n ]\n }\n },\n leaseDuration: {\n serializedName: \"LeaseDuration\",\n xmlName: \"LeaseDuration\",\n type: {\n name: \"Enum\",\n allowedValues: [\"infinite\", \"fixed\"]\n }\n },\n publicAccess: {\n serializedName: \"PublicAccess\",\n xmlName: \"PublicAccess\",\n type: {\n name: \"Enum\",\n allowedValues: [\"container\", \"blob\"]\n }\n },\n hasImmutabilityPolicy: {\n serializedName: \"HasImmutabilityPolicy\",\n xmlName: \"HasImmutabilityPolicy\",\n type: {\n name: \"Boolean\"\n }\n },\n hasLegalHold: {\n serializedName: \"HasLegalHold\",\n xmlName: \"HasLegalHold\",\n type: {\n name: \"Boolean\"\n }\n },\n defaultEncryptionScope: {\n serializedName: \"DefaultEncryptionScope\",\n xmlName: \"DefaultEncryptionScope\",\n type: {\n name: \"String\"\n }\n },\n preventEncryptionScopeOverride: {\n serializedName: \"DenyEncryptionScopeOverride\",\n xmlName: \"DenyEncryptionScopeOverride\",\n type: {\n name: \"Boolean\"\n }\n },\n deletedOn: {\n serializedName: \"DeletedTime\",\n xmlName: \"DeletedTime\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n remainingRetentionDays: {\n serializedName: \"RemainingRetentionDays\",\n xmlName: \"RemainingRetentionDays\",\n type: {\n name: \"Number\"\n }\n },\n isImmutableStorageWithVersioningEnabled: {\n serializedName: \"ImmutableStorageWithVersioningEnabled\",\n xmlName: \"ImmutableStorageWithVersioningEnabled\",\n type: {\n name: \"Boolean\"\n }\n }\n }\n }\n};\n\nexport const KeyInfo: coreHttp.CompositeMapper = {\n serializedName: \"KeyInfo\",\n type: {\n name: \"Composite\",\n className: \"KeyInfo\",\n modelProperties: {\n startsOn: {\n serializedName: \"Start\",\n required: true,\n xmlName: \"Start\",\n type: {\n name: \"String\"\n }\n },\n expiresOn: {\n serializedName: \"Expiry\",\n required: true,\n xmlName: \"Expiry\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const UserDelegationKey: coreHttp.CompositeMapper = {\n serializedName: \"UserDelegationKey\",\n type: {\n name: \"Composite\",\n className: \"UserDelegationKey\",\n modelProperties: {\n signedObjectId: {\n serializedName: \"SignedOid\",\n required: true,\n xmlName: \"SignedOid\",\n type: {\n name: \"String\"\n }\n },\n signedTenantId: {\n serializedName: \"SignedTid\",\n required: true,\n xmlName: \"SignedTid\",\n type: {\n name: \"String\"\n }\n },\n signedStartsOn: {\n serializedName: \"SignedStart\",\n required: true,\n xmlName: \"SignedStart\",\n type: {\n name: \"String\"\n }\n },\n signedExpiresOn: {\n serializedName: \"SignedExpiry\",\n required: true,\n xmlName: \"SignedExpiry\",\n type: {\n name: \"String\"\n }\n },\n signedService: {\n serializedName: \"SignedService\",\n required: true,\n xmlName: \"SignedService\",\n type: {\n name: \"String\"\n }\n },\n signedVersion: {\n serializedName: \"SignedVersion\",\n required: true,\n xmlName: \"SignedVersion\",\n type: {\n name: \"String\"\n }\n },\n value: {\n serializedName: \"Value\",\n required: true,\n xmlName: \"Value\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const FilterBlobSegment: coreHttp.CompositeMapper = {\n serializedName: \"FilterBlobSegment\",\n xmlName: \"EnumerationResults\",\n type: {\n name: \"Composite\",\n className: \"FilterBlobSegment\",\n modelProperties: {\n serviceEndpoint: {\n serializedName: \"ServiceEndpoint\",\n required: true,\n xmlName: \"ServiceEndpoint\",\n xmlIsAttribute: true,\n type: {\n name: \"String\"\n }\n },\n where: {\n serializedName: \"Where\",\n required: true,\n xmlName: \"Where\",\n type: {\n name: \"String\"\n }\n },\n blobs: {\n serializedName: \"Blobs\",\n required: true,\n xmlName: \"Blobs\",\n xmlIsWrapped: true,\n xmlElementName: \"Blob\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"FilterBlobItem\"\n }\n }\n }\n },\n continuationToken: {\n serializedName: \"NextMarker\",\n xmlName: \"NextMarker\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const FilterBlobItem: coreHttp.CompositeMapper = {\n serializedName: \"FilterBlobItem\",\n xmlName: \"Blob\",\n type: {\n name: \"Composite\",\n className: \"FilterBlobItem\",\n modelProperties: {\n name: {\n serializedName: \"Name\",\n required: true,\n xmlName: \"Name\",\n type: {\n name: \"String\"\n }\n },\n containerName: {\n serializedName: \"ContainerName\",\n required: true,\n xmlName: \"ContainerName\",\n type: {\n name: \"String\"\n }\n },\n tags: {\n serializedName: \"Tags\",\n xmlName: \"Tags\",\n type: {\n name: \"Composite\",\n className: \"BlobTags\"\n }\n }\n }\n }\n};\n\nexport const BlobTags: coreHttp.CompositeMapper = {\n serializedName: \"BlobTags\",\n xmlName: \"Tags\",\n type: {\n name: \"Composite\",\n className: \"BlobTags\",\n modelProperties: {\n blobTagSet: {\n serializedName: \"BlobTagSet\",\n required: true,\n xmlName: \"TagSet\",\n xmlIsWrapped: true,\n xmlElementName: \"Tag\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"BlobTag\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const BlobTag: coreHttp.CompositeMapper = {\n serializedName: \"BlobTag\",\n xmlName: \"Tag\",\n type: {\n name: \"Composite\",\n className: \"BlobTag\",\n modelProperties: {\n key: {\n serializedName: \"Key\",\n required: true,\n xmlName: \"Key\",\n type: {\n name: \"String\"\n }\n },\n value: {\n serializedName: \"Value\",\n required: true,\n xmlName: \"Value\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const SignedIdentifier: coreHttp.CompositeMapper = {\n serializedName: \"SignedIdentifier\",\n xmlName: \"SignedIdentifier\",\n type: {\n name: \"Composite\",\n className: \"SignedIdentifier\",\n modelProperties: {\n id: {\n serializedName: \"Id\",\n required: true,\n xmlName: \"Id\",\n type: {\n name: \"String\"\n }\n },\n accessPolicy: {\n serializedName: \"AccessPolicy\",\n xmlName: \"AccessPolicy\",\n type: {\n name: \"Composite\",\n className: \"AccessPolicy\"\n }\n }\n }\n }\n};\n\nexport const AccessPolicy: coreHttp.CompositeMapper = {\n serializedName: \"AccessPolicy\",\n type: {\n name: \"Composite\",\n className: \"AccessPolicy\",\n modelProperties: {\n startsOn: {\n serializedName: \"Start\",\n xmlName: \"Start\",\n type: {\n name: \"String\"\n }\n },\n expiresOn: {\n serializedName: \"Expiry\",\n xmlName: \"Expiry\",\n type: {\n name: \"String\"\n }\n },\n permissions: {\n serializedName: \"Permission\",\n xmlName: \"Permission\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ListBlobsFlatSegmentResponse: coreHttp.CompositeMapper = {\n serializedName: \"ListBlobsFlatSegmentResponse\",\n xmlName: \"EnumerationResults\",\n type: {\n name: \"Composite\",\n className: \"ListBlobsFlatSegmentResponse\",\n modelProperties: {\n serviceEndpoint: {\n serializedName: \"ServiceEndpoint\",\n required: true,\n xmlName: \"ServiceEndpoint\",\n xmlIsAttribute: true,\n type: {\n name: \"String\"\n }\n },\n containerName: {\n serializedName: \"ContainerName\",\n required: true,\n xmlName: \"ContainerName\",\n xmlIsAttribute: true,\n type: {\n name: \"String\"\n }\n },\n prefix: {\n serializedName: \"Prefix\",\n xmlName: \"Prefix\",\n type: {\n name: \"String\"\n }\n },\n marker: {\n serializedName: \"Marker\",\n xmlName: \"Marker\",\n type: {\n name: \"String\"\n }\n },\n maxPageSize: {\n serializedName: \"MaxResults\",\n xmlName: \"MaxResults\",\n type: {\n name: \"Number\"\n }\n },\n segment: {\n serializedName: \"Segment\",\n xmlName: \"Blobs\",\n type: {\n name: \"Composite\",\n className: \"BlobFlatListSegment\"\n }\n },\n continuationToken: {\n serializedName: \"NextMarker\",\n xmlName: \"NextMarker\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobFlatListSegment: coreHttp.CompositeMapper = {\n serializedName: \"BlobFlatListSegment\",\n xmlName: \"Blobs\",\n type: {\n name: \"Composite\",\n className: \"BlobFlatListSegment\",\n modelProperties: {\n blobItems: {\n serializedName: \"BlobItems\",\n required: true,\n xmlName: \"BlobItems\",\n xmlElementName: \"Blob\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"BlobItemInternal\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const BlobItemInternal: coreHttp.CompositeMapper = {\n serializedName: \"BlobItemInternal\",\n xmlName: \"Blob\",\n type: {\n name: \"Composite\",\n className: \"BlobItemInternal\",\n modelProperties: {\n name: {\n serializedName: \"Name\",\n xmlName: \"Name\",\n type: {\n name: \"Composite\",\n className: \"BlobName\"\n }\n },\n deleted: {\n serializedName: \"Deleted\",\n required: true,\n xmlName: \"Deleted\",\n type: {\n name: \"Boolean\"\n }\n },\n snapshot: {\n serializedName: \"Snapshot\",\n required: true,\n xmlName: \"Snapshot\",\n type: {\n name: \"String\"\n }\n },\n versionId: {\n serializedName: \"VersionId\",\n xmlName: \"VersionId\",\n type: {\n name: \"String\"\n }\n },\n isCurrentVersion: {\n serializedName: \"IsCurrentVersion\",\n xmlName: \"IsCurrentVersion\",\n type: {\n name: \"Boolean\"\n }\n },\n properties: {\n serializedName: \"Properties\",\n xmlName: \"Properties\",\n type: {\n name: \"Composite\",\n className: \"BlobPropertiesInternal\"\n }\n },\n metadata: {\n serializedName: \"Metadata\",\n xmlName: \"Metadata\",\n type: {\n name: \"Dictionary\",\n value: { type: { name: \"String\" } }\n }\n },\n blobTags: {\n serializedName: \"BlobTags\",\n xmlName: \"Tags\",\n type: {\n name: \"Composite\",\n className: \"BlobTags\"\n }\n },\n objectReplicationMetadata: {\n serializedName: \"ObjectReplicationMetadata\",\n xmlName: \"OrMetadata\",\n type: {\n name: \"Dictionary\",\n value: { type: { name: \"String\" } }\n }\n },\n hasVersionsOnly: {\n serializedName: \"HasVersionsOnly\",\n xmlName: \"HasVersionsOnly\",\n type: {\n name: \"Boolean\"\n }\n }\n }\n }\n};\n\nexport const BlobName: coreHttp.CompositeMapper = {\n serializedName: \"BlobName\",\n type: {\n name: \"Composite\",\n className: \"BlobName\",\n modelProperties: {\n encoded: {\n serializedName: \"Encoded\",\n xmlName: \"Encoded\",\n xmlIsAttribute: true,\n type: {\n name: \"Boolean\"\n }\n },\n content: {\n serializedName: \"content\",\n xmlName: \"content\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobPropertiesInternal: coreHttp.CompositeMapper = {\n serializedName: \"BlobPropertiesInternal\",\n xmlName: \"Properties\",\n type: {\n name: \"Composite\",\n className: \"BlobPropertiesInternal\",\n modelProperties: {\n createdOn: {\n serializedName: \"Creation-Time\",\n xmlName: \"Creation-Time\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n lastModified: {\n serializedName: \"Last-Modified\",\n required: true,\n xmlName: \"Last-Modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"Etag\",\n required: true,\n xmlName: \"Etag\",\n type: {\n name: \"String\"\n }\n },\n contentLength: {\n serializedName: \"Content-Length\",\n xmlName: \"Content-Length\",\n type: {\n name: \"Number\"\n }\n },\n contentType: {\n serializedName: \"Content-Type\",\n xmlName: \"Content-Type\",\n type: {\n name: \"String\"\n }\n },\n contentEncoding: {\n serializedName: \"Content-Encoding\",\n xmlName: \"Content-Encoding\",\n type: {\n name: \"String\"\n }\n },\n contentLanguage: {\n serializedName: \"Content-Language\",\n xmlName: \"Content-Language\",\n type: {\n name: \"String\"\n }\n },\n contentMD5: {\n serializedName: \"Content-MD5\",\n xmlName: \"Content-MD5\",\n type: {\n name: \"ByteArray\"\n }\n },\n contentDisposition: {\n serializedName: \"Content-Disposition\",\n xmlName: \"Content-Disposition\",\n type: {\n name: \"String\"\n }\n },\n cacheControl: {\n serializedName: \"Cache-Control\",\n xmlName: \"Cache-Control\",\n type: {\n name: \"String\"\n }\n },\n blobSequenceNumber: {\n serializedName: \"x-ms-blob-sequence-number\",\n xmlName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n },\n blobType: {\n serializedName: \"BlobType\",\n xmlName: \"BlobType\",\n type: {\n name: \"Enum\",\n allowedValues: [\"BlockBlob\", \"PageBlob\", \"AppendBlob\"]\n }\n },\n leaseStatus: {\n serializedName: \"LeaseStatus\",\n xmlName: \"LeaseStatus\",\n type: {\n name: \"Enum\",\n allowedValues: [\"locked\", \"unlocked\"]\n }\n },\n leaseState: {\n serializedName: \"LeaseState\",\n xmlName: \"LeaseState\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"available\",\n \"leased\",\n \"expired\",\n \"breaking\",\n \"broken\"\n ]\n }\n },\n leaseDuration: {\n serializedName: \"LeaseDuration\",\n xmlName: \"LeaseDuration\",\n type: {\n name: \"Enum\",\n allowedValues: [\"infinite\", \"fixed\"]\n }\n },\n copyId: {\n serializedName: \"CopyId\",\n xmlName: \"CopyId\",\n type: {\n name: \"String\"\n }\n },\n copyStatus: {\n serializedName: \"CopyStatus\",\n xmlName: \"CopyStatus\",\n type: {\n name: \"Enum\",\n allowedValues: [\"pending\", \"success\", \"aborted\", \"failed\"]\n }\n },\n copySource: {\n serializedName: \"CopySource\",\n xmlName: \"CopySource\",\n type: {\n name: \"String\"\n }\n },\n copyProgress: {\n serializedName: \"CopyProgress\",\n xmlName: \"CopyProgress\",\n type: {\n name: \"String\"\n }\n },\n copyCompletedOn: {\n serializedName: \"CopyCompletionTime\",\n xmlName: \"CopyCompletionTime\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n copyStatusDescription: {\n serializedName: \"CopyStatusDescription\",\n xmlName: \"CopyStatusDescription\",\n type: {\n name: \"String\"\n }\n },\n serverEncrypted: {\n serializedName: \"ServerEncrypted\",\n xmlName: \"ServerEncrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n incrementalCopy: {\n serializedName: \"IncrementalCopy\",\n xmlName: \"IncrementalCopy\",\n type: {\n name: \"Boolean\"\n }\n },\n destinationSnapshot: {\n serializedName: \"DestinationSnapshot\",\n xmlName: \"DestinationSnapshot\",\n type: {\n name: \"String\"\n }\n },\n deletedOn: {\n serializedName: \"DeletedTime\",\n xmlName: \"DeletedTime\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n remainingRetentionDays: {\n serializedName: \"RemainingRetentionDays\",\n xmlName: \"RemainingRetentionDays\",\n type: {\n name: \"Number\"\n }\n },\n accessTier: {\n serializedName: \"AccessTier\",\n xmlName: \"AccessTier\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"P4\",\n \"P6\",\n \"P10\",\n \"P15\",\n \"P20\",\n \"P30\",\n \"P40\",\n \"P50\",\n \"P60\",\n \"P70\",\n \"P80\",\n \"Hot\",\n \"Cool\",\n \"Archive\"\n ]\n }\n },\n accessTierInferred: {\n serializedName: \"AccessTierInferred\",\n xmlName: \"AccessTierInferred\",\n type: {\n name: \"Boolean\"\n }\n },\n archiveStatus: {\n serializedName: \"ArchiveStatus\",\n xmlName: \"ArchiveStatus\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"rehydrate-pending-to-hot\",\n \"rehydrate-pending-to-cool\"\n ]\n }\n },\n customerProvidedKeySha256: {\n serializedName: \"CustomerProvidedKeySha256\",\n xmlName: \"CustomerProvidedKeySha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"EncryptionScope\",\n xmlName: \"EncryptionScope\",\n type: {\n name: \"String\"\n }\n },\n accessTierChangedOn: {\n serializedName: \"AccessTierChangeTime\",\n xmlName: \"AccessTierChangeTime\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n tagCount: {\n serializedName: \"TagCount\",\n xmlName: \"TagCount\",\n type: {\n name: \"Number\"\n }\n },\n expiresOn: {\n serializedName: \"Expiry-Time\",\n xmlName: \"Expiry-Time\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isSealed: {\n serializedName: \"Sealed\",\n xmlName: \"Sealed\",\n type: {\n name: \"Boolean\"\n }\n },\n rehydratePriority: {\n serializedName: \"RehydratePriority\",\n xmlName: \"RehydratePriority\",\n type: {\n name: \"Enum\",\n allowedValues: [\"High\", \"Standard\"]\n }\n },\n lastAccessedOn: {\n serializedName: \"LastAccessTime\",\n xmlName: \"LastAccessTime\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n immutabilityPolicyExpiresOn: {\n serializedName: \"ImmutabilityPolicyUntilDate\",\n xmlName: \"ImmutabilityPolicyUntilDate\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n immutabilityPolicyMode: {\n serializedName: \"ImmutabilityPolicyMode\",\n xmlName: \"ImmutabilityPolicyMode\",\n type: {\n name: \"Enum\",\n allowedValues: [\"Mutable\", \"Unlocked\", \"Locked\"]\n }\n },\n legalHold: {\n serializedName: \"LegalHold\",\n xmlName: \"LegalHold\",\n type: {\n name: \"Boolean\"\n }\n }\n }\n }\n};\n\nexport const ListBlobsHierarchySegmentResponse: coreHttp.CompositeMapper = {\n serializedName: \"ListBlobsHierarchySegmentResponse\",\n xmlName: \"EnumerationResults\",\n type: {\n name: \"Composite\",\n className: \"ListBlobsHierarchySegmentResponse\",\n modelProperties: {\n serviceEndpoint: {\n serializedName: \"ServiceEndpoint\",\n required: true,\n xmlName: \"ServiceEndpoint\",\n xmlIsAttribute: true,\n type: {\n name: \"String\"\n }\n },\n containerName: {\n serializedName: \"ContainerName\",\n required: true,\n xmlName: \"ContainerName\",\n xmlIsAttribute: true,\n type: {\n name: \"String\"\n }\n },\n prefix: {\n serializedName: \"Prefix\",\n xmlName: \"Prefix\",\n type: {\n name: \"String\"\n }\n },\n marker: {\n serializedName: \"Marker\",\n xmlName: \"Marker\",\n type: {\n name: \"String\"\n }\n },\n maxPageSize: {\n serializedName: \"MaxResults\",\n xmlName: \"MaxResults\",\n type: {\n name: \"Number\"\n }\n },\n delimiter: {\n serializedName: \"Delimiter\",\n xmlName: \"Delimiter\",\n type: {\n name: \"String\"\n }\n },\n segment: {\n serializedName: \"Segment\",\n xmlName: \"Blobs\",\n type: {\n name: \"Composite\",\n className: \"BlobHierarchyListSegment\"\n }\n },\n continuationToken: {\n serializedName: \"NextMarker\",\n xmlName: \"NextMarker\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobHierarchyListSegment: coreHttp.CompositeMapper = {\n serializedName: \"BlobHierarchyListSegment\",\n xmlName: \"Blobs\",\n type: {\n name: \"Composite\",\n className: \"BlobHierarchyListSegment\",\n modelProperties: {\n blobPrefixes: {\n serializedName: \"BlobPrefixes\",\n xmlName: \"BlobPrefixes\",\n xmlElementName: \"BlobPrefix\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"BlobPrefix\"\n }\n }\n }\n },\n blobItems: {\n serializedName: \"BlobItems\",\n required: true,\n xmlName: \"BlobItems\",\n xmlElementName: \"Blob\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"BlobItemInternal\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const BlobPrefix: coreHttp.CompositeMapper = {\n serializedName: \"BlobPrefix\",\n type: {\n name: \"Composite\",\n className: \"BlobPrefix\",\n modelProperties: {\n name: {\n serializedName: \"Name\",\n xmlName: \"Name\",\n type: {\n name: \"Composite\",\n className: \"BlobName\"\n }\n }\n }\n }\n};\n\nexport const BlockLookupList: coreHttp.CompositeMapper = {\n serializedName: \"BlockLookupList\",\n xmlName: \"BlockList\",\n type: {\n name: \"Composite\",\n className: \"BlockLookupList\",\n modelProperties: {\n committed: {\n serializedName: \"Committed\",\n xmlName: \"Committed\",\n xmlElementName: \"Committed\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\"\n }\n }\n }\n },\n uncommitted: {\n serializedName: \"Uncommitted\",\n xmlName: \"Uncommitted\",\n xmlElementName: \"Uncommitted\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\"\n }\n }\n }\n },\n latest: {\n serializedName: \"Latest\",\n xmlName: \"Latest\",\n xmlElementName: \"Latest\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const BlockList: coreHttp.CompositeMapper = {\n serializedName: \"BlockList\",\n type: {\n name: \"Composite\",\n className: \"BlockList\",\n modelProperties: {\n committedBlocks: {\n serializedName: \"CommittedBlocks\",\n xmlName: \"CommittedBlocks\",\n xmlIsWrapped: true,\n xmlElementName: \"Block\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"Block\"\n }\n }\n }\n },\n uncommittedBlocks: {\n serializedName: \"UncommittedBlocks\",\n xmlName: \"UncommittedBlocks\",\n xmlIsWrapped: true,\n xmlElementName: \"Block\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"Block\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const Block: coreHttp.CompositeMapper = {\n serializedName: \"Block\",\n type: {\n name: \"Composite\",\n className: \"Block\",\n modelProperties: {\n name: {\n serializedName: \"Name\",\n required: true,\n xmlName: \"Name\",\n type: {\n name: \"String\"\n }\n },\n size: {\n serializedName: \"Size\",\n required: true,\n xmlName: \"Size\",\n type: {\n name: \"Number\"\n }\n }\n }\n }\n};\n\nexport const PageList: coreHttp.CompositeMapper = {\n serializedName: \"PageList\",\n type: {\n name: \"Composite\",\n className: \"PageList\",\n modelProperties: {\n pageRange: {\n serializedName: \"PageRange\",\n xmlName: \"PageRange\",\n xmlElementName: \"PageRange\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"PageRange\"\n }\n }\n }\n },\n clearRange: {\n serializedName: \"ClearRange\",\n xmlName: \"ClearRange\",\n xmlElementName: \"ClearRange\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ClearRange\"\n }\n }\n }\n },\n continuationToken: {\n serializedName: \"NextMarker\",\n xmlName: \"NextMarker\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PageRange: coreHttp.CompositeMapper = {\n serializedName: \"PageRange\",\n xmlName: \"PageRange\",\n type: {\n name: \"Composite\",\n className: \"PageRange\",\n modelProperties: {\n start: {\n serializedName: \"Start\",\n required: true,\n xmlName: \"Start\",\n type: {\n name: \"Number\"\n }\n },\n end: {\n serializedName: \"End\",\n required: true,\n xmlName: \"End\",\n type: {\n name: \"Number\"\n }\n }\n }\n }\n};\n\nexport const ClearRange: coreHttp.CompositeMapper = {\n serializedName: \"ClearRange\",\n xmlName: \"ClearRange\",\n type: {\n name: \"Composite\",\n className: \"ClearRange\",\n modelProperties: {\n start: {\n serializedName: \"Start\",\n required: true,\n xmlName: \"Start\",\n type: {\n name: \"Number\"\n }\n },\n end: {\n serializedName: \"End\",\n required: true,\n xmlName: \"End\",\n type: {\n name: \"Number\"\n }\n }\n }\n }\n};\n\nexport const QueryRequest: coreHttp.CompositeMapper = {\n serializedName: \"QueryRequest\",\n xmlName: \"QueryRequest\",\n type: {\n name: \"Composite\",\n className: \"QueryRequest\",\n modelProperties: {\n queryType: {\n serializedName: \"QueryType\",\n required: true,\n xmlName: \"QueryType\",\n type: {\n name: \"String\"\n }\n },\n expression: {\n serializedName: \"Expression\",\n required: true,\n xmlName: \"Expression\",\n type: {\n name: \"String\"\n }\n },\n inputSerialization: {\n serializedName: \"InputSerialization\",\n xmlName: \"InputSerialization\",\n type: {\n name: \"Composite\",\n className: \"QuerySerialization\"\n }\n },\n outputSerialization: {\n serializedName: \"OutputSerialization\",\n xmlName: \"OutputSerialization\",\n type: {\n name: \"Composite\",\n className: \"QuerySerialization\"\n }\n }\n }\n }\n};\n\nexport const QuerySerialization: coreHttp.CompositeMapper = {\n serializedName: \"QuerySerialization\",\n type: {\n name: \"Composite\",\n className: \"QuerySerialization\",\n modelProperties: {\n format: {\n serializedName: \"Format\",\n xmlName: \"Format\",\n type: {\n name: \"Composite\",\n className: \"QueryFormat\"\n }\n }\n }\n }\n};\n\nexport const QueryFormat: coreHttp.CompositeMapper = {\n serializedName: \"QueryFormat\",\n type: {\n name: \"Composite\",\n className: \"QueryFormat\",\n modelProperties: {\n type: {\n serializedName: \"Type\",\n required: true,\n xmlName: \"Type\",\n type: {\n name: \"Enum\",\n allowedValues: [\"delimited\", \"json\", \"arrow\", \"parquet\"]\n }\n },\n delimitedTextConfiguration: {\n serializedName: \"DelimitedTextConfiguration\",\n xmlName: \"DelimitedTextConfiguration\",\n type: {\n name: \"Composite\",\n className: \"DelimitedTextConfiguration\"\n }\n },\n jsonTextConfiguration: {\n serializedName: \"JsonTextConfiguration\",\n xmlName: \"JsonTextConfiguration\",\n type: {\n name: \"Composite\",\n className: \"JsonTextConfiguration\"\n }\n },\n arrowConfiguration: {\n serializedName: \"ArrowConfiguration\",\n xmlName: \"ArrowConfiguration\",\n type: {\n name: \"Composite\",\n className: \"ArrowConfiguration\"\n }\n },\n parquetTextConfiguration: {\n serializedName: \"ParquetTextConfiguration\",\n xmlName: \"ParquetTextConfiguration\",\n type: {\n name: \"any\"\n }\n }\n }\n }\n};\n\nexport const DelimitedTextConfiguration: coreHttp.CompositeMapper = {\n serializedName: \"DelimitedTextConfiguration\",\n xmlName: \"DelimitedTextConfiguration\",\n type: {\n name: \"Composite\",\n className: \"DelimitedTextConfiguration\",\n modelProperties: {\n columnSeparator: {\n serializedName: \"ColumnSeparator\",\n xmlName: \"ColumnSeparator\",\n type: {\n name: \"String\"\n }\n },\n fieldQuote: {\n serializedName: \"FieldQuote\",\n xmlName: \"FieldQuote\",\n type: {\n name: \"String\"\n }\n },\n recordSeparator: {\n serializedName: \"RecordSeparator\",\n xmlName: \"RecordSeparator\",\n type: {\n name: \"String\"\n }\n },\n escapeChar: {\n serializedName: \"EscapeChar\",\n xmlName: \"EscapeChar\",\n type: {\n name: \"String\"\n }\n },\n headersPresent: {\n serializedName: \"HeadersPresent\",\n xmlName: \"HasHeaders\",\n type: {\n name: \"Boolean\"\n }\n }\n }\n }\n};\n\nexport const JsonTextConfiguration: coreHttp.CompositeMapper = {\n serializedName: \"JsonTextConfiguration\",\n xmlName: \"JsonTextConfiguration\",\n type: {\n name: \"Composite\",\n className: \"JsonTextConfiguration\",\n modelProperties: {\n recordSeparator: {\n serializedName: \"RecordSeparator\",\n xmlName: \"RecordSeparator\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ArrowConfiguration: coreHttp.CompositeMapper = {\n serializedName: \"ArrowConfiguration\",\n xmlName: \"ArrowConfiguration\",\n type: {\n name: \"Composite\",\n className: \"ArrowConfiguration\",\n modelProperties: {\n schema: {\n serializedName: \"Schema\",\n required: true,\n xmlName: \"Schema\",\n xmlIsWrapped: true,\n xmlElementName: \"Field\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ArrowField\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const ArrowField: coreHttp.CompositeMapper = {\n serializedName: \"ArrowField\",\n xmlName: \"Field\",\n type: {\n name: \"Composite\",\n className: \"ArrowField\",\n modelProperties: {\n type: {\n serializedName: \"Type\",\n required: true,\n xmlName: \"Type\",\n type: {\n name: \"String\"\n }\n },\n name: {\n serializedName: \"Name\",\n xmlName: \"Name\",\n type: {\n name: \"String\"\n }\n },\n precision: {\n serializedName: \"Precision\",\n xmlName: \"Precision\",\n type: {\n name: \"Number\"\n }\n },\n scale: {\n serializedName: \"Scale\",\n xmlName: \"Scale\",\n type: {\n name: \"Number\"\n }\n }\n }\n }\n};\n\nexport const ServiceSetPropertiesHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Service_setPropertiesHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceSetPropertiesHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceSetPropertiesExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Service_setPropertiesExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceSetPropertiesExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceGetPropertiesHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Service_getPropertiesHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceGetPropertiesHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceGetPropertiesExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Service_getPropertiesExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceGetPropertiesExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceGetStatisticsHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Service_getStatisticsHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceGetStatisticsHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceGetStatisticsExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Service_getStatisticsExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceGetStatisticsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceListContainersSegmentHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Service_listContainersSegmentHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceListContainersSegmentHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceListContainersSegmentExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Service_listContainersSegmentExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceListContainersSegmentExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceGetUserDelegationKeyHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Service_getUserDelegationKeyHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceGetUserDelegationKeyHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceGetUserDelegationKeyExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Service_getUserDelegationKeyExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceGetUserDelegationKeyExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceGetAccountInfoHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Service_getAccountInfoHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceGetAccountInfoHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n skuName: {\n serializedName: \"x-ms-sku-name\",\n xmlName: \"x-ms-sku-name\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"Standard_LRS\",\n \"Standard_GRS\",\n \"Standard_RAGRS\",\n \"Standard_ZRS\",\n \"Premium_LRS\"\n ]\n }\n },\n accountKind: {\n serializedName: \"x-ms-account-kind\",\n xmlName: \"x-ms-account-kind\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"Storage\",\n \"BlobStorage\",\n \"StorageV2\",\n \"FileStorage\",\n \"BlockBlobStorage\"\n ]\n }\n },\n isHierarchicalNamespaceEnabled: {\n serializedName: \"x-ms-is-hns-enabled\",\n xmlName: \"x-ms-is-hns-enabled\",\n type: {\n name: \"Boolean\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceGetAccountInfoExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Service_getAccountInfoExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceGetAccountInfoExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceSubmitBatchHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Service_submitBatchHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceSubmitBatchHeaders\",\n modelProperties: {\n contentType: {\n serializedName: \"content-type\",\n xmlName: \"content-type\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceSubmitBatchExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Service_submitBatchExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceSubmitBatchExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceFilterBlobsHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Service_filterBlobsHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceFilterBlobsHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceFilterBlobsExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Service_filterBlobsExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceFilterBlobsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerCreateHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_createHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerCreateHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerCreateExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_createExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerCreateExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerGetPropertiesHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_getPropertiesHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerGetPropertiesHeaders\",\n modelProperties: {\n metadata: {\n serializedName: \"x-ms-meta\",\n xmlName: \"x-ms-meta\",\n type: {\n name: \"Dictionary\",\n value: { type: { name: \"String\" } }\n },\n headerCollectionPrefix: \"x-ms-meta-\"\n },\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n leaseDuration: {\n serializedName: \"x-ms-lease-duration\",\n xmlName: \"x-ms-lease-duration\",\n type: {\n name: \"Enum\",\n allowedValues: [\"infinite\", \"fixed\"]\n }\n },\n leaseState: {\n serializedName: \"x-ms-lease-state\",\n xmlName: \"x-ms-lease-state\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"available\",\n \"leased\",\n \"expired\",\n \"breaking\",\n \"broken\"\n ]\n }\n },\n leaseStatus: {\n serializedName: \"x-ms-lease-status\",\n xmlName: \"x-ms-lease-status\",\n type: {\n name: \"Enum\",\n allowedValues: [\"locked\", \"unlocked\"]\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n blobPublicAccess: {\n serializedName: \"x-ms-blob-public-access\",\n xmlName: \"x-ms-blob-public-access\",\n type: {\n name: \"Enum\",\n allowedValues: [\"container\", \"blob\"]\n }\n },\n hasImmutabilityPolicy: {\n serializedName: \"x-ms-has-immutability-policy\",\n xmlName: \"x-ms-has-immutability-policy\",\n type: {\n name: \"Boolean\"\n }\n },\n hasLegalHold: {\n serializedName: \"x-ms-has-legal-hold\",\n xmlName: \"x-ms-has-legal-hold\",\n type: {\n name: \"Boolean\"\n }\n },\n defaultEncryptionScope: {\n serializedName: \"x-ms-default-encryption-scope\",\n xmlName: \"x-ms-default-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n denyEncryptionScopeOverride: {\n serializedName: \"x-ms-deny-encryption-scope-override\",\n xmlName: \"x-ms-deny-encryption-scope-override\",\n type: {\n name: \"Boolean\"\n }\n },\n isImmutableStorageWithVersioningEnabled: {\n serializedName: \"x-ms-immutable-storage-with-versioning-enabled\",\n xmlName: \"x-ms-immutable-storage-with-versioning-enabled\",\n type: {\n name: \"Boolean\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerGetPropertiesExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_getPropertiesExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerGetPropertiesExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerDeleteHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_deleteHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerDeleteHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerDeleteExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_deleteExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerDeleteExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerSetMetadataHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_setMetadataHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerSetMetadataHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerSetMetadataExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_setMetadataExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerSetMetadataExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerGetAccessPolicyHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_getAccessPolicyHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerGetAccessPolicyHeaders\",\n modelProperties: {\n blobPublicAccess: {\n serializedName: \"x-ms-blob-public-access\",\n xmlName: \"x-ms-blob-public-access\",\n type: {\n name: \"Enum\",\n allowedValues: [\"container\", \"blob\"]\n }\n },\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerGetAccessPolicyExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_getAccessPolicyExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerGetAccessPolicyExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerSetAccessPolicyHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_setAccessPolicyHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerSetAccessPolicyHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerSetAccessPolicyExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_setAccessPolicyExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerSetAccessPolicyExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerRestoreHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_restoreHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerRestoreHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerRestoreExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_restoreExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerRestoreExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerRenameHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_renameHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerRenameHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerRenameExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_renameExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerRenameExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerSubmitBatchHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_submitBatchHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerSubmitBatchHeaders\",\n modelProperties: {\n contentType: {\n serializedName: \"content-type\",\n xmlName: \"content-type\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerSubmitBatchExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_submitBatchExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerSubmitBatchExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerFilterBlobsHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_filterBlobsHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerFilterBlobsHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const ContainerFilterBlobsExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_filterBlobsExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerFilterBlobsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerAcquireLeaseHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_acquireLeaseHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerAcquireLeaseHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n leaseId: {\n serializedName: \"x-ms-lease-id\",\n xmlName: \"x-ms-lease-id\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const ContainerAcquireLeaseExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_acquireLeaseExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerAcquireLeaseExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerReleaseLeaseHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_releaseLeaseHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerReleaseLeaseHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const ContainerReleaseLeaseExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_releaseLeaseExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerReleaseLeaseExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerRenewLeaseHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_renewLeaseHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerRenewLeaseHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n leaseId: {\n serializedName: \"x-ms-lease-id\",\n xmlName: \"x-ms-lease-id\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const ContainerRenewLeaseExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_renewLeaseExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerRenewLeaseExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerBreakLeaseHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_breakLeaseHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerBreakLeaseHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n leaseTime: {\n serializedName: \"x-ms-lease-time\",\n xmlName: \"x-ms-lease-time\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const ContainerBreakLeaseExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_breakLeaseExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerBreakLeaseExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerChangeLeaseHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_changeLeaseHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerChangeLeaseHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n leaseId: {\n serializedName: \"x-ms-lease-id\",\n xmlName: \"x-ms-lease-id\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const ContainerChangeLeaseExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_changeLeaseExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerChangeLeaseExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerListBlobFlatSegmentHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_listBlobFlatSegmentHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerListBlobFlatSegmentHeaders\",\n modelProperties: {\n contentType: {\n serializedName: \"content-type\",\n xmlName: \"content-type\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerListBlobFlatSegmentExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_listBlobFlatSegmentExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerListBlobFlatSegmentExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerListBlobHierarchySegmentHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_listBlobHierarchySegmentHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerListBlobHierarchySegmentHeaders\",\n modelProperties: {\n contentType: {\n serializedName: \"content-type\",\n xmlName: \"content-type\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerListBlobHierarchySegmentExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_listBlobHierarchySegmentExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerListBlobHierarchySegmentExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ContainerGetAccountInfoHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_getAccountInfoHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerGetAccountInfoHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n skuName: {\n serializedName: \"x-ms-sku-name\",\n xmlName: \"x-ms-sku-name\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"Standard_LRS\",\n \"Standard_GRS\",\n \"Standard_RAGRS\",\n \"Standard_ZRS\",\n \"Premium_LRS\"\n ]\n }\n },\n accountKind: {\n serializedName: \"x-ms-account-kind\",\n xmlName: \"x-ms-account-kind\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"Storage\",\n \"BlobStorage\",\n \"StorageV2\",\n \"FileStorage\",\n \"BlockBlobStorage\"\n ]\n }\n }\n }\n }\n};\n\nexport const ContainerGetAccountInfoExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Container_getAccountInfoExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ContainerGetAccountInfoExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobDownloadHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_downloadHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobDownloadHeaders\",\n modelProperties: {\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n metadata: {\n serializedName: \"x-ms-meta\",\n xmlName: \"x-ms-meta\",\n type: {\n name: \"Dictionary\",\n value: { type: { name: \"String\" } }\n },\n headerCollectionPrefix: \"x-ms-meta-\"\n },\n objectReplicationPolicyId: {\n serializedName: \"x-ms-or-policy-id\",\n xmlName: \"x-ms-or-policy-id\",\n type: {\n name: \"String\"\n }\n },\n objectReplicationRules: {\n serializedName: \"x-ms-or\",\n xmlName: \"x-ms-or\",\n type: {\n name: \"Dictionary\",\n value: { type: { name: \"String\" } }\n },\n headerCollectionPrefix: \"x-ms-or-\"\n },\n contentLength: {\n serializedName: \"content-length\",\n xmlName: \"content-length\",\n type: {\n name: \"Number\"\n }\n },\n contentType: {\n serializedName: \"content-type\",\n xmlName: \"content-type\",\n type: {\n name: \"String\"\n }\n },\n contentRange: {\n serializedName: \"content-range\",\n xmlName: \"content-range\",\n type: {\n name: \"String\"\n }\n },\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n xmlName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n contentEncoding: {\n serializedName: \"content-encoding\",\n xmlName: \"content-encoding\",\n type: {\n name: \"String\"\n }\n },\n cacheControl: {\n serializedName: \"cache-control\",\n xmlName: \"cache-control\",\n type: {\n name: \"String\"\n }\n },\n contentDisposition: {\n serializedName: \"content-disposition\",\n xmlName: \"content-disposition\",\n type: {\n name: \"String\"\n }\n },\n contentLanguage: {\n serializedName: \"content-language\",\n xmlName: \"content-language\",\n type: {\n name: \"String\"\n }\n },\n blobSequenceNumber: {\n serializedName: \"x-ms-blob-sequence-number\",\n xmlName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n },\n blobType: {\n serializedName: \"x-ms-blob-type\",\n xmlName: \"x-ms-blob-type\",\n type: {\n name: \"Enum\",\n allowedValues: [\"BlockBlob\", \"PageBlob\", \"AppendBlob\"]\n }\n },\n copyCompletedOn: {\n serializedName: \"x-ms-copy-completion-time\",\n xmlName: \"x-ms-copy-completion-time\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n copyStatusDescription: {\n serializedName: \"x-ms-copy-status-description\",\n xmlName: \"x-ms-copy-status-description\",\n type: {\n name: \"String\"\n }\n },\n copyId: {\n serializedName: \"x-ms-copy-id\",\n xmlName: \"x-ms-copy-id\",\n type: {\n name: \"String\"\n }\n },\n copyProgress: {\n serializedName: \"x-ms-copy-progress\",\n xmlName: \"x-ms-copy-progress\",\n type: {\n name: \"String\"\n }\n },\n copySource: {\n serializedName: \"x-ms-copy-source\",\n xmlName: \"x-ms-copy-source\",\n type: {\n name: \"String\"\n }\n },\n copyStatus: {\n serializedName: \"x-ms-copy-status\",\n xmlName: \"x-ms-copy-status\",\n type: {\n name: \"Enum\",\n allowedValues: [\"pending\", \"success\", \"aborted\", \"failed\"]\n }\n },\n leaseDuration: {\n serializedName: \"x-ms-lease-duration\",\n xmlName: \"x-ms-lease-duration\",\n type: {\n name: \"Enum\",\n allowedValues: [\"infinite\", \"fixed\"]\n }\n },\n leaseState: {\n serializedName: \"x-ms-lease-state\",\n xmlName: \"x-ms-lease-state\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"available\",\n \"leased\",\n \"expired\",\n \"breaking\",\n \"broken\"\n ]\n }\n },\n leaseStatus: {\n serializedName: \"x-ms-lease-status\",\n xmlName: \"x-ms-lease-status\",\n type: {\n name: \"Enum\",\n allowedValues: [\"locked\", \"unlocked\"]\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n versionId: {\n serializedName: \"x-ms-version-id\",\n xmlName: \"x-ms-version-id\",\n type: {\n name: \"String\"\n }\n },\n isCurrentVersion: {\n serializedName: \"x-ms-is-current-version\",\n xmlName: \"x-ms-is-current-version\",\n type: {\n name: \"Boolean\"\n }\n },\n acceptRanges: {\n serializedName: \"accept-ranges\",\n xmlName: \"accept-ranges\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n blobCommittedBlockCount: {\n serializedName: \"x-ms-blob-committed-block-count\",\n xmlName: \"x-ms-blob-committed-block-count\",\n type: {\n name: \"Number\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-server-encrypted\",\n xmlName: \"x-ms-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n xmlName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"x-ms-encryption-scope\",\n xmlName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n blobContentMD5: {\n serializedName: \"x-ms-blob-content-md5\",\n xmlName: \"x-ms-blob-content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n tagCount: {\n serializedName: \"x-ms-tag-count\",\n xmlName: \"x-ms-tag-count\",\n type: {\n name: \"Number\"\n }\n },\n isSealed: {\n serializedName: \"x-ms-blob-sealed\",\n xmlName: \"x-ms-blob-sealed\",\n type: {\n name: \"Boolean\"\n }\n },\n lastAccessed: {\n serializedName: \"x-ms-last-access-time\",\n xmlName: \"x-ms-last-access-time\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n immutabilityPolicyExpiresOn: {\n serializedName: \"x-ms-immutability-policy-until-date\",\n xmlName: \"x-ms-immutability-policy-until-date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n immutabilityPolicyMode: {\n serializedName: \"x-ms-immutability-policy-mode\",\n xmlName: \"x-ms-immutability-policy-mode\",\n type: {\n name: \"Enum\",\n allowedValues: [\"Mutable\", \"Unlocked\", \"Locked\"]\n }\n },\n legalHold: {\n serializedName: \"x-ms-legal-hold\",\n xmlName: \"x-ms-legal-hold\",\n type: {\n name: \"Boolean\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n },\n contentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n xmlName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n }\n }\n }\n};\n\nexport const BlobDownloadExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_downloadExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobDownloadExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobGetPropertiesHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_getPropertiesHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobGetPropertiesHeaders\",\n modelProperties: {\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n createdOn: {\n serializedName: \"x-ms-creation-time\",\n xmlName: \"x-ms-creation-time\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n metadata: {\n serializedName: \"x-ms-meta\",\n xmlName: \"x-ms-meta\",\n type: {\n name: \"Dictionary\",\n value: { type: { name: \"String\" } }\n },\n headerCollectionPrefix: \"x-ms-meta-\"\n },\n objectReplicationPolicyId: {\n serializedName: \"x-ms-or-policy-id\",\n xmlName: \"x-ms-or-policy-id\",\n type: {\n name: \"String\"\n }\n },\n objectReplicationRules: {\n serializedName: \"x-ms-or\",\n xmlName: \"x-ms-or\",\n type: {\n name: \"Dictionary\",\n value: { type: { name: \"String\" } }\n },\n headerCollectionPrefix: \"x-ms-or-\"\n },\n blobType: {\n serializedName: \"x-ms-blob-type\",\n xmlName: \"x-ms-blob-type\",\n type: {\n name: \"Enum\",\n allowedValues: [\"BlockBlob\", \"PageBlob\", \"AppendBlob\"]\n }\n },\n copyCompletedOn: {\n serializedName: \"x-ms-copy-completion-time\",\n xmlName: \"x-ms-copy-completion-time\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n copyStatusDescription: {\n serializedName: \"x-ms-copy-status-description\",\n xmlName: \"x-ms-copy-status-description\",\n type: {\n name: \"String\"\n }\n },\n copyId: {\n serializedName: \"x-ms-copy-id\",\n xmlName: \"x-ms-copy-id\",\n type: {\n name: \"String\"\n }\n },\n copyProgress: {\n serializedName: \"x-ms-copy-progress\",\n xmlName: \"x-ms-copy-progress\",\n type: {\n name: \"String\"\n }\n },\n copySource: {\n serializedName: \"x-ms-copy-source\",\n xmlName: \"x-ms-copy-source\",\n type: {\n name: \"String\"\n }\n },\n copyStatus: {\n serializedName: \"x-ms-copy-status\",\n xmlName: \"x-ms-copy-status\",\n type: {\n name: \"Enum\",\n allowedValues: [\"pending\", \"success\", \"aborted\", \"failed\"]\n }\n },\n isIncrementalCopy: {\n serializedName: \"x-ms-incremental-copy\",\n xmlName: \"x-ms-incremental-copy\",\n type: {\n name: \"Boolean\"\n }\n },\n destinationSnapshot: {\n serializedName: \"x-ms-copy-destination-snapshot\",\n xmlName: \"x-ms-copy-destination-snapshot\",\n type: {\n name: \"String\"\n }\n },\n leaseDuration: {\n serializedName: \"x-ms-lease-duration\",\n xmlName: \"x-ms-lease-duration\",\n type: {\n name: \"Enum\",\n allowedValues: [\"infinite\", \"fixed\"]\n }\n },\n leaseState: {\n serializedName: \"x-ms-lease-state\",\n xmlName: \"x-ms-lease-state\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"available\",\n \"leased\",\n \"expired\",\n \"breaking\",\n \"broken\"\n ]\n }\n },\n leaseStatus: {\n serializedName: \"x-ms-lease-status\",\n xmlName: \"x-ms-lease-status\",\n type: {\n name: \"Enum\",\n allowedValues: [\"locked\", \"unlocked\"]\n }\n },\n contentLength: {\n serializedName: \"content-length\",\n xmlName: \"content-length\",\n type: {\n name: \"Number\"\n }\n },\n contentType: {\n serializedName: \"content-type\",\n xmlName: \"content-type\",\n type: {\n name: \"String\"\n }\n },\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n xmlName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n contentEncoding: {\n serializedName: \"content-encoding\",\n xmlName: \"content-encoding\",\n type: {\n name: \"String\"\n }\n },\n contentDisposition: {\n serializedName: \"content-disposition\",\n xmlName: \"content-disposition\",\n type: {\n name: \"String\"\n }\n },\n contentLanguage: {\n serializedName: \"content-language\",\n xmlName: \"content-language\",\n type: {\n name: \"String\"\n }\n },\n cacheControl: {\n serializedName: \"cache-control\",\n xmlName: \"cache-control\",\n type: {\n name: \"String\"\n }\n },\n blobSequenceNumber: {\n serializedName: \"x-ms-blob-sequence-number\",\n xmlName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n acceptRanges: {\n serializedName: \"accept-ranges\",\n xmlName: \"accept-ranges\",\n type: {\n name: \"String\"\n }\n },\n blobCommittedBlockCount: {\n serializedName: \"x-ms-blob-committed-block-count\",\n xmlName: \"x-ms-blob-committed-block-count\",\n type: {\n name: \"Number\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-server-encrypted\",\n xmlName: \"x-ms-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n xmlName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"x-ms-encryption-scope\",\n xmlName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n accessTier: {\n serializedName: \"x-ms-access-tier\",\n xmlName: \"x-ms-access-tier\",\n type: {\n name: \"String\"\n }\n },\n accessTierInferred: {\n serializedName: \"x-ms-access-tier-inferred\",\n xmlName: \"x-ms-access-tier-inferred\",\n type: {\n name: \"Boolean\"\n }\n },\n archiveStatus: {\n serializedName: \"x-ms-archive-status\",\n xmlName: \"x-ms-archive-status\",\n type: {\n name: \"String\"\n }\n },\n accessTierChangedOn: {\n serializedName: \"x-ms-access-tier-change-time\",\n xmlName: \"x-ms-access-tier-change-time\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n versionId: {\n serializedName: \"x-ms-version-id\",\n xmlName: \"x-ms-version-id\",\n type: {\n name: \"String\"\n }\n },\n isCurrentVersion: {\n serializedName: \"x-ms-is-current-version\",\n xmlName: \"x-ms-is-current-version\",\n type: {\n name: \"Boolean\"\n }\n },\n tagCount: {\n serializedName: \"x-ms-tag-count\",\n xmlName: \"x-ms-tag-count\",\n type: {\n name: \"Number\"\n }\n },\n expiresOn: {\n serializedName: \"x-ms-expiry-time\",\n xmlName: \"x-ms-expiry-time\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isSealed: {\n serializedName: \"x-ms-blob-sealed\",\n xmlName: \"x-ms-blob-sealed\",\n type: {\n name: \"Boolean\"\n }\n },\n rehydratePriority: {\n serializedName: \"x-ms-rehydrate-priority\",\n xmlName: \"x-ms-rehydrate-priority\",\n type: {\n name: \"Enum\",\n allowedValues: [\"High\", \"Standard\"]\n }\n },\n lastAccessed: {\n serializedName: \"x-ms-last-access-time\",\n xmlName: \"x-ms-last-access-time\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n immutabilityPolicyExpiresOn: {\n serializedName: \"x-ms-immutability-policy-until-date\",\n xmlName: \"x-ms-immutability-policy-until-date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n immutabilityPolicyMode: {\n serializedName: \"x-ms-immutability-policy-mode\",\n xmlName: \"x-ms-immutability-policy-mode\",\n type: {\n name: \"Enum\",\n allowedValues: [\"Mutable\", \"Unlocked\", \"Locked\"]\n }\n },\n legalHold: {\n serializedName: \"x-ms-legal-hold\",\n xmlName: \"x-ms-legal-hold\",\n type: {\n name: \"Boolean\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobGetPropertiesExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_getPropertiesExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobGetPropertiesExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobDeleteHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_deleteHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobDeleteHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobDeleteExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_deleteExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobDeleteExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobUndeleteHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_undeleteHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobUndeleteHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobUndeleteExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_undeleteExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobUndeleteExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobSetExpiryHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_setExpiryHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobSetExpiryHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const BlobSetExpiryExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_setExpiryExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobSetExpiryExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobSetHttpHeadersHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_setHttpHeadersHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobSetHttpHeadersHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n blobSequenceNumber: {\n serializedName: \"x-ms-blob-sequence-number\",\n xmlName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobSetHttpHeadersExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_setHttpHeadersExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobSetHttpHeadersExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobSetImmutabilityPolicyHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_setImmutabilityPolicyHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobSetImmutabilityPolicyHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n immutabilityPolicyExpiry: {\n serializedName: \"x-ms-immutability-policy-until-date\",\n xmlName: \"x-ms-immutability-policy-until-date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n immutabilityPolicyMode: {\n serializedName: \"x-ms-immutability-policy-mode\",\n xmlName: \"x-ms-immutability-policy-mode\",\n type: {\n name: \"Enum\",\n allowedValues: [\"Mutable\", \"Unlocked\", \"Locked\"]\n }\n }\n }\n }\n};\n\nexport const BlobSetImmutabilityPolicyExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_setImmutabilityPolicyExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobSetImmutabilityPolicyExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobDeleteImmutabilityPolicyHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_deleteImmutabilityPolicyHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobDeleteImmutabilityPolicyHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const BlobDeleteImmutabilityPolicyExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_deleteImmutabilityPolicyExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobDeleteImmutabilityPolicyExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobSetLegalHoldHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_setLegalHoldHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobSetLegalHoldHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n legalHold: {\n serializedName: \"x-ms-legal-hold\",\n xmlName: \"x-ms-legal-hold\",\n type: {\n name: \"Boolean\"\n }\n }\n }\n }\n};\n\nexport const BlobSetLegalHoldExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_setLegalHoldExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobSetLegalHoldExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobSetMetadataHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_setMetadataHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobSetMetadataHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n versionId: {\n serializedName: \"x-ms-version-id\",\n xmlName: \"x-ms-version-id\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n xmlName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n xmlName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"x-ms-encryption-scope\",\n xmlName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobSetMetadataExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_setMetadataExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobSetMetadataExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobAcquireLeaseHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_acquireLeaseHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobAcquireLeaseHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n leaseId: {\n serializedName: \"x-ms-lease-id\",\n xmlName: \"x-ms-lease-id\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const BlobAcquireLeaseExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_acquireLeaseExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobAcquireLeaseExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobReleaseLeaseHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_releaseLeaseHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobReleaseLeaseHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const BlobReleaseLeaseExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_releaseLeaseExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobReleaseLeaseExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobRenewLeaseHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_renewLeaseHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobRenewLeaseHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n leaseId: {\n serializedName: \"x-ms-lease-id\",\n xmlName: \"x-ms-lease-id\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const BlobRenewLeaseExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_renewLeaseExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobRenewLeaseExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobChangeLeaseHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_changeLeaseHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobChangeLeaseHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n leaseId: {\n serializedName: \"x-ms-lease-id\",\n xmlName: \"x-ms-lease-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const BlobChangeLeaseExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_changeLeaseExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobChangeLeaseExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobBreakLeaseHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_breakLeaseHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobBreakLeaseHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n leaseTime: {\n serializedName: \"x-ms-lease-time\",\n xmlName: \"x-ms-lease-time\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const BlobBreakLeaseExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_breakLeaseExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobBreakLeaseExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobCreateSnapshotHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_createSnapshotHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobCreateSnapshotHeaders\",\n modelProperties: {\n snapshot: {\n serializedName: \"x-ms-snapshot\",\n xmlName: \"x-ms-snapshot\",\n type: {\n name: \"String\"\n }\n },\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n versionId: {\n serializedName: \"x-ms-version-id\",\n xmlName: \"x-ms-version-id\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n xmlName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobCreateSnapshotExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_createSnapshotExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobCreateSnapshotExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobStartCopyFromURLHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_startCopyFromURLHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobStartCopyFromURLHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n versionId: {\n serializedName: \"x-ms-version-id\",\n xmlName: \"x-ms-version-id\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n copyId: {\n serializedName: \"x-ms-copy-id\",\n xmlName: \"x-ms-copy-id\",\n type: {\n name: \"String\"\n }\n },\n copyStatus: {\n serializedName: \"x-ms-copy-status\",\n xmlName: \"x-ms-copy-status\",\n type: {\n name: \"Enum\",\n allowedValues: [\"pending\", \"success\", \"aborted\", \"failed\"]\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobStartCopyFromURLExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_startCopyFromURLExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobStartCopyFromURLExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobCopyFromURLHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_copyFromURLHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobCopyFromURLHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n versionId: {\n serializedName: \"x-ms-version-id\",\n xmlName: \"x-ms-version-id\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n copyId: {\n serializedName: \"x-ms-copy-id\",\n xmlName: \"x-ms-copy-id\",\n type: {\n name: \"String\"\n }\n },\n copyStatus: {\n defaultValue: \"success\",\n isConstant: true,\n serializedName: \"x-ms-copy-status\",\n type: {\n name: \"String\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n xmlName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n xMsContentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n xmlName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n },\n encryptionScope: {\n serializedName: \"x-ms-encryption-scope\",\n xmlName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobCopyFromURLExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_copyFromURLExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobCopyFromURLExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobAbortCopyFromURLHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_abortCopyFromURLHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobAbortCopyFromURLHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobAbortCopyFromURLExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_abortCopyFromURLExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobAbortCopyFromURLExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobSetTierHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_setTierHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobSetTierHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobSetTierExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_setTierExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobSetTierExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobGetAccountInfoHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_getAccountInfoHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobGetAccountInfoHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n skuName: {\n serializedName: \"x-ms-sku-name\",\n xmlName: \"x-ms-sku-name\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"Standard_LRS\",\n \"Standard_GRS\",\n \"Standard_RAGRS\",\n \"Standard_ZRS\",\n \"Premium_LRS\"\n ]\n }\n },\n accountKind: {\n serializedName: \"x-ms-account-kind\",\n xmlName: \"x-ms-account-kind\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"Storage\",\n \"BlobStorage\",\n \"StorageV2\",\n \"FileStorage\",\n \"BlockBlobStorage\"\n ]\n }\n }\n }\n }\n};\n\nexport const BlobGetAccountInfoExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_getAccountInfoExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobGetAccountInfoExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobQueryHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_queryHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobQueryHeaders\",\n modelProperties: {\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n metadata: {\n serializedName: \"x-ms-meta\",\n xmlName: \"x-ms-meta\",\n type: {\n name: \"Dictionary\",\n value: { type: { name: \"String\" } }\n }\n },\n contentLength: {\n serializedName: \"content-length\",\n xmlName: \"content-length\",\n type: {\n name: \"Number\"\n }\n },\n contentType: {\n serializedName: \"content-type\",\n xmlName: \"content-type\",\n type: {\n name: \"String\"\n }\n },\n contentRange: {\n serializedName: \"content-range\",\n xmlName: \"content-range\",\n type: {\n name: \"String\"\n }\n },\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n xmlName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n contentEncoding: {\n serializedName: \"content-encoding\",\n xmlName: \"content-encoding\",\n type: {\n name: \"String\"\n }\n },\n cacheControl: {\n serializedName: \"cache-control\",\n xmlName: \"cache-control\",\n type: {\n name: \"String\"\n }\n },\n contentDisposition: {\n serializedName: \"content-disposition\",\n xmlName: \"content-disposition\",\n type: {\n name: \"String\"\n }\n },\n contentLanguage: {\n serializedName: \"content-language\",\n xmlName: \"content-language\",\n type: {\n name: \"String\"\n }\n },\n blobSequenceNumber: {\n serializedName: \"x-ms-blob-sequence-number\",\n xmlName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n },\n blobType: {\n serializedName: \"x-ms-blob-type\",\n xmlName: \"x-ms-blob-type\",\n type: {\n name: \"Enum\",\n allowedValues: [\"BlockBlob\", \"PageBlob\", \"AppendBlob\"]\n }\n },\n copyCompletionTime: {\n serializedName: \"x-ms-copy-completion-time\",\n xmlName: \"x-ms-copy-completion-time\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n copyStatusDescription: {\n serializedName: \"x-ms-copy-status-description\",\n xmlName: \"x-ms-copy-status-description\",\n type: {\n name: \"String\"\n }\n },\n copyId: {\n serializedName: \"x-ms-copy-id\",\n xmlName: \"x-ms-copy-id\",\n type: {\n name: \"String\"\n }\n },\n copyProgress: {\n serializedName: \"x-ms-copy-progress\",\n xmlName: \"x-ms-copy-progress\",\n type: {\n name: \"String\"\n }\n },\n copySource: {\n serializedName: \"x-ms-copy-source\",\n xmlName: \"x-ms-copy-source\",\n type: {\n name: \"String\"\n }\n },\n copyStatus: {\n serializedName: \"x-ms-copy-status\",\n xmlName: \"x-ms-copy-status\",\n type: {\n name: \"Enum\",\n allowedValues: [\"pending\", \"success\", \"aborted\", \"failed\"]\n }\n },\n leaseDuration: {\n serializedName: \"x-ms-lease-duration\",\n xmlName: \"x-ms-lease-duration\",\n type: {\n name: \"Enum\",\n allowedValues: [\"infinite\", \"fixed\"]\n }\n },\n leaseState: {\n serializedName: \"x-ms-lease-state\",\n xmlName: \"x-ms-lease-state\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"available\",\n \"leased\",\n \"expired\",\n \"breaking\",\n \"broken\"\n ]\n }\n },\n leaseStatus: {\n serializedName: \"x-ms-lease-status\",\n xmlName: \"x-ms-lease-status\",\n type: {\n name: \"Enum\",\n allowedValues: [\"locked\", \"unlocked\"]\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n acceptRanges: {\n serializedName: \"accept-ranges\",\n xmlName: \"accept-ranges\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n blobCommittedBlockCount: {\n serializedName: \"x-ms-blob-committed-block-count\",\n xmlName: \"x-ms-blob-committed-block-count\",\n type: {\n name: \"Number\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-server-encrypted\",\n xmlName: \"x-ms-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n xmlName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"x-ms-encryption-scope\",\n xmlName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n blobContentMD5: {\n serializedName: \"x-ms-blob-content-md5\",\n xmlName: \"x-ms-blob-content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n },\n contentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n xmlName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n }\n }\n }\n};\n\nexport const BlobQueryExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_queryExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobQueryExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobGetTagsHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_getTagsHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobGetTagsHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobGetTagsExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_getTagsExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobGetTagsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobSetTagsHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_setTagsHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobSetTagsHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlobSetTagsExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"Blob_setTagsExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlobSetTagsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PageBlobCreateHeaders: coreHttp.CompositeMapper = {\n serializedName: \"PageBlob_createHeaders\",\n type: {\n name: \"Composite\",\n className: \"PageBlobCreateHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n xmlName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n versionId: {\n serializedName: \"x-ms-version-id\",\n xmlName: \"x-ms-version-id\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n xmlName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n xmlName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"x-ms-encryption-scope\",\n xmlName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PageBlobCreateExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"PageBlob_createExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"PageBlobCreateExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PageBlobUploadPagesHeaders: coreHttp.CompositeMapper = {\n serializedName: \"PageBlob_uploadPagesHeaders\",\n type: {\n name: \"Composite\",\n className: \"PageBlobUploadPagesHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n xmlName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n xMsContentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n xmlName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n },\n blobSequenceNumber: {\n serializedName: \"x-ms-blob-sequence-number\",\n xmlName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n xmlName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n xmlName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"x-ms-encryption-scope\",\n xmlName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PageBlobUploadPagesExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"PageBlob_uploadPagesExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"PageBlobUploadPagesExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PageBlobClearPagesHeaders: coreHttp.CompositeMapper = {\n serializedName: \"PageBlob_clearPagesHeaders\",\n type: {\n name: \"Composite\",\n className: \"PageBlobClearPagesHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n xmlName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n xMsContentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n xmlName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n },\n blobSequenceNumber: {\n serializedName: \"x-ms-blob-sequence-number\",\n xmlName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PageBlobClearPagesExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"PageBlob_clearPagesExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"PageBlobClearPagesExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PageBlobUploadPagesFromURLHeaders: coreHttp.CompositeMapper = {\n serializedName: \"PageBlob_uploadPagesFromURLHeaders\",\n type: {\n name: \"Composite\",\n className: \"PageBlobUploadPagesFromURLHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n xmlName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n xMsContentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n xmlName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n },\n blobSequenceNumber: {\n serializedName: \"x-ms-blob-sequence-number\",\n xmlName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n xmlName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n xmlName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"x-ms-encryption-scope\",\n xmlName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PageBlobUploadPagesFromURLExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"PageBlob_uploadPagesFromURLExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"PageBlobUploadPagesFromURLExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PageBlobGetPageRangesHeaders: coreHttp.CompositeMapper = {\n serializedName: \"PageBlob_getPageRangesHeaders\",\n type: {\n name: \"Composite\",\n className: \"PageBlobGetPageRangesHeaders\",\n modelProperties: {\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n blobContentLength: {\n serializedName: \"x-ms-blob-content-length\",\n xmlName: \"x-ms-blob-content-length\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PageBlobGetPageRangesExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"PageBlob_getPageRangesExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"PageBlobGetPageRangesExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PageBlobGetPageRangesDiffHeaders: coreHttp.CompositeMapper = {\n serializedName: \"PageBlob_getPageRangesDiffHeaders\",\n type: {\n name: \"Composite\",\n className: \"PageBlobGetPageRangesDiffHeaders\",\n modelProperties: {\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n blobContentLength: {\n serializedName: \"x-ms-blob-content-length\",\n xmlName: \"x-ms-blob-content-length\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PageBlobGetPageRangesDiffExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"PageBlob_getPageRangesDiffExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"PageBlobGetPageRangesDiffExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PageBlobResizeHeaders: coreHttp.CompositeMapper = {\n serializedName: \"PageBlob_resizeHeaders\",\n type: {\n name: \"Composite\",\n className: \"PageBlobResizeHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n blobSequenceNumber: {\n serializedName: \"x-ms-blob-sequence-number\",\n xmlName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PageBlobResizeExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"PageBlob_resizeExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"PageBlobResizeExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PageBlobUpdateSequenceNumberHeaders: coreHttp.CompositeMapper = {\n serializedName: \"PageBlob_updateSequenceNumberHeaders\",\n type: {\n name: \"Composite\",\n className: \"PageBlobUpdateSequenceNumberHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n blobSequenceNumber: {\n serializedName: \"x-ms-blob-sequence-number\",\n xmlName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PageBlobUpdateSequenceNumberExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"PageBlob_updateSequenceNumberExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"PageBlobUpdateSequenceNumberExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PageBlobCopyIncrementalHeaders: coreHttp.CompositeMapper = {\n serializedName: \"PageBlob_copyIncrementalHeaders\",\n type: {\n name: \"Composite\",\n className: \"PageBlobCopyIncrementalHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n copyId: {\n serializedName: \"x-ms-copy-id\",\n xmlName: \"x-ms-copy-id\",\n type: {\n name: \"String\"\n }\n },\n copyStatus: {\n serializedName: \"x-ms-copy-status\",\n xmlName: \"x-ms-copy-status\",\n type: {\n name: \"Enum\",\n allowedValues: [\"pending\", \"success\", \"aborted\", \"failed\"]\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const PageBlobCopyIncrementalExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"PageBlob_copyIncrementalExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"PageBlobCopyIncrementalExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const AppendBlobCreateHeaders: coreHttp.CompositeMapper = {\n serializedName: \"AppendBlob_createHeaders\",\n type: {\n name: \"Composite\",\n className: \"AppendBlobCreateHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n xmlName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n versionId: {\n serializedName: \"x-ms-version-id\",\n xmlName: \"x-ms-version-id\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n xmlName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n xmlName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"x-ms-encryption-scope\",\n xmlName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const AppendBlobCreateExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"AppendBlob_createExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"AppendBlobCreateExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const AppendBlobAppendBlockHeaders: coreHttp.CompositeMapper = {\n serializedName: \"AppendBlob_appendBlockHeaders\",\n type: {\n name: \"Composite\",\n className: \"AppendBlobAppendBlockHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n xmlName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n xMsContentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n xmlName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n blobAppendOffset: {\n serializedName: \"x-ms-blob-append-offset\",\n xmlName: \"x-ms-blob-append-offset\",\n type: {\n name: \"String\"\n }\n },\n blobCommittedBlockCount: {\n serializedName: \"x-ms-blob-committed-block-count\",\n xmlName: \"x-ms-blob-committed-block-count\",\n type: {\n name: \"Number\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n xmlName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n xmlName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"x-ms-encryption-scope\",\n xmlName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const AppendBlobAppendBlockExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"AppendBlob_appendBlockExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"AppendBlobAppendBlockExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const AppendBlobAppendBlockFromUrlHeaders: coreHttp.CompositeMapper = {\n serializedName: \"AppendBlob_appendBlockFromUrlHeaders\",\n type: {\n name: \"Composite\",\n className: \"AppendBlobAppendBlockFromUrlHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n xmlName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n xMsContentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n xmlName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n blobAppendOffset: {\n serializedName: \"x-ms-blob-append-offset\",\n xmlName: \"x-ms-blob-append-offset\",\n type: {\n name: \"String\"\n }\n },\n blobCommittedBlockCount: {\n serializedName: \"x-ms-blob-committed-block-count\",\n xmlName: \"x-ms-blob-committed-block-count\",\n type: {\n name: \"Number\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n xmlName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"x-ms-encryption-scope\",\n xmlName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n xmlName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const AppendBlobAppendBlockFromUrlExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"AppendBlob_appendBlockFromUrlExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"AppendBlobAppendBlockFromUrlExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const AppendBlobSealHeaders: coreHttp.CompositeMapper = {\n serializedName: \"AppendBlob_sealHeaders\",\n type: {\n name: \"Composite\",\n className: \"AppendBlobSealHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isSealed: {\n serializedName: \"x-ms-blob-sealed\",\n xmlName: \"x-ms-blob-sealed\",\n type: {\n name: \"Boolean\"\n }\n }\n }\n }\n};\n\nexport const AppendBlobSealExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"AppendBlob_sealExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"AppendBlobSealExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlockBlobUploadHeaders: coreHttp.CompositeMapper = {\n serializedName: \"BlockBlob_uploadHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlockBlobUploadHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n xmlName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n versionId: {\n serializedName: \"x-ms-version-id\",\n xmlName: \"x-ms-version-id\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n xmlName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n xmlName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"x-ms-encryption-scope\",\n xmlName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlockBlobUploadExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"BlockBlob_uploadExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlockBlobUploadExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlockBlobPutBlobFromUrlHeaders: coreHttp.CompositeMapper = {\n serializedName: \"BlockBlob_putBlobFromUrlHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlockBlobPutBlobFromUrlHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n xmlName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n versionId: {\n serializedName: \"x-ms-version-id\",\n xmlName: \"x-ms-version-id\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n xmlName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n xmlName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"x-ms-encryption-scope\",\n xmlName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlockBlobPutBlobFromUrlExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"BlockBlob_putBlobFromUrlExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlockBlobPutBlobFromUrlExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlockBlobStageBlockHeaders: coreHttp.CompositeMapper = {\n serializedName: \"BlockBlob_stageBlockHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlockBlobStageBlockHeaders\",\n modelProperties: {\n contentMD5: {\n serializedName: \"content-md5\",\n xmlName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n xMsContentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n xmlName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n xmlName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n xmlName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"x-ms-encryption-scope\",\n xmlName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlockBlobStageBlockExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"BlockBlob_stageBlockExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlockBlobStageBlockExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlockBlobStageBlockFromURLHeaders: coreHttp.CompositeMapper = {\n serializedName: \"BlockBlob_stageBlockFromURLHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlockBlobStageBlockFromURLHeaders\",\n modelProperties: {\n contentMD5: {\n serializedName: \"content-md5\",\n xmlName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n xMsContentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n xmlName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n xmlName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n xmlName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"x-ms-encryption-scope\",\n xmlName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlockBlobStageBlockFromURLExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"BlockBlob_stageBlockFromURLExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlockBlobStageBlockFromURLExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlockBlobCommitBlockListHeaders: coreHttp.CompositeMapper = {\n serializedName: \"BlockBlob_commitBlockListHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlockBlobCommitBlockListHeaders\",\n modelProperties: {\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n xmlName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n xMsContentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n xmlName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n versionId: {\n serializedName: \"x-ms-version-id\",\n xmlName: \"x-ms-version-id\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n xmlName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n xmlName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionScope: {\n serializedName: \"x-ms-encryption-scope\",\n xmlName: \"x-ms-encryption-scope\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlockBlobCommitBlockListExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"BlockBlob_commitBlockListExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlockBlobCommitBlockListExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlockBlobGetBlockListHeaders: coreHttp.CompositeMapper = {\n serializedName: \"BlockBlob_getBlockListHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlockBlobGetBlockListHeaders\",\n modelProperties: {\n lastModified: {\n serializedName: \"last-modified\",\n xmlName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n contentType: {\n serializedName: \"content-type\",\n xmlName: \"content-type\",\n type: {\n name: \"String\"\n }\n },\n blobContentLength: {\n serializedName: \"x-ms-blob-content-length\",\n xmlName: \"x-ms-blob-content-length\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const BlockBlobGetBlockListExceptionHeaders: coreHttp.CompositeMapper = {\n serializedName: \"BlockBlob_getBlockListExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"BlockBlobGetBlockListExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { OIDC_DEFAULT_SCOPES } from \"@azure/msal-common\";\nimport { PopupRequest } from \"../request/PopupRequest\";\nimport { RedirectRequest } from \"../request/RedirectRequest\";\n\n/**\n * Constants\n */\nexport const BrowserConstants = {\n /**\n * Interaction in progress cache value\n */\n INTERACTION_IN_PROGRESS_VALUE: \"interaction_in_progress\",\n /**\n * Invalid grant error code\n */\n INVALID_GRANT_ERROR: \"invalid_grant\",\n /**\n * Default popup window width\n */\n POPUP_WIDTH: 483,\n /**\n * Default popup window height\n */\n POPUP_HEIGHT: 600,\n /**\n * Name of the popup window starts with\n */\n POPUP_NAME_PREFIX: \"msal\",\n /**\n * Default popup monitor poll interval in milliseconds\n */\n POLL_INTERVAL_MS: 50,\n /**\n * Msal-browser SKU\n */\n MSAL_SKU: \"msal.js.browser\",\n};\n\nexport const NativeConstants = {\n CHANNEL_ID: \"53ee284d-920a-4b59-9d30-a60315b26836\",\n PREFERRED_EXTENSION_ID: \"ppnbnpeolgkicgegkbkbjmhlideopiji\",\n MATS_TELEMETRY: \"MATS\"\n};\n\nexport enum NativeExtensionMethod {\n HandshakeRequest = \"Handshake\",\n HandshakeResponse = \"HandshakeResponse\",\n GetToken = \"GetToken\",\n Response = \"Response\"\n}\n\nexport enum BrowserCacheLocation {\n LocalStorage = \"localStorage\",\n SessionStorage = \"sessionStorage\",\n MemoryStorage = \"memoryStorage\"\n}\n\n/**\n * HTTP Request types supported by MSAL.\n */\nexport enum HTTP_REQUEST_TYPE {\n GET = \"GET\",\n POST = \"POST\"\n}\n\n/**\n * Temporary cache keys for MSAL, deleted after any request.\n */\nexport enum TemporaryCacheKeys {\n AUTHORITY = \"authority\",\n ACQUIRE_TOKEN_ACCOUNT = \"acquireToken.account\",\n SESSION_STATE = \"session.state\",\n REQUEST_STATE = \"request.state\",\n NONCE_IDTOKEN = \"nonce.id_token\",\n ORIGIN_URI = \"request.origin\",\n RENEW_STATUS = \"token.renew.status\",\n URL_HASH = \"urlHash\",\n REQUEST_PARAMS = \"request.params\",\n SCOPES = \"scopes\",\n INTERACTION_STATUS_KEY = \"interaction.status\",\n CCS_CREDENTIAL = \"ccs.credential\",\n CORRELATION_ID = \"request.correlationId\",\n NATIVE_REQUEST = \"request.native\"\n}\n\n/**\n * Cache keys stored in-memory\n */\nexport enum InMemoryCacheKeys {\n WRAPPER_SKU = \"wrapper.sku\",\n WRAPPER_VER = \"wrapper.version\"\n}\n\n/**\n * API Codes for Telemetry purposes. \n * Before adding a new code you must claim it in the MSAL Telemetry tracker as these number spaces are shared across all MSALs\n * 0-99 Silent Flow\n * 800-899 Auth Code Flow\n */\nexport enum ApiId {\n acquireTokenRedirect = 861,\n acquireTokenPopup = 862,\n ssoSilent = 863,\n acquireTokenSilent_authCode = 864,\n handleRedirectPromise = 865,\n acquireTokenByCode = 866,\n acquireTokenSilent_silentFlow = 61,\n logout = 961,\n logoutPopup = 962\n}\n\n/*\n * Interaction type of the API - used for state and telemetry\n */\nexport enum InteractionType {\n Redirect = \"redirect\",\n Popup = \"popup\",\n Silent = \"silent\",\n None = \"none\"\n}\n\n/**\n * Types of interaction currently in progress.\n * Used in events in wrapper libraries to invoke functions when certain interaction is in progress or all interactions are complete.\n */\nexport enum InteractionStatus {\n /**\n * Initial status before interaction occurs\n */\n Startup = \"startup\",\n /**\n * Status set when all login calls occuring\n */\n Login = \"login\",\n /**\n * Status set when logout call occuring\n */ \n Logout = \"logout\",\n /**\n * Status set for acquireToken calls\n */\n AcquireToken = \"acquireToken\",\n /**\n * Status set for ssoSilent calls\n */\n SsoSilent = \"ssoSilent\",\n /**\n * Status set when handleRedirect in progress\n */\n HandleRedirect = \"handleRedirect\",\n /**\n * Status set when interaction is complete\n */\n None = \"none\"\n}\n\nexport const DEFAULT_REQUEST: RedirectRequest|PopupRequest = {\n scopes: OIDC_DEFAULT_SCOPES\n};\n\n/**\n * JWK Key Format string (Type MUST be defined for window crypto APIs)\n */\nexport const KEY_FORMAT_JWK = \"jwk\";\n\n// Supported wrapper SKUs\nexport enum WrapperSKU {\n React = \"@azure/msal-react\",\n Angular = \"@azure/msal-angular\"\n}\n\n// DatabaseStorage Constants\nexport const DB_NAME = \"msal.db\";\nexport const DB_VERSION = 1;\nexport const DB_TABLE_NAME = `${DB_NAME}.keys`;\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { OperationOptions, RequestOptionsBase } from \"@azure/core-http\";\nimport { createSpanFunction } from \"@azure/core-tracing\";\n\n/**\n * Creates a span using the global tracer.\n * @internal\n */\nexport const createSpan = createSpanFunction({\n packagePrefix: \"Azure.Storage.Blob\",\n namespace: \"Microsoft.Storage\",\n});\n\n/**\n * @internal\n *\n * Adapt the tracing options from OperationOptions to what they need to be for\n * RequestOptionsBase (when we update to later OpenTelemetry versions this is now\n * two separate fields, not just one).\n */\nexport function convertTracingToRequestOptionsBase(\n options?: OperationOptions\n): Pick {\n return {\n // By passing spanOptions if they exist at runtime, we're backwards compatible with @azure/core-tracing@preview.13 and earlier.\n spanOptions: (options?.tracingOptions as any)?.spanOptions,\n tracingContext: options?.tracingOptions?.tracingContext,\n };\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nexport var STR_DURATION = \"duration\";\r\nexport var STR_PROPERTIES = \"properties\";\r\n//# sourceMappingURL=InternalConstants.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { AbortSignalLike } from \"@azure/abort-controller\";\nimport { HttpHeaders, isNode, URLBuilder, TokenCredential } from \"@azure/core-http\";\n\nimport {\n BlobQueryArrowConfiguration,\n BlobQueryCsvTextConfiguration,\n BlobQueryJsonTextConfiguration,\n BlobQueryParquetConfiguration,\n} from \"../Clients\";\nimport {\n QuerySerialization,\n BlobTags,\n BlobName,\n ListBlobsFlatSegmentResponse,\n ListBlobsHierarchySegmentResponse,\n BlobItemInternal,\n BlobPrefix,\n BlobType,\n LeaseStatusType,\n LeaseStateType,\n LeaseDurationType,\n CopyStatusType,\n AccessTier,\n ArchiveStatus,\n RehydratePriority,\n BlobImmutabilityPolicyMode,\n BlobTag,\n PageRange,\n ClearRange,\n BlobPropertiesInternal,\n} from \"../generated/src/models\";\nimport { DevelopmentConnectionString, HeaderConstants, URLConstants } from \"./constants\";\nimport {\n Tags,\n ObjectReplicationPolicy,\n ObjectReplicationRule,\n ObjectReplicationStatus,\n HttpAuthorization,\n} from \"../models\";\nimport {\n ListBlobsFlatSegmentResponseModel,\n BlobItemInternal as BlobItemInternalModel,\n ListBlobsHierarchySegmentResponseModel,\n BlobPrefix as BlobPrefixModel,\n PageBlobGetPageRangesDiffResponseModel,\n PageRangeInfo,\n} from \"../generatedModels\";\n\n/**\n * Reserved URL characters must be properly escaped for Storage services like Blob or File.\n *\n * ## URL encode and escape strategy for JS SDKs\n *\n * When customers pass a URL string into XxxClient classes constructor, the URL string may already be URL encoded or not.\n * But before sending to Azure Storage server, the URL must be encoded. However, it's hard for a SDK to guess whether the URL\n * string has been encoded or not. We have 2 potential strategies, and chose strategy two for the XxxClient constructors.\n *\n * ### Strategy One: Assume the customer URL string is not encoded, and always encode URL string in SDK.\n *\n * This is what legacy V2 SDK does, simple and works for most of the cases.\n * - When customer URL string is \"http://account.blob.core.windows.net/con/b:\",\n * SDK will encode it to \"http://account.blob.core.windows.net/con/b%3A\" and send to server. A blob named \"b:\" will be created.\n * - When customer URL string is \"http://account.blob.core.windows.net/con/b%3A\",\n * SDK will encode it to \"http://account.blob.core.windows.net/con/b%253A\" and send to server. A blob named \"b%3A\" will be created.\n *\n * But this strategy will make it not possible to create a blob with \"?\" in it's name. Because when customer URL string is\n * \"http://account.blob.core.windows.net/con/blob?name\", the \"?name\" will be treated as URL paramter instead of blob name.\n * If customer URL string is \"http://account.blob.core.windows.net/con/blob%3Fname\", a blob named \"blob%3Fname\" will be created.\n * V2 SDK doesn't have this issue because it doesn't allow customer pass in a full URL, it accepts a separate blob name and encodeURIComponent for it.\n * We cannot accept a SDK cannot create a blob name with \"?\". So we implement strategy two:\n *\n * ### Strategy Two: SDK doesn't assume the URL has been encoded or not. It will just escape the special characters.\n *\n * This is what V10 Blob Go SDK does. It accepts a URL type in Go, and call url.EscapedPath() to escape the special chars unescaped.\n * - When customer URL string is \"http://account.blob.core.windows.net/con/b:\",\n * SDK will escape \":\" like \"http://account.blob.core.windows.net/con/b%3A\" and send to server. A blob named \"b:\" will be created.\n * - When customer URL string is \"http://account.blob.core.windows.net/con/b%3A\",\n * There is no special characters, so send \"http://account.blob.core.windows.net/con/b%3A\" to server. A blob named \"b:\" will be created.\n * - When customer URL string is \"http://account.blob.core.windows.net/con/b%253A\",\n * There is no special characters, so send \"http://account.blob.core.windows.net/con/b%253A\" to server. A blob named \"b%3A\" will be created.\n *\n * This strategy gives us flexibility to create with any special characters. But \"%\" will be treated as a special characters, if the URL string\n * is not encoded, there shouldn't a \"%\" in the URL string, otherwise the URL is not a valid URL.\n * If customer needs to create a blob with \"%\" in it's blob name, use \"%25\" instead of \"%\". Just like above 3rd sample.\n * And following URL strings are invalid:\n * - \"http://account.blob.core.windows.net/con/b%\"\n * - \"http://account.blob.core.windows.net/con/b%2\"\n * - \"http://account.blob.core.windows.net/con/b%G\"\n *\n * Another special character is \"?\", use \"%2F\" to represent a blob name with \"?\" in a URL string.\n *\n * ### Strategy for containerName, blobName or other specific XXXName parameters in methods such as `containerClient.getBlobClient(blobName)`\n *\n * We will apply strategy one, and call encodeURIComponent for these parameters like blobName. Because what customers passes in is a plain name instead of a URL.\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-shares--directories--files--and-metadata\n *\n * @param url -\n */\nexport function escapeURLPath(url: string): string {\n const urlParsed = URLBuilder.parse(url);\n\n let path = urlParsed.getPath();\n path = path || \"/\";\n\n path = escape(path);\n urlParsed.setPath(path);\n\n return urlParsed.toString();\n}\n\nexport interface ConnectionString {\n kind: \"AccountConnString\" | \"SASConnString\";\n url: string;\n accountName: string;\n accountKey?: any;\n accountSas?: string;\n proxyUri?: string; // Development Connection String may contain proxyUri\n}\n\nfunction getProxyUriFromDevConnString(connectionString: string): string {\n // Development Connection String\n // https://docs.microsoft.com/en-us/azure/storage/common/storage-configure-connection-string#connect-to-the-emulator-account-using-the-well-known-account-name-and-key\n let proxyUri = \"\";\n if (connectionString.search(\"DevelopmentStorageProxyUri=\") !== -1) {\n // CONNECTION_STRING=UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://myProxyUri\n const matchCredentials = connectionString.split(\";\");\n for (const element of matchCredentials) {\n if (element.trim().startsWith(\"DevelopmentStorageProxyUri=\")) {\n proxyUri = element.trim().match(\"DevelopmentStorageProxyUri=(.*)\")![1];\n }\n }\n }\n return proxyUri;\n}\n\nexport function getValueInConnString(\n connectionString: string,\n argument:\n | \"BlobEndpoint\"\n | \"AccountName\"\n | \"AccountKey\"\n | \"DefaultEndpointsProtocol\"\n | \"EndpointSuffix\"\n | \"SharedAccessSignature\"\n): string {\n const elements = connectionString.split(\";\");\n for (const element of elements) {\n if (element.trim().startsWith(argument)) {\n return element.trim().match(argument + \"=(.*)\")![1];\n }\n }\n return \"\";\n}\n\n/**\n * Extracts the parts of an Azure Storage account connection string.\n *\n * @param connectionString - Connection string.\n * @returns String key value pairs of the storage account's url and credentials.\n */\nexport function extractConnectionStringParts(connectionString: string): ConnectionString {\n let proxyUri = \"\";\n\n if (connectionString.startsWith(\"UseDevelopmentStorage=true\")) {\n // Development connection string\n proxyUri = getProxyUriFromDevConnString(connectionString);\n connectionString = DevelopmentConnectionString;\n }\n\n // Matching BlobEndpoint in the Account connection string\n let blobEndpoint = getValueInConnString(connectionString, \"BlobEndpoint\");\n // Slicing off '/' at the end if exists\n // (The methods that use `extractConnectionStringParts` expect the url to not have `/` at the end)\n blobEndpoint = blobEndpoint.endsWith(\"/\") ? blobEndpoint.slice(0, -1) : blobEndpoint;\n\n if (\n connectionString.search(\"DefaultEndpointsProtocol=\") !== -1 &&\n connectionString.search(\"AccountKey=\") !== -1\n ) {\n // Account connection string\n\n let defaultEndpointsProtocol = \"\";\n let accountName = \"\";\n let accountKey = Buffer.from(\"accountKey\", \"base64\");\n let endpointSuffix = \"\";\n\n // Get account name and key\n accountName = getValueInConnString(connectionString, \"AccountName\");\n accountKey = Buffer.from(getValueInConnString(connectionString, \"AccountKey\"), \"base64\");\n\n if (!blobEndpoint) {\n // BlobEndpoint is not present in the Account connection string\n // Can be obtained from `${defaultEndpointsProtocol}://${accountName}.blob.${endpointSuffix}`\n\n defaultEndpointsProtocol = getValueInConnString(connectionString, \"DefaultEndpointsProtocol\");\n const protocol = defaultEndpointsProtocol!.toLowerCase();\n if (protocol !== \"https\" && protocol !== \"http\") {\n throw new Error(\n \"Invalid DefaultEndpointsProtocol in the provided Connection String. Expecting 'https' or 'http'\"\n );\n }\n\n endpointSuffix = getValueInConnString(connectionString, \"EndpointSuffix\");\n if (!endpointSuffix) {\n throw new Error(\"Invalid EndpointSuffix in the provided Connection String\");\n }\n blobEndpoint = `${defaultEndpointsProtocol}://${accountName}.blob.${endpointSuffix}`;\n }\n\n if (!accountName) {\n throw new Error(\"Invalid AccountName in the provided Connection String\");\n } else if (accountKey.length === 0) {\n throw new Error(\"Invalid AccountKey in the provided Connection String\");\n }\n\n return {\n kind: \"AccountConnString\",\n url: blobEndpoint,\n accountName,\n accountKey,\n proxyUri,\n };\n } else {\n // SAS connection string\n\n const accountSas = getValueInConnString(connectionString, \"SharedAccessSignature\");\n const accountName = getAccountNameFromUrl(blobEndpoint);\n if (!blobEndpoint) {\n throw new Error(\"Invalid BlobEndpoint in the provided SAS Connection String\");\n } else if (!accountSas) {\n throw new Error(\"Invalid SharedAccessSignature in the provided SAS Connection String\");\n }\n\n return { kind: \"SASConnString\", url: blobEndpoint, accountName, accountSas };\n }\n}\n\n/**\n * Internal escape method implemented Strategy Two mentioned in escapeURL() description.\n *\n * @param text -\n */\nfunction escape(text: string): string {\n return encodeURIComponent(text)\n .replace(/%2F/g, \"/\") // Don't escape for \"/\"\n .replace(/'/g, \"%27\") // Escape for \"'\"\n .replace(/\\+/g, \"%20\")\n .replace(/%25/g, \"%\"); // Revert encoded \"%\"\n}\n\n/**\n * Append a string to URL path. Will remove duplicated \"/\" in front of the string\n * when URL path ends with a \"/\".\n *\n * @param url - Source URL string\n * @param name - String to be appended to URL\n * @returns An updated URL string\n */\nexport function appendToURLPath(url: string, name: string): string {\n const urlParsed = URLBuilder.parse(url);\n\n let path = urlParsed.getPath();\n path = path ? (path.endsWith(\"/\") ? `${path}${name}` : `${path}/${name}`) : name;\n urlParsed.setPath(path);\n\n return urlParsed.toString();\n}\n\n/**\n * Set URL parameter name and value. If name exists in URL parameters, old value\n * will be replaced by name key. If not provide value, the parameter will be deleted.\n *\n * @param url - Source URL string\n * @param name - Parameter name\n * @param value - Parameter value\n * @returns An updated URL string\n */\nexport function setURLParameter(url: string, name: string, value?: string): string {\n const urlParsed = URLBuilder.parse(url);\n urlParsed.setQueryParameter(name, value);\n return urlParsed.toString();\n}\n\n/**\n * Get URL parameter by name.\n *\n * @param url -\n * @param name -\n */\nexport function getURLParameter(url: string, name: string): string | string[] | undefined {\n const urlParsed = URLBuilder.parse(url);\n return urlParsed.getQueryParameterValue(name);\n}\n\n/**\n * Set URL host.\n *\n * @param url - Source URL string\n * @param host - New host string\n * @returns An updated URL string\n */\nexport function setURLHost(url: string, host: string): string {\n const urlParsed = URLBuilder.parse(url);\n urlParsed.setHost(host);\n return urlParsed.toString();\n}\n\n/**\n * Get URL path from an URL string.\n *\n * @param url - Source URL string\n */\nexport function getURLPath(url: string): string | undefined {\n const urlParsed = URLBuilder.parse(url);\n return urlParsed.getPath();\n}\n\n/**\n * Get URL scheme from an URL string.\n *\n * @param url - Source URL string\n */\nexport function getURLScheme(url: string): string | undefined {\n const urlParsed = URLBuilder.parse(url);\n return urlParsed.getScheme();\n}\n\n/**\n * Get URL path and query from an URL string.\n *\n * @param url - Source URL string\n */\nexport function getURLPathAndQuery(url: string): string | undefined {\n const urlParsed = URLBuilder.parse(url);\n const pathString = urlParsed.getPath();\n if (!pathString) {\n throw new RangeError(\"Invalid url without valid path.\");\n }\n\n let queryString = urlParsed.getQuery() || \"\";\n queryString = queryString.trim();\n if (queryString !== \"\") {\n queryString = queryString.startsWith(\"?\") ? queryString : `?${queryString}`; // Ensure query string start with '?'\n }\n\n return `${pathString}${queryString}`;\n}\n\n/**\n * Get URL query key value pairs from an URL string.\n *\n * @param url -\n */\nexport function getURLQueries(url: string): { [key: string]: string } {\n let queryString = URLBuilder.parse(url).getQuery();\n if (!queryString) {\n return {};\n }\n\n queryString = queryString.trim();\n queryString = queryString.startsWith(\"?\") ? queryString.substr(1) : queryString;\n\n let querySubStrings: string[] = queryString.split(\"&\");\n querySubStrings = querySubStrings.filter((value: string) => {\n const indexOfEqual = value.indexOf(\"=\");\n const lastIndexOfEqual = value.lastIndexOf(\"=\");\n return (\n indexOfEqual > 0 && indexOfEqual === lastIndexOfEqual && lastIndexOfEqual < value.length - 1\n );\n });\n\n const queries: { [key: string]: string } = {};\n for (const querySubString of querySubStrings) {\n const splitResults = querySubString.split(\"=\");\n const key: string = splitResults[0];\n const value: string = splitResults[1];\n queries[key] = value;\n }\n\n return queries;\n}\n\n/**\n * Append a string to URL query.\n *\n * @param url - Source URL string.\n * @param queryParts - String to be appended to the URL query.\n * @returns An updated URL string.\n */\nexport function appendToURLQuery(url: string, queryParts: string): string {\n const urlParsed = URLBuilder.parse(url);\n\n let query = urlParsed.getQuery();\n if (query) {\n query += \"&\" + queryParts;\n } else {\n query = queryParts;\n }\n\n urlParsed.setQuery(query);\n return urlParsed.toString();\n}\n\n/**\n * Rounds a date off to seconds.\n *\n * @param date -\n * @param withMilliseconds - If true, YYYY-MM-DDThh:mm:ss.fffffffZ will be returned;\n * If false, YYYY-MM-DDThh:mm:ssZ will be returned.\n * @returns Date string in ISO8061 format, with or without 7 milliseconds component\n */\nexport function truncatedISO8061Date(date: Date, withMilliseconds: boolean = true): string {\n // Date.toISOString() will return like \"2018-10-29T06:34:36.139Z\"\n const dateString = date.toISOString();\n\n return withMilliseconds\n ? dateString.substring(0, dateString.length - 1) + \"0000\" + \"Z\"\n : dateString.substring(0, dateString.length - 5) + \"Z\";\n}\n\n/**\n * Base64 encode.\n *\n * @param content -\n */\nexport function base64encode(content: string): string {\n return !isNode ? btoa(content) : Buffer.from(content).toString(\"base64\");\n}\n\n/**\n * Base64 decode.\n *\n * @param encodedString -\n */\nexport function base64decode(encodedString: string): string {\n return !isNode ? atob(encodedString) : Buffer.from(encodedString, \"base64\").toString();\n}\n\n/**\n * Generate a 64 bytes base64 block ID string.\n *\n * @param blockIndex -\n */\nexport function generateBlockID(blockIDPrefix: string, blockIndex: number): string {\n // To generate a 64 bytes base64 string, source string should be 48\n const maxSourceStringLength = 48;\n\n // A blob can have a maximum of 100,000 uncommitted blocks at any given time\n const maxBlockIndexLength = 6;\n\n const maxAllowedBlockIDPrefixLength = maxSourceStringLength - maxBlockIndexLength;\n\n if (blockIDPrefix.length > maxAllowedBlockIDPrefixLength) {\n blockIDPrefix = blockIDPrefix.slice(0, maxAllowedBlockIDPrefixLength);\n }\n const res =\n blockIDPrefix +\n padStart(blockIndex.toString(), maxSourceStringLength - blockIDPrefix.length, \"0\");\n return base64encode(res);\n}\n\n/**\n * Delay specified time interval.\n *\n * @param timeInMs -\n * @param aborter -\n * @param abortError -\n */\nexport async function delay(\n timeInMs: number,\n aborter?: AbortSignalLike,\n abortError?: Error\n): Promise {\n return new Promise((resolve, reject) => {\n /* eslint-disable-next-line prefer-const */\n let timeout: any;\n\n const abortHandler = () => {\n if (timeout !== undefined) {\n clearTimeout(timeout);\n }\n reject(abortError);\n };\n\n const resolveHandler = () => {\n if (aborter !== undefined) {\n aborter.removeEventListener(\"abort\", abortHandler);\n }\n resolve();\n };\n\n timeout = setTimeout(resolveHandler, timeInMs);\n\n if (aborter !== undefined) {\n aborter.addEventListener(\"abort\", abortHandler);\n }\n });\n}\n\n/**\n * String.prototype.padStart()\n *\n * @param currentString -\n * @param targetLength -\n * @param padString -\n */\nexport function padStart(\n currentString: string,\n targetLength: number,\n padString: string = \" \"\n): string {\n // @ts-expect-error: TS doesn't know this code needs to run downlevel sometimes\n if (String.prototype.padStart) {\n return currentString.padStart(targetLength, padString);\n }\n\n padString = padString || \" \";\n if (currentString.length > targetLength) {\n return currentString;\n } else {\n targetLength = targetLength - currentString.length;\n if (targetLength > padString.length) {\n padString += padString.repeat(targetLength / padString.length);\n }\n return padString.slice(0, targetLength) + currentString;\n }\n}\n\nexport function sanitizeURL(url: string): string {\n let safeURL: string = url;\n if (getURLParameter(safeURL, URLConstants.Parameters.SIGNATURE)) {\n safeURL = setURLParameter(safeURL, URLConstants.Parameters.SIGNATURE, \"*****\");\n }\n\n return safeURL;\n}\n\nexport function sanitizeHeaders(originalHeader: HttpHeaders): HttpHeaders {\n const headers: HttpHeaders = new HttpHeaders();\n for (const header of originalHeader.headersArray()) {\n if (header.name.toLowerCase() === HeaderConstants.AUTHORIZATION.toLowerCase()) {\n headers.set(header.name, \"*****\");\n } else if (header.name.toLowerCase() === HeaderConstants.X_MS_COPY_SOURCE) {\n headers.set(header.name, sanitizeURL(header.value));\n } else {\n headers.set(header.name, header.value);\n }\n }\n\n return headers;\n}\n/**\n * If two strings are equal when compared case insensitive.\n *\n * @param str1 -\n * @param str2 -\n */\nexport function iEqual(str1: string, str2: string): boolean {\n return str1.toLocaleLowerCase() === str2.toLocaleLowerCase();\n}\n\n/**\n * Extracts account name from the url\n * @param url - url to extract the account name from\n * @returns with the account name\n */\nexport function getAccountNameFromUrl(url: string): string {\n const parsedUrl: URLBuilder = URLBuilder.parse(url);\n let accountName;\n try {\n if (parsedUrl.getHost()!.split(\".\")[1] === \"blob\") {\n // `${defaultEndpointsProtocol}://${accountName}.blob.${endpointSuffix}`;\n accountName = parsedUrl.getHost()!.split(\".\")[0];\n } else if (isIpEndpointStyle(parsedUrl)) {\n // IPv4/IPv6 address hosts... Example - http://192.0.0.10:10001/devstoreaccount1/\n // Single word domain without a [dot] in the endpoint... Example - http://localhost:10001/devstoreaccount1/\n // .getPath() -> /devstoreaccount1/\n accountName = parsedUrl.getPath()!.split(\"/\")[1];\n } else {\n // Custom domain case: \"https://customdomain.com/containername/blob\".\n accountName = \"\";\n }\n return accountName;\n } catch (error: any) {\n throw new Error(\"Unable to extract accountName with provided information.\");\n }\n}\n\nexport function isIpEndpointStyle(parsedUrl: URLBuilder): boolean {\n if (parsedUrl.getHost() === undefined) {\n return false;\n }\n\n const host =\n parsedUrl.getHost()! + (parsedUrl.getPort() === undefined ? \"\" : \":\" + parsedUrl.getPort());\n\n // Case 1: Ipv6, use a broad regex to find out candidates whose host contains two ':'.\n // Case 2: localhost(:port), use broad regex to match port part.\n // Case 3: Ipv4, use broad regex which just check if host contains Ipv4.\n // For valid host please refer to https://man7.org/linux/man-pages/man7/hostname.7.html.\n return /^.*:.*:.*$|^localhost(:[0-9]+)?$|^(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])){3}(:[0-9]+)?$/.test(\n host\n );\n}\n\n/**\n * Convert Tags to encoded string.\n *\n * @param tags -\n */\nexport function toBlobTagsString(tags?: Tags): string | undefined {\n if (tags === undefined) {\n return undefined;\n }\n\n const tagPairs = [];\n for (const key in tags) {\n if (Object.prototype.hasOwnProperty.call(tags, key)) {\n const value = tags[key];\n tagPairs.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`);\n }\n }\n\n return tagPairs.join(\"&\");\n}\n\n/**\n * Convert Tags type to BlobTags.\n *\n * @param tags -\n */\nexport function toBlobTags(tags?: Tags): BlobTags | undefined {\n if (tags === undefined) {\n return undefined;\n }\n\n const res: BlobTags = {\n blobTagSet: [],\n };\n\n for (const key in tags) {\n if (Object.prototype.hasOwnProperty.call(tags, key)) {\n const value = tags[key];\n res.blobTagSet.push({\n key,\n value,\n });\n }\n }\n return res;\n}\n\n/**\n * Covert BlobTags to Tags type.\n *\n * @param tags -\n */\nexport function toTags(tags?: BlobTags): Tags | undefined {\n if (tags === undefined) {\n return undefined;\n }\n\n const res: Tags = {};\n for (const blobTag of tags.blobTagSet) {\n res[blobTag.key] = blobTag.value;\n }\n return res;\n}\n\n/**\n * Convert BlobQueryTextConfiguration to QuerySerialization type.\n *\n * @param textConfiguration -\n */\nexport function toQuerySerialization(\n textConfiguration?:\n | BlobQueryJsonTextConfiguration\n | BlobQueryCsvTextConfiguration\n | BlobQueryArrowConfiguration\n | BlobQueryParquetConfiguration\n): QuerySerialization | undefined {\n if (textConfiguration === undefined) {\n return undefined;\n }\n\n switch (textConfiguration.kind) {\n case \"csv\":\n return {\n format: {\n type: \"delimited\",\n delimitedTextConfiguration: {\n columnSeparator: textConfiguration.columnSeparator || \",\",\n fieldQuote: textConfiguration.fieldQuote || \"\",\n recordSeparator: textConfiguration.recordSeparator,\n escapeChar: textConfiguration.escapeCharacter || \"\",\n headersPresent: textConfiguration.hasHeaders || false,\n },\n },\n };\n case \"json\":\n return {\n format: {\n type: \"json\",\n jsonTextConfiguration: {\n recordSeparator: textConfiguration.recordSeparator,\n },\n },\n };\n case \"arrow\":\n return {\n format: {\n type: \"arrow\",\n arrowConfiguration: {\n schema: textConfiguration.schema,\n },\n },\n };\n case \"parquet\":\n return {\n format: {\n type: \"parquet\",\n },\n };\n\n default:\n throw Error(\"Invalid BlobQueryTextConfiguration.\");\n }\n}\n\nexport function parseObjectReplicationRecord(\n objectReplicationRecord?: Record\n): ObjectReplicationPolicy[] | undefined {\n if (!objectReplicationRecord) {\n return undefined;\n }\n\n if (\"policy-id\" in objectReplicationRecord) {\n // If the dictionary contains a key with policy id, we are not required to do any parsing since\n // the policy id should already be stored in the ObjectReplicationDestinationPolicyId.\n return undefined;\n }\n\n const orProperties: ObjectReplicationPolicy[] = [];\n for (const key in objectReplicationRecord) {\n const ids = key.split(\"_\");\n const policyPrefix = \"or-\";\n if (ids[0].startsWith(policyPrefix)) {\n ids[0] = ids[0].substring(policyPrefix.length);\n }\n const rule: ObjectReplicationRule = {\n ruleId: ids[1],\n replicationStatus: objectReplicationRecord[key] as ObjectReplicationStatus,\n };\n const policyIndex = orProperties.findIndex((policy) => policy.policyId === ids[0]);\n if (policyIndex > -1) {\n orProperties[policyIndex].rules.push(rule);\n } else {\n orProperties.push({\n policyId: ids[0],\n rules: [rule],\n });\n }\n }\n return orProperties;\n}\n\n/**\n * Attach a TokenCredential to an object.\n *\n * @param thing -\n * @param credential -\n */\nexport function attachCredential(thing: T, credential: TokenCredential): T {\n (thing as any).credential = credential;\n return thing;\n}\n\nexport function httpAuthorizationToString(\n httpAuthorization?: HttpAuthorization\n): string | undefined {\n return httpAuthorization ? httpAuthorization.scheme + \" \" + httpAuthorization.value : undefined;\n}\n\nexport function BlobNameToString(name: BlobName): string {\n if (name.encoded) {\n return decodeURIComponent(name.content!);\n } else {\n return name.content!;\n }\n}\n\nexport function ConvertInternalResponseOfListBlobFlat(\n internalResponse: ListBlobsFlatSegmentResponse\n): ListBlobsFlatSegmentResponseModel {\n return {\n ...internalResponse,\n segment: {\n blobItems: internalResponse.segment.blobItems.map((blobItemInteral) => {\n const blobItem: BlobItemInternalModel = {\n ...blobItemInteral,\n name: BlobNameToString(blobItemInteral.name),\n };\n return blobItem;\n }),\n },\n };\n}\n\nexport function ConvertInternalResponseOfListBlobHierarchy(\n internalResponse: ListBlobsHierarchySegmentResponse\n): ListBlobsHierarchySegmentResponseModel {\n return {\n ...internalResponse,\n segment: {\n blobPrefixes: internalResponse.segment.blobPrefixes?.map((blobPrefixInternal) => {\n const blobPrefix: BlobPrefixModel = {\n name: BlobNameToString(blobPrefixInternal.name),\n };\n return blobPrefix;\n }),\n blobItems: internalResponse.segment.blobItems.map((blobItemInteral) => {\n const blobItem: BlobItemInternalModel = {\n ...blobItemInteral,\n name: BlobNameToString(blobItemInteral.name),\n };\n return blobItem;\n }),\n },\n };\n}\n\nfunction decodeBase64String(value: string): Uint8Array {\n if (isNode) {\n return Buffer.from(value, \"base64\");\n } else {\n const byteString = atob(value);\n const arr = new Uint8Array(byteString.length);\n for (let i = 0; i < byteString.length; i++) {\n arr[i] = byteString.charCodeAt(i);\n }\n return arr;\n }\n}\n\nfunction ParseBoolean(content: any) {\n if (content === undefined) return undefined;\n if (content === \"true\") return true;\n if (content === \"false\") return false;\n return undefined;\n}\n\nfunction ParseBlobName(blobNameInXML: any): BlobName {\n if (blobNameInXML[\"$\"] !== undefined && blobNameInXML[\"#\"] !== undefined) {\n return {\n encoded: ParseBoolean(blobNameInXML[\"$\"][\"Encoded\"]),\n content: blobNameInXML[\"#\"] as string,\n };\n } else {\n return {\n encoded: false,\n content: blobNameInXML as string,\n };\n }\n}\n\nfunction ParseBlobProperties(blobPropertiesInXML: any): BlobPropertiesInternal {\n const blobProperties = blobPropertiesInXML;\n if (blobPropertiesInXML[\"Creation-Time\"]) {\n blobProperties.createdOn = new Date(blobPropertiesInXML[\"Creation-Time\"] as string);\n delete blobProperties[\"Creation-Time\"];\n }\n\n if (blobPropertiesInXML[\"Last-Modified\"]) {\n blobProperties.lastModified = new Date(blobPropertiesInXML[\"Last-Modified\"] as string);\n delete blobProperties[\"Last-Modified\"];\n }\n\n if (blobPropertiesInXML[\"Etag\"]) {\n blobProperties.etag = blobPropertiesInXML[\"Etag\"] as string;\n delete blobProperties[\"Etag\"];\n }\n\n if (blobPropertiesInXML[\"Content-Length\"]) {\n blobProperties.contentLength = parseFloat(blobPropertiesInXML[\"Content-Length\"] as string);\n delete blobProperties[\"Content-Length\"];\n }\n\n if (blobPropertiesInXML[\"Content-Type\"]) {\n blobProperties.contentType = blobPropertiesInXML[\"Content-Type\"] as string;\n delete blobProperties[\"Content-Type\"];\n }\n\n if (blobPropertiesInXML[\"Content-Encoding\"]) {\n blobProperties.contentEncoding = blobPropertiesInXML[\"Content-Encoding\"] as string;\n delete blobProperties[\"Content-Encoding\"];\n }\n\n if (blobPropertiesInXML[\"Content-Language\"]) {\n blobProperties.contentLanguage = blobPropertiesInXML[\"Content-Language\"] as string;\n delete blobProperties[\"Content-Language\"];\n }\n\n if (blobPropertiesInXML[\"Content-MD5\"]) {\n blobProperties.contentMD5 = decodeBase64String(blobPropertiesInXML[\"Content-MD5\"] as string);\n delete blobProperties[\"Content-MD5\"];\n }\n\n if (blobPropertiesInXML[\"Content-Disposition\"]) {\n blobProperties.contentDisposition = blobPropertiesInXML[\"Content-Disposition\"] as string;\n delete blobProperties[\"Content-Disposition\"];\n }\n\n if (blobPropertiesInXML[\"Cache-Control\"]) {\n blobProperties.cacheControl = blobPropertiesInXML[\"Cache-Control\"] as string;\n delete blobProperties[\"Cache-Control\"];\n }\n\n if (blobPropertiesInXML[\"x-ms-blob-sequence-number\"]) {\n blobProperties.blobSequenceNumber = parseFloat(\n blobPropertiesInXML[\"x-ms-blob-sequence-number\"] as string\n );\n delete blobProperties[\"x-ms-blob-sequence-number\"];\n }\n\n if (blobPropertiesInXML[\"BlobType\"]) {\n blobProperties.blobType = blobPropertiesInXML[\"BlobType\"] as BlobType;\n delete blobProperties[\"BlobType\"];\n }\n\n if (blobPropertiesInXML[\"LeaseStatus\"]) {\n blobProperties.leaseStatus = blobPropertiesInXML[\"LeaseStatus\"] as LeaseStatusType;\n delete blobProperties[\"LeaseStatus\"];\n }\n\n if (blobPropertiesInXML[\"LeaseState\"]) {\n blobProperties.leaseState = blobPropertiesInXML[\"LeaseState\"] as LeaseStateType;\n delete blobProperties[\"LeaseState\"];\n }\n\n if (blobPropertiesInXML[\"LeaseDuration\"]) {\n blobProperties.leaseDuration = blobPropertiesInXML[\"LeaseDuration\"] as LeaseDurationType;\n delete blobProperties[\"LeaseDuration\"];\n }\n\n if (blobPropertiesInXML[\"CopyId\"]) {\n blobProperties.copyId = blobPropertiesInXML[\"CopyId\"] as string;\n delete blobProperties[\"CopyId\"];\n }\n\n if (blobPropertiesInXML[\"CopyStatus\"]) {\n blobProperties.copyStatus = blobPropertiesInXML[\"CopyStatus\"] as CopyStatusType;\n delete blobProperties[\"CopyStatus\"];\n }\n\n if (blobPropertiesInXML[\"CopySource\"]) {\n blobProperties.copySource = blobPropertiesInXML[\"CopySource\"] as string;\n delete blobProperties[\"CopySource\"];\n }\n\n if (blobPropertiesInXML[\"CopyProgress\"]) {\n blobProperties.copyProgress = blobPropertiesInXML[\"CopyProgress\"] as string;\n delete blobProperties[\"CopyProgress\"];\n }\n\n if (blobPropertiesInXML[\"CopyCompletionTime\"]) {\n blobProperties.copyCompletedOn = new Date(blobPropertiesInXML[\"CopyCompletionTime\"] as string);\n delete blobProperties[\"CopyCompletionTime\"];\n }\n\n if (blobPropertiesInXML[\"CopyStatusDescription\"]) {\n blobProperties.copyStatusDescription = blobPropertiesInXML[\"CopyStatusDescription\"] as string;\n delete blobProperties[\"CopyStatusDescription\"];\n }\n\n if (blobPropertiesInXML[\"ServerEncrypted\"]) {\n blobProperties.serverEncrypted = ParseBoolean(blobPropertiesInXML[\"ServerEncrypted\"]);\n delete blobProperties[\"ServerEncrypted\"];\n }\n\n if (blobPropertiesInXML[\"IncrementalCopy\"]) {\n blobProperties.incrementalCopy = ParseBoolean(blobPropertiesInXML[\"IncrementalCopy\"]);\n delete blobProperties[\"IncrementalCopy\"];\n }\n\n if (blobPropertiesInXML[\"DestinationSnapshot\"]) {\n blobProperties.destinationSnapshot = blobPropertiesInXML[\"DestinationSnapshot\"] as string;\n delete blobProperties[\"DestinationSnapshot\"];\n }\n\n if (blobPropertiesInXML[\"DeletedTime\"]) {\n blobProperties.deletedOn = new Date(blobPropertiesInXML[\"DeletedTime\"] as string);\n delete blobProperties[\"DeletedTime\"];\n }\n\n if (blobPropertiesInXML[\"RemainingRetentionDays\"]) {\n blobProperties.remainingRetentionDays = parseFloat(\n blobPropertiesInXML[\"RemainingRetentionDays\"] as string\n );\n delete blobProperties[\"RemainingRetentionDays\"];\n }\n\n if (blobPropertiesInXML[\"AccessTier\"]) {\n blobProperties.accessTier = blobPropertiesInXML[\"AccessTier\"] as AccessTier;\n delete blobProperties[\"AccessTier\"];\n }\n\n if (blobPropertiesInXML[\"AccessTierInferred\"]) {\n blobProperties.accessTierInferred = ParseBoolean(blobPropertiesInXML[\"AccessTierInferred\"]);\n delete blobProperties[\"AccessTierInferred\"];\n }\n\n if (blobPropertiesInXML[\"ArchiveStatus\"]) {\n blobProperties.archiveStatus = blobPropertiesInXML[\"ArchiveStatus\"] as ArchiveStatus;\n delete blobProperties[\"ArchiveStatus\"];\n }\n\n if (blobPropertiesInXML[\"CustomerProvidedKeySha256\"]) {\n blobProperties.customerProvidedKeySha256 = blobPropertiesInXML[\n \"CustomerProvidedKeySha256\"\n ] as string;\n delete blobProperties[\"CustomerProvidedKeySha256\"];\n }\n\n if (blobPropertiesInXML[\"EncryptionScope\"]) {\n blobProperties.encryptionScope = blobPropertiesInXML[\"EncryptionScope\"] as string;\n delete blobProperties[\"EncryptionScope\"];\n }\n\n if (blobPropertiesInXML[\"AccessTierChangeTime\"]) {\n blobProperties.accessTierChangedOn = new Date(\n blobPropertiesInXML[\"AccessTierChangeTime\"] as string\n );\n delete blobProperties[\"AccessTierChangeTime\"];\n }\n\n if (blobPropertiesInXML[\"TagCount\"]) {\n blobProperties.tagCount = parseFloat(blobPropertiesInXML[\"TagCount\"] as string);\n delete blobProperties[\"TagCount\"];\n }\n\n if (blobPropertiesInXML[\"Expiry-Time\"]) {\n blobProperties.expiresOn = new Date(blobPropertiesInXML[\"Expiry-Time\"] as string);\n delete blobProperties[\"Expiry-Time\"];\n }\n\n if (blobPropertiesInXML[\"Sealed\"]) {\n blobProperties.isSealed = ParseBoolean(blobPropertiesInXML[\"Sealed\"]);\n delete blobProperties[\"Sealed\"];\n }\n\n if (blobPropertiesInXML[\"RehydratePriority\"]) {\n blobProperties.rehydratePriority = blobPropertiesInXML[\n \"RehydratePriority\"\n ] as RehydratePriority;\n delete blobProperties[\"RehydratePriority\"];\n }\n\n if (blobPropertiesInXML[\"LastAccessTime\"]) {\n blobProperties.lastAccessedOn = new Date(blobPropertiesInXML[\"LastAccessTime\"] as string);\n delete blobProperties[\"LastAccessTime\"];\n }\n\n if (blobPropertiesInXML[\"ImmutabilityPolicyUntilDate\"]) {\n blobProperties.immutabilityPolicyExpiresOn = new Date(\n blobPropertiesInXML[\"ImmutabilityPolicyUntilDate\"] as string\n );\n delete blobProperties[\"ImmutabilityPolicyUntilDate\"];\n }\n\n if (blobPropertiesInXML[\"ImmutabilityPolicyMode\"]) {\n blobProperties.immutabilityPolicyMode = blobPropertiesInXML[\n \"ImmutabilityPolicyMode\"\n ] as BlobImmutabilityPolicyMode;\n delete blobProperties[\"ImmutabilityPolicyMode\"];\n }\n\n if (blobPropertiesInXML[\"LegalHold\"]) {\n blobProperties.legalHold = ParseBoolean(blobPropertiesInXML[\"LegalHold\"]);\n delete blobProperties[\"LegalHold\"];\n }\n\n return blobProperties;\n}\n\nfunction ParseBlobItem(blobInXML: any): BlobItemInternal {\n const blobItem = blobInXML;\n blobItem.properties = ParseBlobProperties(blobInXML[\"Properties\"]);\n delete blobItem[\"Properties\"];\n\n blobItem.name = ParseBlobName(blobInXML[\"Name\"]);\n delete blobItem[\"Name\"];\n blobItem.deleted = ParseBoolean(blobInXML[\"Deleted\"])!;\n delete blobItem[\"Deleted\"];\n\n if (blobInXML[\"Snapshot\"]) {\n blobItem.snapshot = blobInXML[\"Snapshot\"] as string;\n delete blobItem[\"Snapshot\"];\n }\n\n if (blobInXML[\"VersionId\"]) {\n blobItem.versionId = blobInXML[\"VersionId\"] as string;\n delete blobItem[\"VersionId\"];\n }\n\n if (blobInXML[\"IsCurrentVersion\"]) {\n blobItem.isCurrentVersion = ParseBoolean(blobInXML[\"IsCurrentVersion\"]);\n delete blobItem[\"IsCurrentVersion\"];\n }\n\n if (blobInXML[\"Metadata\"]) {\n blobItem.metadata = blobInXML[\"Metadata\"];\n delete blobItem[\"Metadata\"];\n }\n\n if (blobInXML[\"Tags\"]) {\n blobItem.blobTags = ParseBlobTags(blobInXML[\"Tags\"]);\n delete blobItem[\"Tags\"];\n }\n\n if (blobInXML[\"OrMetadata\"]) {\n blobItem.objectReplicationMetadata = blobInXML[\"OrMetadata\"];\n delete blobItem[\"OrMetadata\"];\n }\n\n if (blobInXML[\"HasVersionsOnly\"]) {\n blobItem.hasVersionsOnly = ParseBoolean(blobInXML[\"HasVersionsOnly\"]);\n delete blobItem[\"HasVersionsOnly\"];\n }\n return blobItem;\n}\n\nfunction ParseBlobPrefix(blobPrefixInXML: any): BlobPrefix {\n return {\n name: ParseBlobName(blobPrefixInXML[\"Name\"]),\n };\n}\n\nfunction ParseBlobTag(blobTagInXML: any): BlobTag {\n return {\n key: blobTagInXML[\"Key\"],\n value: blobTagInXML[\"Value\"],\n };\n}\n\nfunction ParseBlobTags(blobTagsInXML: any): BlobTags | undefined {\n if (\n blobTagsInXML === undefined ||\n blobTagsInXML[\"TagSet\"] === undefined ||\n blobTagsInXML[\"TagSet\"][\"Tag\"] === undefined\n ) {\n return undefined;\n }\n\n const blobTagSet = [];\n if (blobTagsInXML[\"TagSet\"][\"Tag\"] instanceof Array) {\n blobTagsInXML[\"TagSet\"][\"Tag\"].forEach((blobTagInXML: any) => {\n blobTagSet.push(ParseBlobTag(blobTagInXML));\n });\n } else {\n blobTagSet.push(ParseBlobTag(blobTagsInXML[\"TagSet\"][\"Tag\"]));\n }\n\n return { blobTagSet: blobTagSet };\n}\n\nexport function ProcessBlobItems(blobArrayInXML: any[]): BlobItemInternal[] {\n const blobItems = [];\n\n if (blobArrayInXML instanceof Array) {\n blobArrayInXML.forEach((blobInXML: any) => {\n blobItems.push(ParseBlobItem(blobInXML));\n });\n } else {\n blobItems.push(ParseBlobItem(blobArrayInXML));\n }\n\n return blobItems;\n}\n\nexport function ProcessBlobPrefixes(blobPrefixesInXML: any[]): BlobPrefix[] {\n const blobPrefixes = [];\n\n if (blobPrefixesInXML instanceof Array) {\n blobPrefixesInXML.forEach((blobPrefixInXML: any) => {\n blobPrefixes.push(ParseBlobPrefix(blobPrefixInXML));\n });\n } else {\n blobPrefixes.push(ParseBlobPrefix(blobPrefixesInXML));\n }\n\n return blobPrefixes;\n}\n\nexport function* ExtractPageRangeInfoItems(\n getPageRangesSegment: PageBlobGetPageRangesDiffResponseModel\n): IterableIterator {\n let pageRange: PageRange[] = [];\n let clearRange: ClearRange[] = [];\n\n if (getPageRangesSegment.pageRange) pageRange = getPageRangesSegment.pageRange;\n if (getPageRangesSegment.clearRange) clearRange = getPageRangesSegment.clearRange;\n\n let pageRangeIndex = 0;\n let clearRangeIndex = 0;\n\n while (pageRangeIndex < pageRange.length && clearRangeIndex < clearRange.length) {\n if (pageRange[pageRangeIndex].start < clearRange[clearRangeIndex].start) {\n yield {\n start: pageRange[pageRangeIndex].start,\n end: pageRange[pageRangeIndex].end,\n isClear: false,\n };\n ++pageRangeIndex;\n } else {\n yield {\n start: clearRange[clearRangeIndex].start,\n end: clearRange[clearRangeIndex].end,\n isClear: true,\n };\n ++clearRangeIndex;\n }\n }\n\n for (; pageRangeIndex < pageRange.length; ++pageRangeIndex) {\n yield {\n start: pageRange[pageRangeIndex].start,\n end: pageRange[pageRangeIndex].end,\n isClear: false,\n };\n }\n\n for (; clearRangeIndex < clearRange.length; ++clearRangeIndex) {\n yield {\n start: clearRange[clearRangeIndex].start,\n end: clearRange[clearRangeIndex].end,\n isClear: true,\n };\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport const SDK_VERSION: string = \"12.11.0\";\nexport const SERVICE_VERSION: string = \"2021-08-06\";\n\nexport const BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES: number = 256 * 1024 * 1024; // 256MB\nexport const BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES: number = 4000 * 1024 * 1024; // 4000MB\nexport const BLOCK_BLOB_MAX_BLOCKS: number = 50000;\nexport const DEFAULT_BLOCK_BUFFER_SIZE_BYTES: number = 8 * 1024 * 1024; // 8MB\nexport const DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES: number = 4 * 1024 * 1024; // 4MB\nexport const DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS: number = 5;\n/**\n * The OAuth scope to use with Azure Storage.\n */\nexport const StorageOAuthScopes: string | string[] = \"https://storage.azure.com/.default\";\n\nexport const URLConstants = {\n Parameters: {\n FORCE_BROWSER_NO_CACHE: \"_\",\n SIGNATURE: \"sig\",\n SNAPSHOT: \"snapshot\",\n VERSIONID: \"versionid\",\n TIMEOUT: \"timeout\",\n },\n};\n\nexport const HTTPURLConnection = {\n HTTP_ACCEPTED: 202,\n HTTP_CONFLICT: 409,\n HTTP_NOT_FOUND: 404,\n HTTP_PRECON_FAILED: 412,\n HTTP_RANGE_NOT_SATISFIABLE: 416,\n};\n\nexport const HeaderConstants = {\n AUTHORIZATION: \"Authorization\",\n AUTHORIZATION_SCHEME: \"Bearer\",\n CONTENT_ENCODING: \"Content-Encoding\",\n CONTENT_ID: \"Content-ID\",\n CONTENT_LANGUAGE: \"Content-Language\",\n CONTENT_LENGTH: \"Content-Length\",\n CONTENT_MD5: \"Content-Md5\",\n CONTENT_TRANSFER_ENCODING: \"Content-Transfer-Encoding\",\n CONTENT_TYPE: \"Content-Type\",\n COOKIE: \"Cookie\",\n DATE: \"date\",\n IF_MATCH: \"if-match\",\n IF_MODIFIED_SINCE: \"if-modified-since\",\n IF_NONE_MATCH: \"if-none-match\",\n IF_UNMODIFIED_SINCE: \"if-unmodified-since\",\n PREFIX_FOR_STORAGE: \"x-ms-\",\n RANGE: \"Range\",\n USER_AGENT: \"User-Agent\",\n X_MS_CLIENT_REQUEST_ID: \"x-ms-client-request-id\",\n X_MS_COPY_SOURCE: \"x-ms-copy-source\",\n X_MS_DATE: \"x-ms-date\",\n X_MS_ERROR_CODE: \"x-ms-error-code\",\n X_MS_VERSION: \"x-ms-version\",\n};\n\nexport const ETagNone = \"\";\nexport const ETagAny = \"*\";\n\nexport const SIZE_1_MB = 1 * 1024 * 1024;\nexport const BATCH_MAX_REQUEST = 256;\nexport const BATCH_MAX_PAYLOAD_IN_BYTES = 4 * SIZE_1_MB;\nexport const HTTP_LINE_ENDING = \"\\r\\n\";\nexport const HTTP_VERSION_1_1 = \"HTTP/1.1\";\n\nexport const EncryptionAlgorithmAES25 = \"AES256\";\n\nexport const DevelopmentConnectionString = `DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;`;\n\nexport const StorageBlobLoggingAllowedHeaderNames = [\n \"Access-Control-Allow-Origin\",\n \"Cache-Control\",\n \"Content-Length\",\n \"Content-Type\",\n \"Date\",\n \"Request-Id\",\n \"traceparent\",\n \"Transfer-Encoding\",\n \"User-Agent\",\n \"x-ms-client-request-id\",\n \"x-ms-date\",\n \"x-ms-error-code\",\n \"x-ms-request-id\",\n \"x-ms-return-client-request-id\",\n \"x-ms-version\",\n \"Accept-Ranges\",\n \"Content-Disposition\",\n \"Content-Encoding\",\n \"Content-Language\",\n \"Content-MD5\",\n \"Content-Range\",\n \"ETag\",\n \"Last-Modified\",\n \"Server\",\n \"Vary\",\n \"x-ms-content-crc64\",\n \"x-ms-copy-action\",\n \"x-ms-copy-completion-time\",\n \"x-ms-copy-id\",\n \"x-ms-copy-progress\",\n \"x-ms-copy-status\",\n \"x-ms-has-immutability-policy\",\n \"x-ms-has-legal-hold\",\n \"x-ms-lease-state\",\n \"x-ms-lease-status\",\n \"x-ms-range\",\n \"x-ms-request-server-encrypted\",\n \"x-ms-server-encrypted\",\n \"x-ms-snapshot\",\n \"x-ms-source-range\",\n \"If-Match\",\n \"If-Modified-Since\",\n \"If-None-Match\",\n \"If-Unmodified-Since\",\n \"x-ms-access-tier\",\n \"x-ms-access-tier-change-time\",\n \"x-ms-access-tier-inferred\",\n \"x-ms-account-kind\",\n \"x-ms-archive-status\",\n \"x-ms-blob-append-offset\",\n \"x-ms-blob-cache-control\",\n \"x-ms-blob-committed-block-count\",\n \"x-ms-blob-condition-appendpos\",\n \"x-ms-blob-condition-maxsize\",\n \"x-ms-blob-content-disposition\",\n \"x-ms-blob-content-encoding\",\n \"x-ms-blob-content-language\",\n \"x-ms-blob-content-length\",\n \"x-ms-blob-content-md5\",\n \"x-ms-blob-content-type\",\n \"x-ms-blob-public-access\",\n \"x-ms-blob-sequence-number\",\n \"x-ms-blob-type\",\n \"x-ms-copy-destination-snapshot\",\n \"x-ms-creation-time\",\n \"x-ms-default-encryption-scope\",\n \"x-ms-delete-snapshots\",\n \"x-ms-delete-type-permanent\",\n \"x-ms-deny-encryption-scope-override\",\n \"x-ms-encryption-algorithm\",\n \"x-ms-if-sequence-number-eq\",\n \"x-ms-if-sequence-number-le\",\n \"x-ms-if-sequence-number-lt\",\n \"x-ms-incremental-copy\",\n \"x-ms-lease-action\",\n \"x-ms-lease-break-period\",\n \"x-ms-lease-duration\",\n \"x-ms-lease-id\",\n \"x-ms-lease-time\",\n \"x-ms-page-write\",\n \"x-ms-proposed-lease-id\",\n \"x-ms-range-get-content-md5\",\n \"x-ms-rehydrate-priority\",\n \"x-ms-sequence-number-action\",\n \"x-ms-sku-name\",\n \"x-ms-source-content-md5\",\n \"x-ms-source-if-match\",\n \"x-ms-source-if-modified-since\",\n \"x-ms-source-if-none-match\",\n \"x-ms-source-if-unmodified-since\",\n \"x-ms-tag-count\",\n \"x-ms-encryption-key-sha256\",\n \"x-ms-if-tags\",\n \"x-ms-source-if-tags\",\n];\n\nexport const StorageBlobLoggingAllowedQueryParameters = [\n \"comp\",\n \"maxresults\",\n \"rscc\",\n \"rscd\",\n \"rsce\",\n \"rscl\",\n \"rsct\",\n \"se\",\n \"si\",\n \"sip\",\n \"sp\",\n \"spr\",\n \"sr\",\n \"srt\",\n \"ss\",\n \"st\",\n \"sv\",\n \"include\",\n \"marker\",\n \"prefix\",\n \"copyid\",\n \"restype\",\n \"blockid\",\n \"blocklisttype\",\n \"delimiter\",\n \"prevsnapshot\",\n \"ske\",\n \"skoid\",\n \"sks\",\n \"skt\",\n \"sktid\",\n \"skv\",\n \"snapshot\",\n];\n\nexport const BlobUsesCustomerSpecifiedEncryptionMsg = \"BlobUsesCustomerSpecifiedEncryption\";\nexport const BlobDoesNotUseCustomerSpecifiedEncryption =\n \"BlobDoesNotUseCustomerSpecifiedEncryption\";\n","import { IKeyframes } from './IKeyframes';\nimport { getStyleOptions } from './StyleOptionsState';\nimport { Stylesheet } from './Stylesheet';\nimport { serializeRuleEntries } from './styleToClassName';\n\n/**\n * Registers keyframe definitions.\n *\n * @public\n */\nexport function keyframes(timeline: IKeyframes): string {\n const stylesheet = Stylesheet.getInstance();\n const rulesArray: string[] = [];\n\n for (const prop in timeline) {\n if (timeline.hasOwnProperty(prop)) {\n rulesArray.push(prop, '{', serializeRuleEntries(getStyleOptions(), timeline[prop]), '}');\n }\n }\n const rules = rulesArray.join('');\n\n const className = stylesheet.classNameFromKey(rules);\n\n if (className) {\n return className;\n }\n\n const name = stylesheet.getClassName();\n stylesheet.insertRule(`@keyframes ${name}{${rules}}`, true);\n stylesheet.cacheClassName(name, rules, [], ['keyframes', rules]);\n\n return name;\n}\n","import { keyframes } from '@fluentui/merge-styles';\nimport type { IAnimationStyles, IAnimationVariables } from '../types/IAnimationStyles';\nimport type { IRawStyle } from '@fluentui/merge-styles';\n\n/* Register the keyframes */\n\nconst EASING_FUNCTION_1 = 'cubic-bezier(.1,.9,.2,1)';\nconst EASING_FUNCTION_2 = 'cubic-bezier(.1,.25,.75,.9)';\nconst DURATION_1 = '0.167s';\nconst DURATION_2 = '0.267s';\nconst DURATION_3 = '0.367s';\nconst DURATION_4 = '0.467s';\n\nconst FADE_IN: string = keyframes({\n from: { opacity: 0 },\n to: { opacity: 1 },\n});\n\nconst FADE_OUT: string = keyframes({\n from: { opacity: 1 },\n to: { opacity: 0, visibility: 'hidden' },\n});\n\nconst SLIDE_RIGHT_IN10: string = _createSlideInX(-10);\nconst SLIDE_RIGHT_IN20: string = _createSlideInX(-20);\nconst SLIDE_RIGHT_IN40: string = _createSlideInX(-40);\nconst SLIDE_RIGHT_IN400: string = _createSlideInX(-400);\nconst SLIDE_LEFT_IN10: string = _createSlideInX(10);\nconst SLIDE_LEFT_IN20: string = _createSlideInX(20);\nconst SLIDE_LEFT_IN40: string = _createSlideInX(40);\nconst SLIDE_LEFT_IN400: string = _createSlideInX(400);\nconst SLIDE_UP_IN10: string = _createSlideInY(10);\nconst SLIDE_UP_IN20: string = _createSlideInY(20);\nconst SLIDE_DOWN_IN10: string = _createSlideInY(-10);\nconst SLIDE_DOWN_IN20: string = _createSlideInY(-20);\n\nconst SLIDE_RIGHT_OUT10: string = _createSlideOutX(10);\nconst SLIDE_RIGHT_OUT20: string = _createSlideOutX(20);\nconst SLIDE_RIGHT_OUT40: string = _createSlideOutX(40);\nconst SLIDE_RIGHT_OUT400: string = _createSlideOutX(400);\nconst SLIDE_LEFT_OUT10: string = _createSlideOutX(-10);\nconst SLIDE_LEFT_OUT20: string = _createSlideOutX(-20);\nconst SLIDE_LEFT_OUT40: string = _createSlideOutX(-40);\nconst SLIDE_LEFT_OUT400: string = _createSlideOutX(-400);\nconst SLIDE_UP_OUT10: string = _createSlideOutY(-10);\nconst SLIDE_UP_OUT20: string = _createSlideOutY(-20);\nconst SLIDE_DOWN_OUT10: string = _createSlideOutY(10);\nconst SLIDE_DOWN_OUT20: string = _createSlideOutY(20);\n\nconst SCALE_UP100: string = keyframes({\n from: { transform: 'scale3d(.98,.98,1)' },\n to: { transform: 'scale3d(1,1,1)' },\n});\n\nconst SCALE_DOWN98: string = keyframes({\n from: { transform: 'scale3d(1,1,1)' },\n to: { transform: 'scale3d(.98,.98,1)' },\n});\n\nconst SCALE_DOWN100: string = keyframes({\n from: { transform: 'scale3d(1.03,1.03,1)' },\n to: { transform: 'scale3d(1,1,1)' },\n});\n\nconst SCALE_UP103: string = keyframes({\n from: { transform: 'scale3d(1,1,1)' },\n to: { transform: 'scale3d(1.03,1.03,1)' },\n});\n\nconst ROTATE90: string = keyframes({\n from: { transform: 'rotateZ(0deg)' },\n to: { transform: 'rotateZ(90deg)' },\n});\n\nconst ROTATE_N90: string = keyframes({\n from: { transform: 'rotateZ(0deg)' },\n to: { transform: 'rotateZ(-90deg)' },\n});\n\n/**\n * Exporting raw duraction values and easing functions to be used in custom animations\n */\nexport const AnimationVariables: IAnimationVariables = {\n easeFunction1: EASING_FUNCTION_1,\n easeFunction2: EASING_FUNCTION_2,\n durationValue1: DURATION_1,\n durationValue2: DURATION_2,\n durationValue3: DURATION_3,\n durationValue4: DURATION_4,\n};\n\n/**\n * All Fabric standard animations, exposed as json objects referencing predefined\n * keyframes. These objects can be mixed in with other class definitions.\n */\nexport const AnimationStyles: IAnimationStyles = {\n slideRightIn10: _createAnimation(`${FADE_IN},${SLIDE_RIGHT_IN10}`, DURATION_3, EASING_FUNCTION_1),\n slideRightIn20: _createAnimation(`${FADE_IN},${SLIDE_RIGHT_IN20}`, DURATION_3, EASING_FUNCTION_1),\n slideRightIn40: _createAnimation(`${FADE_IN},${SLIDE_RIGHT_IN40}`, DURATION_3, EASING_FUNCTION_1),\n slideRightIn400: _createAnimation(`${FADE_IN},${SLIDE_RIGHT_IN400}`, DURATION_3, EASING_FUNCTION_1),\n slideLeftIn10: _createAnimation(`${FADE_IN},${SLIDE_LEFT_IN10}`, DURATION_3, EASING_FUNCTION_1),\n slideLeftIn20: _createAnimation(`${FADE_IN},${SLIDE_LEFT_IN20}`, DURATION_3, EASING_FUNCTION_1),\n slideLeftIn40: _createAnimation(`${FADE_IN},${SLIDE_LEFT_IN40}`, DURATION_3, EASING_FUNCTION_1),\n slideLeftIn400: _createAnimation(`${FADE_IN},${SLIDE_LEFT_IN400}`, DURATION_3, EASING_FUNCTION_1),\n slideUpIn10: _createAnimation(`${FADE_IN},${SLIDE_UP_IN10}`, DURATION_3, EASING_FUNCTION_1),\n slideUpIn20: _createAnimation(`${FADE_IN},${SLIDE_UP_IN20}`, DURATION_3, EASING_FUNCTION_1),\n slideDownIn10: _createAnimation(`${FADE_IN},${SLIDE_DOWN_IN10}`, DURATION_3, EASING_FUNCTION_1),\n slideDownIn20: _createAnimation(`${FADE_IN},${SLIDE_DOWN_IN20}`, DURATION_3, EASING_FUNCTION_1),\n\n slideRightOut10: _createAnimation(`${FADE_OUT},${SLIDE_RIGHT_OUT10}`, DURATION_3, EASING_FUNCTION_1),\n slideRightOut20: _createAnimation(`${FADE_OUT},${SLIDE_RIGHT_OUT20}`, DURATION_3, EASING_FUNCTION_1),\n slideRightOut40: _createAnimation(`${FADE_OUT},${SLIDE_RIGHT_OUT40}`, DURATION_3, EASING_FUNCTION_1),\n slideRightOut400: _createAnimation(`${FADE_OUT},${SLIDE_RIGHT_OUT400}`, DURATION_3, EASING_FUNCTION_1),\n slideLeftOut10: _createAnimation(`${FADE_OUT},${SLIDE_LEFT_OUT10}`, DURATION_3, EASING_FUNCTION_1),\n slideLeftOut20: _createAnimation(`${FADE_OUT},${SLIDE_LEFT_OUT20}`, DURATION_3, EASING_FUNCTION_1),\n slideLeftOut40: _createAnimation(`${FADE_OUT},${SLIDE_LEFT_OUT40}`, DURATION_3, EASING_FUNCTION_1),\n slideLeftOut400: _createAnimation(`${FADE_OUT},${SLIDE_LEFT_OUT400}`, DURATION_3, EASING_FUNCTION_1),\n slideUpOut10: _createAnimation(`${FADE_OUT},${SLIDE_UP_OUT10}`, DURATION_3, EASING_FUNCTION_1),\n slideUpOut20: _createAnimation(`${FADE_OUT},${SLIDE_UP_OUT20}`, DURATION_3, EASING_FUNCTION_1),\n slideDownOut10: _createAnimation(`${FADE_OUT},${SLIDE_DOWN_OUT10}`, DURATION_3, EASING_FUNCTION_1),\n slideDownOut20: _createAnimation(`${FADE_OUT},${SLIDE_DOWN_OUT20}`, DURATION_3, EASING_FUNCTION_1),\n\n scaleUpIn100: _createAnimation(`${FADE_IN},${SCALE_UP100}`, DURATION_3, EASING_FUNCTION_1),\n scaleDownIn100: _createAnimation(`${FADE_IN},${SCALE_DOWN100}`, DURATION_3, EASING_FUNCTION_1),\n scaleUpOut103: _createAnimation(`${FADE_OUT},${SCALE_UP103}`, DURATION_1, EASING_FUNCTION_2),\n scaleDownOut98: _createAnimation(`${FADE_OUT},${SCALE_DOWN98}`, DURATION_1, EASING_FUNCTION_2),\n\n fadeIn100: _createAnimation(FADE_IN, DURATION_1, EASING_FUNCTION_2),\n fadeIn200: _createAnimation(FADE_IN, DURATION_2, EASING_FUNCTION_2),\n fadeIn400: _createAnimation(FADE_IN, DURATION_3, EASING_FUNCTION_2),\n fadeIn500: _createAnimation(FADE_IN, DURATION_4, EASING_FUNCTION_2),\n\n fadeOut100: _createAnimation(FADE_OUT, DURATION_1, EASING_FUNCTION_2),\n fadeOut200: _createAnimation(FADE_OUT, DURATION_2, EASING_FUNCTION_2),\n fadeOut400: _createAnimation(FADE_OUT, DURATION_3, EASING_FUNCTION_2),\n fadeOut500: _createAnimation(FADE_OUT, DURATION_4, EASING_FUNCTION_2),\n\n rotate90deg: _createAnimation(ROTATE90, '0.1s', EASING_FUNCTION_2),\n rotateN90deg: _createAnimation(ROTATE_N90, '0.1s', EASING_FUNCTION_2),\n\n // expandCollapse 100/200/400, delay 100/200\n};\n\nfunction _createAnimation(\n animationName: string,\n animationDuration: string,\n animationTimingFunction: string,\n): IRawStyle {\n return {\n animationName,\n animationDuration,\n animationTimingFunction,\n animationFillMode: 'both',\n };\n}\n\nfunction _createSlideInX(fromX: number): string {\n return keyframes({\n from: { transform: `translate3d(${fromX}px,0,0)`, pointerEvents: 'none' },\n to: { transform: `translate3d(0,0,0)`, pointerEvents: 'auto' },\n });\n}\n\nfunction _createSlideInY(fromY: number): string {\n return keyframes({\n from: { transform: `translate3d(0,${fromY}px,0)`, pointerEvents: 'none' },\n to: { transform: `translate3d(0,0,0)`, pointerEvents: 'auto' },\n });\n}\n\nfunction _createSlideOutX(toX: number): string {\n return keyframes({\n from: { transform: `translate3d(0,0,0)` },\n to: { transform: `translate3d(${toX}px,0,0)` },\n });\n}\n\nfunction _createSlideOutY(toY: number): string {\n return keyframes({\n from: { transform: `translate3d(0,0,0)` },\n to: { transform: `translate3d(0,${toY}px,0)` },\n });\n}\n","import { buildClassMap } from '../utilities/index';\nimport { AnimationStyles } from '../styles/index';\nimport type { IAnimationStyles } from '../interfaces/index';\n\n/**\n * {@docCategory AnimationClassNames}\n */\nexport const AnimationClassNames: { [key in keyof IAnimationStyles]?: string } = buildClassMap(AnimationStyles);\n","import type { IFontWeight } from '@fluentui/merge-styles';\n\n// Font face names to be registered.\nexport namespace LocalizedFontNames {\n export const Arabic = 'Segoe UI Web (Arabic)';\n export const Cyrillic = 'Segoe UI Web (Cyrillic)';\n export const EastEuropean = 'Segoe UI Web (East European)';\n export const Greek = 'Segoe UI Web (Greek)';\n export const Hebrew = 'Segoe UI Web (Hebrew)';\n export const Thai = 'Leelawadee UI Web';\n export const Vietnamese = 'Segoe UI Web (Vietnamese)';\n export const WestEuropean = 'Segoe UI Web (West European)';\n export const Selawik = 'Selawik Web';\n export const Armenian = 'Segoe UI Web (Armenian)';\n export const Georgian = 'Segoe UI Web (Georgian)';\n}\n\n// Font families with fallbacks, for the general regions.\nexport namespace LocalizedFontFamilies {\n export const Arabic = `'${LocalizedFontNames.Arabic}'`;\n export const ChineseSimplified = `'Microsoft Yahei UI', Verdana, Simsun`;\n export const ChineseTraditional = `'Microsoft Jhenghei UI', Pmingliu`;\n export const Cyrillic = `'${LocalizedFontNames.Cyrillic}'`;\n export const EastEuropean = `'${LocalizedFontNames.EastEuropean}'`;\n export const Greek = `'${LocalizedFontNames.Greek}'`;\n export const Hebrew = `'${LocalizedFontNames.Hebrew}'`;\n export const Hindi = `'Nirmala UI'`;\n export const Japanese = `'Yu Gothic UI', 'Meiryo UI', Meiryo, 'MS Pgothic', Osaka`;\n export const Korean = `'Malgun Gothic', Gulim`;\n export const Selawik = `'${LocalizedFontNames.Selawik}'`;\n export const Thai = `'Leelawadee UI Web', 'Kmer UI'`;\n export const Vietnamese = `'${LocalizedFontNames.Vietnamese}'`;\n export const WestEuropean = `'${LocalizedFontNames.WestEuropean}'`;\n export const Armenian = `'${LocalizedFontNames.Armenian}'`;\n export const Georgian = `'${LocalizedFontNames.Georgian}'`;\n}\n\n// Standard font sizes.\nexport namespace FontSizes {\n export const size10 = '10px';\n export const size12 = '12px';\n export const size14 = '14px';\n export const size16 = '16px';\n export const size18 = '18px';\n export const size20 = '20px';\n export const size24 = '24px';\n export const size28 = '28px';\n export const size32 = '32px';\n export const size42 = '42px';\n export const size68 = '68px';\n\n export const mini: string = '10px';\n export const xSmall: string = '10px';\n export const small: string = '12px';\n export const smallPlus: string = '12px';\n export const medium: string = '14px';\n export const mediumPlus: string = '16px';\n export const icon: string = '16px';\n export const large: string = '18px';\n export const xLarge: string = '20px';\n export const xLargePlus: string = '24px';\n export const xxLarge: string = '28px';\n export const xxLargePlus: string = '32px';\n export const superLarge: string = '42px';\n export const mega: string = '68px';\n}\n\n// Standard font weights.\nexport namespace FontWeights {\n export const light: IFontWeight = 100;\n export const semilight: IFontWeight = 300;\n export const regular: IFontWeight = 400;\n export const semibold: IFontWeight = 600;\n export const bold: IFontWeight = 700;\n}\n\n// Standard Icon Sizes.\nexport namespace IconFontSizes {\n export const xSmall: string = '10px';\n export const small: string = '12px';\n export const medium: string = '16px';\n export const large: string = '20px';\n}\n","import { mergeStyles } from '../MergeStyles';\n\n/**\n * Builds a class names object from a given map.\n *\n * @param styles - Map of unprocessed styles.\n * @returns Map of property name to class name.\n */\nexport function buildClassMap(styles: T): { [key in keyof T]?: string } {\n let classes: { [key in keyof T]?: string } = {};\n\n for (let styleName in styles) {\n if (styles.hasOwnProperty(styleName)) {\n let className: string;\n\n Object.defineProperty(classes, styleName, {\n get: (): string => {\n if (className === undefined) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n className = mergeStyles(styles[styleName] as any).toString();\n }\n return className;\n },\n enumerable: true,\n configurable: true,\n });\n }\n }\n\n return classes;\n}\n","import type { IRawStyle } from '../MergeStyles';\n\nexport const HighContrastSelector = '@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)';\nexport const HighContrastSelectorWhite =\n // eslint-disable-next-line @fluentui/max-len\n '@media screen and (-ms-high-contrast: black-on-white), screen and (forced-colors: active) and (prefers-color-scheme: light)';\nexport const HighContrastSelectorBlack =\n // eslint-disable-next-line @fluentui/max-len\n '@media screen and (-ms-high-contrast: white-on-black), screen and (forced-colors: active) and (prefers-color-scheme: dark)';\n/**\n * @deprecated Use `HighContrastSelector`\n */\nexport const EdgeChromiumHighContrastSelector =\n '@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)';\n\nexport const ScreenWidthMinSmall = 320;\nexport const ScreenWidthMinMedium = 480;\nexport const ScreenWidthMinLarge = 640;\nexport const ScreenWidthMinXLarge = 1024;\nexport const ScreenWidthMinXXLarge = 1366;\nexport const ScreenWidthMinXXXLarge = 1920;\nexport const ScreenWidthMaxSmall = ScreenWidthMinMedium - 1;\nexport const ScreenWidthMaxMedium = ScreenWidthMinLarge - 1;\nexport const ScreenWidthMaxLarge = ScreenWidthMinXLarge - 1;\nexport const ScreenWidthMaxXLarge = ScreenWidthMinXXLarge - 1;\nexport const ScreenWidthMaxXXLarge = ScreenWidthMinXXXLarge - 1;\n\nexport const ScreenWidthMinUhfMobile = 768;\n\nexport function getScreenSelector(min: number | undefined, max: number | undefined): string {\n const minSelector = typeof min === 'number' ? ` and (min-width: ${min}px)` : '';\n const maxSelector = typeof max === 'number' ? ` and (max-width: ${max}px)` : '';\n return `@media only screen${minSelector}${maxSelector}`;\n}\n\n/**\n * The style which turns off high contrast adjustment in browsers.\n */\nexport function getHighContrastNoAdjustStyle(): IRawStyle {\n return {\n forcedColorAdjust: 'none',\n MsHighContrastAdjust: 'none',\n };\n}\n\n/**\n * The style which turns off high contrast adjustment in (only) Edge Chromium browser.\n * @deprecated Use `getHighContrastNoAdjustStyle`\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getEdgeChromiumNoHighContrastAdjustSelector(): { [EdgeChromiumHighContrastSelector]: IRawStyle } {\n return {\n // eslint-disable-next-line deprecation/deprecation\n [EdgeChromiumHighContrastSelector]: {\n forcedColorAdjust: 'none',\n MsHighContrastAdjust: 'none',\n },\n };\n}\n","export namespace ZIndexes {\n export const Nav: number = 1;\n /**\n * @deprecated Do not use\n */\n export const ScrollablePane: number = 1;\n export const FocusStyle: number = 1;\n export const Coachmark: number = 1000;\n export const Layer: number = 1000000;\n export const KeytipLayer: number = 1000001;\n}\n","import { HighContrastSelector } from './CommonStyles';\nimport { IsFocusVisibleClassName } from '@fluentui/utilities';\nimport { ZIndexes } from './zIndexes';\nimport type { IRawStyle } from '@fluentui/merge-styles';\nimport type { IGetFocusStylesOptions, ITheme } from '../interfaces/index';\n\n/**\n * Generates a focus style which can be used to define an :after focus border.\n *\n * @param theme - The theme object to use.\n * @param options - Options to customize the focus border.\n * @returns The style object.\n */\nexport function getFocusStyle(theme: ITheme, options?: IGetFocusStylesOptions): IRawStyle;\n/**\n * Generates a focus style which can be used to define an :after focus border.\n *\n * @param theme - The theme object to use.\n * @param inset - The number of pixels to inset the border.\n * @param position - The positioning applied to the container. Must\n * be 'relative' or 'absolute' so that the focus border can live around it.\n * @param highContrastStyle - Style for high contrast mode.\n * @param borderColor - Color of the border.\n * @param outlineColor - Color of the outline.\n * @param isFocusedOnly - If the styles should apply on focus or not.\n * @returns The style object.\n * @deprecated Use the object parameter version instead.\n */\nexport function getFocusStyle(\n theme: ITheme,\n inset?: number,\n position?: 'relative' | 'absolute',\n highContrastStyle?: IRawStyle | undefined,\n borderColor?: string,\n outlineColor?: string,\n isFocusedOnly?: boolean,\n): IRawStyle;\nexport function getFocusStyle(\n theme: ITheme,\n insetOrOptions?: number | IGetFocusStylesOptions,\n position?: 'relative' | 'absolute',\n highContrastStyle?: IRawStyle,\n borderColor?: string,\n outlineColor?: string,\n isFocusedOnly?: boolean,\n): IRawStyle {\n if (typeof insetOrOptions === 'number' || !insetOrOptions) {\n return _getFocusStyleInternal(theme, {\n inset: insetOrOptions,\n position,\n highContrastStyle,\n borderColor,\n outlineColor,\n isFocusedOnly,\n });\n } else {\n return _getFocusStyleInternal(theme, insetOrOptions);\n }\n}\n\nfunction _getFocusStyleInternal(theme: ITheme, options: IGetFocusStylesOptions = {}): IRawStyle {\n const {\n inset = 0,\n width = 1,\n position = 'relative',\n highContrastStyle,\n borderColor = theme.palette.white,\n outlineColor = theme.palette.neutralSecondary,\n isFocusedOnly = true,\n } = options;\n\n return {\n // Clear browser-specific focus styles and use 'transparent' as placeholder for focus style.\n outline: 'transparent',\n // Requirement because pseudo-element is absolutely positioned.\n position,\n\n selectors: {\n // Clear the focus border in Firefox.\n // Reference: http://stackoverflow.com/a/199319/1436671\n '::-moz-focus-inner': {\n border: '0',\n },\n\n // When the element that uses this mixin is in a :focus state, add a pseudo-element to\n // create a border.\n [`.${IsFocusVisibleClassName} &${isFocusedOnly ? ':focus' : ''}:after`]: {\n content: '\"\"',\n position: 'absolute',\n left: inset + 1,\n top: inset + 1,\n bottom: inset + 1,\n right: inset + 1,\n border: `${width}px solid ${borderColor}`,\n outline: `${width}px solid ${outlineColor}`,\n zIndex: ZIndexes.FocusStyle,\n selectors: {\n [HighContrastSelector]: highContrastStyle,\n },\n },\n },\n };\n}\n\n/**\n * Generates style to clear browser specific focus styles.\n */\nexport function focusClear(): IRawStyle {\n return {\n selectors: {\n '&::-moz-focus-inner': {\n // Clear the focus border in Firefox. Reference: http://stackoverflow.com/a/199319/1436671\n border: 0,\n },\n '&': {\n // Clear browser specific focus styles and use transparent as placeholder for focus style\n outline: 'transparent',\n },\n },\n };\n}\n\n/**\n * Generates a style which can be used to set a border on focus.\n *\n * @param theme - The theme object to use.\n * @param inset - The number of pixels to inset the border (default 0)\n * @param width - The border width in pixels (default 1)\n * @param color - Color of the outline (default `theme.palette.neutralSecondary`)\n * @returns The style object.\n */\nexport function getFocusOutlineStyle(theme: ITheme, inset: number = 0, width: number = 1, color?: string): IRawStyle {\n return {\n selectors: {\n [`:global(${IsFocusVisibleClassName}) &:focus`]: {\n outline: `${width} solid ${color || theme.palette.neutralSecondary}`,\n outlineOffset: `${-inset}px`,\n },\n },\n };\n}\n\n/**\n * Generates text input border styles on focus.\n *\n * @param borderColor - Color of the border.\n * @param borderRadius - Radius of the border.\n * @param borderType - Type of the border.\n * @param borderPosition - Position of the border relative to the input element (default to -1\n * as it's the most common border width of the input element)\n * @returns The style object.\n */\nexport const getInputFocusStyle = (\n borderColor: string,\n borderRadius: string | number,\n borderType: 'border' | 'borderBottom' = 'border',\n borderPosition: number = -1,\n): IRawStyle => {\n const isBorderBottom = borderType === 'borderBottom';\n\n return {\n borderColor,\n selectors: {\n ':after': {\n pointerEvents: 'none',\n content: \"''\",\n position: 'absolute',\n left: isBorderBottom ? 0 : borderPosition,\n top: borderPosition,\n bottom: borderPosition,\n right: isBorderBottom ? 0 : borderPosition,\n [borderType]: `2px solid ${borderColor}`,\n borderRadius,\n width: borderType === 'borderBottom' ? '100%' : undefined,\n selectors: {\n [HighContrastSelector]: {\n [borderType === 'border' ? 'borderColor' : 'borderBottomColor']: 'Highlight',\n },\n },\n },\n },\n };\n};\n","import type { IRawStyle } from '@fluentui/merge-styles';\n\nexport const hiddenContentStyle: IRawStyle = {\n position: 'absolute',\n width: 1,\n height: 1,\n margin: -1,\n padding: 0,\n border: 0,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n};\n","import { Stylesheet } from '@fluentui/merge-styles';\nimport { memoizeFunction } from '@fluentui/utilities';\nimport type { ITheme } from '../interfaces/index';\n\nexport type GlobalClassNames = Record;\n\n/**\n * Internal memoized function which simply takes in the class map and the\n * disable boolean. These immutable values can be memoized.\n */\nconst _getGlobalClassNames = memoizeFunction(\n (classNames: GlobalClassNames, disableGlobalClassNames?: boolean): GlobalClassNames => {\n const styleSheet = Stylesheet.getInstance();\n\n if (disableGlobalClassNames) {\n // disable global classnames\n return (Object.keys(classNames) as (keyof T)[]).reduce((acc, className) => {\n acc[className] = styleSheet.getClassName(classNames[className]);\n return acc;\n }, {} as GlobalClassNames);\n }\n\n // use global classnames\n return classNames;\n },\n);\n\n/**\n * Checks for the `disableGlobalClassNames` property on the `theme` to determine if it should return `classNames`\n * Note that calls to this function are memoized.\n *\n * @param classNames - The collection of global class names that apply when the flag is false. Make sure to pass in\n * the same instance on each call to benefit from memoization.\n * @param theme - The theme to check the flag on\n * @param disableGlobalClassNames - Optional. Explicitly opt in/out of disabling global classnames. Defaults to false.\n */\nexport function getGlobalClassNames(\n classNames: GlobalClassNames,\n theme: ITheme,\n disableGlobalClassNames?: boolean,\n): GlobalClassNames {\n return _getGlobalClassNames(\n classNames,\n disableGlobalClassNames !== undefined ? disableGlobalClassNames : theme.disableGlobalClassNames,\n );\n}\n","export namespace Depths {\n export const depth0 = '0 0 0 0 transparent';\n export const depth4 = '0 1.6px 3.6px 0 rgba(0, 0, 0, 0.132), 0 0.3px 0.9px 0 rgba(0, 0, 0, 0.108)';\n export const depth8 = '0 3.2px 7.2px 0 rgba(0, 0, 0, 0.132), 0 0.6px 1.8px 0 rgba(0, 0, 0, 0.108)';\n export const depth16 = '0 6.4px 14.4px 0 rgba(0, 0, 0, 0.132), 0 1.2px 3.6px 0 rgba(0, 0, 0, 0.108)';\n export const depth64 = '0 25.6px 57.6px 0 rgba(0, 0, 0, 0.22), 0 4.8px 14.4px 0 rgba(0, 0, 0, 0.18)';\n}\n","import type { IPalette } from '../types/index';\n\n// When adding or removing a color, make sure you keep this consistent with IColorClassNames\n// by adding the color variants.\nexport const DefaultPalette: IPalette = {\n themeDarker: '#004578',\n themeDark: '#005a9e',\n themeDarkAlt: '#106ebe',\n themePrimary: '#0078d4',\n themeSecondary: '#2b88d8',\n themeTertiary: '#71afe5',\n themeLight: '#c7e0f4',\n themeLighter: '#deecf9',\n themeLighterAlt: '#eff6fc',\n black: '#000000',\n blackTranslucent40: 'rgba(0,0,0,.4)',\n neutralDark: '#201f1e',\n neutralPrimary: '#323130',\n neutralPrimaryAlt: '#3b3a39',\n neutralSecondary: '#605e5c',\n neutralSecondaryAlt: '#8a8886',\n neutralTertiary: '#a19f9d',\n neutralTertiaryAlt: '#c8c6c4',\n neutralQuaternary: '#d2d0ce',\n neutralQuaternaryAlt: '#e1dfdd',\n neutralLight: '#edebe9',\n neutralLighter: '#f3f2f1',\n neutralLighterAlt: '#faf9f8',\n accent: '#0078d4',\n white: '#ffffff',\n whiteTranslucent40: 'rgba(255,255,255,.4)',\n yellowDark: '#d29200',\n yellow: '#ffb900',\n yellowLight: '#fff100',\n orange: '#d83b01',\n orangeLight: '#ea4300',\n orangeLighter: '#ff8c00',\n redDark: '#a4262c',\n red: '#e81123',\n magentaDark: '#5c005c',\n magenta: '#b4009e',\n magentaLight: '#e3008c',\n purpleDark: '#32145a',\n purple: '#5c2d91',\n purpleLight: '#b4a0ff',\n blueDark: '#002050',\n blueMid: '#00188f',\n blue: '#0078d4',\n blueLight: '#00bcf2',\n tealDark: '#004b50',\n teal: '#008272',\n tealLight: '#00b294',\n greenDark: '#004b1c',\n green: '#107c10',\n greenLight: '#bad80a',\n};\n","import { Depths } from './FluentDepths';\nimport type { IEffects } from '../types/index';\n\nexport const DefaultEffects: IEffects = {\n elevation4: Depths.depth4,\n elevation8: Depths.depth8,\n elevation16: Depths.depth16,\n elevation64: Depths.depth64,\n\n roundedCorner2: '2px',\n roundedCorner4: '4px',\n roundedCorner6: '6px',\n};\n","import { FontSizes, FontWeights, LocalizedFontFamilies, LocalizedFontNames } from './FluentFonts';\nimport type { IFontWeight, IRawStyle } from '@fluentui/merge-styles';\nimport type { IFontStyles } from '../types/IFontStyles';\n\n// Fallback fonts, if specified system or web fonts are unavailable.\nconst FontFamilyFallbacks = `'Segoe UI', -apple-system, BlinkMacSystemFont, 'Roboto', 'Helvetica Neue', sans-serif`;\n\n// By default, we favor system fonts for the default.\n// All localized fonts use a web font and never use the system font.\nconst defaultFontFamily = `'Segoe UI', '${LocalizedFontNames.WestEuropean}'`;\n\n// Mapping of language prefix to to font family.\nconst LanguageToFontMap = {\n ar: LocalizedFontFamilies.Arabic,\n bg: LocalizedFontFamilies.Cyrillic,\n cs: LocalizedFontFamilies.EastEuropean,\n el: LocalizedFontFamilies.Greek,\n et: LocalizedFontFamilies.EastEuropean,\n he: LocalizedFontFamilies.Hebrew,\n hi: LocalizedFontFamilies.Hindi,\n hr: LocalizedFontFamilies.EastEuropean,\n hu: LocalizedFontFamilies.EastEuropean,\n ja: LocalizedFontFamilies.Japanese,\n kk: LocalizedFontFamilies.EastEuropean,\n ko: LocalizedFontFamilies.Korean,\n lt: LocalizedFontFamilies.EastEuropean,\n lv: LocalizedFontFamilies.EastEuropean,\n pl: LocalizedFontFamilies.EastEuropean,\n ru: LocalizedFontFamilies.Cyrillic,\n sk: LocalizedFontFamilies.EastEuropean,\n 'sr-latn': LocalizedFontFamilies.EastEuropean,\n th: LocalizedFontFamilies.Thai,\n tr: LocalizedFontFamilies.EastEuropean,\n uk: LocalizedFontFamilies.Cyrillic,\n vi: LocalizedFontFamilies.Vietnamese,\n 'zh-hans': LocalizedFontFamilies.ChineseSimplified,\n 'zh-hant': LocalizedFontFamilies.ChineseTraditional,\n hy: LocalizedFontFamilies.Armenian,\n ka: LocalizedFontFamilies.Georgian,\n};\n\nfunction _fontFamilyWithFallbacks(fontFamily: string): string {\n return `${fontFamily}, ${FontFamilyFallbacks}`;\n}\n\n/**\n * If there is a localized font for this language, return that.\n * Returns undefined if there is no localized font for that language.\n */\nfunction _getLocalizedFontFamily(language: string | null): string {\n for (const lang in LanguageToFontMap) {\n if (LanguageToFontMap.hasOwnProperty(lang) && language && lang.indexOf(language) === 0) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (LanguageToFontMap as any)[lang];\n }\n }\n\n return defaultFontFamily;\n}\n\nfunction _createFont(size: string, weight: IFontWeight, fontFamily: string): IRawStyle {\n return {\n fontFamily: fontFamily,\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontSize: size,\n fontWeight: weight,\n };\n}\n\nexport function createFontStyles(localeCode: string | null): IFontStyles {\n const localizedFont = _getLocalizedFontFamily(localeCode);\n const fontFamilyWithFallback = _fontFamilyWithFallbacks(localizedFont);\n\n const fontStyles = {\n tiny: _createFont(FontSizes.mini, FontWeights.regular, fontFamilyWithFallback),\n xSmall: _createFont(FontSizes.xSmall, FontWeights.regular, fontFamilyWithFallback),\n small: _createFont(FontSizes.small, FontWeights.regular, fontFamilyWithFallback),\n smallPlus: _createFont(FontSizes.smallPlus, FontWeights.regular, fontFamilyWithFallback),\n medium: _createFont(FontSizes.medium, FontWeights.regular, fontFamilyWithFallback),\n mediumPlus: _createFont(FontSizes.mediumPlus, FontWeights.regular, fontFamilyWithFallback),\n large: _createFont(FontSizes.large, FontWeights.regular, fontFamilyWithFallback),\n xLarge: _createFont(FontSizes.xLarge, FontWeights.semibold, fontFamilyWithFallback),\n xLargePlus: _createFont(FontSizes.xLargePlus, FontWeights.semibold, fontFamilyWithFallback),\n xxLarge: _createFont(FontSizes.xxLarge, FontWeights.semibold, fontFamilyWithFallback),\n xxLargePlus: _createFont(FontSizes.xxLargePlus, FontWeights.semibold, fontFamilyWithFallback),\n superLarge: _createFont(FontSizes.superLarge, FontWeights.semibold, fontFamilyWithFallback),\n mega: _createFont(FontSizes.mega, FontWeights.semibold, fontFamilyWithFallback),\n };\n\n return fontStyles;\n}\n","import { fontFace } from '@fluentui/merge-styles';\nimport { FontWeights, LocalizedFontFamilies, LocalizedFontNames } from './FluentFonts';\nimport { createFontStyles } from './createFontStyles';\nimport { getLanguage, getWindow } from '@fluentui/utilities';\nimport type { IFontWeight } from '@fluentui/merge-styles';\nimport type { IFontStyles } from '../types/IFontStyles';\nimport type { IFabricConfig } from '../types/IFabricConfig';\n\n// Default urls.\nconst DefaultBaseUrl = 'https://static2.sharepointonline.com/files/fabric/assets';\n\n// Standard font styling.\nexport const DefaultFontStyles: IFontStyles = createFontStyles(getLanguage());\n\nfunction _registerFontFace(fontFamily: string, url: string, fontWeight?: IFontWeight, localFontName?: string): void {\n fontFamily = `'${fontFamily}'`;\n\n const localFontSrc = localFontName !== undefined ? `local('${localFontName}'),` : '';\n\n fontFace({\n fontFamily,\n src: localFontSrc + `url('${url}.woff2') format('woff2'),` + `url('${url}.woff') format('woff')`,\n fontWeight,\n fontStyle: 'normal',\n fontDisplay: 'swap',\n });\n}\n\nfunction _registerFontFaceSet(\n baseUrl: string,\n fontFamily: string,\n cdnFolder: string,\n cdnFontName: string = 'segoeui',\n localFontName?: string,\n): void {\n const urlBase = `${baseUrl}/${cdnFolder}/${cdnFontName}`;\n\n _registerFontFace(fontFamily, urlBase + '-light', FontWeights.light, localFontName && localFontName + ' Light');\n _registerFontFace(\n fontFamily,\n urlBase + '-semilight',\n FontWeights.semilight,\n localFontName && localFontName + ' SemiLight',\n );\n _registerFontFace(fontFamily, urlBase + '-regular', FontWeights.regular, localFontName);\n _registerFontFace(\n fontFamily,\n urlBase + '-semibold',\n FontWeights.semibold,\n localFontName && localFontName + ' SemiBold',\n );\n _registerFontFace(fontFamily, urlBase + '-bold', FontWeights.bold, localFontName && localFontName + ' Bold');\n}\n\nexport function registerDefaultFontFaces(baseUrl: string): void {\n if (baseUrl) {\n const fontUrl = `${baseUrl}/fonts`;\n\n // Produce @font-face definitions for all supported web fonts.\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Thai, 'leelawadeeui-thai', 'leelawadeeui');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Arabic, 'segoeui-arabic');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Cyrillic, 'segoeui-cyrillic');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.EastEuropean, 'segoeui-easteuropean');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Greek, 'segoeui-greek');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Hebrew, 'segoeui-hebrew');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Vietnamese, 'segoeui-vietnamese');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.WestEuropean, 'segoeui-westeuropean', 'segoeui', 'Segoe UI');\n _registerFontFaceSet(fontUrl, LocalizedFontFamilies.Selawik, 'selawik', 'selawik');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Armenian, 'segoeui-armenian');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Georgian, 'segoeui-georgian');\n\n // Leelawadee UI (Thai) does not have a 'light' weight, so we override\n // the font-face generated above to use the 'semilight' weight instead.\n _registerFontFace('Leelawadee UI Web', `${fontUrl}/leelawadeeui-thai/leelawadeeui-semilight`, FontWeights.light);\n\n // Leelawadee UI (Thai) does not have a 'semibold' weight, so we override\n // the font-face generated above to use the 'bold' weight instead.\n _registerFontFace('Leelawadee UI Web', `${fontUrl}/leelawadeeui-thai/leelawadeeui-bold`, FontWeights.semibold);\n }\n}\n\n/**\n * Reads the fontBaseUrl from window.FabricConfig.fontBaseUrl or falls back to a default.\n */\nfunction _getFontBaseUrl(): string {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const fabricConfig: IFabricConfig | undefined = (getWindow() as any)?.FabricConfig;\n\n return fabricConfig?.fontBaseUrl ?? DefaultBaseUrl;\n}\n\n/**\n * Register the font faces.\n */\nregisterDefaultFontFaces(_getFontBaseUrl());\n","import type { IEffects, IPalette, ISemanticColors } from '../types/index';\n\n/** Generates all the semantic slot colors based on the theme so far\n * We'll use these as fallbacks for semantic slots that the passed in theme did not define.\n * The caller must still mix in the customized semantic slots at the end.\n */\nexport function makeSemanticColors(\n p: IPalette,\n e: IEffects,\n s: Partial | undefined,\n isInverted: boolean,\n depComments: boolean = false,\n): ISemanticColors {\n const semanticColors: Partial = {\n primaryButtonBorder: 'transparent',\n\n errorText: !isInverted ? '#a4262c' : '#F1707B',\n\n messageText: !isInverted ? '#323130' : '#F3F2F1',\n messageLink: !isInverted ? '#005A9E' : '#6CB8F6',\n messageLinkHovered: !isInverted ? '#004578' : '#82C7FF',\n\n infoIcon: !isInverted ? '#605e5c' : '#C8C6C4',\n errorIcon: !isInverted ? '#A80000' : '#F1707B',\n blockingIcon: !isInverted ? '#FDE7E9' : '#442726',\n warningIcon: !isInverted ? '#797775' : '#C8C6C4',\n severeWarningIcon: !isInverted ? '#D83B01' : '#FCE100',\n successIcon: !isInverted ? '#107C10' : '#92C353',\n\n infoBackground: !isInverted ? '#f3f2f1' : '#323130',\n errorBackground: !isInverted ? '#FDE7E9' : '#442726',\n blockingBackground: !isInverted ? '#FDE7E9' : '#442726',\n warningBackground: !isInverted ? '#FFF4CE' : '#433519',\n severeWarningBackground: !isInverted ? '#FED9CC' : '#4F2A0F',\n successBackground: !isInverted ? '#DFF6DD' : '#393D1B',\n\n // deprecated\n warningHighlight: !isInverted ? '#ffb900' : '#fff100',\n successText: !isInverted ? '#107C10' : '#92c353',\n\n ...s,\n };\n\n const fullSemanticColors = getSemanticColors(p, e, semanticColors, isInverted);\n return _fixDeprecatedSlots(fullSemanticColors, depComments);\n}\n\n/**\n * Map partial platte and effects to partial semantic colors.\n */\nexport function getSemanticColors>(\n p: Partial | undefined,\n e: Partial | undefined,\n s: Partial | undefined,\n isInverted: boolean,\n depComments: boolean = false,\n): TResult {\n let result: Partial = {};\n\n // map palette\n const {\n white,\n black,\n themePrimary,\n themeDark,\n themeDarker,\n themeDarkAlt,\n themeLighter,\n neutralLight,\n neutralLighter,\n neutralDark,\n neutralQuaternary,\n neutralQuaternaryAlt,\n neutralPrimary,\n neutralSecondary,\n neutralSecondaryAlt,\n neutralTertiary,\n neutralTertiaryAlt,\n neutralLighterAlt,\n accent,\n } = p || {};\n\n if (white) {\n result.bodyBackground = white;\n result.bodyFrameBackground = white;\n result.accentButtonText = white;\n result.buttonBackground = white;\n result.primaryButtonText = white;\n result.primaryButtonTextHovered = white;\n result.primaryButtonTextPressed = white;\n result.inputBackground = white;\n result.inputForegroundChecked = white;\n result.listBackground = white;\n result.menuBackground = white;\n result.cardStandoutBackground = white;\n }\n if (black) {\n result.bodyTextChecked = black;\n result.buttonTextCheckedHovered = black;\n }\n if (themePrimary) {\n result.link = themePrimary;\n result.primaryButtonBackground = themePrimary;\n result.inputBackgroundChecked = themePrimary;\n result.inputIcon = themePrimary;\n result.inputFocusBorderAlt = themePrimary;\n result.menuIcon = themePrimary;\n result.menuHeader = themePrimary;\n result.accentButtonBackground = themePrimary;\n }\n if (themeDark) {\n result.primaryButtonBackgroundPressed = themeDark;\n result.inputBackgroundCheckedHovered = themeDark;\n result.inputIconHovered = themeDark;\n }\n if (themeDarker) {\n result.linkHovered = themeDarker;\n }\n if (themeDarkAlt) {\n result.primaryButtonBackgroundHovered = themeDarkAlt;\n }\n if (themeLighter) {\n result.inputPlaceholderBackgroundChecked = themeLighter;\n }\n if (neutralLight) {\n result.bodyBackgroundChecked = neutralLight;\n result.bodyFrameDivider = neutralLight;\n result.bodyDivider = neutralLight;\n result.variantBorder = neutralLight;\n result.buttonBackgroundCheckedHovered = neutralLight;\n result.buttonBackgroundPressed = neutralLight;\n result.listItemBackgroundChecked = neutralLight;\n result.listHeaderBackgroundPressed = neutralLight;\n result.menuItemBackgroundPressed = neutralLight;\n // eslint-disable-next-line deprecation/deprecation\n result.menuItemBackgroundChecked = neutralLight;\n }\n if (neutralLighter) {\n result.bodyBackgroundHovered = neutralLighter;\n result.buttonBackgroundHovered = neutralLighter;\n result.buttonBackgroundDisabled = neutralLighter;\n result.buttonBorderDisabled = neutralLighter;\n result.primaryButtonBackgroundDisabled = neutralLighter;\n result.disabledBackground = neutralLighter;\n result.listItemBackgroundHovered = neutralLighter;\n result.listHeaderBackgroundHovered = neutralLighter;\n result.menuItemBackgroundHovered = neutralLighter;\n }\n if (neutralQuaternary) {\n result.primaryButtonTextDisabled = neutralQuaternary;\n result.disabledSubtext = neutralQuaternary;\n }\n if (neutralQuaternaryAlt) {\n result.listItemBackgroundCheckedHovered = neutralQuaternaryAlt;\n }\n if (neutralTertiary) {\n result.disabledBodyText = neutralTertiary;\n result.variantBorderHovered = s?.variantBorderHovered || neutralTertiary;\n result.buttonTextDisabled = neutralTertiary;\n result.inputIconDisabled = neutralTertiary;\n result.disabledText = neutralTertiary;\n }\n if (neutralPrimary) {\n result.bodyText = neutralPrimary;\n result.actionLink = neutralPrimary;\n result.buttonText = neutralPrimary;\n result.inputBorderHovered = neutralPrimary;\n result.inputText = neutralPrimary;\n result.listText = neutralPrimary;\n result.menuItemText = neutralPrimary;\n }\n if (neutralLighterAlt) {\n result.bodyStandoutBackground = neutralLighterAlt;\n result.defaultStateBackground = neutralLighterAlt;\n }\n if (neutralDark) {\n result.actionLinkHovered = neutralDark;\n result.buttonTextHovered = neutralDark;\n result.buttonTextChecked = neutralDark;\n result.buttonTextPressed = neutralDark;\n result.inputTextHovered = neutralDark;\n result.menuItemTextHovered = neutralDark;\n }\n if (neutralSecondary) {\n result.bodySubtext = neutralSecondary;\n result.focusBorder = neutralSecondary;\n result.inputBorder = neutralSecondary;\n result.smallInputBorder = neutralSecondary;\n result.inputPlaceholderText = neutralSecondary;\n }\n if (neutralSecondaryAlt) {\n result.buttonBorder = neutralSecondaryAlt;\n }\n if (neutralTertiaryAlt) {\n result.disabledBodySubtext = neutralTertiaryAlt;\n result.disabledBorder = neutralTertiaryAlt;\n result.buttonBackgroundChecked = neutralTertiaryAlt;\n result.menuDivider = neutralTertiaryAlt;\n }\n if (accent) {\n result.accentButtonBackground = accent;\n }\n\n // map effects\n if (e?.elevation4) {\n result.cardShadow = e.elevation4;\n }\n if (!isInverted && e?.elevation8) {\n result.cardShadowHovered = e.elevation8;\n } else if (result.variantBorderHovered) {\n result.cardShadowHovered = '0 0 1px ' + result.variantBorderHovered;\n }\n\n result = {\n ...result,\n // mix in customized semantic slots\n ...s,\n };\n\n return result as TResult;\n}\n\nfunction _fixDeprecatedSlots(s: ISemanticColors, depComments: boolean): ISemanticColors {\n // Add @deprecated tag as comment if enabled\n let dep = '';\n if (depComments === true) {\n dep = ' /* @deprecated */';\n }\n\n /* eslint-disable deprecation/deprecation */\n s.listTextColor = s.listText + dep;\n s.menuItemBackgroundChecked += dep;\n s.warningHighlight += dep;\n s.warningText = s.messageText + dep;\n s.successText += dep;\n /* eslint-enable deprecation/deprecation */\n return s;\n}\n","import type { ISpacing } from '../types/index';\n\nexport const DefaultSpacing: ISpacing = {\n s2: '4px',\n s1: '8px',\n m: '16px',\n l1: '20px',\n l2: '32px',\n};\n","import { DefaultPalette } from './colors/index';\nimport { DefaultEffects } from './effects/index';\nimport { DefaultFontStyles } from './fonts/index';\nimport { mergeThemes } from './mergeThemes';\nimport { DefaultSpacing } from './spacing/index';\nimport { makeSemanticColors } from './utilities/makeSemanticColors';\nimport type { PartialTheme, Theme } from './types/index';\n\n/**\n * Creates a custom theme definition.\n * @param theme - Partial theme object.\n * @param depComments - Whether to include deprecated tags as comments for deprecated slots.\n */\nexport function createTheme(theme: PartialTheme = {}, depComments: boolean = false): Theme {\n const isInverted = !!theme.isInverted;\n const baseTheme: Theme = {\n palette: DefaultPalette,\n effects: DefaultEffects,\n fonts: DefaultFontStyles,\n spacing: DefaultSpacing,\n isInverted,\n disableGlobalClassNames: false,\n semanticColors: makeSemanticColors(DefaultPalette, DefaultEffects, undefined, isInverted, depComments),\n rtl: undefined,\n };\n\n return mergeThemes(baseTheme, theme);\n}\n","import { merge } from '@fluentui/utilities';\nimport { getSemanticColors } from './utilities/makeSemanticColors';\nimport type { IFontStyles, PartialTheme, Theme } from './types/index';\n\n/**\n * Merge a partial/full theme into a full theme and returns a merged full theme.\n */\nexport function mergeThemes(theme: Theme, partialTheme: PartialTheme = {}): Theme {\n const mergedTheme = merge({}, theme, partialTheme, {\n semanticColors: getSemanticColors(\n partialTheme.palette,\n partialTheme.effects,\n partialTheme.semanticColors,\n partialTheme.isInverted === undefined ? theme.isInverted : partialTheme.isInverted,\n ),\n }) as Theme;\n\n if (partialTheme.palette?.themePrimary && !partialTheme.palette?.accent) {\n mergedTheme.palette.accent = partialTheme.palette.themePrimary;\n }\n\n if (partialTheme.defaultFontStyle) {\n for (const fontStyle of Object.keys(mergedTheme.fonts) as (keyof IFontStyles)[]) {\n mergedTheme.fonts[fontStyle] = merge(\n mergedTheme.fonts[fontStyle],\n partialTheme.defaultFontStyle,\n partialTheme?.fonts?.[fontStyle],\n );\n }\n }\n\n return mergedTheme;\n}\n","import { Customizations, getWindow } from '@fluentui/utilities';\nimport { loadTheme as legacyLoadTheme } from '@microsoft/load-themed-styles';\nimport { createTheme } from '@fluentui/theme';\nimport type { ITheme, IPartialTheme, IFontStyles } from '../interfaces/index';\nimport type { IRawStyle } from '@fluentui/merge-styles';\n\nexport { createTheme } from '@fluentui/theme';\n\nlet _theme: ITheme = createTheme({});\nlet _onThemeChangeCallbacks: Array<(theme: ITheme) => void> = [];\n\nexport const ThemeSettingName = 'theme';\n\nexport function initializeThemeInCustomizations(): void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const win: any = getWindow();\n\n if (win?.FabricConfig?.legacyTheme) {\n // does everything the `else` clause does and more, such as invoke legacy theming\n loadTheme(win.FabricConfig.legacyTheme);\n } else if (!Customizations.getSettings([ThemeSettingName]).theme) {\n if (win?.FabricConfig?.theme) {\n _theme = createTheme(win.FabricConfig.theme);\n }\n\n // Set the default theme.\n Customizations.applySettings({ [ThemeSettingName]: _theme });\n }\n}\n\ninitializeThemeInCustomizations();\n\n/**\n * Gets the theme object\n * @param depComments - Whether to include deprecated tags as comments for deprecated slots.\n */\nexport function getTheme(depComments: boolean = false): ITheme {\n if (depComments === true) {\n _theme = createTheme({}, depComments);\n }\n return _theme;\n}\n\n/**\n * Registers a callback that gets called whenever the theme changes.\n * This should only be used when the component cannot automatically get theme changes through its state.\n * This will not register duplicate callbacks.\n */\nexport function registerOnThemeChangeCallback(callback: (theme: ITheme) => void): void {\n if (_onThemeChangeCallbacks.indexOf(callback) === -1) {\n _onThemeChangeCallbacks.push(callback);\n }\n}\n\n/**\n * See registerOnThemeChangeCallback().\n * Removes previously registered callbacks.\n */\nexport function removeOnThemeChangeCallback(callback: (theme: ITheme) => void): void {\n const i = _onThemeChangeCallbacks.indexOf(callback);\n if (i === -1) {\n return;\n }\n\n _onThemeChangeCallbacks.splice(i, 1);\n}\n\n/**\n * Applies the theme, while filling in missing slots.\n * @param theme - Partial theme object.\n * @param depComments - Whether to include deprecated tags as comments for deprecated slots.\n */\nexport function loadTheme(theme: IPartialTheme, depComments: boolean = false): ITheme {\n _theme = createTheme(theme, depComments);\n\n // Invoke the legacy method of theming the page as well.\n legacyLoadTheme({ ..._theme.palette, ..._theme.semanticColors, ..._theme.effects, ..._loadFonts(_theme) });\n\n Customizations.applySettings({ [ThemeSettingName]: _theme });\n\n _onThemeChangeCallbacks.forEach((callback: (theme: ITheme) => void) => {\n try {\n callback(_theme);\n } catch (e) {\n // don't let a bad callback break everything else\n }\n });\n\n return _theme;\n}\n\n/**\n * Loads font variables into a JSON object.\n * @param theme - The theme object\n */\nfunction _loadFonts(theme: ITheme): { [name: string]: string } {\n const lines: { [key: string]: string } = {};\n\n for (const fontName of Object.keys(theme.fonts)) {\n const font: IRawStyle = theme.fonts[fontName as keyof IFontStyles];\n\n for (const propName of Object.keys(font)) {\n const name: string = fontName + propName.charAt(0).toUpperCase() + propName.slice(1);\n let value = font[propName as keyof IRawStyle] as string;\n\n if (propName === 'fontSize' && typeof value === 'number') {\n // if it's a number, convert it to px by default like our theming system does\n value = value + 'px';\n }\n lines[name] = value;\n }\n }\n return lines;\n}\n","import { GlobalSettings, warn } from '@fluentui/utilities';\nimport { fontFace, mergeStyles, Stylesheet } from '@fluentui/merge-styles';\nimport type { IRawStyle, IFontFace } from '@fluentui/merge-styles';\n\nexport interface IIconSubset {\n fontFace?: IFontFace;\n icons: {\n [key: string]: string | JSX.Element;\n };\n\n style?: IRawStyle;\n /**\n * Indicates to the icon renderer that it is safe to merge any props on the original `Icon` element\n * onto the child content element registered for the icon which are valid for HTML images.\n */\n mergeImageProps?: boolean;\n}\n\nexport interface IIconSubsetRecord extends IIconSubset {\n isRegistered?: boolean;\n className?: string;\n}\n\nexport interface IIconRecord {\n code: string | undefined;\n subset: IIconSubsetRecord;\n}\n\nexport interface IIconOptions {\n /**\n * By default, registering the same set of icons will generate a console warning per duplicate icon\n * registered, because this scenario can create unexpected consequences.\n *\n * Some scenarios include:\n *\n * Icon set was previously registered using a different base url.\n * Icon set was previously registered but a different version was provided.\n * Icons in a previous registered set overlap with a new set.\n *\n * To simply ignore previously registered icons, you can specify to disable warnings. This means\n * that if an icon which was previous registered is registered again, it will be silently ignored.\n * However, consider whether the problems listed above will cause issues.\n **/\n disableWarnings: boolean;\n\n /**\n * @deprecated Use `disableWarnings` instead.\n */\n warnOnMissingIcons?: boolean;\n}\n\nexport interface IIconRecords {\n __options: IIconOptions;\n __remapped: { [key: string]: string };\n [key: string]: IIconRecord | {};\n}\n\nconst ICON_SETTING_NAME = 'icons';\n\nconst _iconSettings = GlobalSettings.getValue(ICON_SETTING_NAME, {\n __options: {\n disableWarnings: false,\n warnOnMissingIcons: true,\n },\n __remapped: {},\n});\n\n// Reset icon registration on stylesheet resets.\nconst stylesheet = Stylesheet.getInstance();\n\nif (stylesheet && stylesheet.onReset) {\n stylesheet.onReset(() => {\n for (const name in _iconSettings) {\n if (_iconSettings.hasOwnProperty(name) && !!(_iconSettings[name] as IIconRecord).subset) {\n (_iconSettings[name] as IIconRecord).subset.className = undefined;\n }\n }\n });\n}\n\n/**\n * Normalizes an icon name for consistent mapping.\n * Current implementation is to convert the icon name to lower case.\n *\n * @param name - Icon name to normalize.\n * @returns {string} Normalized icon name to use for indexing and mapping.\n */\nconst normalizeIconName = (name: string): string => name.toLowerCase();\n\n/**\n * Registers a given subset of icons.\n *\n * @param iconSubset - the icon subset definition.\n */\nexport function registerIcons(iconSubset: IIconSubset, options?: Partial): void {\n let subset = {\n ...iconSubset,\n isRegistered: false,\n className: undefined,\n };\n let { icons } = iconSubset;\n\n // Grab options, optionally mix user provided ones on top.\n options = options ? { ..._iconSettings.__options, ...options } : _iconSettings.__options;\n\n for (const iconName in icons) {\n if (icons.hasOwnProperty(iconName)) {\n const code = icons[iconName];\n const normalizedIconName = normalizeIconName(iconName);\n\n if (_iconSettings[normalizedIconName]) {\n _warnDuplicateIcon(iconName);\n } else {\n _iconSettings[normalizedIconName] = {\n code,\n subset,\n } as IIconRecord;\n }\n }\n }\n}\n\n/**\n * Unregisters icons by name.\n *\n * @param iconNames - List of icons to unregister.\n */\nexport function unregisterIcons(iconNames: string[]): void {\n const options = _iconSettings.__options;\n\n for (const iconName of iconNames) {\n const normalizedIconName = normalizeIconName(iconName);\n if (_iconSettings[normalizedIconName]) {\n delete _iconSettings[normalizedIconName];\n } else {\n // Warn that we are trying to delete an icon that doesn't exist\n if (!options.disableWarnings) {\n warn(`The icon \"${iconName}\" tried to unregister but was not registered.`);\n }\n }\n\n // Delete any aliases for this iconName\n if (_iconSettings.__remapped[normalizedIconName]) {\n delete _iconSettings.__remapped[normalizedIconName];\n }\n\n // Delete any items that were an alias for this iconName\n Object.keys(_iconSettings.__remapped).forEach((key: string) => {\n if (_iconSettings.__remapped[key] === normalizedIconName) {\n delete _iconSettings.__remapped[key];\n }\n });\n }\n}\n\n/**\n * Remaps one icon name to another.\n */\nexport function registerIconAlias(iconName: string, mappedToName: string): void {\n _iconSettings.__remapped[normalizeIconName(iconName)] = normalizeIconName(mappedToName);\n}\n\n/**\n * Gets an icon definition. If an icon is requested but the subset has yet to be registered,\n * it will get registered immediately.\n *\n * @public\n * @param name - Name of icon.\n */\nexport function getIcon(name?: string): IIconRecord | undefined {\n let icon: IIconRecord | undefined = undefined;\n const options = _iconSettings.__options;\n\n name = name ? normalizeIconName(name) : '';\n name = _iconSettings.__remapped[name] || name;\n\n if (name) {\n icon = _iconSettings[name!] as IIconRecord;\n\n if (icon) {\n let { subset } = icon;\n if (subset && subset.fontFace) {\n if (!subset.isRegistered) {\n fontFace(subset.fontFace);\n subset.isRegistered = true;\n }\n\n if (!subset.className) {\n subset.className = mergeStyles(subset.style, {\n fontFamily: subset.fontFace.fontFamily,\n fontWeight: subset.fontFace.fontWeight || 'normal',\n fontStyle: subset.fontFace.fontStyle || 'normal',\n });\n }\n }\n } else {\n // eslint-disable-next-line deprecation/deprecation\n if (!options.disableWarnings && options.warnOnMissingIcons) {\n warn(\n `The icon \"${name}\" was used but not registered. See https://github.com/microsoft/fluentui/wiki/Using-icons for more information.`,\n );\n }\n }\n }\n\n return icon;\n}\n\n/**\n * Sets the icon options.\n *\n * @public\n */\nexport function setIconOptions(options: Partial): void {\n _iconSettings.__options = {\n ..._iconSettings.__options,\n ...options,\n };\n}\n\nlet _missingIcons: string[] = [];\nlet _missingIconsTimer: number | undefined = undefined;\n\nfunction _warnDuplicateIcon(iconName: string): void {\n const options = _iconSettings.__options;\n const warningDelay = 2000;\n const maxIconsInMessage = 10;\n\n if (!options.disableWarnings) {\n _missingIcons.push(iconName);\n if (_missingIconsTimer === undefined) {\n _missingIconsTimer = setTimeout(() => {\n warn(\n `Some icons were re-registered. Applications should only call registerIcons for any given ` +\n `icon once. Redefining what an icon is may have unintended consequences. Duplicates ` +\n `include: \\n` +\n _missingIcons.slice(0, maxIconsInMessage).join(', ') +\n (_missingIcons.length > maxIconsInMessage ? ` (+ ${_missingIcons.length - maxIconsInMessage} more)` : ''),\n );\n _missingIconsTimer = undefined;\n _missingIcons = [];\n }, warningDelay);\n }\n }\n}\n","// Do not modify this file; it is generated as part of publish.\n// The checked in version is a placeholder only and will not be updated.\nimport { setVersion } from '@fluentui/set-version';\nsetVersion('@fluentui/font-icons-mdl2', '8.4.7');","import { initializeIcons as i } from './fabric-icons';\nimport { initializeIcons as i0 } from './fabric-icons-0';\nimport { initializeIcons as i1 } from './fabric-icons-1';\nimport { initializeIcons as i2 } from './fabric-icons-2';\nimport { initializeIcons as i3 } from './fabric-icons-3';\nimport { initializeIcons as i4 } from './fabric-icons-4';\nimport { initializeIcons as i5 } from './fabric-icons-5';\nimport { initializeIcons as i6 } from './fabric-icons-6';\nimport { initializeIcons as i7 } from './fabric-icons-7';\nimport { initializeIcons as i8 } from './fabric-icons-8';\nimport { initializeIcons as i9 } from './fabric-icons-9';\nimport { initializeIcons as i10 } from './fabric-icons-10';\nimport { initializeIcons as i11 } from './fabric-icons-11';\nimport { initializeIcons as i12 } from './fabric-icons-12';\nimport { initializeIcons as i13 } from './fabric-icons-13';\nimport { initializeIcons as i14 } from './fabric-icons-14';\nimport { initializeIcons as i15 } from './fabric-icons-15';\nimport { initializeIcons as i16 } from './fabric-icons-16';\nimport { initializeIcons as i17 } from './fabric-icons-17';\n\nimport { IIconOptions } from '@fluentui/style-utilities';\nimport { registerIconAliases } from './iconAliases';\nimport { getWindow } from '@fluentui/utilities';\nconst DEFAULT_BASE_URL = 'https://spoppe-b.azureedge.net/files/fabric-cdn-prod_20210407.001/assets/icons/';\n\n/*\n * The Window variable has the iconBaseUrl prop in order to allow for users to redirect icon font downloads to a new\n * URL. The config can be burned on the page to ensure there are no race conditions which might load resources on\n * script load.\n */\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n interface Window {\n /**\n * The FabricConfig options can be burned on the page prior to script load to provide\n * alternative defaults at script load time. This helps avoid race conditions by calling\n * `initializeIcons` too late, or in cases where you can't control the `initializeIcons` call,\n * such as using the pre-created Fluent bundle.\n */\n FabricConfig?: {\n /**\n * Controls the base url of the font files. This is useful for scenarios where the fonts\n * are stored on a private CDN other than the default SharePoint CDN.\n */\n fontBaseUrl?: string;\n\n /**\n * Controls the base url of the icon font files. This is useful for scenarios where the icons\n * are stored on a private CDN other than the default SharePoint CDN. Note that in prior\n * iterations, `fontBaseUrl` was used to control both font and icon base urls. While you can\n * still use `fontBaseUrl` to provide a single base url for both, the `iconBaseUrl` will be\n * used first if available.\n */\n iconBaseUrl?: string;\n };\n }\n}\n\nconst win = getWindow();\n\nexport function initializeIcons(\n baseUrl: string = win?.FabricConfig?.iconBaseUrl || win?.FabricConfig?.fontBaseUrl || DEFAULT_BASE_URL,\n options?: IIconOptions,\n): void {\n [\n i,\n i0,\n i1,\n i2,\n i3,\n i4,\n i5,\n i6,\n i7,\n i8,\n i9,\n i10,\n i11,\n i12,\n i13,\n i14,\n i15,\n i16,\n i17,\n ].forEach((initialize: (url: string, options?: IIconOptions) => void) => initialize(baseUrl, options));\n\n registerIconAliases();\n}\n\n// eslint-disable-next-line deprecation/deprecation\nexport { IconNames } from './IconNames';\n\nimport './version';\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nexport const strShimFunction = \"function\";\r\nexport const strShimObject = \"object\";\r\nexport const strShimUndefined = \"undefined\";\r\nexport const strShimPrototype = \"prototype\";\r\nexport const strShimHasOwnProperty = \"hasOwnProperty\";\r\nexport const strDefault = \"default\";\r\n\r\nexport const ObjClass = Object;\r\nexport const ObjProto = ObjClass[strShimPrototype];\r\nexport const ObjAssign = ObjClass[\"assign\"];\r\nexport const ObjCreate = ObjClass[\"create\"];\r\nexport const ObjDefineProperty = ObjClass[\"defineProperty\"];\r\nexport const ObjHasOwnProperty = ObjProto[strShimHasOwnProperty];\r\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AuthError } from \"./AuthError\";\n\n/**\n * ClientAuthErrorMessage class containing string constants used by error codes and messages.\n */\nexport const ClientAuthErrorMessage = {\n clientInfoDecodingError: {\n code: \"client_info_decoding_error\",\n desc: \"The client info could not be parsed/decoded correctly. Please review the trace to determine the root cause.\"\n },\n clientInfoEmptyError: {\n code: \"client_info_empty_error\",\n desc: \"The client info was empty. Please review the trace to determine the root cause.\"\n },\n tokenParsingError: {\n code: \"token_parsing_error\",\n desc: \"Token cannot be parsed. Please review stack trace to determine root cause.\"\n },\n nullOrEmptyToken: {\n code: \"null_or_empty_token\",\n desc: \"The token is null or empty. Please review the trace to determine the root cause.\"\n },\n endpointResolutionError: {\n code: \"endpoints_resolution_error\",\n desc: \"Error: could not resolve endpoints. Please check network and try again.\"\n },\n networkError: {\n code: \"network_error\",\n desc: \"Network request failed. Please check network trace to determine root cause.\"\n },\n unableToGetOpenidConfigError: {\n code: \"openid_config_error\",\n desc: \"Could not retrieve endpoints. Check your authority and verify the .well-known/openid-configuration endpoint returns the required endpoints.\"\n },\n hashNotDeserialized: {\n code: \"hash_not_deserialized\",\n desc: \"The hash parameters could not be deserialized. Please review the trace to determine the root cause.\"\n },\n blankGuidGenerated: {\n code: \"blank_guid_generated\",\n desc: \"The guid generated was blank. Please review the trace to determine the root cause.\"\n },\n invalidStateError: {\n code: \"invalid_state\",\n desc: \"State was not the expected format. Please check the logs to determine whether the request was sent using ProtocolUtils.setRequestState().\"\n },\n stateMismatchError: {\n code: \"state_mismatch\",\n desc: \"State mismatch error. Please check your network. Continued requests may cause cache overflow.\"\n },\n stateNotFoundError: {\n code: \"state_not_found\",\n desc: \"State not found\"\n },\n nonceMismatchError: {\n code: \"nonce_mismatch\",\n desc: \"Nonce mismatch error. This may be caused by a race condition in concurrent requests.\"\n },\n nonceNotFoundError: {\n code: \"nonce_not_found\",\n desc: \"nonce not found\"\n },\n noTokensFoundError: {\n code: \"no_tokens_found\",\n desc: \"No tokens were found for the given scopes, and no authorization code was passed to acquireToken. You must retrieve an authorization code before making a call to acquireToken().\"\n },\n multipleMatchingTokens: {\n code: \"multiple_matching_tokens\",\n desc: \"The cache contains multiple tokens satisfying the requirements. \" +\n \"Call AcquireToken again providing more requirements such as authority or account.\"\n },\n multipleMatchingAccounts: {\n code: \"multiple_matching_accounts\",\n desc: \"The cache contains multiple accounts satisfying the given parameters. Please pass more info to obtain the correct account\"\n },\n multipleMatchingAppMetadata: {\n code: \"multiple_matching_appMetadata\",\n desc: \"The cache contains multiple appMetadata satisfying the given parameters. Please pass more info to obtain the correct appMetadata\"\n },\n tokenRequestCannotBeMade: {\n code: \"request_cannot_be_made\",\n desc: \"Token request cannot be made without authorization code or refresh token.\"\n },\n appendEmptyScopeError: {\n code: \"cannot_append_empty_scope\",\n desc: \"Cannot append null or empty scope to ScopeSet. Please check the stack trace for more info.\"\n },\n removeEmptyScopeError: {\n code: \"cannot_remove_empty_scope\",\n desc: \"Cannot remove null or empty scope from ScopeSet. Please check the stack trace for more info.\"\n },\n appendScopeSetError: {\n code: \"cannot_append_scopeset\",\n desc: \"Cannot append ScopeSet due to error.\"\n },\n emptyInputScopeSetError: {\n code: \"empty_input_scopeset\",\n desc: \"Empty input ScopeSet cannot be processed.\"\n },\n DeviceCodePollingCancelled: {\n code: \"device_code_polling_cancelled\",\n desc: \"Caller has cancelled token endpoint polling during device code flow by setting DeviceCodeRequest.cancel = true.\"\n },\n DeviceCodeExpired: {\n code: \"device_code_expired\",\n desc: \"Device code is expired.\"\n },\n DeviceCodeUnknownError: {\n code: \"device_code_unknown_error\",\n desc: \"Device code stopped polling for unknown reasons.\"\n },\n NoAccountInSilentRequest: {\n code: \"no_account_in_silent_request\",\n desc: \"Please pass an account object, silent flow is not supported without account information\"\n },\n invalidCacheRecord: {\n code: \"invalid_cache_record\",\n desc: \"Cache record object was null or undefined.\"\n },\n invalidCacheEnvironment: {\n code: \"invalid_cache_environment\",\n desc: \"Invalid environment when attempting to create cache entry\"\n },\n noAccountFound: {\n code: \"no_account_found\",\n desc: \"No account found in cache for given key.\"\n },\n CachePluginError: {\n code: \"no cache plugin set on CacheManager\",\n desc: \"ICachePlugin needs to be set before using readFromStorage or writeFromStorage\"\n },\n noCryptoObj: {\n code: \"no_crypto_object\",\n desc: \"No crypto object detected. This is required for the following operation: \"\n },\n invalidCacheType: {\n code: \"invalid_cache_type\",\n desc: \"Invalid cache type\"\n },\n unexpectedAccountType: {\n code: \"unexpected_account_type\",\n desc: \"Unexpected account type.\"\n },\n unexpectedCredentialType: {\n code: \"unexpected_credential_type\",\n desc: \"Unexpected credential type.\"\n },\n invalidAssertion: {\n code: \"invalid_assertion\",\n desc: \"Client assertion must meet requirements described in https://tools.ietf.org/html/rfc7515\"\n },\n invalidClientCredential: {\n code: \"invalid_client_credential\",\n desc: \"Client credential (secret, certificate, or assertion) must not be empty when creating a confidential client. An application should at most have one credential\"\n },\n tokenRefreshRequired: {\n code: \"token_refresh_required\",\n desc: \"Cannot return token from cache because it must be refreshed. This may be due to one of the following reasons: forceRefresh parameter is set to true, claims have been requested, there is no cached access token or it is expired.\"\n },\n userTimeoutReached: {\n code: \"user_timeout_reached\",\n desc: \"User defined timeout for device code polling reached\",\n },\n tokenClaimsRequired: {\n code: \"token_claims_cnf_required_for_signedjwt\",\n desc: \"Cannot generate a POP jwt if the token_claims are not populated\"\n },\n noAuthorizationCodeFromServer: {\n code: \"authorization_code_missing_from_server_response\",\n desc: \"Server response does not contain an authorization code to proceed\"\n },\n noAzureRegionDetected: {\n code: \"no_azure_region_detected\",\n desc: \"No azure region was detected and no fallback was made available\"\n },\n accessTokenEntityNullError: {\n code: \"access_token_entity_null\",\n desc: \"Access token entity is null, please check logs and cache to ensure a valid access token is present.\"\n },\n bindingKeyNotRemovedError: {\n code: \"binding_key_not_removed\",\n desc: \"Could not remove the credential's binding key from storage.\"\n },\n logoutNotSupported: {\n code: \"end_session_endpoint_not_supported\",\n desc: \"Provided authority does not support logout.\"\n },\n keyIdMissing: {\n code: \"key_id_missing\",\n desc: \"A keyId value is missing from the requested bound token's cache record and is required to match the token to it's stored binding key.\"\n }\n};\n\n/**\n * Error thrown when there is an error in the client code running on the browser.\n */\nexport class ClientAuthError extends AuthError {\n\n constructor(errorCode: string, errorMessage?: string) {\n super(errorCode, errorMessage);\n this.name = \"ClientAuthError\";\n\n Object.setPrototypeOf(this, ClientAuthError.prototype);\n }\n\n /**\n * Creates an error thrown when client info object doesn't decode correctly.\n * @param caughtError\n */\n static createClientInfoDecodingError(caughtError: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.clientInfoDecodingError.code,\n `${ClientAuthErrorMessage.clientInfoDecodingError.desc} Failed with error: ${caughtError}`);\n }\n\n /**\n * Creates an error thrown if the client info is empty.\n * @param rawClientInfo\n */\n static createClientInfoEmptyError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.clientInfoEmptyError.code,\n `${ClientAuthErrorMessage.clientInfoEmptyError.desc}`);\n }\n\n /**\n * Creates an error thrown when the id token extraction errors out.\n * @param err\n */\n static createTokenParsingError(caughtExtractionError: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.tokenParsingError.code,\n `${ClientAuthErrorMessage.tokenParsingError.desc} Failed with error: ${caughtExtractionError}`);\n }\n\n /**\n * Creates an error thrown when the id token string is null or empty.\n * @param invalidRawTokenString\n */\n static createTokenNullOrEmptyError(invalidRawTokenString: string) : ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.nullOrEmptyToken.code,\n `${ClientAuthErrorMessage.nullOrEmptyToken.desc} Raw Token Value: ${invalidRawTokenString}`);\n }\n\n /**\n * Creates an error thrown when the endpoint discovery doesn't complete correctly.\n */\n static createEndpointDiscoveryIncompleteError(errDetail: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.endpointResolutionError.code,\n `${ClientAuthErrorMessage.endpointResolutionError.desc} Detail: ${errDetail}`);\n }\n\n /**\n * Creates an error thrown when the fetch client throws\n */\n static createNetworkError(endpoint: string, errDetail: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.networkError.code,\n `${ClientAuthErrorMessage.networkError.desc} | Fetch client threw: ${errDetail} | Attempted to reach: ${endpoint.split(\"?\")[0]}`);\n }\n\n /**\n * Creates an error thrown when the openid-configuration endpoint cannot be reached or does not contain the required data\n */\n static createUnableToGetOpenidConfigError(errDetail: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.unableToGetOpenidConfigError.code,\n `${ClientAuthErrorMessage.unableToGetOpenidConfigError.desc} Attempted to retrieve endpoints from: ${errDetail}`);\n }\n\n /**\n * Creates an error thrown when the hash cannot be deserialized.\n * @param hashParamObj\n */\n static createHashNotDeserializedError(hashParamObj: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.hashNotDeserialized.code,\n `${ClientAuthErrorMessage.hashNotDeserialized.desc} Given Object: ${hashParamObj}`);\n }\n\n /**\n * Creates an error thrown when the state cannot be parsed.\n * @param invalidState\n */\n static createInvalidStateError(invalidState: string, errorString?: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.invalidStateError.code,\n `${ClientAuthErrorMessage.invalidStateError.desc} Invalid State: ${invalidState}, Root Err: ${errorString}`);\n }\n\n /**\n * Creates an error thrown when two states do not match.\n */\n static createStateMismatchError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.stateMismatchError.code,\n ClientAuthErrorMessage.stateMismatchError.desc);\n }\n\n /**\n * Creates an error thrown when the state is not present\n * @param missingState\n */\n static createStateNotFoundError(missingState: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.stateNotFoundError.code,\n `${ClientAuthErrorMessage.stateNotFoundError.desc}: ${missingState}`);\n }\n\n /**\n * Creates an error thrown when the nonce does not match.\n */\n static createNonceMismatchError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.nonceMismatchError.code,\n ClientAuthErrorMessage.nonceMismatchError.desc);\n }\n\n /**\n * Creates an error thrown when the mnonce is not present\n * @param missingNonce\n */\n static createNonceNotFoundError(missingNonce: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.nonceNotFoundError.code,\n `${ClientAuthErrorMessage.nonceNotFoundError.desc}: ${missingNonce}`);\n }\n\n /**\n * Throws error when multiple tokens are in cache.\n */\n static createMultipleMatchingTokensInCacheError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingTokens.code,\n `${ClientAuthErrorMessage.multipleMatchingTokens.desc}.`);\n }\n\n /**\n * Throws error when multiple accounts are in cache for the given params\n */\n static createMultipleMatchingAccountsInCacheError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingAccounts.code,\n ClientAuthErrorMessage.multipleMatchingAccounts.desc);\n }\n\n /**\n * Throws error when multiple appMetada are in cache for the given clientId.\n */\n static createMultipleMatchingAppMetadataInCacheError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingAppMetadata.code,\n ClientAuthErrorMessage.multipleMatchingAppMetadata.desc);\n }\n\n /**\n * Throws error when no auth code or refresh token is given to ServerTokenRequestParameters.\n */\n static createTokenRequestCannotBeMadeError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.tokenRequestCannotBeMade.code, ClientAuthErrorMessage.tokenRequestCannotBeMade.desc);\n }\n\n /**\n * Throws error when attempting to append a null, undefined or empty scope to a set\n * @param givenScope\n */\n static createAppendEmptyScopeToSetError(givenScope: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.appendEmptyScopeError.code, `${ClientAuthErrorMessage.appendEmptyScopeError.desc} Given Scope: ${givenScope}`);\n }\n\n /**\n * Throws error when attempting to append a null, undefined or empty scope to a set\n * @param givenScope\n */\n static createRemoveEmptyScopeFromSetError(givenScope: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.removeEmptyScopeError.code, `${ClientAuthErrorMessage.removeEmptyScopeError.desc} Given Scope: ${givenScope}`);\n }\n\n /**\n * Throws error when attempting to append null or empty ScopeSet.\n * @param appendError\n */\n static createAppendScopeSetError(appendError: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.appendScopeSetError.code, `${ClientAuthErrorMessage.appendScopeSetError.desc} Detail Error: ${appendError}`);\n }\n\n /**\n * Throws error if ScopeSet is null or undefined.\n * @param givenScopeSet\n */\n static createEmptyInputScopeSetError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.emptyInputScopeSetError.code, `${ClientAuthErrorMessage.emptyInputScopeSetError.desc}`);\n }\n\n /**\n * Throws error if user sets CancellationToken.cancel = true during polling of token endpoint during device code flow\n */\n static createDeviceCodeCancelledError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodePollingCancelled.code, `${ClientAuthErrorMessage.DeviceCodePollingCancelled.desc}`);\n }\n\n /**\n * Throws error if device code is expired\n */\n static createDeviceCodeExpiredError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodeExpired.code, `${ClientAuthErrorMessage.DeviceCodeExpired.desc}`);\n }\n\n /**\n * Throws error if device code is expired\n */\n static createDeviceCodeUnknownError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodeUnknownError.code, `${ClientAuthErrorMessage.DeviceCodeUnknownError.desc}`);\n }\n\n /**\n * Throws error when silent requests are made without an account object\n */\n static createNoAccountInSilentRequestError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.NoAccountInSilentRequest.code, `${ClientAuthErrorMessage.NoAccountInSilentRequest.desc}`);\n }\n\n /**\n * Throws error when cache record is null or undefined.\n */\n static createNullOrUndefinedCacheRecord(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheRecord.code, ClientAuthErrorMessage.invalidCacheRecord.desc);\n }\n\n /**\n * Throws error when provided environment is not part of the CloudDiscoveryMetadata object\n */\n static createInvalidCacheEnvironmentError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheEnvironment.code, ClientAuthErrorMessage.invalidCacheEnvironment.desc);\n }\n\n /**\n * Throws error when account is not found in cache.\n */\n static createNoAccountFoundError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.noAccountFound.code, ClientAuthErrorMessage.noAccountFound.desc);\n }\n\n /**\n * Throws error if ICachePlugin not set on CacheManager.\n */\n static createCachePluginError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.CachePluginError.code, `${ClientAuthErrorMessage.CachePluginError.desc}`);\n }\n\n /**\n * Throws error if crypto object not found.\n * @param operationName\n */\n static createNoCryptoObjectError(operationName: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.noCryptoObj.code, `${ClientAuthErrorMessage.noCryptoObj.desc}${operationName}`);\n }\n\n /**\n * Throws error if cache type is invalid.\n */\n static createInvalidCacheTypeError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheType.code, `${ClientAuthErrorMessage.invalidCacheType.desc}`);\n }\n\n /**\n * Throws error if unexpected account type.\n */\n static createUnexpectedAccountTypeError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.unexpectedAccountType.code, `${ClientAuthErrorMessage.unexpectedAccountType.desc}`);\n }\n\n /**\n * Throws error if unexpected credential type.\n */\n static createUnexpectedCredentialTypeError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.unexpectedCredentialType.code, `${ClientAuthErrorMessage.unexpectedCredentialType.desc}`);\n }\n\n /**\n * Throws error if client assertion is not valid.\n */\n static createInvalidAssertionError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.invalidAssertion.code, `${ClientAuthErrorMessage.invalidAssertion.desc}`);\n }\n\n /**\n * Throws error if client assertion is not valid.\n */\n static createInvalidCredentialError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.invalidClientCredential.code, `${ClientAuthErrorMessage.invalidClientCredential.desc}`);\n }\n\n /**\n * Throws error if token cannot be retrieved from cache due to refresh being required.\n */\n static createRefreshRequiredError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.tokenRefreshRequired.code, ClientAuthErrorMessage.tokenRefreshRequired.desc);\n }\n\n /**\n * Throws error if the user defined timeout is reached.\n */\n static createUserTimeoutReachedError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.userTimeoutReached.code, ClientAuthErrorMessage.userTimeoutReached.desc);\n }\n\n /*\n * Throws error if token claims are not populated for a signed jwt generation\n */\n static createTokenClaimsRequiredError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.tokenClaimsRequired.code, ClientAuthErrorMessage.tokenClaimsRequired.desc);\n }\n\n /**\n * Throws error when the authorization code is missing from the server response\n */\n static createNoAuthCodeInServerResponseError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.noAuthorizationCodeFromServer.code, ClientAuthErrorMessage.noAuthorizationCodeFromServer.desc);\n }\n\n static createBindingKeyNotRemovedError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.bindingKeyNotRemovedError.code, ClientAuthErrorMessage.bindingKeyNotRemovedError.desc);\n }\n\n /**\n * Thrown when logout is attempted for an authority that doesnt have an end_session_endpoint\n */\n static createLogoutNotSupportedError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.logoutNotSupported.code, ClientAuthErrorMessage.logoutNotSupported.desc);\n }\n\n /**\n * Create an error when kid attribute is missing from a PoP token's cache record\n */\n static createKeyIdMissingError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.keyIdMissing.code, ClientAuthErrorMessage.keyIdMissing.desc);\n }\n}\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { DecodedAuthToken } from \"../account/DecodedAuthToken\";\nimport { ClientAuthError } from \"../error/ClientAuthError\";\n\n/**\n * @hidden\n */\nexport class StringUtils {\n\n /**\n * decode a JWT\n *\n * @param authToken\n */\n static decodeAuthToken(authToken: string): DecodedAuthToken {\n if (StringUtils.isEmpty(authToken)) {\n throw ClientAuthError.createTokenNullOrEmptyError(authToken);\n }\n const tokenPartsRegex = /^([^\\.\\s]*)\\.([^\\.\\s]+)\\.([^\\.\\s]*)$/;\n const matches = tokenPartsRegex.exec(authToken);\n if (!matches || matches.length < 4) {\n throw ClientAuthError.createTokenParsingError(`Given token is malformed: ${JSON.stringify(authToken)}`);\n }\n const crackedToken: DecodedAuthToken = {\n header: matches[1],\n JWSPayload: matches[2],\n JWSSig: matches[3]\n };\n return crackedToken;\n }\n\n /**\n * Check if a string is empty.\n *\n * @param str\n */\n static isEmpty(str?: string): boolean {\n return (typeof str === \"undefined\" || !str || 0 === str.length);\n }\n\n /**\n * Check if stringified object is empty\n * @param strObj \n */\n static isEmptyObj(strObj?: string): boolean {\n if (strObj && !StringUtils.isEmpty(strObj)) {\n try {\n const obj = JSON.parse(strObj);\n return Object.keys(obj).length === 0;\n } catch (e) {}\n }\n return true;\n }\n\n static startsWith(str: string, search: string): boolean {\n return str.indexOf(search) === 0;\n }\n\n static endsWith(str: string, search: string): boolean {\n return (str.length >= search.length) && (str.lastIndexOf(search) === (str.length - search.length));\n }\n\n /**\n * Parses string into an object.\n *\n * @param query\n */\n static queryStringToObject(query: string): T {\n const obj: {} = {};\n const params = query.split(\"&\");\n const decode = (s: string) => decodeURIComponent(s.replace(/\\+/g, \" \"));\n params.forEach((pair) => {\n if (pair.trim()) {\n const [key, value] = pair.split(/=(.+)/g, 2); // Split on the first occurence of the '=' character\n if (key && value) {\n obj[decode(key)] = decode(value);\n }\n }\n });\n return obj as T;\n }\n\n /**\n * Trims entries in an array.\n *\n * @param arr\n */\n static trimArrayEntries(arr: Array): Array {\n return arr.map(entry => entry.trim());\n }\n\n /**\n * Removes empty strings from array\n * @param arr\n */\n static removeEmptyStringsFromArray(arr: Array): Array {\n return arr.filter(entry => {\n return !StringUtils.isEmpty(entry);\n });\n }\n\n /**\n * Attempts to parse a string into JSON\n * @param str\n */\n static jsonParseHelper(str: string): T | null {\n try {\n return JSON.parse(str) as T;\n } catch (e) {\n return null;\n }\n }\n\n /**\n * Tests if a given string matches a given pattern, with support for wildcards and queries.\n * @param pattern Wildcard pattern to string match. Supports \"*\" for wildcards and \"?\" for queries\n * @param input String to match against\n */\n static matchPattern(pattern: string, input: string): boolean {\n /**\n * Wildcard support: https://stackoverflow.com/a/3117248/4888559\n * Queries: replaces \"?\" in string with escaped \"\\?\" for regex test\n */\n const regex: RegExp = new RegExp(pattern.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\*/g, \"[^ ]*\").replace(/\\?/g, \"\\\\\\?\")); // eslint-disable-line security/detect-non-literal-regexp\n\n return regex.test(input);\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport enum EventType {\n INITIALIZE_START = \"msal:initializeStart\",\n INITIALIZE_END = \"msal:initializeEnd\",\n ACCOUNT_ADDED = \"msal:accountAdded\",\n ACCOUNT_REMOVED = \"msal:accountRemoved\",\n LOGIN_START = \"msal:loginStart\",\n LOGIN_SUCCESS = \"msal:loginSuccess\",\n LOGIN_FAILURE = \"msal:loginFailure\",\n ACQUIRE_TOKEN_START = \"msal:acquireTokenStart\",\n ACQUIRE_TOKEN_SUCCESS = \"msal:acquireTokenSuccess\",\n ACQUIRE_TOKEN_FAILURE = \"msal:acquireTokenFailure\",\n ACQUIRE_TOKEN_NETWORK_START = \"msal:acquireTokenFromNetworkStart\",\n SSO_SILENT_START = \"msal:ssoSilentStart\",\n SSO_SILENT_SUCCESS = \"msal:ssoSilentSuccess\",\n SSO_SILENT_FAILURE = \"msal:ssoSilentFailure\",\n ACQUIRE_TOKEN_BY_CODE_START = \"msal:acquireTokenByCodeStart\",\n ACQUIRE_TOKEN_BY_CODE_SUCCESS = \"msal:acquireTokenByCodeSuccess\",\n ACQUIRE_TOKEN_BY_CODE_FAILURE = \"msal:acquireTokenByCodeFailure\",\n HANDLE_REDIRECT_START = \"msal:handleRedirectStart\",\n HANDLE_REDIRECT_END = \"msal:handleRedirectEnd\",\n POPUP_OPENED = \"msal:popupOpened\",\n LOGOUT_START = \"msal:logoutStart\",\n LOGOUT_SUCCESS = \"msal:logoutSuccess\",\n LOGOUT_FAILURE = \"msal:logoutFailure\",\n LOGOUT_END = \"msal:logoutEnd\"\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { context as otContext, trace as otTrace } from \"@opentelemetry/api\";\n\n/**\n * A Tracer.\n */\nexport interface Tracer {\n /**\n * Starts a new {@link Span}. Start the span without setting it on context.\n *\n * This method does NOT modify the current Context.\n *\n * @param name - The name of the span\n * @param options - SpanOptions used for span creation\n * @param context - Context to use to extract parent\n * @returns The newly created span\n * @example\n * const span = tracer.startSpan('op');\n * span.setAttribute('key', 'value');\n * span.end();\n */\n startSpan(name: string, options?: SpanOptions, context?: Context): Span;\n}\n\n/**\n * TraceState.\n */\nexport interface TraceState {\n /**\n * Create a new TraceState which inherits from this TraceState and has the\n * given key set.\n * The new entry will always be added in the front of the list of states.\n *\n * @param key - key of the TraceState entry.\n * @param value - value of the TraceState entry.\n */\n set(key: string, value: string): TraceState;\n /**\n * Return a new TraceState which inherits from this TraceState but does not\n * contain the given key.\n *\n * @param key - the key for the TraceState entry to be removed.\n */\n unset(key: string): TraceState;\n /**\n * Returns the value to which the specified key is mapped, or `undefined` if\n * this map contains no mapping for the key.\n *\n * @param key - with which the specified value is to be associated.\n * @returns the value to which the specified key is mapped, or `undefined` if\n * this map contains no mapping for the key.\n */\n get(key: string): string | undefined;\n /**\n * Serializes the TraceState to a `list` as defined below. The `list` is a\n * series of `list-members` separated by commas `,`, and a list-member is a\n * key/value pair separated by an equals sign `=`. Spaces and horizontal tabs\n * surrounding `list-members` are ignored. There can be a maximum of 32\n * `list-members` in a `list`.\n *\n * @returns the serialized string.\n */\n serialize(): string;\n}\n\n/**\n * Represents high resolution time.\n */\nexport declare type HrTime = [number, number];\n\n/**\n * Used to represent a Time.\n */\nexport type TimeInput = HrTime | number | Date;\n\n/**\n * The status for a span.\n */\nexport interface SpanStatus {\n /** The status code of this message. */\n code: SpanStatusCode;\n /** A developer-facing error message. */\n message?: string;\n}\n\n/**\n * The kind of span.\n */\nexport enum SpanKind {\n /** Default value. Indicates that the span is used internally. */\n INTERNAL = 0,\n /**\n * Indicates that the span covers server-side handling of an RPC or other\n * remote request.\n */\n SERVER = 1,\n /**\n * Indicates that the span covers the client-side wrapper around an RPC or\n * other remote request.\n */\n CLIENT = 2,\n /**\n * Indicates that the span describes producer sending a message to a\n * broker. Unlike client and server, there is no direct critical path latency\n * relationship between producer and consumer spans.\n */\n PRODUCER = 3,\n /**\n * Indicates that the span describes consumer receiving a message from a\n * broker. Unlike client and server, there is no direct critical path latency\n * relationship between producer and consumer spans.\n */\n CONSUMER = 4\n}\n\n/**\n * An Exception for a Span.\n */\nexport declare type Exception =\n | ExceptionWithCode\n | ExceptionWithMessage\n | ExceptionWithName\n | string;\n\n/**\n * An Exception with a code.\n */\nexport interface ExceptionWithCode {\n /** The code. */\n code: string | number;\n /** The name. */\n name?: string;\n /** The message. */\n message?: string;\n /** The stack. */\n stack?: string;\n}\n\n/**\n * An Exception with a message.\n */\nexport interface ExceptionWithMessage {\n /** The code. */\n code?: string | number;\n /** The message. */\n message: string;\n /** The name. */\n name?: string;\n /** The stack. */\n stack?: string;\n}\n\n/**\n * An Exception with a name.\n */\nexport interface ExceptionWithName {\n /** The code. */\n code?: string | number;\n /** The message. */\n message?: string;\n /** The name. */\n name: string;\n /** The stack. */\n stack?: string;\n}\n\n/**\n * Return the span if one exists\n *\n * @param context - context to get span from\n */\nexport function getSpan(context: Context): Span | undefined {\n return otTrace.getSpan(context);\n}\n\n/**\n * Set the span on a context\n *\n * @param context - context to use as parent\n * @param span - span to set active\n */\nexport function setSpan(context: Context, span: Span): Context {\n return otTrace.setSpan(context, span);\n}\n\n/**\n * Wrap span context in a NoopSpan and set as span in a new\n * context\n *\n * @param context - context to set active span on\n * @param spanContext - span context to be wrapped\n */\nexport function setSpanContext(context: Context, spanContext: SpanContext): Context {\n return otTrace.setSpanContext(context, spanContext);\n}\n\n/**\n * Get the span context of the span if it exists.\n *\n * @param context - context to get values from\n */\nexport function getSpanContext(context: Context): SpanContext | undefined {\n return otTrace.getSpanContext(context);\n}\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Context API\n */\nexport interface ContextAPI {\n /**\n * Get the currently active context\n */\n active(): Context;\n}\n\n/**\n * Returns true of the given {@link SpanContext} is valid.\n * A valid {@link SpanContext} is one which has a valid trace ID and span ID as per the spec.\n *\n * @param context - the {@link SpanContext} to validate.\n *\n * @returns true if the {@link SpanContext} is valid, false otherwise.\n */\nexport function isSpanContextValid(context: SpanContext): boolean {\n return otTrace.isSpanContextValid(context);\n}\n\n/**\n * Retrieves a tracer from the global tracer provider.\n */\nexport function getTracer(): Tracer;\n/**\n * Retrieves a tracer from the global tracer provider.\n */\nexport function getTracer(name: string, version?: string): Tracer;\nexport function getTracer(name?: string, version?: string): Tracer {\n return otTrace.getTracer(name || \"azure/core-tracing\", version);\n}\n\n/** Entrypoint for context API */\nexport const context: ContextAPI = otContext;\n\n/** SpanStatusCode */\nexport enum SpanStatusCode {\n /**\n * The default status.\n */\n UNSET = 0,\n /**\n * The operation has been validated by an Application developer or\n * Operator to have completed successfully.\n */\n OK = 1,\n /**\n * The operation contains an error.\n */\n ERROR = 2\n}\n\n/**\n * An interface that represents a span. A span represents a single operation\n * within a trace. Examples of span might include remote procedure calls or a\n * in-process function calls to sub-components. A Trace has a single, top-level\n * \"root\" Span that in turn may have zero or more child Spans, which in turn\n * may have children.\n *\n * Spans are created by the {@link Tracer.startSpan} method.\n */\nexport interface Span {\n /**\n * Returns the {@link SpanContext} object associated with this Span.\n *\n * Get an immutable, serializable identifier for this span that can be used\n * to create new child spans. Returned SpanContext is usable even after the\n * span ends.\n *\n * @returns the SpanContext object associated with this Span.\n */\n spanContext(): SpanContext;\n /**\n * Sets an attribute to the span.\n *\n * Sets a single Attribute with the key and value passed as arguments.\n *\n * @param key - the key for this attribute.\n * @param value - the value for this attribute. Setting a value null or\n * undefined is invalid and will result in undefined behavior.\n */\n setAttribute(key: string, value: SpanAttributeValue): this;\n /**\n * Sets attributes to the span.\n *\n * @param attributes - the attributes that will be added.\n * null or undefined attribute values\n * are invalid and will result in undefined behavior.\n */\n setAttributes(attributes: SpanAttributes): this;\n /**\n * Adds an event to the Span.\n *\n * @param name - the name of the event.\n * @param attributesOrStartTime - the attributes that will be added; these are\n * associated with this event. Can be also a start time\n * if type is TimeInput and 3rd param is undefined\n * @param startTime - start time of the event.\n */\n addEvent(\n name: string,\n attributesOrStartTime?: SpanAttributes | TimeInput,\n startTime?: TimeInput\n ): this;\n /**\n * Sets a status to the span. If used, this will override the default Span\n * status. Default is {@link SpanStatusCode.UNSET}. SetStatus overrides the value\n * of previous calls to SetStatus on the Span.\n *\n * @param status - the SpanStatus to set.\n */\n setStatus(status: SpanStatus): this;\n /**\n * Marks the end of Span execution.\n *\n * Call to End of a Span MUST not have any effects on child spans. Those may\n * still be running and can be ended later.\n *\n * Do not return `this`. The Span generally should not be used after it\n * is ended so chaining is not desired in this context.\n *\n * @param endTime - the time to set as Span's end time. If not provided,\n * use the current time as the span's end time.\n */\n end(endTime?: TimeInput): void;\n /**\n * Returns the flag whether this span will be recorded.\n *\n * @returns true if this Span is active and recording information like events\n * with the `AddEvent` operation and attributes using `setAttributes`.\n */\n isRecording(): boolean;\n\n /**\n * Sets exception as a span event\n * @param exception - the exception the only accepted values are string or Error\n * @param time - the time to set as Span's event time. If not provided,\n * use the current time.\n */\n recordException(exception: Exception, time?: TimeInput): void;\n\n /**\n * Updates the Span name.\n *\n * This will override the name provided via {@link Tracer.startSpan}.\n *\n * Upon this update, any sampling behavior based on Span name will depend on\n * the implementation.\n *\n * @param name - the Span name.\n */\n updateName(name: string): this;\n}\n\n/**\n * Shorthand enum for common traceFlags values inside SpanContext\n */\nexport const enum TraceFlags {\n /** No flag set. */\n NONE = 0x0,\n /** Caller is collecting trace information. */\n SAMPLED = 0x1\n}\n\n/**\n * A light interface that tries to be structurally compatible with OpenTelemetry\n */\nexport interface SpanContext {\n /**\n * UUID of a trace.\n */\n traceId: string;\n /**\n * UUID of a Span.\n */\n spanId: string;\n /**\n * https://www.w3.org/TR/trace-context/#trace-flags\n */\n traceFlags: number;\n /**\n * Tracing-system-specific info to propagate.\n *\n * The tracestate field value is a `list` as defined below. The `list` is a\n * series of `list-members` separated by commas `,`, and a list-member is a\n * key/value pair separated by an equals sign `=`. Spaces and horizontal tabs\n * surrounding `list-members` are ignored. There can be a maximum of 32\n * `list-members` in a `list`.\n * More Info: https://www.w3.org/TR/trace-context/#tracestate-field\n *\n * Examples:\n * Single tracing system (generic format):\n * tracestate: rojo=00f067aa0ba902b7\n * Multiple tracing systems (with different formatting):\n * tracestate: rojo=00f067aa0ba902b7,congo=t61rcWkgMzE\n */\n traceState?: TraceState;\n}\n\n/**\n * Used to specify a span that is linked to another.\n */\nexport interface Link {\n /** The {@link SpanContext} of a linked span. */\n context: SpanContext;\n\n /** A set of {@link SpanAttributes} on the link. */\n attributes?: SpanAttributes;\n}\n\n/**\n * Attributes for a Span.\n */\nexport interface SpanAttributes {\n /**\n * Attributes for a Span.\n */\n [attributeKey: string]: SpanAttributeValue | undefined;\n}\n/**\n * Attribute values may be any non-nullish primitive value except an object.\n *\n * null or undefined attribute values are invalid and will result in undefined behavior.\n */\nexport declare type SpanAttributeValue =\n | string\n | number\n | boolean\n | Array\n | Array\n | Array;\n\n/**\n * An interface that enables manual propagation of Spans\n */\nexport interface SpanOptions {\n /**\n * Attributes to set on the Span\n */\n attributes?: SpanAttributes;\n\n /** {@link Link}s span to other spans */\n links?: Link[];\n\n /**\n * The type of Span. Default to SpanKind.INTERNAL\n */\n kind?: SpanKind;\n\n /**\n * A manually specified start time for the created `Span` object.\n */\n startTime?: TimeInput;\n}\n\n/**\n * Tracing options to set on an operation.\n */\nexport interface OperationTracingOptions {\n /**\n * OpenTelemetry SpanOptions used to create a span when tracing is enabled.\n */\n spanOptions?: SpanOptions;\n\n /**\n * OpenTelemetry context to use for created Spans.\n */\n tracingContext?: Context;\n}\n\n/**\n * OpenTelemetry compatible interface for Context\n */\nexport interface Context {\n /**\n * Get a value from the context.\n *\n * @param key - key which identifies a context value\n */\n getValue(key: symbol): unknown;\n /**\n * Create a new context which inherits from this context and has\n * the given key set to the given value.\n *\n * @param key - context key for which to set the value\n * @param value - value to set for the given key\n */\n setValue(key: symbol, value: unknown): Context;\n /**\n * Return a new context which inherits from this context but does\n * not contain a value for the given key.\n *\n * @param key - context key for which to clear a value\n */\n deleteValue(key: symbol): Context;\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { getGlobal, strShimObject, strShimPrototype, strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { _DYN_CALL, _DYN_INDEX_OF, _DYN_LENGTH, _DYN_NAME, _DYN_SPLIT, _DYN_TO_LOWER_CASE, _DYN_USER_AGENT } from \"../__DynamicConstants\";\r\nimport { isString, isUndefined, strContains } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n/**\r\n * This file exists to hold environment utilities that are required to check and\r\n * validate the current operating environment. Unless otherwise required, please\r\n * only use defined methods (functions) in this class so that users of these\r\n * functions/properties only need to include those that are used within their own modules.\r\n */\r\nvar strWindow = \"window\";\r\nvar strDocument = \"document\";\r\nvar strDocumentMode = \"documentMode\";\r\nvar strNavigator = \"navigator\";\r\nvar strHistory = \"history\";\r\nvar strLocation = \"location\";\r\nvar strConsole = \"console\";\r\nvar strPerformance = \"performance\";\r\nvar strJSON = \"JSON\";\r\nvar strCrypto = \"crypto\";\r\nvar strMsCrypto = \"msCrypto\";\r\nvar strReactNative = \"ReactNative\";\r\nvar strMsie = \"msie\";\r\nvar strTrident = \"trident/\";\r\nvar strXMLHttpRequest = \"XMLHttpRequest\";\r\nvar _isTrident = null;\r\nvar _navUserAgentCheck = null;\r\nvar _enableMocks = false;\r\nvar _useXDomainRequest = null;\r\nvar _beaconsSupported = null;\r\nfunction _hasProperty(theClass, property) {\r\n var supported = false;\r\n if (theClass) {\r\n try {\r\n supported = property in theClass;\r\n if (!supported) {\r\n var proto = theClass[strShimPrototype];\r\n if (proto) {\r\n supported = property in proto;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n if (!supported) {\r\n try {\r\n var tmp = new theClass();\r\n supported = !isUndefined(tmp[property]);\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n }\r\n }\r\n return supported;\r\n}\r\n/**\r\n * Enable the lookup of test mock objects if requested\r\n * @param enabled\r\n */\r\nexport function setEnableEnvMocks(enabled) {\r\n _enableMocks = enabled;\r\n}\r\n/**\r\n * Return the named global object if available, will return null if the object is not available.\r\n * @param name The globally named object\r\n */\r\nexport function getGlobalInst(name) {\r\n var gbl = getGlobal();\r\n if (gbl && gbl[name]) {\r\n return gbl[name];\r\n }\r\n // Test workaround, for environments where .window (when global == window) doesn't return the base window\r\n if (name === strWindow && hasWindow()) {\r\n // tslint:disable-next-line: no-angle-bracket-type-assertion\r\n return window;\r\n }\r\n return null;\r\n}\r\n/**\r\n * Checks if window object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a window\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: window is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasWindow() {\r\n return Boolean(typeof window === strShimObject && window);\r\n}\r\n/**\r\n * Returns the global window object if it is present otherwise null.\r\n * This helper is used to access the window object without causing an exception\r\n * \"Uncaught ReferenceError: window is not defined\"\r\n */\r\nexport function getWindow() {\r\n if (hasWindow()) {\r\n return window;\r\n }\r\n // Return the global instance or null\r\n return getGlobalInst(strWindow);\r\n}\r\n/**\r\n * Checks if document object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a document\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: document is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasDocument() {\r\n return Boolean(typeof document === strShimObject && document);\r\n}\r\n/**\r\n * Returns the global document object if it is present otherwise null.\r\n * This helper is used to access the document object without causing an exception\r\n * \"Uncaught ReferenceError: document is not defined\"\r\n */\r\nexport function getDocument() {\r\n if (hasDocument()) {\r\n return document;\r\n }\r\n return getGlobalInst(strDocument);\r\n}\r\n/**\r\n * Checks if navigator object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a navigator\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: navigator is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasNavigator() {\r\n return Boolean(typeof navigator === strShimObject && navigator);\r\n}\r\n/**\r\n * Returns the global navigator object if it is present otherwise null.\r\n * This helper is used to access the navigator object without causing an exception\r\n * \"Uncaught ReferenceError: navigator is not defined\"\r\n */\r\nexport function getNavigator() {\r\n if (hasNavigator()) {\r\n return navigator;\r\n }\r\n return getGlobalInst(strNavigator);\r\n}\r\n/**\r\n * Checks if history object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a history\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: history is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasHistory() {\r\n return Boolean(typeof history === strShimObject && history);\r\n}\r\n/**\r\n * Returns the global history object if it is present otherwise null.\r\n * This helper is used to access the history object without causing an exception\r\n * \"Uncaught ReferenceError: history is not defined\"\r\n */\r\nexport function getHistory() {\r\n if (hasHistory()) {\r\n return history;\r\n }\r\n return getGlobalInst(strHistory);\r\n}\r\n/**\r\n * Returns the global location object if it is present otherwise null.\r\n * This helper is used to access the location object without causing an exception\r\n * \"Uncaught ReferenceError: location is not defined\"\r\n */\r\nexport function getLocation(checkForMock) {\r\n if (checkForMock && _enableMocks) {\r\n var mockLocation = getGlobalInst(\"__mockLocation\");\r\n if (mockLocation) {\r\n return mockLocation;\r\n }\r\n }\r\n if (typeof location === strShimObject && location) {\r\n return location;\r\n }\r\n return getGlobalInst(strLocation);\r\n}\r\n/**\r\n * Returns the global console object\r\n */\r\nexport function getConsole() {\r\n if (typeof console !== strShimUndefined) {\r\n return console;\r\n }\r\n return getGlobalInst(strConsole);\r\n}\r\n/**\r\n * Returns the performance object if it is present otherwise null.\r\n * This helper is used to access the performance object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getPerformance() {\r\n return getGlobalInst(strPerformance);\r\n}\r\n/**\r\n * Checks if JSON object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a history\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: JSON is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasJSON() {\r\n return Boolean((typeof JSON === strShimObject && JSON) || getGlobalInst(strJSON) !== null);\r\n}\r\n/**\r\n * Returns the global JSON object if it is present otherwise null.\r\n * This helper is used to access the JSON object without causing an exception\r\n * \"Uncaught ReferenceError: JSON is not defined\"\r\n */\r\nexport function getJSON() {\r\n if (hasJSON()) {\r\n return JSON || getGlobalInst(strJSON);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getCrypto() {\r\n return getGlobalInst(strCrypto);\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getMsCrypto() {\r\n return getGlobalInst(strMsCrypto);\r\n}\r\n/**\r\n * Returns whether the environment is reporting that we are running in a React Native Environment\r\n */\r\nexport function isReactNative() {\r\n // If running in React Native, navigator.product will be populated\r\n var nav = getNavigator();\r\n if (nav && nav.product) {\r\n return nav.product === strReactNative;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Identifies whether the current environment appears to be IE\r\n */\r\nexport function isIE() {\r\n var nav = getNavigator();\r\n if (nav && (nav[_DYN_USER_AGENT /* @min:%2euserAgent */] !== _navUserAgentCheck || _isTrident === null)) {\r\n // Added to support test mocking of the user agent\r\n _navUserAgentCheck = nav[_DYN_USER_AGENT /* @min:%2euserAgent */];\r\n var userAgent = (_navUserAgentCheck || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n _isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));\r\n }\r\n return _isTrident;\r\n}\r\n/**\r\n * Gets IE version returning the document emulation mode if we are running on IE, or null otherwise\r\n */\r\nexport function getIEVersion(userAgentStr) {\r\n if (userAgentStr === void 0) { userAgentStr = null; }\r\n if (!userAgentStr) {\r\n var navigator_1 = getNavigator() || {};\r\n userAgentStr = navigator_1 ? (navigator_1[_DYN_USER_AGENT /* @min:%2euserAgent */] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() : STR_EMPTY;\r\n }\r\n var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n // Also check for documentMode in case X-UA-Compatible meta tag was included in HTML.\r\n if (strContains(ua, strMsie)) {\r\n var doc = getDocument() || {};\r\n return Math.max(parseInt(ua[_DYN_SPLIT /* @min:%2esplit */](strMsie)[1]), (doc[strDocumentMode] || 0));\r\n }\r\n else if (strContains(ua, strTrident)) {\r\n var tridentVer = parseInt(ua[_DYN_SPLIT /* @min:%2esplit */](strTrident)[1]);\r\n if (tridentVer) {\r\n return tridentVer + 4;\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Returns string representation of an object suitable for diagnostics logging.\r\n */\r\nexport function dumpObj(object) {\r\n var objectTypeDump = Object[strShimPrototype].toString[_DYN_CALL /* @min:%2ecall */](object);\r\n var propertyValueDump = STR_EMPTY;\r\n if (objectTypeDump === \"[object Error]\") {\r\n propertyValueDump = \"{ stack: '\" + object.stack + \"', message: '\" + object.message + \"', name: '\" + object[_DYN_NAME /* @min:%2ename */] + \"'\";\r\n }\r\n else if (hasJSON()) {\r\n propertyValueDump = getJSON().stringify(object);\r\n }\r\n return objectTypeDump + propertyValueDump;\r\n}\r\nexport function isSafari(userAgentStr) {\r\n if (!userAgentStr || !isString(userAgentStr)) {\r\n var navigator_2 = getNavigator() || {};\r\n userAgentStr = navigator_2 ? (navigator_2[_DYN_USER_AGENT /* @min:%2euserAgent */] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() : STR_EMPTY;\r\n }\r\n var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n return (ua[_DYN_INDEX_OF /* @min:%2eindexOf */](\"safari\") >= 0);\r\n}\r\n/**\r\n * Checks if HTML5 Beacons are supported in the current environment.\r\n * @returns True if supported, false otherwise.\r\n */\r\nexport function isBeaconsSupported() {\r\n if (_beaconsSupported === null) {\r\n _beaconsSupported = hasNavigator() && Boolean(getNavigator().sendBeacon);\r\n }\r\n return _beaconsSupported;\r\n}\r\n/**\r\n * Checks if the Fetch API is supported in the current environment.\r\n * @param withKeepAlive - [Optional] If True, check if fetch is available and it supports the keepalive feature, otherwise only check if fetch is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isFetchSupported(withKeepAlive) {\r\n var isSupported = false;\r\n try {\r\n isSupported = !!getGlobalInst(\"fetch\");\r\n var request = getGlobalInst(\"Request\");\r\n if (isSupported && withKeepAlive && request) {\r\n isSupported = _hasProperty(request, \"keepalive\");\r\n }\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\nexport function useXDomainRequest() {\r\n if (_useXDomainRequest === null) {\r\n _useXDomainRequest = (typeof XDomainRequest !== strShimUndefined);\r\n if (_useXDomainRequest && isXhrSupported()) {\r\n _useXDomainRequest = _useXDomainRequest && !_hasProperty(getGlobalInst(strXMLHttpRequest), \"withCredentials\");\r\n }\r\n }\r\n return _useXDomainRequest;\r\n}\r\n/**\r\n * Checks if XMLHttpRequest is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isXhrSupported() {\r\n var isSupported = false;\r\n try {\r\n var xmlHttpRequest = getGlobalInst(strXMLHttpRequest);\r\n isSupported = !!xmlHttpRequest;\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\nfunction _getNamedValue(values, name) {\r\n if (values) {\r\n for (var i = 0; i < values[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var value = values[i];\r\n if (value[_DYN_NAME /* @min:%2ename */]) {\r\n if (value[_DYN_NAME /* @min:%2ename */] === name) {\r\n return value;\r\n }\r\n }\r\n }\r\n }\r\n return {};\r\n}\r\n/**\r\n * Helper function to fetch the named meta-tag from the page.\r\n * @param name\r\n */\r\nexport function findMetaTag(name) {\r\n var doc = getDocument();\r\n if (doc && name) {\r\n // Look for a meta-tag\r\n return _getNamedValue(doc.querySelectorAll(\"meta\"), name).content;\r\n }\r\n return null;\r\n}\r\n/**\r\n * Helper function to fetch the named server timing value from the page response (first navigation event).\r\n * @param name\r\n */\r\nexport function findNamedServerTiming(name) {\r\n var value;\r\n var perf = getPerformance();\r\n if (perf) {\r\n // Try looking for a server-timing header\r\n var navPerf = perf.getEntriesByType(\"navigation\") || [];\r\n value = _getNamedValue((navPerf[_DYN_LENGTH /* @min:%2elength */] > 0 ? navPerf[0] : {}).serverTiming, name).description;\r\n }\r\n return value;\r\n}\r\n//# sourceMappingURL=EnvUtils.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { RequestOptionsBase, TransferProgressEvent } from \"./webResource\";\nimport { AbortSignalLike } from \"@azure/abort-controller\";\nimport { HttpOperationResponse } from \"./httpOperationResponse\";\nimport { OperationTracingOptions } from \"@azure/core-tracing\";\n\n/**\n * The base options type for all operations.\n */\nexport interface OperationOptions {\n /**\n * The signal which can be used to abort requests.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Options used when creating and sending HTTP requests for this operation.\n */\n requestOptions?: OperationRequestOptions;\n /**\n * Options used when tracing is enabled.\n */\n tracingOptions?: OperationTracingOptions;\n}\n\n/**\n * Options that allow configuring the handling of HTTP requests made by an SDK operation.\n */\nexport interface OperationRequestOptions {\n /**\n * User defined custom request headers that will be applied before the request is sent.\n */\n customHeaders?: { [key: string]: string };\n\n /**\n * The number of milliseconds a request can take before automatically being terminated.\n */\n timeout?: number;\n\n /**\n * Callback which fires upon upload progress.\n */\n onUploadProgress?: (progress: TransferProgressEvent) => void;\n\n /**\n * Callback which fires upon download progress.\n */\n onDownloadProgress?: (progress: TransferProgressEvent) => void;\n /**\n * Whether or not the HttpOperationResponse should be deserialized. If this is undefined, then the\n * HttpOperationResponse should be deserialized.\n */\n shouldDeserialize?: boolean | ((response: HttpOperationResponse) => boolean);\n}\n\n/**\n * Converts an OperationOptions to a RequestOptionsBase\n *\n * @param opts - OperationOptions object to convert to RequestOptionsBase\n */\nexport function operationOptionsToRequestOptionsBase(\n opts: T\n): RequestOptionsBase {\n const { requestOptions, tracingOptions, ...additionalOptions } = opts;\n\n let result: RequestOptionsBase = additionalOptions;\n\n if (requestOptions) {\n result = { ...result, ...requestOptions };\n }\n\n if (tracingOptions) {\n result.tracingContext = tracingOptions.tracingContext;\n // By passing spanOptions if they exist at runtime, we're backwards compatible with @azure/core-tracing@preview.13 and earlier.\n result.spanOptions = (tracingOptions as any)?.spanOptions;\n }\n\n return result;\n}\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar _a;\r\nimport { _throwInternal, getJSON, hasJSON, isObject, objForEachKey, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_SANITIZE_EXCEPTION, _DYN_SANITIZE_KEY_AND_ADD2, _DYN_SANITIZE_MEASUREMENT3, _DYN_SANITIZE_PROPERTIES, _DYN_STRINGIFY, _DYN_SUBSTRING, _DYN_TO_STRING } from \"../../__DynamicConstants\";\r\nexport function dataSanitizeKeyAndAddUniqueness(logger, key, map) {\r\n var origLength = key[_DYN_LENGTH /* @min:%2elength */];\r\n var field = dataSanitizeKey(logger, key);\r\n // validation truncated the length. We need to add uniqueness\r\n if (field[_DYN_LENGTH /* @min:%2elength */] !== origLength) {\r\n var i = 0;\r\n var uniqueField = field;\r\n while (map[uniqueField] !== undefined) {\r\n i++;\r\n uniqueField = field[_DYN_SUBSTRING /* @min:%2esubstring */](0, 150 /* DataSanitizerValues.MAX_NAME_LENGTH */ - 3) + dsPadNumber(i);\r\n }\r\n field = uniqueField;\r\n }\r\n return field;\r\n}\r\nexport function dataSanitizeKey(logger, name) {\r\n var nameTrunc;\r\n if (name) {\r\n // Remove any leading or trailing whitespace\r\n name = strTrim(name[_DYN_TO_STRING /* @min:%2etoString */]());\r\n // truncate the string to 150 chars\r\n if (name[_DYN_LENGTH /* @min:%2elength */] > 150 /* DataSanitizerValues.MAX_NAME_LENGTH */) {\r\n nameTrunc = name[_DYN_SUBSTRING /* @min:%2esubstring */](0, 150 /* DataSanitizerValues.MAX_NAME_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 57 /* _eInternalMessageId.NameTooLong */, \"name is too long. It has been truncated to \" + 150 /* DataSanitizerValues.MAX_NAME_LENGTH */ + \" characters.\", { name: name }, true);\r\n }\r\n }\r\n return nameTrunc || name;\r\n}\r\nexport function dataSanitizeString(logger, value, maxLength) {\r\n if (maxLength === void 0) { maxLength = 1024 /* DataSanitizerValues.MAX_STRING_LENGTH */; }\r\n var valueTrunc;\r\n if (value) {\r\n maxLength = maxLength ? maxLength : 1024 /* DataSanitizerValues.MAX_STRING_LENGTH */; // in case default parameters dont work\r\n value = strTrim(value);\r\n if (value.toString()[_DYN_LENGTH /* @min:%2elength */] > maxLength) {\r\n valueTrunc = value[_DYN_TO_STRING /* @min:%2etoString */]()[_DYN_SUBSTRING /* @min:%2esubstring */](0, maxLength);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 61 /* _eInternalMessageId.StringValueTooLong */, \"string value is too long. It has been truncated to \" + maxLength + \" characters.\", { value: value }, true);\r\n }\r\n }\r\n return valueTrunc || value;\r\n}\r\nexport function dataSanitizeUrl(logger, url) {\r\n return dataSanitizeInput(logger, url, 2048 /* DataSanitizerValues.MAX_URL_LENGTH */, 66 /* _eInternalMessageId.UrlTooLong */);\r\n}\r\nexport function dataSanitizeMessage(logger, message) {\r\n var messageTrunc;\r\n if (message) {\r\n if (message[_DYN_LENGTH /* @min:%2elength */] > 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */) {\r\n messageTrunc = message[_DYN_SUBSTRING /* @min:%2esubstring */](0, 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 56 /* _eInternalMessageId.MessageTruncated */, \"message is too long, it has been truncated to \" + 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */ + \" characters.\", { message: message }, true);\r\n }\r\n }\r\n return messageTrunc || message;\r\n}\r\nexport function dataSanitizeException(logger, exception) {\r\n var exceptionTrunc;\r\n if (exception) {\r\n // Make surte its a string\r\n var value = \"\" + exception;\r\n if (value[_DYN_LENGTH /* @min:%2elength */] > 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */) {\r\n exceptionTrunc = value[_DYN_SUBSTRING /* @min:%2esubstring */](0, 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 52 /* _eInternalMessageId.ExceptionTruncated */, \"exception is too long, it has been truncated to \" + 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */ + \" characters.\", { exception: exception }, true);\r\n }\r\n }\r\n return exceptionTrunc || exception;\r\n}\r\nexport function dataSanitizeProperties(logger, properties) {\r\n if (properties) {\r\n var tempProps_1 = {};\r\n objForEachKey(properties, function (prop, value) {\r\n if (isObject(value) && hasJSON()) {\r\n // Stringify any part C properties\r\n try {\r\n value = getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 49 /* _eInternalMessageId.CannotSerializeObjectNonSerializable */, \"custom property is not valid\", { exception: e }, true);\r\n }\r\n }\r\n value = dataSanitizeString(logger, value, 8192 /* DataSanitizerValues.MAX_PROPERTY_LENGTH */);\r\n prop = dataSanitizeKeyAndAddUniqueness(logger, prop, tempProps_1);\r\n tempProps_1[prop] = value;\r\n });\r\n properties = tempProps_1;\r\n }\r\n return properties;\r\n}\r\nexport function dataSanitizeMeasurements(logger, measurements) {\r\n if (measurements) {\r\n var tempMeasurements_1 = {};\r\n objForEachKey(measurements, function (measure, value) {\r\n measure = dataSanitizeKeyAndAddUniqueness(logger, measure, tempMeasurements_1);\r\n tempMeasurements_1[measure] = value;\r\n });\r\n measurements = tempMeasurements_1;\r\n }\r\n return measurements;\r\n}\r\nexport function dataSanitizeId(logger, id) {\r\n return id ? dataSanitizeInput(logger, id, 128 /* DataSanitizerValues.MAX_ID_LENGTH */, 69 /* _eInternalMessageId.IdTooLong */)[_DYN_TO_STRING /* @min:%2etoString */]() : id;\r\n}\r\nexport function dataSanitizeInput(logger, input, maxLength, _msgId) {\r\n var inputTrunc;\r\n if (input) {\r\n input = strTrim(input);\r\n if (input[_DYN_LENGTH /* @min:%2elength */] > maxLength) {\r\n inputTrunc = input[_DYN_SUBSTRING /* @min:%2esubstring */](0, maxLength);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, _msgId, \"input is too long, it has been truncated to \" + maxLength + \" characters.\", { data: input }, true);\r\n }\r\n }\r\n return inputTrunc || input;\r\n}\r\nexport function dsPadNumber(num) {\r\n var s = \"00\" + num;\r\n return s.substr(s[_DYN_LENGTH /* @min:%2elength */] - 3);\r\n}\r\n/**\r\n * Provides the DataSanitizer functions within the previous namespace.\r\n */\r\nexport var DataSanitizer = (_a = {\r\n MAX_NAME_LENGTH: 150 /* DataSanitizerValues.MAX_NAME_LENGTH */,\r\n MAX_ID_LENGTH: 128 /* DataSanitizerValues.MAX_ID_LENGTH */,\r\n MAX_PROPERTY_LENGTH: 8192 /* DataSanitizerValues.MAX_PROPERTY_LENGTH */,\r\n MAX_STRING_LENGTH: 1024 /* DataSanitizerValues.MAX_STRING_LENGTH */,\r\n MAX_URL_LENGTH: 2048 /* DataSanitizerValues.MAX_URL_LENGTH */,\r\n MAX_MESSAGE_LENGTH: 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */,\r\n MAX_EXCEPTION_LENGTH: 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */\r\n },\r\n _a[_DYN_SANITIZE_KEY_AND_ADD2 /* @min:sanitizeKeyAndAddUniqueness */] = dataSanitizeKeyAndAddUniqueness,\r\n _a.sanitizeKey = dataSanitizeKey,\r\n _a.sanitizeString = dataSanitizeString,\r\n _a.sanitizeUrl = dataSanitizeUrl,\r\n _a.sanitizeMessage = dataSanitizeMessage,\r\n _a[_DYN_SANITIZE_EXCEPTION /* @min:sanitizeException */] = dataSanitizeException,\r\n _a[_DYN_SANITIZE_PROPERTIES /* @min:sanitizeProperties */] = dataSanitizeProperties,\r\n _a[_DYN_SANITIZE_MEASUREMENT3 /* @min:sanitizeMeasurements */] = dataSanitizeMeasurements,\r\n _a.sanitizeId = dataSanitizeId,\r\n _a.sanitizeInput = dataSanitizeInput,\r\n _a.padNumber = dsPadNumber,\r\n _a.trim = strTrim,\r\n _a);\r\n//# sourceMappingURL=DataSanitizer.js.map","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { Constants } from \"../utils/Constants\";\n\n/**\n * AuthErrorMessage class containing string constants used by error codes and messages.\n */\nexport const AuthErrorMessage = {\n unexpectedError: {\n code: \"unexpected_error\",\n desc: \"Unexpected error in authentication.\"\n },\n postRequestFailed: {\n code: \"post_request_failed\",\n desc: \"Post request failed from the network, could be a 4xx/5xx or a network unavailability. Please check the exact error code for details.\"\n }\n};\n\n/**\n * General error class thrown by the MSAL.js library.\n */\nexport class AuthError extends Error {\n\n /**\n * Short string denoting error\n */\n errorCode: string;\n\n /**\n * Detailed description of error\n */\n errorMessage: string;\n\n /**\n * Describes the subclass of an error\n */\n subError: string;\n\n /**\n * CorrelationId associated with the error\n */\n correlationId: string;\n\n constructor(errorCode?: string, errorMessage?: string, suberror?: string) {\n const errorString = errorMessage ? `${errorCode}: ${errorMessage}` : errorCode;\n super(errorString);\n Object.setPrototypeOf(this, AuthError.prototype);\n\n this.errorCode = errorCode || Constants.EMPTY_STRING;\n this.errorMessage = errorMessage || Constants.EMPTY_STRING;\n this.subError = suberror || Constants.EMPTY_STRING;\n this.name = \"AuthError\";\n }\n\n setCorrelationId(correlationId: string): void {\n this.correlationId = correlationId;\n }\n\n /**\n * Creates an error that is thrown when something unexpected happens in the library.\n * @param errDesc\n */\n static createUnexpectedError(errDesc: string): AuthError {\n return new AuthError(AuthErrorMessage.unexpectedError.code, `${AuthErrorMessage.unexpectedError.desc}: ${errDesc}`);\n }\n\n /**\n * Creates an error for post request failures.\n * @param errDesc \n * @returns \n */\n static createPostRequestFailed(errDesc: string): AuthError {\n return new AuthError(AuthErrorMessage.postRequestFailed.code, `${AuthErrorMessage.postRequestFailed.desc}: ${errDesc}`);\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Constructor = 'constructor';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Prototype = 'prototype';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strFunction = 'function';\r\n/**\r\n * Used to define the name of the instance function lookup table\r\n * @ignore\r\n */\r\nvar DynInstFuncTable = '_dynInstFuncs';\r\n/**\r\n * Name used to tag the dynamic prototype function\r\n * @ignore\r\n */\r\nvar DynProxyTag = '_isDynProxy';\r\n/**\r\n * Name added to a prototype to define the dynamic prototype \"class\" name used to lookup the function table\r\n * @ignore\r\n */\r\nvar DynClassName = '_dynClass';\r\n/**\r\n * Prefix added to the classname to avoid any name clashes with other instance level properties\r\n * @ignore\r\n */\r\nvar DynClassNamePrefix = '_dynCls$';\r\n/**\r\n * A tag which is used to check if we have already to attempted to set the instance function if one is not present\r\n * @ignore\r\n */\r\nvar DynInstChkTag = '_dynInstChk';\r\n/**\r\n * A tag which is used to check if we are allows to try and set an instance function is one is not present. Using the same\r\n * tag name as the function level but a different const name for readability only.\r\n */\r\nvar DynAllowInstChkTag = DynInstChkTag;\r\n/**\r\n * The global (imported) instances where the global performance options are stored\r\n */\r\nvar DynProtoDefaultOptions = '_dfOpts';\r\n/**\r\n * Value used as the name of a class when it cannot be determined\r\n * @ignore\r\n */\r\nvar UnknownValue = '_unknown_';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar str__Proto = \"__proto__\";\r\n/**\r\n * The polyfill version of __proto__ so that it doesn't cause issues for anyone not expecting it to exist\r\n */\r\nvar DynProtoBaseProto = \"_dyn\" + str__Proto;\r\n/**\r\n * Track the current prototype for IE8 as you can't look back to get the prototype\r\n */\r\nvar DynProtoCurrent = \"_dynInstProto\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strUseBaseInst = 'useBaseInst';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strSetInstFuncs = 'setInstFuncs';\r\nvar Obj = Object;\r\n/**\r\n * Pre-lookup to check if we are running on a modern browser (i.e. not IE8)\r\n * @ignore\r\n */\r\nvar _objGetPrototypeOf = Obj[\"getPrototypeOf\"];\r\n/**\r\n * Pre-lookup to check for the existence of this function\r\n */\r\nvar _objGetOwnProps = Obj[\"getOwnPropertyNames\"];\r\n/**\r\n * Internal Global used to generate a unique dynamic class name, every new class will increase this value\r\n * @ignore\r\n */\r\nvar _dynamicNames = 0;\r\n/**\r\n * Helper to check if the object contains a property of the name\r\n * @ignore\r\n */\r\nfunction _hasOwnProperty(obj, prop) {\r\n return obj && Obj[Prototype].hasOwnProperty.call(obj, prop);\r\n}\r\n/**\r\n * Helper used to check whether the target is an Object prototype or Array prototype\r\n * @ignore\r\n */\r\nfunction _isObjectOrArrayPrototype(target) {\r\n return target && (target === Obj[Prototype] || target === Array[Prototype]);\r\n}\r\n/**\r\n * Helper used to check whether the target is an Object prototype, Array prototype or Function prototype\r\n * @ignore\r\n */\r\nfunction _isObjectArrayOrFunctionPrototype(target) {\r\n return _isObjectOrArrayPrototype(target) || target === Function[Prototype];\r\n}\r\n/**\r\n * Helper used to get the prototype of the target object as getPrototypeOf is not available in an ES3 environment.\r\n * @ignore\r\n */\r\nfunction _getObjProto(target) {\r\n var newProto;\r\n if (target) {\r\n // This method doesn't exist in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n return _objGetPrototypeOf(target);\r\n }\r\n var curProto = target[str__Proto] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);\r\n // Using the pre-calculated value as IE8 doesn't support looking up the prototype of a prototype and thus fails for more than 1 base class\r\n newProto = target[DynProtoBaseProto] || curProto;\r\n if (!_hasOwnProperty(target, DynProtoBaseProto)) {\r\n // As this prototype doesn't have this property then this is from an inherited class so newProto is the base to return so save it\r\n // so we can look it up value (which for a multiple hierarchy dynamicProto will be the base class)\r\n delete target[DynProtoCurrent]; // Delete any current value allocated to this instance so we pick up the value from prototype hierarchy\r\n newProto = target[DynProtoBaseProto] = target[DynProtoCurrent] || target[DynProtoBaseProto];\r\n target[DynProtoCurrent] = curProto;\r\n }\r\n }\r\n return newProto;\r\n}\r\n/**\r\n * Helper to get the properties of an object, including none enumerable ones as functions on a prototype in ES6\r\n * are not enumerable.\r\n * @param target\r\n */\r\nfunction _forEachProp(target, func) {\r\n var props = [];\r\n if (_objGetOwnProps) {\r\n props = _objGetOwnProps(target);\r\n }\r\n else {\r\n for (var name_1 in target) {\r\n if (typeof name_1 === \"string\" && _hasOwnProperty(target, name_1)) {\r\n props.push(name_1);\r\n }\r\n }\r\n }\r\n if (props && props.length > 0) {\r\n for (var lp = 0; lp < props.length; lp++) {\r\n func(props[lp]);\r\n }\r\n }\r\n}\r\n/**\r\n * Helper function to check whether the provided function name is a potential candidate for dynamic\r\n * callback and prototype generation.\r\n * @param target The target object, may be a prototype or class object\r\n * @param funcName The function name\r\n * @param skipOwn Skips the check for own property\r\n * @ignore\r\n */\r\nfunction _isDynamicCandidate(target, funcName, skipOwn) {\r\n return (funcName !== Constructor && typeof target[funcName] === strFunction && (skipOwn || _hasOwnProperty(target, funcName)));\r\n}\r\n/**\r\n * Helper to throw a TypeError exception\r\n * @param message the message\r\n * @ignore\r\n */\r\nfunction _throwTypeError(message) {\r\n throw new TypeError(\"DynamicProto: \" + message);\r\n}\r\n/**\r\n * Returns a collection of the instance functions that are defined directly on the thisTarget object, it does\r\n * not return any inherited functions\r\n * @param thisTarget The object to get the instance functions from\r\n * @ignore\r\n */\r\nfunction _getInstanceFuncs(thisTarget) {\r\n // Get the base proto\r\n var instFuncs = {};\r\n // Save any existing instance functions\r\n _forEachProp(thisTarget, function (name) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n if (!instFuncs[name] && _isDynamicCandidate(thisTarget, name, false)) {\r\n // Create an instance callback for passing the base function to the caller\r\n instFuncs[name] = thisTarget[name];\r\n }\r\n });\r\n return instFuncs;\r\n}\r\n/**\r\n * Returns whether the value is included in the array\r\n * @param values The array of values\r\n * @param value The value\r\n */\r\nfunction _hasVisited(values, value) {\r\n for (var lp = values.length - 1; lp >= 0; lp--) {\r\n if (values[lp] === value) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n/**\r\n * Returns an object that contains callback functions for all \"base/super\" functions, this is used to \"save\"\r\n * enabling calling super.xxx() functions without requiring that the base \"class\" has defined a prototype references\r\n * @param target The current instance\r\n * @ignore\r\n */\r\nfunction _getBaseFuncs(classProto, thisTarget, instFuncs, useBaseInst) {\r\n function _instFuncProxy(target, funcHost, funcName) {\r\n var theFunc = funcHost[funcName];\r\n if (theFunc[DynProxyTag] && useBaseInst) {\r\n // grab and reuse the hosted looking function (if available) otherwise the original passed function\r\n var instFuncTable = target[DynInstFuncTable] || {};\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n theFunc = (instFuncTable[funcHost[DynClassName]] || {})[funcName] || theFunc;\r\n }\r\n }\r\n return function () {\r\n // eslint-disable-next-line prefer-rest-params\r\n return theFunc.apply(target, arguments);\r\n };\r\n }\r\n // Start creating a new baseFuncs by creating proxies for the instance functions (as they may get replaced)\r\n var baseFuncs = {};\r\n _forEachProp(instFuncs, function (name) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, instFuncs, name);\r\n });\r\n // Get the base prototype functions\r\n var baseProto = _getObjProto(classProto);\r\n var visited = [];\r\n // Don't include base object functions for Object, Array or Function\r\n while (baseProto && !_isObjectArrayOrFunctionPrototype(baseProto) && !_hasVisited(visited, baseProto)) {\r\n // look for prototype functions\r\n _forEachProp(baseProto, function (name) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n // For IE 7/8 the prototype lookup doesn't provide the full chain so we need to bypass the \r\n // hasOwnProperty check we get all of the methods, main difference is that IE7/8 doesn't return\r\n // the Object prototype methods while bypassing the check\r\n if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf)) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, baseProto, name);\r\n }\r\n });\r\n // We need to find all possible functions that might be overloaded by walking the entire prototype chain\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(baseProto);\r\n baseProto = _getObjProto(baseProto);\r\n }\r\n return baseFuncs;\r\n}\r\nfunction _getInstFunc(target, funcName, proto, currentDynProtoProxy) {\r\n var instFunc = null;\r\n // We need to check whether the class name is defined directly on this prototype otherwise\r\n // it will walk the proto chain and return any parent proto classname.\r\n if (target && _hasOwnProperty(proto, DynClassName)) {\r\n var instFuncTable = target[DynInstFuncTable] || {};\r\n instFunc = (instFuncTable[proto[DynClassName]] || {})[funcName];\r\n if (!instFunc) {\r\n // Avoid stack overflow from recursive calling the same function\r\n _throwTypeError(\"Missing [\" + funcName + \"] \" + strFunction);\r\n }\r\n // We have the instance function, lets check it we can speed up further calls\r\n // by adding the instance function back directly on the instance (avoiding the dynamic func lookup)\r\n if (!instFunc[DynInstChkTag] && instFuncTable[DynAllowInstChkTag] !== false) {\r\n // If the instance already has an instance function we can't replace it\r\n var canAddInst = !_hasOwnProperty(target, funcName);\r\n // Get current prototype\r\n var objProto = _getObjProto(target);\r\n var visited = [];\r\n // Lookup the function starting at the top (instance level prototype) and traverse down, if the first matching function\r\n // if nothing is found or if the first hit is a dynamic proto instance then we can safely add an instance shortcut\r\n while (canAddInst && objProto && !_isObjectArrayOrFunctionPrototype(objProto) && !_hasVisited(visited, objProto)) {\r\n var protoFunc = objProto[funcName];\r\n if (protoFunc) {\r\n canAddInst = (protoFunc === currentDynProtoProxy);\r\n break;\r\n }\r\n // We need to find all possible initial functions to ensure that we don't bypass a valid override function\r\n visited.push(objProto);\r\n objProto = _getObjProto(objProto);\r\n }\r\n try {\r\n if (canAddInst) {\r\n // This instance doesn't have an instance func and the class hierarchy does have a higher level prototype version\r\n // so it's safe to directly assign for any subsequent calls (for better performance)\r\n target[funcName] = instFunc;\r\n }\r\n // Block further attempts to set the instance function for any\r\n instFunc[DynInstChkTag] = 1;\r\n }\r\n catch (e) {\r\n // Don't crash if the object is readonly or the runtime doesn't allow changing this\r\n // And set a flag so we don't try again for any function\r\n instFuncTable[DynAllowInstChkTag] = false;\r\n }\r\n }\r\n }\r\n return instFunc;\r\n}\r\nfunction _getProtoFunc(funcName, proto, currentDynProtoProxy) {\r\n var protoFunc = proto[funcName];\r\n // Check that the prototype function is not a self reference -- try to avoid stack overflow!\r\n if (protoFunc === currentDynProtoProxy) {\r\n // It is so lookup the base prototype\r\n protoFunc = _getObjProto(proto)[funcName];\r\n }\r\n if (typeof protoFunc !== strFunction) {\r\n _throwTypeError(\"[\" + funcName + \"] is not a \" + strFunction);\r\n }\r\n return protoFunc;\r\n}\r\n/**\r\n * Add the required dynamic prototype methods to the the class prototype\r\n * @param proto - The class prototype\r\n * @param className - The instance classname\r\n * @param target - The target instance\r\n * @param baseInstFuncs - The base instance functions\r\n * @param setInstanceFunc - Flag to allow prototype function to reset the instance function if one does not exist\r\n * @ignore\r\n */\r\nfunction _populatePrototype(proto, className, target, baseInstFuncs, setInstanceFunc) {\r\n function _createDynamicPrototype(proto, funcName) {\r\n var dynProtoProxy = function () {\r\n // Use the instance or prototype function\r\n var instFunc = _getInstFunc(this, funcName, proto, dynProtoProxy) || _getProtoFunc(funcName, proto, dynProtoProxy);\r\n // eslint-disable-next-line prefer-rest-params\r\n return instFunc.apply(this, arguments);\r\n };\r\n // Tag this function as a proxy to support replacing dynamic proxy elements (primary use case is for unit testing\r\n // via which can dynamically replace the prototype function reference)\r\n dynProtoProxy[DynProxyTag] = 1;\r\n return dynProtoProxy;\r\n }\r\n if (!_isObjectOrArrayPrototype(proto)) {\r\n var instFuncTable = target[DynInstFuncTable] = target[DynInstFuncTable] || {};\r\n var instFuncs_1 = instFuncTable[className] = (instFuncTable[className] || {}); // fetch and assign if as it may not exist yet\r\n // Set whether we are allow to lookup instances, if someone has set to false then do not re-enable\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n instFuncTable[DynAllowInstChkTag] = !!setInstanceFunc;\r\n }\r\n _forEachProp(target, function (name) {\r\n // Only add overridden functions\r\n if (_isDynamicCandidate(target, name, false) && target[name] !== baseInstFuncs[name]) {\r\n // Save the instance Function to the lookup table and remove it from the instance as it's not a dynamic proto function\r\n instFuncs_1[name] = target[name];\r\n delete target[name];\r\n // Add a dynamic proto if one doesn't exist or if a prototype function exists and it's not a dynamic one\r\n if (!_hasOwnProperty(proto, name) || (proto[name] && !proto[name][DynProxyTag])) {\r\n proto[name] = _createDynamicPrototype(proto, name);\r\n }\r\n }\r\n });\r\n }\r\n}\r\n/**\r\n * Checks whether the passed prototype object appears to be correct by walking the prototype hierarchy of the instance\r\n * @param classProto The class prototype instance\r\n * @param thisTarget The current instance that will be checked whether the passed prototype instance is in the hierarchy\r\n * @ignore\r\n */\r\nfunction _checkPrototype(classProto, thisTarget) {\r\n // This method doesn't existing in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n // As this is primarily a coding time check, don't bother checking if running in IE8 or lower\r\n var visited = [];\r\n var thisProto = _getObjProto(thisTarget);\r\n while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto) && !_hasVisited(visited, thisProto)) {\r\n if (thisProto === classProto) {\r\n return true;\r\n }\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(thisProto);\r\n thisProto = _getObjProto(thisProto);\r\n }\r\n return false;\r\n }\r\n // If objGetPrototypeOf doesn't exist then just assume everything is ok.\r\n return true;\r\n}\r\n/**\r\n * Gets the current prototype name using the ES6 name if available otherwise falling back to a use unknown as the name.\r\n * It's not critical for this to return a name, it's used to decorate the generated unique name for easier debugging only.\r\n * @param target\r\n * @param unknownValue\r\n * @ignore\r\n */\r\nfunction _getObjName(target, unknownValue) {\r\n if (_hasOwnProperty(target, Prototype)) {\r\n // Look like a prototype\r\n return target.name || unknownValue || UnknownValue;\r\n }\r\n return (((target || {})[Constructor]) || {}).name || unknownValue || UnknownValue;\r\n}\r\n/**\r\n * Helper function when creating dynamic (inline) functions for classes, this helper performs the following tasks :-\r\n * - Saves references to all defined base class functions\r\n * - Calls the delegateFunc with the current target (this) and a base object reference that can be used to call all \"super\" functions.\r\n * - Will populate the class prototype for all overridden functions to support class extension that call the prototype instance.\r\n * Callers should use this helper when declaring all function within the constructor of a class, as mentioned above the delegateFunc is\r\n * passed both the target \"this\" and an object that can be used to call any base (super) functions, using this based object in place of\r\n * super.XXX() (which gets expanded to _super.prototype.XXX()) provides a better minification outcome and also ensures the correct \"this\"\r\n * context is maintained as TypeScript creates incorrect references using super.XXXX() for dynamically defined functions i.e. Functions\r\n * defined in the constructor or some other function (rather than declared as complete typescript functions).\r\n * ### Usage\r\n * ```typescript\r\n * import dynamicProto from \"@microsoft/dynamicproto-js\";\r\n * class ExampleClass extends BaseClass {\r\n * constructor() {\r\n * dynamicProto(ExampleClass, this, (_self, base) => {\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.newFunc = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * ...\r\n * }\r\n * }\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.myFunction = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * // Call the base version of the function that we are overriding\r\n * base.myFunction();\r\n * }\r\n * ...\r\n * }\r\n * _self.initialize = () => {\r\n * ...\r\n * }\r\n * // Warnings: While the following will work as _self is simply a reference to\r\n * // this, if anyone overrides myFunction() the overridden will be called first\r\n * // as the normal JavaScript method resolution will occur and the defined\r\n * // _self.initialize() function is actually gets removed from the instance and\r\n * // a proxy prototype version is created to reference the created method.\r\n * _self.initialize();\r\n * });\r\n * }\r\n * }\r\n * ```\r\n * @typeparam DPType This is the generic type of the class, used to keep intellisense valid\r\n * @typeparam DPCls The type that contains the prototype of the current class\r\n * @param theClass - This is the current class instance which contains the prototype for the current class\r\n * @param target - The current \"this\" (target) reference, when the class has been extended this.prototype will not be the 'theClass' value.\r\n * @param delegateFunc - The callback function (closure) that will create the dynamic function\r\n * @param options - Additional options to configure how the dynamic prototype operates\r\n */\r\nexport default function dynamicProto(theClass, target, delegateFunc, options) {\r\n // Make sure that the passed theClass argument looks correct\r\n if (!_hasOwnProperty(theClass, Prototype)) {\r\n _throwTypeError(\"theClass is an invalid class definition.\");\r\n }\r\n // Quick check to make sure that the passed theClass argument looks correct (this is a common copy/paste error)\r\n var classProto = theClass[Prototype];\r\n if (!_checkPrototype(classProto, target)) {\r\n _throwTypeError(\"[\" + _getObjName(theClass) + \"] is not in class hierarchy of [\" + _getObjName(target) + \"]\");\r\n }\r\n var className = null;\r\n if (_hasOwnProperty(classProto, DynClassName)) {\r\n // Only grab the class name if it's defined on this prototype (i.e. don't walk the prototype chain)\r\n className = classProto[DynClassName];\r\n }\r\n else {\r\n // As not all browser support name on the prototype creating a unique dynamic one if we have not already\r\n // assigned one, so we can use a simple string as the lookup rather than an object for the dynamic instance\r\n // function table lookup.\r\n className = DynClassNamePrefix + _getObjName(theClass, \"_\") + \"$\" + _dynamicNames;\r\n _dynamicNames++;\r\n classProto[DynClassName] = className;\r\n }\r\n var perfOptions = dynamicProto[DynProtoDefaultOptions];\r\n var useBaseInst = !!perfOptions[strUseBaseInst];\r\n if (useBaseInst && options && options[strUseBaseInst] !== undefined) {\r\n useBaseInst = !!options[strUseBaseInst];\r\n }\r\n // Get the current instance functions\r\n var instFuncs = _getInstanceFuncs(target);\r\n // Get all of the functions for any base instance (before they are potentially overridden)\r\n var baseFuncs = _getBaseFuncs(classProto, target, instFuncs, useBaseInst);\r\n // Execute the delegate passing in both the current target \"this\" and \"base\" function references\r\n // Note casting the same type as we don't actually have the base class here and this will provide some intellisense support\r\n delegateFunc(target, baseFuncs);\r\n // Don't allow setting instance functions for older IE instances\r\n var setInstanceFunc = !!_objGetPrototypeOf && !!perfOptions[strSetInstFuncs];\r\n if (setInstanceFunc && options) {\r\n setInstanceFunc = !!options[strSetInstFuncs];\r\n }\r\n // Populate the Prototype for any overridden instance functions\r\n _populatePrototype(classProto, className, target, instFuncs, setInstanceFunc !== false);\r\n}\r\n/**\r\n * Exposes the default global options to allow global configuration, if the global values are disabled these will override\r\n * any passed values. This is primarily exposed to support unit-testing without the need for individual classes to expose\r\n * their internal usage of dynamic proto.\r\n */\r\nvar perfDefaults = {\r\n setInstFuncs: true,\r\n useBaseInst: true\r\n};\r\n// And expose for testing\r\ndynamicProto[DynProtoDefaultOptions] = perfDefaults;\r\n//# sourceMappingURL=DynamicProto.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { Constants } from \"./constants\";\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { RestError } from \"../restError\";\nimport { WebResourceLike } from \"../webResource\";\nimport { XML_ATTRKEY } from \"./serializer.common\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nconst validUuidRegex =\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/i;\n\n/**\n * A constant that indicates whether the environment is node.js or browser based.\n */\nexport const isNode =\n typeof process !== \"undefined\" &&\n !!process.version &&\n !!process.versions &&\n !!process.versions.node;\n\n/**\n * Checks if a parsed URL is HTTPS\n *\n * @param urlToCheck - The url to check\n * @returns True if the URL is HTTPS; false otherwise.\n */\nexport function urlIsHTTPS(urlToCheck: { protocol: string }): boolean {\n return urlToCheck.protocol.toLowerCase() === Constants.HTTPS;\n}\n\n/**\n * Encodes an URI.\n *\n * @param uri - The URI to be encoded.\n * @returns The encoded URI.\n */\nexport function encodeUri(uri: string): string {\n return encodeURIComponent(uri)\n .replace(/!/g, \"%21\")\n .replace(/\"/g, \"%27\")\n .replace(/\\(/g, \"%28\")\n .replace(/\\)/g, \"%29\")\n .replace(/\\*/g, \"%2A\");\n}\n\n/**\n * Returns a stripped version of the Http Response which only contains body,\n * headers and the status.\n *\n * @param response - The Http Response\n * @returns The stripped version of Http Response.\n */\nexport function stripResponse(response: HttpOperationResponse): any {\n const strippedResponse: any = {};\n strippedResponse.body = response.bodyAsText;\n strippedResponse.headers = response.headers;\n strippedResponse.status = response.status;\n return strippedResponse;\n}\n\n/**\n * Returns a stripped version of the Http Request that does not contain the\n * Authorization header.\n *\n * @param request - The Http Request object\n * @returns The stripped version of Http Request.\n */\nexport function stripRequest(request: WebResourceLike): WebResourceLike {\n const strippedRequest = request.clone();\n if (strippedRequest.headers) {\n strippedRequest.headers.remove(\"authorization\");\n }\n return strippedRequest;\n}\n\n/**\n * Validates the given uuid as a string\n *\n * @param uuid - The uuid as a string that needs to be validated\n * @returns True if the uuid is valid; false otherwise.\n */\nexport function isValidUuid(uuid: string): boolean {\n return validUuidRegex.test(uuid);\n}\n\n/**\n * Generated UUID\n *\n * @returns RFC4122 v4 UUID.\n */\nexport function generateUuid(): string {\n return uuidv4();\n}\n\n/**\n * Executes an array of promises sequentially. Inspiration of this method is here:\n * https://pouchdb.com/2015/05/18/we-have-a-problem-with-promises.html. An awesome blog on promises!\n *\n * @param promiseFactories - An array of promise factories(A function that return a promise)\n * @param kickstart - Input to the first promise that is used to kickstart the promise chain.\n * If not provided then the promise chain starts with undefined.\n * @returns A chain of resolved or rejected promises\n */\nexport function executePromisesSequentially(\n promiseFactories: Array,\n kickstart: unknown\n): Promise {\n let result = Promise.resolve(kickstart);\n promiseFactories.forEach((promiseFactory) => {\n result = result.then(promiseFactory);\n });\n return result;\n}\n\n/**\n * Service callback that is returned for REST requests initiated by the service client.\n */\nexport interface ServiceCallback {\n /**\n * A method that will be invoked as a callback to a service function.\n * @param err - The error occurred if any, while executing the request; otherwise null.\n * @param result - The deserialized response body if an error did not occur.\n * @param request - The raw/actual request sent to the server if an error did not occur.\n * @param response - The raw/actual response from the server if an error did not occur.\n */\n (\n err: Error | RestError | null,\n result?: TResult,\n request?: WebResourceLike,\n response?: HttpOperationResponse\n ): void;\n}\n\n/**\n * Converts a Promise to a callback.\n * @param promise - The Promise to be converted to a callback\n * @returns A function that takes the callback `(cb: Function) => void`\n * @deprecated generated code should instead depend on responseToBody\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function promiseToCallback(promise: Promise): (cb: Function) => void {\n if (typeof promise.then !== \"function\") {\n throw new Error(\"The provided input is not a Promise.\");\n }\n // eslint-disable-next-line @typescript-eslint/ban-types\n return (cb: Function): void => {\n promise\n .then((data: any) => {\n // eslint-disable-next-line promise/no-callback-in-promise\n return cb(undefined, data);\n })\n .catch((err: Error) => {\n // eslint-disable-next-line promise/no-callback-in-promise\n cb(err);\n });\n };\n}\n\n/**\n * Converts a Promise to a service callback.\n * @param promise - The Promise of HttpOperationResponse to be converted to a service callback\n * @returns A function that takes the service callback (cb: ServiceCallback): void\n */\nexport function promiseToServiceCallback(\n promise: Promise\n): (cb: ServiceCallback) => void {\n if (typeof promise.then !== \"function\") {\n throw new Error(\"The provided input is not a Promise.\");\n }\n return (cb: ServiceCallback): void => {\n promise\n .then((data: HttpOperationResponse) => {\n return process.nextTick(cb, undefined, data.parsedBody as T, data.request, data);\n })\n .catch((err: Error) => {\n process.nextTick(cb, err);\n });\n };\n}\n\nexport function prepareXMLRootList(\n obj: unknown,\n elementName: string,\n xmlNamespaceKey?: string,\n xmlNamespace?: string\n): { [s: string]: any } {\n if (!Array.isArray(obj)) {\n obj = [obj];\n }\n\n if (!xmlNamespaceKey || !xmlNamespace) {\n return { [elementName]: obj };\n }\n\n const result = { [elementName]: obj };\n result[XML_ATTRKEY] = { [xmlNamespaceKey]: xmlNamespace };\n return result;\n}\n\n/**\n * Applies the properties on the prototype of sourceCtors to the prototype of targetCtor\n * @param targetCtor - The target object on which the properties need to be applied.\n * @param sourceCtors - An array of source objects from which the properties need to be taken.\n */\nexport function applyMixins(targetCtorParam: unknown, sourceCtors: any[]): void {\n const castTargetCtorParam = targetCtorParam as {\n prototype: Record;\n };\n sourceCtors.forEach((sourceCtor) => {\n Object.getOwnPropertyNames(sourceCtor.prototype).forEach((name) => {\n castTargetCtorParam.prototype[name] = sourceCtor.prototype[name];\n });\n });\n}\n\nconst validateISODuration =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n/**\n * Indicates whether the given string is in ISO 8601 format.\n * @param value - The value to be validated for ISO 8601 duration format.\n * @returns `true` if valid, `false` otherwise.\n */\nexport function isDuration(value: string): boolean {\n return validateISODuration.test(value);\n}\n\n/**\n * Replace all of the instances of searchValue in value with the provided replaceValue.\n * @param value - The value to search and replace in.\n * @param searchValue - The value to search for in the value argument.\n * @param replaceValue - The value to replace searchValue with in the value argument.\n * @returns The value where each instance of searchValue was replaced with replacedValue.\n */\nexport function replaceAll(\n value: string | undefined,\n searchValue: string,\n replaceValue: string\n): string | undefined {\n return !value || !searchValue ? value : value.split(searchValue).join(replaceValue || \"\");\n}\n\n/**\n * Determines whether the given entity is a basic/primitive type\n * (string, number, boolean, null, undefined).\n * @param value - Any entity\n * @returns true is it is primitive type, false otherwise.\n */\nexport function isPrimitiveType(value: unknown): boolean {\n return (typeof value !== \"object\" && typeof value !== \"function\") || value === null;\n}\n\nexport function getEnvironmentValue(name: string): string | undefined {\n if (process.env[name]) {\n return process.env[name];\n } else if (process.env[name.toLowerCase()]) {\n return process.env[name.toLowerCase()];\n }\n return undefined;\n}\n\n/**\n * @internal\n */\nexport type UnknownObject = { [s: string]: unknown };\n\n/**\n * @internal\n * @returns true when input is an object type that is not null, Array, RegExp, or Date.\n */\nexport function isObject(input: unknown): input is UnknownObject {\n return (\n typeof input === \"object\" &&\n input !== null &&\n !Array.isArray(input) &&\n !(input instanceof RegExp) &&\n !(input instanceof Date)\n );\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * This is an internal property used to cause internal (reporting) requests to be ignored from reporting\r\n * additional telemetry, to handle polyfil implementations ALL urls used with a disabled request will\r\n * also be ignored for future requests even when this property is not provided.\r\n * Tagging as Ignore as this is an internal value and is not expected to be used outside of the SDK\r\n * @ignore\r\n */\r\nexport var DisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nexport var SampleRate = \"sampleRate\";\r\nexport var ProcessLegacy = \"ProcessLegacy\";\r\nexport var HttpMethod = \"http.method\";\r\nexport var DEFAULT_BREEZE_ENDPOINT = \"https://dc.services.visualstudio.com\";\r\nexport var DEFAULT_BREEZE_PATH = \"/v2/track\";\r\nexport var strNotSpecified = \"not_specified\";\r\nexport var strIkey = \"iKey\";\r\n//# sourceMappingURL=Constants.js.map","import * as React from 'react';\nimport { BaseButton, Button, IButtonProps } from '../../Button';\nimport type { ITheme, IStyle } from '../../Styling';\nimport type { IRefObject, IStyleFunctionOrObject } from '../../Utilities';\nimport type { IIconProps } from '../../Icon';\n\n/**\n * {@docCategory MessageBar}\n */\nexport interface IMessageBar {}\n\n/**\n * {@docCategory MessageBar}\n */\nexport interface IMessageBarProps extends React.HTMLAttributes, React.RefAttributes {\n /**\n * Optional callback to access the IMessageBar interface. Use this instead of ref for accessing\n * the public methods and properties of the component.\n */\n componentRef?: IRefObject;\n\n /**\n * The type of MessageBar to render.\n * @defaultvalue MessageBarType.info\n */\n messageBarType?: MessageBarType;\n\n /**\n * The actions you want to show on the other side.\n */\n actions?: JSX.Element;\n\n /**\n * A description of the message bar for the benefit of screen readers.\n * @deprecated Use native prop `aria-label` instead.\n */\n ariaLabel?: string;\n\n /**\n * Whether the message bar has a dismiss button and its callback.\n * If null, we don't show a dismiss button.\n * @defaultvalue null\n */\n // eslint-disable-next-line deprecation/deprecation\n onDismiss?: (ev?: React.MouseEvent) => any;\n\n /**\n * Determines if the message bar is multi lined.\n * If false, and the text overflows over buttons or to another line, it is clipped.\n * @defaultvalue true\n */\n isMultiline?: boolean;\n\n /**\n * Aria label on dismiss button if onDismiss is defined.\n */\n dismissButtonAriaLabel?: string;\n\n /**\n * Determines if the message bar text is truncated.\n * If true, a button will render to toggle between a single line view and multiline view.\n * This prop is for single line message bars with no buttons only in a limited space scenario.\n * @defaultvalue false\n */\n truncated?: boolean;\n\n /**\n * Aria label on overflow button if truncated is defined.\n * @deprecated Use `expandButtonProps` instead.\n */\n overflowButtonAriaLabel?: string;\n\n /**\n * Additional CSS class(es) to apply to the MessageBar.\n */\n className?: string;\n\n /**\n * Theme (provided through customization.)\n */\n theme?: ITheme;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: IStyleFunctionOrObject;\n\n /**\n * Custom icon prop to replace the dismiss icon.\n * If unset, default will be the Fabric Clear icon.\n */\n dismissIconProps?: IIconProps;\n\n /**\n * Custom icon prop to replace the message bar icon.\n * If unset, default will be the icon set by messageBarType.\n */\n messageBarIconProps?: IIconProps;\n\n /**\n * Button props that can be applied to the expand button of the MessageBar.\n */\n expandButtonProps?: IButtonProps;\n\n /**\n * Custom role to apply to the MessageBar.\n * @defaultvalue `alert` if `messageBarType` is `error`, `blocked`, or `severeWarning`;\n * or `status` otherwise\n */\n role?: 'alert' | 'status' | 'none';\n\n /**\n * By default, MessageBar delay-renders its content within an internal live region to help ensure\n * it's announced by screen readers. You can disable that behavior by setting this prop to `false`.\n *\n * If you set this prop to `false`, to ensure proper announcement you should either:\n * - If appropriate, ensure that the `role` prop is set to `alert` (this will be done by default\n * if `messageBarType` is `error`, `blocked`, or `severeWarning`), OR\n * - Set the `role` prop to `none` (to avoid nested `status` regions), wrap the whole MessageBar\n * in a `
` which is always rendered, and ensure that the MessageBar is\n * rendered either conditionally or with a delay.\n * @default true\n */\n delayedRender?: boolean;\n}\n\n/**\n * {@docCategory MessageBar}\n */\nexport interface IMessageBarStyleProps {\n /**\n * Theme (provided through customization).\n */\n theme: ITheme;\n\n /**\n * Additional CSS class(es).\n */\n className?: string;\n\n /**\n * Type of the MessageBar.\n */\n messageBarType?: MessageBarType;\n\n /**\n * Whether the MessageBar contains a dismiss button.\n */\n onDismiss?: boolean;\n\n /**\n * Whether the text is truncated.\n */\n truncated?: boolean;\n\n /**\n * Whether the MessageBar is rendered in multi line (as opposed to single line) mode.\n */\n isMultiline?: boolean;\n\n /**\n * Whether the single line MessageBar is being expanded.\n */\n expandSingleLine?: boolean;\n\n /**\n * Whether the MessageBar contains any action elements.\n */\n actions?: boolean;\n}\n\n/**\n * {@docCategory MessageBar}\n */\nexport interface IMessageBarStyles {\n /**\n * Style set for the root element.\n */\n root?: IStyle;\n\n /**\n * Style set for the element containing the icon, text, and optional dismiss button.\n */\n content?: IStyle;\n\n /**\n * Style set for the element containing the icon.\n */\n iconContainer?: IStyle;\n\n /**\n * Style set for the icon.\n */\n icon?: IStyle;\n\n /**\n * Style set for the element containing the text.\n */\n text?: IStyle;\n\n /**\n * Style set for the text.\n */\n innerText?: IStyle;\n\n /**\n * Style set for the optional dismiss button.\n */\n dismissal?: IStyle;\n\n /**\n * Style set for the icon used to expand and collapse the MessageBar.\n */\n expand?: IStyle;\n\n /**\n * Style set for the element containing the dismiss button.\n */\n dismissSingleLine?: IStyle;\n\n /**\n * Style set for the element containing the expand icon.\n */\n expandSingleLine?: IStyle;\n\n /**\n * Style set for the optional element containing the action elements.\n */\n actions?: IStyle;\n}\n\n/**\n * {@docCategory MessageBar}\n */\nexport enum MessageBarType {\n /** Info styled MessageBar */\n info = 0,\n /** Error styled MessageBar */\n error = 1,\n /** Blocked styled MessageBar */\n blocked = 2,\n /** SevereWarning styled MessageBar */\n severeWarning = 3,\n /** Success styled MessageBar */\n success = 4,\n /** Warning styled MessageBar */\n warning = 5,\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { AbortError } from \"@azure/abort-controller\";\n\nimport {\n AbortSignalLike,\n BaseRequestPolicy,\n HttpOperationResponse,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions,\n RestError,\n WebResource,\n} from \"@azure/core-http\";\n\nimport { StorageRetryOptions } from \"../StorageRetryPolicyFactory\";\nimport { URLConstants } from \"../utils/constants\";\nimport { delay, setURLHost, setURLParameter } from \"../utils/utils.common\";\nimport { logger } from \"../log\";\n\n/**\n * A factory method used to generated a RetryPolicy factory.\n *\n * @param retryOptions -\n */\nexport function NewRetryPolicyFactory(retryOptions?: StorageRetryOptions): RequestPolicyFactory {\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions): StorageRetryPolicy => {\n return new StorageRetryPolicy(nextPolicy, options, retryOptions);\n },\n };\n}\n\n/**\n * RetryPolicy types.\n */\nexport enum StorageRetryPolicyType {\n /**\n * Exponential retry. Retry time delay grows exponentially.\n */\n EXPONENTIAL,\n /**\n * Linear retry. Retry time delay grows linearly.\n */\n FIXED,\n}\n\n// Default values of StorageRetryOptions\nconst DEFAULT_RETRY_OPTIONS: StorageRetryOptions = {\n maxRetryDelayInMs: 120 * 1000,\n maxTries: 4,\n retryDelayInMs: 4 * 1000,\n retryPolicyType: StorageRetryPolicyType.EXPONENTIAL,\n secondaryHost: \"\",\n tryTimeoutInMs: undefined, // Use server side default timeout strategy\n};\n\nconst RETRY_ABORT_ERROR = new AbortError(\"The operation was aborted.\");\n\n/**\n * Retry policy with exponential retry and linear retry implemented.\n */\nexport class StorageRetryPolicy extends BaseRequestPolicy {\n /**\n * RetryOptions.\n */\n private readonly retryOptions: StorageRetryOptions;\n\n /**\n * Creates an instance of RetryPolicy.\n *\n * @param nextPolicy -\n * @param options -\n * @param retryOptions -\n */\n constructor(\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions,\n retryOptions: StorageRetryOptions = DEFAULT_RETRY_OPTIONS\n ) {\n super(nextPolicy, options);\n\n // Initialize retry options\n this.retryOptions = {\n retryPolicyType: retryOptions.retryPolicyType\n ? retryOptions.retryPolicyType\n : DEFAULT_RETRY_OPTIONS.retryPolicyType,\n\n maxTries:\n retryOptions.maxTries && retryOptions.maxTries >= 1\n ? Math.floor(retryOptions.maxTries)\n : DEFAULT_RETRY_OPTIONS.maxTries,\n\n tryTimeoutInMs:\n retryOptions.tryTimeoutInMs && retryOptions.tryTimeoutInMs >= 0\n ? retryOptions.tryTimeoutInMs\n : DEFAULT_RETRY_OPTIONS.tryTimeoutInMs,\n\n retryDelayInMs:\n retryOptions.retryDelayInMs && retryOptions.retryDelayInMs >= 0\n ? Math.min(\n retryOptions.retryDelayInMs,\n retryOptions.maxRetryDelayInMs\n ? retryOptions.maxRetryDelayInMs\n : DEFAULT_RETRY_OPTIONS.maxRetryDelayInMs!\n )\n : DEFAULT_RETRY_OPTIONS.retryDelayInMs,\n\n maxRetryDelayInMs:\n retryOptions.maxRetryDelayInMs && retryOptions.maxRetryDelayInMs >= 0\n ? retryOptions.maxRetryDelayInMs\n : DEFAULT_RETRY_OPTIONS.maxRetryDelayInMs,\n\n secondaryHost: retryOptions.secondaryHost\n ? retryOptions.secondaryHost\n : DEFAULT_RETRY_OPTIONS.secondaryHost,\n };\n }\n\n /**\n * Sends request.\n *\n * @param request -\n */\n public async sendRequest(request: WebResource): Promise {\n return this.attemptSendRequest(request, false, 1);\n }\n\n /**\n * Decide and perform next retry. Won't mutate request parameter.\n *\n * @param request -\n * @param secondaryHas404 - If attempt was against the secondary & it returned a StatusNotFound (404), then\n * the resource was not found. This may be due to replication delay. So, in this\n * case, we'll never try the secondary again for this operation.\n * @param attempt - How many retries has been attempted to performed, starting from 1, which includes\n * the attempt will be performed by this method call.\n */\n protected async attemptSendRequest(\n request: WebResource,\n secondaryHas404: boolean,\n attempt: number\n ): Promise {\n const newRequest: WebResource = request.clone();\n\n const isPrimaryRetry =\n secondaryHas404 ||\n !this.retryOptions.secondaryHost ||\n !(request.method === \"GET\" || request.method === \"HEAD\" || request.method === \"OPTIONS\") ||\n attempt % 2 === 1;\n\n if (!isPrimaryRetry) {\n newRequest.url = setURLHost(newRequest.url, this.retryOptions.secondaryHost!);\n }\n\n // Set the server-side timeout query parameter \"timeout=[seconds]\"\n if (this.retryOptions.tryTimeoutInMs) {\n newRequest.url = setURLParameter(\n newRequest.url,\n URLConstants.Parameters.TIMEOUT,\n Math.floor(this.retryOptions.tryTimeoutInMs! / 1000).toString()\n );\n }\n\n let response: HttpOperationResponse | undefined;\n try {\n logger.info(`RetryPolicy: =====> Try=${attempt} ${isPrimaryRetry ? \"Primary\" : \"Secondary\"}`);\n response = await this._nextPolicy.sendRequest(newRequest);\n if (!this.shouldRetry(isPrimaryRetry, attempt, response)) {\n return response;\n }\n\n secondaryHas404 = secondaryHas404 || (!isPrimaryRetry && response.status === 404);\n } catch (err: any) {\n logger.error(`RetryPolicy: Caught error, message: ${err.message}, code: ${err.code}`);\n if (!this.shouldRetry(isPrimaryRetry, attempt, response, err)) {\n throw err;\n }\n }\n\n await this.delay(isPrimaryRetry, attempt, request.abortSignal);\n return this.attemptSendRequest(request, secondaryHas404, ++attempt);\n }\n\n /**\n * Decide whether to retry according to last HTTP response and retry counters.\n *\n * @param isPrimaryRetry -\n * @param attempt -\n * @param response -\n * @param err -\n */\n protected shouldRetry(\n isPrimaryRetry: boolean,\n attempt: number,\n response?: HttpOperationResponse,\n err?: RestError\n ): boolean {\n if (attempt >= this.retryOptions.maxTries!) {\n logger.info(\n `RetryPolicy: Attempt(s) ${attempt} >= maxTries ${this.retryOptions\n .maxTries!}, no further try.`\n );\n return false;\n }\n\n // Handle network failures, you may need to customize the list when you implement\n // your own http client\n const retriableErrors = [\n \"ETIMEDOUT\",\n \"ESOCKETTIMEDOUT\",\n \"ECONNREFUSED\",\n \"ECONNRESET\",\n \"ENOENT\",\n \"ENOTFOUND\",\n \"TIMEOUT\",\n \"EPIPE\",\n \"REQUEST_SEND_ERROR\", // For default xhr based http client provided in ms-rest-js\n ];\n if (err) {\n for (const retriableError of retriableErrors) {\n if (\n err.name.toUpperCase().includes(retriableError) ||\n err.message.toUpperCase().includes(retriableError) ||\n (err.code && err.code.toString().toUpperCase() === retriableError)\n ) {\n logger.info(`RetryPolicy: Network error ${retriableError} found, will retry.`);\n return true;\n }\n }\n }\n\n // If attempt was against the secondary & it returned a StatusNotFound (404), then\n // the resource was not found. This may be due to replication delay. So, in this\n // case, we'll never try the secondary again for this operation.\n if (response || err) {\n const statusCode = response ? response.status : err ? err.statusCode : 0;\n if (!isPrimaryRetry && statusCode === 404) {\n logger.info(`RetryPolicy: Secondary access with 404, will retry.`);\n return true;\n }\n\n // Server internal error or server timeout\n if (statusCode === 503 || statusCode === 500) {\n logger.info(`RetryPolicy: Will retry for status code ${statusCode}.`);\n return true;\n }\n }\n\n if (err?.code === \"PARSE_ERROR\" && err?.message.startsWith(`Error \"Error: Unclosed root tag`)) {\n logger.info(\n \"RetryPolicy: Incomplete XML response likely due to service timeout, will retry.\"\n );\n return true;\n }\n\n return false;\n }\n\n /**\n * Delay a calculated time between retries.\n *\n * @param isPrimaryRetry -\n * @param attempt -\n * @param abortSignal -\n */\n private async delay(isPrimaryRetry: boolean, attempt: number, abortSignal?: AbortSignalLike) {\n let delayTimeInMs: number = 0;\n\n if (isPrimaryRetry) {\n switch (this.retryOptions.retryPolicyType) {\n case StorageRetryPolicyType.EXPONENTIAL:\n delayTimeInMs = Math.min(\n (Math.pow(2, attempt - 1) - 1) * this.retryOptions.retryDelayInMs!,\n this.retryOptions.maxRetryDelayInMs!\n );\n break;\n case StorageRetryPolicyType.FIXED:\n delayTimeInMs = this.retryOptions.retryDelayInMs!;\n break;\n }\n } else {\n delayTimeInMs = Math.random() * 1000;\n }\n\n logger.info(`RetryPolicy: Delay for ${delayTimeInMs}ms`);\n return delay(delayTimeInMs, abortSignal, RETRY_ABORT_ERROR);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n BaseRequestPolicy,\n HttpOperationResponse,\n isNode,\n RequestPolicy,\n RequestPolicyOptions,\n WebResource,\n} from \"@azure/core-http\";\n\nimport { HeaderConstants, URLConstants } from \"../utils/constants\";\nimport { setURLParameter } from \"../utils/utils.common\";\n\n/**\n * StorageBrowserPolicy will handle differences between Node.js and browser runtime, including:\n *\n * 1. Browsers cache GET/HEAD requests by adding conditional headers such as 'IF_MODIFIED_SINCE'.\n * StorageBrowserPolicy is a policy used to add a timestamp query to GET/HEAD request URL\n * thus avoid the browser cache.\n *\n * 2. Remove cookie header for security\n *\n * 3. Remove content-length header to avoid browsers warning\n */\nexport class StorageBrowserPolicy extends BaseRequestPolicy {\n /**\n * Creates an instance of StorageBrowserPolicy.\n * @param nextPolicy -\n * @param options -\n */\n // The base class has a protected constructor. Adding a public one to enable constructing of this class.\n /* eslint-disable-next-line @typescript-eslint/no-useless-constructor*/\n constructor(nextPolicy: RequestPolicy, options: RequestPolicyOptions) {\n super(nextPolicy, options);\n }\n\n /**\n * Sends out request.\n *\n * @param request -\n */\n public async sendRequest(request: WebResource): Promise {\n if (isNode) {\n return this._nextPolicy.sendRequest(request);\n }\n\n if (request.method.toUpperCase() === \"GET\" || request.method.toUpperCase() === \"HEAD\") {\n request.url = setURLParameter(\n request.url,\n URLConstants.Parameters.FORCE_BROWSER_NO_CACHE,\n new Date().getTime().toString()\n );\n }\n\n request.headers.remove(HeaderConstants.COOKIE);\n\n // According to XHR standards, content-length should be fully controlled by browsers\n request.headers.remove(HeaderConstants.CONTENT_LENGTH);\n\n return this._nextPolicy.sendRequest(request);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { RequestPolicy, RequestPolicyFactory, RequestPolicyOptions } from \"@azure/core-http\";\nimport { StorageBrowserPolicy } from \"./policies/StorageBrowserPolicy\";\nexport { StorageBrowserPolicy };\n\n/**\n * StorageBrowserPolicyFactory is a factory class helping generating StorageBrowserPolicy objects.\n */\nexport class StorageBrowserPolicyFactory implements RequestPolicyFactory {\n /**\n * Creates a StorageBrowserPolicyFactory object.\n *\n * @param nextPolicy -\n * @param options -\n */\n public create(nextPolicy: RequestPolicy, options: RequestPolicyOptions): StorageBrowserPolicy {\n return new StorageBrowserPolicy(nextPolicy, options);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { RequestPolicy, RequestPolicyFactory, RequestPolicyOptions } from \"@azure/core-http\";\nimport { StorageRetryPolicy, StorageRetryPolicyType } from \"./policies/StorageRetryPolicy\";\n\nexport { StorageRetryPolicyType, StorageRetryPolicy };\n\n/**\n * Storage Blob retry options interface.\n */\nexport interface StorageRetryOptions {\n /**\n * Optional. StorageRetryPolicyType, default is exponential retry policy.\n */\n readonly retryPolicyType?: StorageRetryPolicyType;\n\n /**\n * Optional. Max try number of attempts, default is 4.\n * A value of 1 means 1 try and no retries.\n * A value smaller than 1 means default retry number of attempts.\n */\n readonly maxTries?: number;\n\n /**\n * Optional. Indicates the maximum time in ms allowed for any single try of an HTTP request.\n * A value of zero or undefined means no default timeout on SDK client, Azure\n * Storage server's default timeout policy will be used.\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-blob-service-operations\n */\n readonly tryTimeoutInMs?: number;\n\n /**\n * Optional. Specifies the amount of delay to use before retrying an operation (default is 4s or 4 * 1000ms).\n * The delay increases (exponentially or linearly) with each retry up to a maximum specified by\n * maxRetryDelayInMs. If you specify 0, then you must also specify 0 for maxRetryDelayInMs.\n */\n readonly retryDelayInMs?: number;\n\n /**\n * Optional. Specifies the maximum delay allowed before retrying an operation (default is 120s or 120 * 1000ms).\n * If you specify 0, then you must also specify 0 for retryDelayInMs.\n */\n readonly maxRetryDelayInMs?: number;\n\n /**\n * If a secondaryHost is specified, retries will be tried against this host. If secondaryHost is undefined\n * (the default) then operations are not retried against another host.\n *\n * NOTE: Before setting this field, make sure you understand the issues around\n * reading stale and potentially-inconsistent data at\n * {@link https://docs.microsoft.com/en-us/azure/storage/common/storage-designing-ha-apps-with-ragrs}\n */\n readonly secondaryHost?: string;\n}\n\n/**\n * StorageRetryPolicyFactory is a factory class helping generating {@link StorageRetryPolicy} objects.\n */\nexport class StorageRetryPolicyFactory implements RequestPolicyFactory {\n private retryOptions?: StorageRetryOptions;\n\n /**\n * Creates an instance of StorageRetryPolicyFactory.\n * @param retryOptions -\n */\n constructor(retryOptions?: StorageRetryOptions) {\n this.retryOptions = retryOptions;\n }\n\n /**\n * Creates a StorageRetryPolicy object.\n *\n * @param nextPolicy -\n * @param options -\n */\n public create(nextPolicy: RequestPolicy, options: RequestPolicyOptions): StorageRetryPolicy {\n return new StorageRetryPolicy(nextPolicy, options, this.retryOptions);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { DefaultHttpClient } from \"@azure/core-http\";\nimport { IHttpClient } from \"../Pipeline\";\n\nconst _defaultHttpClient = new DefaultHttpClient();\n\nexport function getCachedDefaultHttpClient(): IHttpClient {\n return _defaultHttpClient;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { AccessToken, GetTokenOptions, TokenCredential, URLBuilder } from \"@azure/core-http\";\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions,\n} from \"@azure/core-http\";\nimport { HttpOperationResponse } from \"@azure/core-http\";\nimport { WebResourceLike } from \"@azure/core-http\";\nimport { delay } from \"@azure/core-http\";\n\n/**\n * A set of constants used internally when processing requests.\n */\nconst Constants = {\n DefaultScope: \"/.default\",\n /**\n * Defines constants for use with HTTP headers.\n */\n HeaderConstants: {\n /**\n * The Authorization header.\n */\n AUTHORIZATION: \"authorization\",\n },\n};\n\n// #region Access Token Cycler\n\n/**\n * A function that gets a promise of an access token and allows providing\n * options.\n *\n * @param options - the options to pass to the underlying token provider\n */\ntype AccessTokenGetter = (options: GetTokenOptions) => Promise;\n\ninterface TokenCyclerOptions {\n /**\n * The window of time before token expiration during which the token will be\n * considered unusable due to risk of the token expiring before sending the\n * request.\n *\n * This will only become meaningful if the refresh fails for over\n * (refreshWindow - forcedRefreshWindow) milliseconds.\n */\n forcedRefreshWindowInMs: number;\n /**\n * Interval in milliseconds to retry failed token refreshes.\n */\n retryIntervalInMs: number;\n /**\n * The window of time before token expiration during which\n * we will attempt to refresh the token.\n */\n refreshWindowInMs: number;\n}\n\n// Default options for the cycler if none are provided\nconst DEFAULT_CYCLER_OPTIONS: TokenCyclerOptions = {\n forcedRefreshWindowInMs: 1000, // Force waiting for a refresh 1s before the token expires\n retryIntervalInMs: 3000, // Allow refresh attempts every 3s\n refreshWindowInMs: 1000 * 60 * 2, // Start refreshing 2m before expiry\n};\n\n/**\n * Converts an an unreliable access token getter (which may resolve with null)\n * into an AccessTokenGetter by retrying the unreliable getter in a regular\n * interval.\n *\n * @param getAccessToken - a function that produces a promise of an access\n * token that may fail by returning null\n * @param retryIntervalInMs - the time (in milliseconds) to wait between retry\n * attempts\n * @param timeoutInMs - the timestamp after which the refresh attempt will fail,\n * throwing an exception\n * @returns - a promise that, if it resolves, will resolve with an access token\n */\nasync function beginRefresh(\n getAccessToken: () => Promise,\n retryIntervalInMs: number,\n timeoutInMs: number\n): Promise {\n // This wrapper handles exceptions gracefully as long as we haven't exceeded\n // the timeout.\n async function tryGetAccessToken(): Promise {\n if (Date.now() < timeoutInMs) {\n try {\n return await getAccessToken();\n } catch {\n return null;\n }\n } else {\n const finalToken = await getAccessToken();\n\n // Timeout is up, so throw if it's still null\n if (finalToken === null) {\n throw new Error(\"Failed to refresh access token.\");\n }\n\n return finalToken;\n }\n }\n\n let token: AccessToken | null = await tryGetAccessToken();\n\n while (token === null) {\n await delay(retryIntervalInMs);\n\n token = await tryGetAccessToken();\n }\n\n return token;\n}\n\n/**\n * Creates a token cycler from a credential, scopes, and optional settings.\n *\n * A token cycler represents a way to reliably retrieve a valid access token\n * from a TokenCredential. It will handle initializing the token, refreshing it\n * when it nears expiration, and synchronizes refresh attempts to avoid\n * concurrency hazards.\n *\n * @param credential - the underlying TokenCredential that provides the access\n * token\n * @param scopes - the scopes to request authorization for\n * @param tokenCyclerOptions - optionally override default settings for the cycler\n *\n * @returns - a function that reliably produces a valid access token\n */\nfunction createTokenCycler(\n credential: TokenCredential,\n scopes: string | string[],\n tokenCyclerOptions?: Partial\n): AccessTokenGetter {\n let refreshWorker: Promise | null = null;\n let token: AccessToken | null = null;\n\n const options = {\n ...DEFAULT_CYCLER_OPTIONS,\n ...tokenCyclerOptions,\n };\n\n /**\n * This little holder defines several predicates that we use to construct\n * the rules of refreshing the token.\n */\n const cycler = {\n /**\n * Produces true if a refresh job is currently in progress.\n */\n get isRefreshing(): boolean {\n return refreshWorker !== null;\n },\n /**\n * Produces true if the cycler SHOULD refresh (we are within the refresh\n * window and not already refreshing)\n */\n get shouldRefresh(): boolean {\n return (\n !cycler.isRefreshing &&\n (token?.expiresOnTimestamp ?? 0) - options.refreshWindowInMs < Date.now()\n );\n },\n /**\n * Produces true if the cycler MUST refresh (null or nearly-expired\n * token).\n */\n get mustRefresh(): boolean {\n return (\n token === null || token.expiresOnTimestamp - options.forcedRefreshWindowInMs < Date.now()\n );\n },\n };\n\n /**\n * Starts a refresh job or returns the existing job if one is already\n * running.\n */\n function refresh(getTokenOptions: GetTokenOptions): Promise {\n if (!cycler.isRefreshing) {\n // We bind `scopes` here to avoid passing it around a lot\n const tryGetAccessToken = (): Promise =>\n credential.getToken(scopes, getTokenOptions);\n\n // Take advantage of promise chaining to insert an assignment to `token`\n // before the refresh can be considered done.\n refreshWorker = beginRefresh(\n tryGetAccessToken,\n options.retryIntervalInMs,\n // If we don't have a token, then we should timeout immediately\n token?.expiresOnTimestamp ?? Date.now()\n )\n .then((_token) => {\n refreshWorker = null;\n token = _token;\n return token;\n })\n .catch((reason) => {\n // We also should reset the refresher if we enter a failed state. All\n // existing awaiters will throw, but subsequent requests will start a\n // new retry chain.\n refreshWorker = null;\n token = null;\n throw reason;\n });\n }\n\n return refreshWorker as Promise;\n }\n\n return async (tokenOptions: GetTokenOptions): Promise => {\n //\n // Simple rules:\n // - If we MUST refresh, then return the refresh task, blocking\n // the pipeline until a token is available.\n // - If we SHOULD refresh, then run refresh but don't return it\n // (we can still use the cached token).\n // - Return the token, since it's fine if we didn't return in\n // step 1.\n //\n\n if (cycler.mustRefresh) return refresh(tokenOptions);\n\n if (cycler.shouldRefresh) {\n refresh(tokenOptions);\n }\n\n return token as AccessToken;\n };\n}\n/**\n * We will retrieve the challenge only if the response status code was 401,\n * and if the response contained the header \"WWW-Authenticate\" with a non-empty value.\n */\nfunction getChallenge(response: HttpOperationResponse): string | undefined {\n const challenge = response.headers.get(\"WWW-Authenticate\");\n if (response.status === 401 && challenge) {\n return challenge;\n }\n return;\n}\n\n/**\n * Challenge structure\n */\ninterface Challenge {\n authorization_uri: string;\n resource_id: string;\n}\n\n/**\n * Converts: `Bearer a=\"b\" c=\"d\"`.\n * Into: `[ { a: 'b', c: 'd' }]`.\n *\n * @internal\n */\nfunction parseChallenge(challenge: string): any {\n const bearerChallenge = challenge.slice(\"Bearer \".length);\n const challengeParts = `${bearerChallenge.trim()} `.split(\" \").filter((x) => x);\n const keyValuePairs = challengeParts.map((keyValue) =>\n (([key, value]) => ({ [key]: value }))(keyValue.trim().split(\"=\"))\n );\n // Key-value pairs to plain object:\n return keyValuePairs.reduce((a, b) => ({ ...a, ...b }), {});\n}\n\n// #endregion\n\n/**\n * Creates a new factory for a RequestPolicy that applies a bearer token to\n * the requests' `Authorization` headers.\n *\n * @param credential - The TokenCredential implementation that can supply the bearer token.\n * @param scopes - The scopes for which the bearer token applies.\n */\n\nexport function storageBearerTokenChallengeAuthenticationPolicy(\n credential: TokenCredential,\n scopes: string | string[]\n): RequestPolicyFactory {\n // This simple function encapsulates the entire process of reliably retrieving the token\n let getToken = createTokenCycler(credential, scopes);\n\n class StorageBearerTokenChallengeAuthenticationPolicy extends BaseRequestPolicy {\n public constructor(nextPolicy: RequestPolicy, options: RequestPolicyOptions) {\n super(nextPolicy, options);\n }\n\n public async sendRequest(webResource: WebResourceLike): Promise {\n if (!webResource.url.toLowerCase().startsWith(\"https://\")) {\n throw new Error(\n \"Bearer token authentication is not permitted for non-TLS protected (non-https) URLs.\"\n );\n }\n\n const getTokenInternal = getToken;\n const token = (\n await getTokenInternal({\n abortSignal: webResource.abortSignal,\n tracingOptions: {\n tracingContext: webResource.tracingContext,\n },\n })\n ).token;\n webResource.headers.set(Constants.HeaderConstants.AUTHORIZATION, `Bearer ${token}`);\n\n const response = await this._nextPolicy.sendRequest(webResource);\n\n if (response?.status === 401) {\n const challenge = getChallenge(response);\n if (challenge) {\n const challengeInfo: Challenge = parseChallenge(challenge);\n const challengeScopes = challengeInfo.resource_id + Constants.DefaultScope;\n const parsedAuthUri = URLBuilder.parse(challengeInfo.authorization_uri);\n const pathSegments = parsedAuthUri.getPath()!.split(\"/\");\n const tenantId = pathSegments[1];\n const getTokenForChallenge = createTokenCycler(credential, challengeScopes);\n\n const tokenForChallenge = (\n await getTokenForChallenge({\n abortSignal: webResource.abortSignal,\n tracingOptions: {\n tracingContext: webResource.tracingContext,\n },\n tenantId: tenantId,\n })\n ).token;\n\n getToken = getTokenForChallenge;\n webResource.headers.set(\n Constants.HeaderConstants.AUTHORIZATION,\n `Bearer ${tokenForChallenge}`\n );\n return this._nextPolicy.sendRequest(webResource);\n }\n }\n\n return response;\n }\n }\n\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions) => {\n return new StorageBearerTokenChallengeAuthenticationPolicy(nextPolicy, options);\n },\n };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n BaseRequestPolicy,\n deserializationPolicy,\n disableResponseDecompressionPolicy,\n HttpClient as IHttpClient,\n HttpHeaders,\n HttpOperationResponse,\n HttpRequestBody,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions,\n ServiceClientOptions,\n WebResource,\n proxyPolicy,\n isNode,\n TokenCredential,\n isTokenCredential,\n tracingPolicy,\n logPolicy,\n ProxyOptions,\n keepAlivePolicy,\n KeepAliveOptions,\n generateClientRequestIdPolicy,\n UserAgentOptions,\n} from \"@azure/core-http\";\n\nimport { logger } from \"./log\";\nimport { StorageBrowserPolicyFactory } from \"./StorageBrowserPolicyFactory\";\nimport { StorageRetryOptions, StorageRetryPolicyFactory } from \"./StorageRetryPolicyFactory\";\nimport { StorageSharedKeyCredential } from \"./credentials/StorageSharedKeyCredential\";\nimport { AnonymousCredential } from \"./credentials/AnonymousCredential\";\nimport {\n StorageOAuthScopes,\n StorageBlobLoggingAllowedHeaderNames,\n StorageBlobLoggingAllowedQueryParameters,\n} from \"./utils/constants\";\nimport { TelemetryPolicyFactory } from \"./TelemetryPolicyFactory\";\nimport { getCachedDefaultHttpClient } from \"./utils/cache\";\nimport { attachCredential } from \"./utils/utils.common\";\nimport { storageBearerTokenChallengeAuthenticationPolicy } from \"./policies/StorageBearerTokenChallengeAuthenticationPolicy\";\n\n// Export following interfaces and types for customers who want to implement their\n// own RequestPolicy or HTTPClient\nexport {\n BaseRequestPolicy,\n StorageOAuthScopes,\n deserializationPolicy,\n IHttpClient,\n HttpHeaders,\n HttpRequestBody,\n HttpOperationResponse,\n WebResource,\n RequestPolicyFactory,\n RequestPolicy,\n RequestPolicyOptions,\n};\n\n/**\n * Option interface for Pipeline constructor.\n */\nexport interface PipelineOptions {\n /**\n * Optional. Configures the HTTP client to send requests and receive responses.\n */\n httpClient?: IHttpClient;\n}\n\n/**\n * An interface for the {@link Pipeline} class containing HTTP request policies.\n * You can create a default Pipeline by calling {@link newPipeline}.\n * Or you can create a Pipeline with your own policies by the constructor of Pipeline.\n *\n * Refer to {@link newPipeline} and provided policies before implementing your\n * customized Pipeline.\n */\nexport interface PipelineLike {\n /**\n * A list of chained request policy factories.\n */\n readonly factories: RequestPolicyFactory[];\n /**\n * Configures pipeline logger and HTTP client.\n */\n readonly options: PipelineOptions;\n /**\n * Transfer Pipeline object to ServiceClientOptions object which is required by\n * ServiceClient constructor.\n *\n * @returns The ServiceClientOptions object from this Pipeline.\n */\n toServiceClientOptions(): ServiceClientOptions;\n}\n\n/**\n * A helper to decide if a given argument satisfies the Pipeline contract\n * @param pipeline - An argument that may be a Pipeline\n * @returns true when the argument satisfies the Pipeline contract\n */\nexport function isPipelineLike(pipeline: unknown): pipeline is PipelineLike {\n if (!pipeline || typeof pipeline !== \"object\") {\n return false;\n }\n\n const castPipeline = pipeline as PipelineLike;\n\n return (\n Array.isArray(castPipeline.factories) &&\n typeof castPipeline.options === \"object\" &&\n typeof castPipeline.toServiceClientOptions === \"function\"\n );\n}\n\n/**\n * A Pipeline class containing HTTP request policies.\n * You can create a default Pipeline by calling {@link newPipeline}.\n * Or you can create a Pipeline with your own policies by the constructor of Pipeline.\n *\n * Refer to {@link newPipeline} and provided policies before implementing your\n * customized Pipeline.\n */\nexport class Pipeline implements PipelineLike {\n /**\n * A list of chained request policy factories.\n */\n public readonly factories: RequestPolicyFactory[];\n /**\n * Configures pipeline logger and HTTP client.\n */\n public readonly options: PipelineOptions;\n\n /**\n * Creates an instance of Pipeline. Customize HTTPClient by implementing IHttpClient interface.\n *\n * @param factories -\n * @param options -\n */\n constructor(factories: RequestPolicyFactory[], options: PipelineOptions = {}) {\n this.factories = factories;\n // when options.httpClient is not specified, passing in a DefaultHttpClient instance to\n // avoid each client creating its own http client.\n this.options = {\n ...options,\n httpClient: options.httpClient || getCachedDefaultHttpClient(),\n };\n }\n\n /**\n * Transfer Pipeline object to ServiceClientOptions object which is required by\n * ServiceClient constructor.\n *\n * @returns The ServiceClientOptions object from this Pipeline.\n */\n public toServiceClientOptions(): ServiceClientOptions {\n return {\n httpClient: this.options.httpClient,\n requestPolicyFactories: this.factories,\n };\n }\n}\n\n/**\n * Options interface for the {@link newPipeline} function.\n */\nexport interface StoragePipelineOptions {\n /**\n * Options to configure a proxy for outgoing requests.\n */\n proxyOptions?: ProxyOptions;\n /**\n * Options for adding user agent details to outgoing requests.\n */\n userAgentOptions?: UserAgentOptions;\n /**\n * Configures the built-in retry policy behavior.\n */\n retryOptions?: StorageRetryOptions;\n /**\n * Keep alive configurations. Default keep-alive is enabled.\n */\n keepAliveOptions?: KeepAliveOptions;\n /**\n * Configures the HTTP client to send requests and receive responses.\n */\n httpClient?: IHttpClient;\n /**\n * The audience used to retrieve an AAD token.\n */\n audience?: string | string[];\n}\n\n/**\n * Creates a new Pipeline object with Credential provided.\n *\n * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param pipelineOptions - Optional. Options.\n * @returns A new Pipeline object.\n */\nexport function newPipeline(\n credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n pipelineOptions: StoragePipelineOptions = {}\n): Pipeline {\n if (credential === undefined) {\n credential = new AnonymousCredential();\n }\n\n // Order is important. Closer to the API at the top & closer to the network at the bottom.\n // The credential's policy factory must appear close to the wire so it can sign any\n // changes made by other factories (like UniqueRequestIDPolicyFactory)\n\n const telemetryPolicy = new TelemetryPolicyFactory(pipelineOptions.userAgentOptions);\n const factories: RequestPolicyFactory[] = [\n tracingPolicy({ userAgent: telemetryPolicy.telemetryString }),\n keepAlivePolicy(pipelineOptions.keepAliveOptions),\n telemetryPolicy,\n generateClientRequestIdPolicy(),\n new StorageBrowserPolicyFactory(),\n new StorageRetryPolicyFactory(pipelineOptions.retryOptions), // Retry policy should be above any policy that throws retryable errors\n // Default deserializationPolicy is provided by protocol layer\n // Use customized XML char key of \"#\" so we could deserialize metadata\n // with \"_\" key\n deserializationPolicy(undefined, { xmlCharKey: \"#\" }),\n logPolicy({\n logger: logger.info,\n allowedHeaderNames: StorageBlobLoggingAllowedHeaderNames,\n allowedQueryParameters: StorageBlobLoggingAllowedQueryParameters,\n }),\n ];\n\n if (isNode) {\n // policies only available in Node.js runtime, not in browsers\n factories.push(proxyPolicy(pipelineOptions.proxyOptions));\n factories.push(disableResponseDecompressionPolicy());\n }\n factories.push(\n isTokenCredential(credential)\n ? attachCredential(\n storageBearerTokenChallengeAuthenticationPolicy(\n credential,\n pipelineOptions.audience ?? StorageOAuthScopes\n ),\n credential\n )\n : credential\n );\n\n return new Pipeline(factories, pipelineOptions);\n}\n","import { ApplicationInsights, ITelemetryPlugin, IConfiguration, Exception } from '@microsoft/applicationinsights-web';\r\nimport { ITelemetryItem } from \"@microsoft/applicationinsights-core-js\";\r\nimport * as Common from \"@microsoft/applicationinsights-common\";\r\nimport {FeatureUsageEventV2} from './contracts/FeatureUsageEventV2';\r\nimport { BusinessProcessEvent } from './contracts/BusinessProcessEvent';\r\nimport { SystemEvent } from './contracts/SystemEvent';\r\nimport { EnvironmentValues } from './contracts/EnvironmentValues';\r\nimport { getISO8601String, Logger, isGUID } from './utils/utils';\r\nimport { getUsageErrorDetails } from './config/UsageAttributeHandler';\r\nimport IUsageAttributes from './interfaces/IUsageAttributes';\r\nimport { Correlator } from './config/Correlator';\r\nimport UsageAttributeHandler from './config/UsageAttributeHandler';\r\nimport { IUsageAttributeHandler } from './interfaces/IUsageAttributeHandler';\r\nimport { ComponentType, ItEventType, ActionType, EventName, TaskStatus, ActionStatus } from './utils/Enum';\r\nimport { HttpUtil } from './utils/HttpUtil';\r\nimport { SDK_SERVICE_ENDPOINT, ConstantStrings, ValueNotAvailable } from './utils/Constants';\r\nimport { ICorelator } from './interfaces/ICorelator';\r\nimport { IUserContext } from './interfaces/IUserContext';\r\nimport { XMLHttpRequestMonitor } from './config/XMLHttpRequestMonitor';\r\n\r\nexport var ExtensionVersion = \"npm:2.6.4\";\r\n\r\nexport class AppInsights {\r\n ItTelemetryConfig: any;\r\n environmentData: any;\r\n appInsights: ApplicationInsights;\r\n userContext: string = null;\r\n private usageProvider: UsageAttributeHandler = null;\r\n /**\r\n * Creates Applications Insights Object and adds telemetry initializer to add service tree details. \r\n * If you want to customize the application insights object creation then please use InitializeTelemetryWithConfiguration.\r\n * @param environmentName - Your application environment\r\n * @param iKey - Application insights instrumentation key\r\n * @param serviceOffering - service tree information\r\n * @param serviceLine - service tree information\r\n * @param service - service tree information \r\n * @param componentName - service tree information \r\n * @param componentId - service tree information \r\n * @param ictoid - service tree information \r\n * @param plugins - plugin whch will be made part of telemetryconfiguration\r\n * @param enableLogs - console logs will be displayed if set to true\r\n */\r\n public InitializeTelemetry(environmentName: string, iKey: string, serviceOffering: string, serviceLine: string, service: string, componentName: string, componentId: string, ictoid: string, plugins?: ITelemetryPlugin[], enableLogs?: boolean,\r\n randomizationUnitId?: string,assignmentContext?: string,experimentId?: string\r\n ) { \r\n var appInsights = new ApplicationInsights({\r\n config: {\r\n instrumentationKey: iKey,\r\n\t\t\t\tmaxAjaxCallsPerView: -1,\r\n isCookieUseDisabled: true,\r\n disableFetchTracking: false,\r\n extensions: plugins\r\n }\r\n }); \r\n\r\n Logger.setDevConfig(enableLogs);\r\n\r\n this.environmentData = new EnvironmentValues(environmentName, serviceOffering, serviceLine, \r\n service, componentName, componentId, ictoid,randomizationUnitId,assignmentContext,experimentId);\r\n \r\n appInsights.loadAppInsights();\r\n this.appInsights = appInsights;\r\n this.usageProvider = new UsageAttributeHandler();\r\n this.AddMsitEnvironmentInitializer(this.appInsights, this.environmentData);\r\n return this.appInsights;\r\n }\r\n\r\n /**\r\n * This method accepts the environment values in the form of object, and provides more flexibility on IConfiguration\r\n * @param environmentValue - Service tree information\r\n * @param configuration - Telemetry configuration\r\n */\r\n public InitializeTelemetryWithConfiguration(environmentValue: EnvironmentValues, configuration: IConfiguration & Common.IConfig, enableLogs?: boolean){\r\n var appInsights = new ApplicationInsights({\r\n config: configuration\r\n });\r\n Logger.setDevConfig(enableLogs);\r\n this.environmentData = environmentValue;\r\n this.appInsights = appInsights;\r\n this.usageProvider = new UsageAttributeHandler();\r\n appInsights.loadAppInsights();\r\n this.AddMsitEnvironmentInitializer(this.appInsights, this.environmentData);\r\n return this.appInsights\r\n }\r\n\r\npublic TrackPageview(properties?: Object) {\r\n this.appInsights.trackPageView({properties: properties});\r\n}\r\n\r\npublic TrackEvent(eventName: string, properties?: Object, measurements?: any) {\r\n if (this.appInsights != null && eventName != null) {\r\n this.appInsights.trackEvent({ name: eventName, properties: properties, measurements: measurements });\r\n }\r\n}\r\n\r\npublic TrackTrace(message: string, severityLevel?: any, properties?: Object) {\r\n if (this.appInsights != null && message != null) {\r\n this.appInsights.trackTrace({ message: message, properties: properties, severityLevel: severityLevel });\r\n }\r\n}\r\n\r\npublic TrackException(error: Error, severityLevel?: any, properties?: Object, measurements?: any) {\r\n if (this.appInsights != null && error != null) {\r\n this.appInsights.trackException({ error: error, severityLevel: severityLevel, properties: properties, measurements: measurements });\r\n }\r\n}\r\n\r\npublic TrackFeatureUsageEventV2(eventData: FeatureUsageEventV2, properties?: Object, measurements?: any) {\r\n if (this.appInsights != null && eventData != null) {\r\n properties = this.BuildFeatureEventPropertiesV2(eventData, properties);\r\n let featureUsageEventName = eventData.getFeatureUsageName(properties);\r\n this.appInsights.trackEvent({ name: featureUsageEventName, properties: properties, measurements: measurements }); \r\n } \r\n}\r\n\r\npublic TrackBusinessProcessEvent(eventData: BusinessProcessEvent, properties?: Object, measurements?: any) {\r\n if (this.appInsights != null && eventData != null) {\r\n var isTrackable = this.isValidEvent(eventData, properties);\r\n\r\n if (isTrackable) {\r\n properties = this.BuildBusinessEventProperties(eventData, properties);\r\n this.appInsights.trackEvent({ name: eventData.BusinessProcessName, properties: properties, measurements: measurements });\r\n }\r\n else {\r\n throw \"One or more attributes in the event Business Process Event are not valid\";\r\n }\r\n }\r\n}\r\n\r\npublic TrackSystemEvent(eventData: SystemEvent, properties?: Object, measurements?: any) {\r\n if (this.appInsights != null && eventData != null) {\r\n var isTrackable = this.isValidEvent(eventData, properties);\r\n\r\n if (isTrackable) {\r\n properties = this.BuildSystemEventProperties(eventData, properties);\r\n this.appInsights.trackEvent({ name: eventData.BusinessProcessName, properties: properties, measurements: measurements });\r\n }\r\n else {\r\n throw \"One or more attributes in the event System Event are not valid\";\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * StartFeatureUsageEvent - helps to track the duration of a feature between StartFeatureUsageEvent & EndFeatureUsageEvent\r\n * @param eventData - FeatureUsageEvent that needs to be tracked\r\n */\r\npublic StartFeatureUsageEvent(eventData: FeatureUsageEventV2){\r\n if(this.appInsights!==null && eventData!= null){\r\n this.appInsights.startTrackEvent(eventData.getFeatureUsageName(eventData)); \r\n } \r\n}\r\n\r\n/**\r\n * EndFeatureUsageEvent - helps to track the duration of a feature between StartFeatureUsageEvent & EndFeatureUsageEvent\r\n * @param eventData - FeatureUsageEvent that needs to be tracked\r\n * @param properties - Additional properties\r\n */\r\npublic EndFeatureUsageEvent(eventData: FeatureUsageEventV2, properties?: Object){\r\n if(this.appInsights!==null && eventData!= null){\r\n this.appInsights.stopTrackEvent(eventData.getFeatureUsageName(eventData),this.BuildFeatureEventPropertiesV2(eventData, properties)); \r\n } \r\n}\r\n\r\n public StartTask(eventData: FeatureUsageEventV2) {\r\n if (this.appInsights !== null && eventData != null) {\r\n eventData.TaskStatus = TaskStatus.Start;\r\n this.TrackFeatureUsageEventV2(eventData);\r\n }\r\n }\r\n public EndTask(eventData: FeatureUsageEventV2) {\r\n if (this.appInsights !== null && eventData != null) {\r\n eventData.TaskStatus = TaskStatus.Completed;\r\n this.TrackFeatureUsageEventV2(eventData);\r\n }\r\n }\r\n\r\n\r\n\r\n/**\r\n * setUserContext - Sets the current logged-in user context, authid and accountid fields get populated in Part A section\r\n * @param token - Token generated using your client id\r\n * Initializer - It must be populated before calling setUserContext method. \r\n * @throws Exception - if ServiceTreeInitializer is not populated in the current AI object.\r\n */\r\npublic setUserContext(token: string | null) {\r\n let featureInstance = new FeatureUsageEventV2(\"UserContext\", ActionType.Aware, \"GetUniqueIdentifier\", EventName.BackEndAPICall,ComponentType.DynamicLinkLibrary);\r\n this.StartTask(featureInstance);\r\n if(this.userContext == null){ \r\n try{\r\n var thisPointer = this;\r\n let onSuccess = function(data){\r\n let userContext = JSON.parse(data) as IUserContext;\r\n thisPointer.userContext = userContext.UsageUserId;\r\n thisPointer.appInsights.setAuthenticatedUserContext(thisPointer.userContext, thisPointer.userContext);\r\n featureInstance.ActionStatus = ActionStatus.Succeeded;\r\n thisPointer.TrackFeatureUsageEventV2(featureInstance);\r\n thisPointer.EndTask(featureInstance);\r\n }\r\n\r\n let onException = function(errorMessage: string, status: number){\r\n if(status == 401){\r\n thisPointer.TrackException(Error(`There was a exception, For more details please refer https://aka.ms/heartwiki ` +errorMessage));\r\n } \r\n featureInstance.ActionStatus = ActionStatus.Failed;\r\n thisPointer.EndTask(featureInstance);\r\n }\r\n\r\n let headers: {[key:string]: string} = {\r\n \"Access-Control-Allow-Origin\": \"*\",\r\n \"Authorization\": \"Bearer \"+token\r\n }\r\n if((this.environmentData !==null && this.environmentData !== undefined && this.environmentData !=='')\r\n && (this.environmentData.ComponentId !==null && this.environmentData.ComponentId !==undefined && this.environmentData.ComponentId !=='')) {\r\n HttpUtil.GET(SDK_SERVICE_ENDPOINT+'/api/usage/'+ this.environmentData.ComponentId, true, 3, headers, onSuccess, onException); \r\n }\r\n \r\n else{\r\n throw 'ComponentId is missing as part of TelemetryInitializers';\r\n }\r\n }\r\n catch(Exception){\r\n this.TrackException(new Error(`There was a exception, For more details please refer https://aka.ms/heartwiki ` +Exception));\r\n Logger.log(\"Error:\"+Exception);\r\n this.EndFeatureUsageEvent(featureInstance);\r\n }\r\n this.Flush();\r\n}\r\nthis.appInsights.setAuthenticatedUserContext(this.userContext, this.userContext);\r\n}\r\n\r\n/**\r\n * Adds Environment and Service Tree metadata details to the requested application insights object. \r\n * If you are using InitializerTelemetry then please use the overload version of this method.\r\n * @param appInsights - Your own application insights object, this will not use the default application insights object provided by UTP\r\n * @param environmentValue - Your own environment values, this will over write the environment values given in the intializeTelemetry or initializeTelemetryWithConfiguration\r\n * @param correlator - Correlator implementation of your own or UTP exposed Correlator\r\n * @param usageProvider - UsageProvider of your own, if this is null then default implementation of UTP will be used\r\n */\r\npublic AddMsitTelemetryInitializers(appInsights: ApplicationInsights, environmentValue: EnvironmentValues, correlator: ICorelator, usageProvider: IUsageAttributeHandler):any;\r\n/**\r\n * Use this overload if you want to use the application insights instance of UTP and environment values will be used from the one given in intializeTelemetry or initializeTelemetryWithCOnfiguration,\r\n * if you want to override the application insights object and environment values then use the other overload of this method\r\n * @param correlator - Correlator implementation of your own or UTP exposed Correlator\r\n * @param usageProvider - UsageProvider of your own, if this is null then default implementation of UTP will be used\r\n */\r\npublic AddMsitTelemetryInitializers(correlator: ICorelator, usageProvider?: IUsageAttributeHandler):any;\r\n\r\npublic AddMsitTelemetryInitializers(appInsightsOrCorrelator?: (ApplicationInsights | ICorelator), environmentValueOrUsageProvider?: (EnvironmentValues | IUsageAttributeHandler), correlator?: any, usageProvider?: any):any {\r\n var applicationInsightsObject: ApplicationInsights = null; \r\n var environmentData: any = null;\r\n \r\n if(appInsightsOrCorrelator!=null){\r\n if(appInsightsOrCorrelator instanceof ApplicationInsights){\r\n \r\n applicationInsightsObject = appInsightsOrCorrelator; //When customer is sending his own AI object\r\n }\r\n else{ \r\n correlator = appInsightsOrCorrelator; //Customer wants to use the global AI and has given the CorrelationProvider\r\n // var xmlAjaxRecord = new XMLHttpRequestMonitor(correlator, this.appInsights);\r\n }\r\n }\r\n \r\n if(environmentValueOrUsageProvider!= null){\r\n if(environmentValueOrUsageProvider instanceof EnvironmentValues)\r\n environmentData = environmentValueOrUsageProvider; //When customer is sending sepearte set of Environment values and wants to ignore \r\n //the values provided in InitializeTelemetry & IntializeTelemetryWithConfiguration\r\n else\r\n usageProvider = environmentValueOrUsageProvider; //When customer wants to use the global environment values and has provided his own \r\n //implementation of usageProvider instead\r\n }\r\n\r\n if(applicationInsightsObject == null){\r\n applicationInsightsObject = this.appInsights;\r\n }\r\n\r\n //Attach the initializer if one of them global/local is available\r\n if(applicationInsightsObject!=null){\r\n if(usageProvider == null){\r\n //If the usageProvider is not sent from the customer, we use the default Provider\r\n Logger.log(\"Usage provider is null\");\r\n usageProvider = this.usageProvider;\r\n usageProvider.initialize(); \r\n }\r\n else\r\n {\r\n Logger.log(\"Received the UsageProvider from the client application\");\r\n } \r\n \r\n Logger.log(\"Initializer called before emitting the event\");\r\n \r\n if(environmentData!=null){\r\n this.AddMsitEnvironmentInitializer(applicationInsightsObject, environmentData);\r\n }\r\n\r\n if(correlator!=null){\r\n this.AddMsitInternalCorrelationIntializer(applicationInsightsObject, correlator);\r\n }\r\n\r\n if(usageProvider!=null){\r\n this.AddMsitInternalUsageProviderIntializer(applicationInsightsObject, usageProvider);\r\n }\r\n }\r\n } \r\n\r\n /**\r\n * This method is going to absolete in something, please use AddMsitTelemetryInitializers instead\r\n * @param appInsights - A seperate Application insights object \r\n * @param environmentData - Service tree information\r\n * @param correlationProvider - Correlation provider to generate xcv\r\n * @param subCorrelationProvider - SubCorrelation provider to generate subXcv\r\n */\r\n public AddMsitTelemetryInitializerswithSubCorrelation(appInsights: ApplicationInsights, environmentData: EnvironmentValues, correlationProvider: () => string, subCorrelationProvider: () => string) {\r\n appInsights.addTelemetryInitializer((envelope: ITelemetryItem) => {\r\n envelope.baseData.properties = envelope.baseData.properties || {};\r\n envelope.baseData.properties[\"AiAppKey\"] = appInsights.config.instrumentationKey;\r\n\r\n if (environmentData != null) {\r\n envelope.baseData.properties[\"EnvironmentName\"] = environmentData.EnvironmetName == null ? \"\" : environmentData.EnvironmetName;\r\n envelope.baseData.properties[\"ServiceOffering\"] = environmentData.ServiceOffering == null ? \"\" : environmentData.ServiceOffering;\r\n envelope.baseData.properties[\"ServiceLine\"] = environmentData.ServiceLine == null ? \"\" : environmentData.ServiceLine;\r\n envelope.baseData.properties[\"Service\"] = environmentData.Service == null ? \"\" : environmentData.Service;\r\n envelope.baseData.properties[\"ComponentName\"] = environmentData.ComponentName == null ? \"\" : environmentData.ComponentName;\r\n envelope.baseData.properties[\"ComponentId\"] = environmentData.ComponentId == null ? \"\" : environmentData.ComponentId;\r\n envelope.baseData.properties[\"ItExtVersion\"] = ExtensionVersion;\r\n envelope.baseData.properties[\"RandomizationUnitId\"] =environmentData.RandomizationUnitId== null ?\"\" : environmentData.RandomizationUnitId;\r\n envelope.baseData.properties[\"AssignmentContext\"] =environmentData.AssignmentContext== null ?\"\" : environmentData.AssignmentContext;\r\n envelope.baseData.properties[\"ExperimentId\"] =environmentData.ExperimentId== null ?\"\" : environmentData.ExperimentId; \r\n }\r\n\r\n var correlationId = \"\";\r\n if (correlationProvider != null)\r\n correlationId = correlationProvider();\r\n\r\n if (correlationId != null && correlationId !== \"\") {\r\n envelope.baseData.properties[\"XCV\"] = correlationId;\r\n }\r\n\r\n var subcorrelationId = \"\";\r\n if (subCorrelationProvider != null)\r\n correlationId = subCorrelationProvider();\r\n\r\n if (subcorrelationId != null && subcorrelationId !== \"\") {\r\n envelope.baseData.properties[\"SubXCV\"] = subcorrelationId;\r\n }\r\n\r\n });\r\n }\r\n\r\npublic Flush() {\r\n if(this.appInsights!==null && this.appInsights!==undefined){\r\n this.appInsights.flush();\r\n } \r\n}\r\n\r\npublic refreshSession(){\r\n this.usageProvider.refreshSessionAttribute();\r\n}\r\n\r\n/**\r\n * Private method not exposed to customer, used to attach service tree information to all the logs\r\n * @param appInsights \r\n * @param environment \r\n */\r\nprivate AddMsitEnvironmentInitializer(appInsights: ApplicationInsights, environment: EnvironmentValues){\r\n appInsights.addTelemetryInitializer((envelope: any) => { \r\n if(envelope !== undefined && envelope.baseData !== undefined){\r\n try {\r\n envelope.baseData.properties = envelope.baseData.properties || {};\r\n envelope.baseData.properties[\"AiAppKey\"] = appInsights.config.instrumentationKey;\r\n if (environment != null) {\r\n this.populateEnvironmentValues(envelope.baseData.properties, environment);\r\n }\r\n }\r\n catch (ex) {\r\n Logger.log(\"Exception occured :\"+ex);\r\n }\r\n }\r\n });\r\n}\r\n\r\n/**\r\n * Stores sessionId, pageName, pagetracking-id\r\n * @param appInsights \r\n * @param usageProvider \r\n */\r\n private AddMsitInternalUsageProviderIntializer(appInsights: ApplicationInsights, usageProvider: IUsageAttributeHandler) {\r\n appInsights.addTelemetryInitializer((envelope: any) => {\r\n let startDateTime = new Date();\r\n Logger.log(\"UTPTelemetry : Usage attribute intializer started at \" + startDateTime.toUTCString());\r\n try {\r\n let usageAttributes = usageProvider.getUsageAttributes();\r\n envelope.baseData.properties[\"usageSessionTrackingId\"] = usageAttributes.UsageSessionId !== \"\" ? usageAttributes.UsageSessionId : ValueNotAvailable;\r\n envelope.baseData.properties[\"usagePageTrackingId\"] = usageAttributes.UsagePageTrackingId !== \"\" ? usageAttributes.UsagePageTrackingId : ValueNotAvailable;\r\n envelope.baseData.properties[\"usagePageName\"] = usageAttributes.UsagePageName !== \"\" ? usageAttributes.UsagePageName : ValueNotAvailable;\r\n if (envelope.baseData.properties[\"TemplateType\"] === ConstantStrings.Configuration.FeatureUsageEventV2TemplateType) {\r\n envelope.baseData.properties[\"UsageErrorDetails\"] = this.getValidationUsageErrorDetails(envelope, usageAttributes);\r\n }\r\n }\r\n catch (ex) {\r\n Logger.log(\"Exception occured :\" + ex);\r\n }\r\n let endDateTime = new Date();\r\n Logger.log(\"UTPTelemetry : attribute intializer completed at \" + endDateTime.toUTCString());\r\n Logger.log(\"UTPTelemetry : Usage attribute intializer took {ms} \" + (endDateTime.getTime() - startDateTime.getTime()).toString());\r\n });\r\n }\r\n\r\n private getValidationUsageErrorDetails(envelope: any, usageAttributes: IUsageAttributes) {\r\n let errors = getUsageErrorDetails(envelope.baseData.properties);\r\n if (envelope.tags[\"ai.user.accountId\"] === null || envelope.tags[\"ai.user.accountId\"] === undefined || envelope.tags[\"ai.user.accountId\"] === '') {\r\n errors.push(ConstantStrings.UsageErrorKeys.UserContextNotSet);\r\n }\r\n else if((envelope.tags[\"ai.user.accountId\"]).length !== 32){\r\n errors.push(ConstantStrings.UsageErrorKeys.UserAccountIdMustBeGUID);\r\n }\r\n if(usageAttributes.UsageSessionId !== \"\" && !isGUID(usageAttributes.UsageSessionId)){\r\n errors.push(ConstantStrings.UsageErrorKeys.UsageSessionIdMustBeGUID);\r\n }\r\n if(usageAttributes.UsagePageTrackingId !== \"\" && !isGUID(usageAttributes.UsagePageTrackingId)){\r\n errors.push(ConstantStrings.UsageErrorKeys.UsagePageTrackingIdMustBeGUID);\r\n }\r\n if(this.environmentData.ComponentId === '' || this.environmentData.ComponentId === null || this.environmentData.ComponentId === undefined){\r\n errors.push(ConstantStrings.UsageErrorKeys.ComponentIdIsManadatory);\r\n }\r\n else if(!isGUID(this.environmentData.ComponentId)){\r\n errors.push(ConstantStrings.UsageErrorKeys.ComponentIdShouldBeValidGuid);\r\n }\r\n return errors.join();\r\n }\r\n\r\n/**\r\n * Stores XCV and SubXCV\r\n * @param appInsights \r\n * @param correlator \r\n */\r\nprivate AddMsitInternalCorrelationIntializer(appInsights: ApplicationInsights, correlator: ICorelator){\r\n appInsights.addTelemetryInitializer((envelope: any) => { \r\n try {\r\n if (correlator != null) {\r\n Logger.log(\"Correlation provided by the client application\"); \r\n let correlationId = correlator.getCorrelationId();\r\n let subcorrelationId = correlator.getSubCorrelationId(); \r\n if(correlationId !== null && correlationId !== undefined && correlationId !== \"\"){\r\n envelope.baseData.properties[\"XCV\"] = correlationId; \r\n } \r\n if(subcorrelationId !== null && subcorrelationId !== undefined && subcorrelationId !== \"\"){\r\n envelope.baseData.properties[\"SubXCV\"] = subcorrelationId; \r\n } \r\n if(envelope.baseData.properties[\"ActionStatus\"] === ActionStatus.Failed){\r\n correlator.renewSubCorrelationId();\r\n } \r\n }\r\n }\r\n catch (ex) {\r\n Logger.log(\"Exception occured :\"+ex);\r\n }\r\n });\r\n}\r\n\r\nprivate PopulateCommonSchemaValues(appInsights: ApplicationInsights, properties?: Object) {\r\n properties = properties || {};\r\n properties[\"AiAppKey\"] = appInsights.config.instrumentationKey == null ? \"\" : appInsights.config.instrumentationKey;\r\n properties[\"EnvironmentName\"] = this.environmentData.EnvironmetName == null ? \"\" : this.environmentData.EnvironmetName;\r\n properties[\"ServiceOffering\"] = this.environmentData.ServiceOffering == null ? \"\" : this.environmentData.ServiceOffering;\r\n properties[\"ServiceLine\"] = this.environmentData.ServiceLine == null ? \"\" : this.environmentData.ServiceLine;\r\n properties[\"Service\"] = this.environmentData.Service == null ? \"\" : this.environmentData.Service;\r\n properties[\"ComponentName\"] = this.environmentData.ComponentName == null ? \"\" : this.environmentData.ComponentName;\r\n properties[\"ComponentId\"] = this.environmentData.ComponentId == null ? \"\" : this.environmentData.ComponentId;\r\n properties[\"ItExtVersion\"] = ExtensionVersion;\r\n properties[\"RandomizationUnitId\"] =this.environmentData.RandomizationUnitId== null ?\"\" : this.environmentData.RandomizationUnitId;\r\n properties[\"AssignmentContext\"] =this.environmentData.AssignmentContext== null ?\"\" : this.environmentData.AssignmentContext;\r\n properties[\"ExperimentId\"] =this.environmentData.ExperimentId== null ?\"\" : this.environmentData.ExperimentId; \r\n return properties;\r\n}\r\n\r\n private populateEnvironmentValues(props: any, environmentValue: EnvironmentValues){\r\n Logger.log(\"Adding Environment data to the envelope\");\r\n props[\"EnvironmentName\"] = this.environmentData.EnvironmetName == null ? \"\" : this.environmentData.EnvironmetName;\r\n props[\"ServiceOffering\"] = this.environmentData.ServiceOffering == null ? \"\" : this.environmentData.ServiceOffering;\r\n props[\"ServiceLine\"] = this.environmentData.ServiceLine == null ? \"\" : this.environmentData.ServiceLine;\r\n props[\"Service\"] = this.environmentData.Service == null ? \"\" : this.environmentData.Service;\r\n props[\"ComponentName\"] = this.environmentData.ComponentName == null ? \"\" : this.environmentData.ComponentName;\r\n props[\"ComponentId\"] = this.environmentData.ComponentId == null ? \"\" : this.environmentData.ComponentId;\r\n if (this.environmentData.IctoId != null && this.environmentData.IctoId !== \"\") {\r\n props[\"IctoId\"] = this.environmentData.IctoId;\r\n }\r\n props[\"ItExtVersion\"] = ExtensionVersion;\r\n props[\"RandomizationUnitId\"] =this.environmentData.RandomizationUnitId== null ?\"\" : this.environmentData.RandomizationUnitId;\r\n props[\"AssignmentContext\"] =this.environmentData.AssignmentContext== null ?\"\" : this.environmentData.AssignmentContext;\r\n props[\"ExperimentId\"] =this.environmentData.ExperimentId== null ?\"\" : this.environmentData.ExperimentId; \r\n }\r\n \r\n private populateCorrelationAttributes(props: any, correlator: ICorelator){\r\n if (correlator != null) {\r\n Logger.log(\"Correlation provided by the client application\");\r\n let correlationId = correlator.getCorrelationId();\r\n let subcorrelationId = correlator.getSubCorrelationId();\r\n if(correlationId !== null && correlationId !== undefined && correlationId !== \"\"){\r\n props[\"XCV\"] = correlationId; \r\n } \r\n if(subcorrelationId !== null && subcorrelationId !== undefined && subcorrelationId !== \"\"){\r\n props[\"SubXCV\"] = subcorrelationId; \r\n } \r\n } \r\n }\r\n\r\n//added part of latest change\r\n private BuildFeatureEventPropertiesV2(eventData: FeatureUsageEventV2, properties?: Object) {\r\n var eventProperties;\r\n eventProperties = properties || {};\r\n \r\n eventProperties[\"ComponentType\"] = (eventData.ComponentType !== undefined && eventData.ComponentType != null) ? ComponentType[eventData.ComponentType].toString() : \"\"; \r\n eventProperties[\"ActionType\"] = eventData.ActionType !== undefined && eventData.ActionType != null ? ActionType[eventData.ActionType].toString() : ValueNotAvailable; \r\n eventProperties[\"EventType\"] = eventData.EventType !== undefined && eventData.EventType != null ? ItEventType[eventData.EventType].toString() : \"\";\r\n eventProperties[\"TemplateType\"] = eventData.TemplateType === undefined || eventData.TemplateType === null ? \"\" : eventData.TemplateType;\r\n eventProperties[\"MsitPartB\"] = \"true\";\r\n eventProperties[\"FeatureName\"] = eventData.FeatureName === undefined || eventData.FeatureName === null || eventData.FeatureName === \"\" ? ValueNotAvailable : eventData.FeatureName;\r\n eventProperties[\"EventName\"] = eventData.EventName === undefined || eventData.EventName === null ? ValueNotAvailable : eventData.EventName;\r\n eventProperties[\"SubFeatureName\"] = eventData.SubFeatureName === undefined || eventData.SubFeatureName === null ? \"\" : eventData.SubFeatureName;\r\n eventProperties[\"ActionName\"] = eventData.ActionName === undefined || eventData.ActionName === null || eventData.ActionName === \"\" ? ValueNotAvailable : eventData.ActionName;\r\n eventProperties[\"TaskStatus\"] = eventData.TaskStatus === undefined || eventData.TaskStatus === null || eventData.TaskStatus === TaskStatus.NA ? ValueNotAvailable : eventData.TaskStatus;\r\n eventProperties[\"ActionStatus\"] = eventData.ActionStatus === undefined || eventData.ActionStatus === null || eventData.ActionStatus === ActionStatus.NA ? ValueNotAvailable : eventData.ActionStatus;\r\n if (eventData.TaskName !== undefined && eventData.TaskName !== null && eventData.TaskName !== \"\") {\r\n eventProperties[\"TaskName\"] = eventData.TaskName;\r\n }\r\n \r\n if(eventData.Duration !== undefined && eventData.Duration !== null){\r\n eventProperties[\"Duration\"] = eventData.Duration;\r\n } \r\n\r\n if(eventData.ComponentUri !== undefined && eventData.ComponentUri !== null){\r\n eventProperties[\"ComponentUri\"] = eventData.ComponentUri;\r\n } \r\n if(eventData.UserRoleName !== undefined && eventData.UserRoleName !== null){\r\n eventProperties[\"UserRoleName\"] = eventData.UserRoleName; \r\n } \r\n if(eventData.StartDateTime !== undefined && eventData.StartDateTime !== null){\r\n eventProperties[\"StartDateTime\"] = eventData.StartDateTime.toUTCString();\r\n }\r\n if(eventData.EndDateTime !== undefined && eventData.EndDateTime !== null){\r\n eventProperties[\"EndDateTime\"] = eventData.EndDateTime.toUTCString();\r\n }\r\n if(eventData.EntityId !== undefined && eventData.EntityId !== null){\r\n eventProperties[\"EntityId\"] = eventData.EntityId;\r\n }\r\n if(eventData.ExperimentationConfigId !== undefined && eventData.ExperimentationConfigId !== null && eventData.ExperimentationConfigId !== \"\"){\r\n eventProperties[\"experimentationConfigId\"] = eventData.ExperimentationConfigId;\r\n }\r\n if(eventData.ExperimentationConfigName !== undefined && eventData.ExperimentationConfigName !== null && eventData.ExperimentationConfigName !== \"\"){\r\n eventProperties[\"experimentationConfigName\"] = eventData.ExperimentationConfigName;\r\n } \r\n if(eventData.ExperimentationConfigResult !== undefined && eventData.ExperimentationConfigResult !== null){\r\n eventProperties[\"experienceResult\"] = eventData.ExperimentationConfigResult;\r\n } \r\n \r\n if(eventData.CapabilityType !== undefined && eventData.CapabilityType !== null){\r\n eventProperties[\"CapabilityType\"] = eventData.CapabilityType;\r\n }\r\n if(eventData.IsEmbeddedExperience !== undefined && eventData.IsEmbeddedExperience !== null){\r\n eventProperties[\"IsEmbeddedExperience\"] = eventData.IsEmbeddedExperience;\r\n }\r\n if(eventData.EmbeddedExpereinceName !== undefined && eventData.EmbeddedExpereinceName !== null){\r\n eventProperties[\"EmbeddedExpereinceName\"] = eventData.EmbeddedExpereinceName;\r\n }\r\n \r\n return eventProperties;\r\n }\r\n\r\n private BuildBusinessEventProperties(eventData: BusinessProcessEvent, properties?: Object) {\r\n var eventProperties;\r\n eventProperties = properties || {};\r\n\r\n eventProperties[\"ActionUri\"] = eventData.ActionUri === undefined ? \"\" : eventData.ActionUri;\r\n eventProperties[\"AppAction\"] = eventData.AppAction === undefined ? \"\" : eventData.AppAction;\r\n eventProperties[\"ComponentType\"] = (eventData.ComponentType !== undefined && eventData.ComponentType != null) ? ComponentType[eventData.ComponentType].toString() : \"\";\r\n eventProperties[\"TargetEntityKey\"] = eventData.TargetEntityKey === undefined ? \"\" : eventData.TargetEntityKey;\r\n eventProperties[\"UserRoleName\"] = eventData.UserRoleName === undefined ? \"\" : eventData.UserRoleName;\r\n eventProperties[\"XCV\"] = eventData.Xcv === undefined ? \"\" : eventData.Xcv;\r\n eventProperties[\"EventType\"] = eventData.EventType !== undefined && eventData.EventType != null ? ItEventType[eventData.EventType].toString() : \"\";\r\n eventProperties[\"StartDateTime\"] = eventData.StartDateTime === undefined || eventData.StartDateTime === null ? \"\" : eventData.StartDateTime.toUTCString();\r\n eventProperties[\"EndDateTime\"] = eventData.EndDateTime === undefined || eventData.EndDateTime === null ? \"\" : eventData.EndDateTime.toUTCString();\r\n eventProperties[\"SenderId\"] = eventData.SenderId === undefined ? \"\" : eventData.SenderId;\r\n eventProperties[\"ReceiverID\"] = eventData.ReceiverId === undefined ? \"\" : eventData.ReceiverId;\r\n eventProperties[\"MessageId\"] = eventData.MessageId === undefined ? \"\" : eventData.MessageId;\r\n eventProperties[\"EventOccurrenceTime\"] = eventData.EventOccurrenceTime === undefined || eventData.EventOccurrenceTime === null || isNaN(eventData.EventOccurrenceTime.getDate()) ? \"\" : getISO8601String(new Date(eventData.EventOccurrenceTime.toString()));\r\n eventProperties[\"BusinessProcessName\"] = eventData.BusinessProcessName === undefined ? \"\" : eventData.BusinessProcessName;\r\n eventProperties[\"TemplateType\"] = eventData.TemplateType === undefined || eventData.TemplateType === null ? \"\" : eventData.TemplateType;\r\n eventProperties[\"MsitPartB\"] = \"true\";\r\n\r\n return eventProperties;\r\n }\r\n\r\n private BuildSystemEventProperties(eventData: SystemEvent, properties?: Object) {\r\n var eventProperties;\r\n eventProperties = properties || {};\r\n\r\n eventProperties[\"ActionUri\"] = eventData.ActionUri === undefined ? \"\" : eventData.ActionUri;\r\n eventProperties[\"AppAction\"] = eventData.AppAction === undefined ? \"\" : eventData.AppAction;\r\n eventProperties[\"ComponentType\"] = (eventData.ComponentType !== undefined && eventData.ComponentType != null) ? ComponentType[eventData.ComponentType].toString() : \"\";\r\n eventProperties[\"TargetEntityKey\"] = eventData.TargetEntityKey === undefined ? \"\" : eventData.TargetEntityKey;\r\n eventProperties[\"UserRoleName\"] = eventData.UserRoleName === undefined ? \"\" : eventData.UserRoleName;\r\n eventProperties[\"XCV\"] = eventData.Xcv === undefined ? \"\" : eventData.Xcv;\r\n eventProperties[\"EventType\"] = eventData.EventType !== undefined && eventData.EventType != null ? ItEventType[eventData.EventType].toString() : \"\";\r\n eventProperties[\"StartDateTime\"] = eventData.StartDateTime === undefined || eventData.StartDateTime === null ? \"\" : eventData.StartDateTime.toUTCString();\r\n eventProperties[\"EndDateTime\"] = eventData.EndDateTime === undefined || eventData.EndDateTime === null ? \"\" : eventData.EndDateTime.toUTCString();\r\n eventProperties[\"SenderId\"] = eventData.SenderId === undefined ? \"\" : eventData.SenderId;\r\n eventProperties[\"ReceiverID\"] = eventData.ReceiverId === undefined ? \"\" : eventData.ReceiverId;\r\n eventProperties[\"MessageId\"] = eventData.MessageId === undefined ? \"\" : eventData.MessageId;\r\n eventProperties[\"EventOccurrenceTime\"] = eventData.EventOccurrenceTime === undefined || eventData.EventOccurrenceTime === null || isNaN(eventData.EventOccurrenceTime.getDate()) ? \"\" : getISO8601String(new Date(eventData.EventOccurrenceTime.toString()));\r\n eventProperties[\"BusinessProcessName\"] = eventData.BusinessProcessName === undefined ? \"\" : eventData.BusinessProcessName;\r\n\r\n eventProperties[\"SystemMessage\"] = eventData.SystemMessage === undefined || eventData.SystemMessage === null ? \"\" : eventData.SystemMessage;\r\n eventProperties[\"TemplateType\"] = eventData.TemplateType === undefined || eventData.TemplateType === null ? \"\" : eventData.TemplateType;\r\n eventProperties[\"MsitPartB\"] = \"true\";\r\n return eventProperties;\r\n }\r\n\r\n public isValidEvent(eventData: any, properties?: Object) {\r\n var config = this.ItTelemetryConfig;\r\n var isTrackable = eventData.IsValidEvent(false);\r\n\r\n if (config !== null && config !== undefined && config.active.EnableBpmValidation) {\r\n var bpmSpecificConfig = config.active.ReadBpmValidation(eventData.EventName);\r\n\r\n if (bpmSpecificConfig == null) {\r\n return isTrackable;\r\n }\r\n\r\n if (bpmSpecificConfig.PartBValidation) {\r\n isTrackable = eventData.IsValidEvent(bpmSpecificConfig.PartBValidation);\r\n }\r\n\r\n if (bpmSpecificConfig.Properties != null) {\r\n var keys = Object.keys(properties);\r\n var bpmPropertiesLocal = bpmSpecificConfig.Properties;\r\n var numberOfPropertiesFound = 0;\r\n\r\n for (var index = 0; index < bpmPropertiesLocal.length; index++) {\r\n var item = bpmPropertiesLocal[index];\r\n var check = keys.indexOf(item);\r\n if (check >= 0) {\r\n // Provided a property is found, it should have a value.\r\n if (typeof properties[item] != 'undefined') {\r\n numberOfPropertiesFound += 1;\r\n }\r\n else {\r\n isTrackable = false;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (numberOfPropertiesFound == bpmPropertiesLocal.length && isTrackable != false) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n }\r\n else {\r\n return isTrackable;\r\n }\r\n }\r\n}\r\n\r\nexport { BusinessProcessEvent };\r\nexport { EnvironmentValues };\r\nexport { ItEventType };\r\nexport { SystemEvent };\r\nexport { Correlator };\r\nexport { FeatureUsageEventV2 };\r\nexport { ComponentType };\r\nexport { EventName };\r\nexport { ActionType };\r\nexport { IUsageAttributes };\r\nexport { IUsageAttributeHandler };\r\nexport { TaskStatus };\r\nexport { ActionStatus };","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * The different levels of logs that can be used with the HttpPipelineLogger.\n */\nexport enum HttpPipelineLogLevel {\n /**\n * A log level that indicates that no logs will be logged.\n */\n OFF,\n\n /**\n * An error log.\n */\n ERROR,\n\n /**\n * A warning log.\n */\n WARNING,\n\n /**\n * An information log.\n */\n INFO,\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { HttpPipelineLogLevel } from \"../httpPipelineLogLevel\";\nimport { HttpPipelineLogger } from \"../httpPipelineLogger\";\nimport { WebResourceLike } from \"../webResource\";\n\n/**\n * Creates a new RequestPolicy per-request that uses the provided nextPolicy.\n */\nexport type RequestPolicyFactory = {\n create(nextPolicy: RequestPolicy, options: RequestPolicyOptionsLike): RequestPolicy;\n};\n\n/**\n * The underlying structure of a request policy.\n */\nexport interface RequestPolicy {\n /**\n * A method that retrieves an {@link HttpOperationResponse} given a {@link WebResourceLike} describing the request to be made.\n * @param httpRequest - {@link WebResourceLike} describing the request to be made.\n */\n sendRequest(httpRequest: WebResourceLike): Promise;\n}\n\n/**\n * The base class from which all request policies derive.\n */\nexport abstract class BaseRequestPolicy implements RequestPolicy {\n /**\n * The main method to implement that manipulates a request/response.\n */\n protected constructor(\n /**\n * The next policy in the pipeline. Each policy is responsible for executing the next one if the request is to continue through the pipeline.\n */\n readonly _nextPolicy: RequestPolicy,\n /**\n * The options that can be passed to a given request policy.\n */\n readonly _options: RequestPolicyOptionsLike\n ) {}\n\n /**\n * Sends a network request based on the given web resource.\n * @param webResource - A {@link WebResourceLike} that describes a HTTP request to be made.\n */\n public abstract sendRequest(webResource: WebResourceLike): Promise;\n\n /**\n * Get whether or not a log with the provided log level should be logged.\n * @param logLevel - The log level of the log that will be logged.\n * @returns Whether or not a log with the provided log level should be logged.\n */\n public shouldLog(logLevel: HttpPipelineLogLevel): boolean {\n return this._options.shouldLog(logLevel);\n }\n\n /**\n * Attempt to log the provided message to the provided logger. If no logger was provided or if\n * the log level does not meat the logger's threshold, then nothing will be logged.\n * @param logLevel - The log level of this log.\n * @param message - The message of this log.\n */\n public log(logLevel: HttpPipelineLogLevel, message: string): void {\n this._options.log(logLevel, message);\n }\n}\n\n/**\n * Optional properties that can be used when creating a RequestPolicy.\n */\nexport interface RequestPolicyOptionsLike {\n /**\n * Get whether or not a log with the provided log level should be logged.\n * @param logLevel - The log level of the log that will be logged.\n * @returns Whether or not a log with the provided log level should be logged.\n */\n shouldLog(logLevel: HttpPipelineLogLevel): boolean;\n\n /**\n * Attempt to log the provided message to the provided logger. If no logger was provided or if\n * the log level does not meet the logger's threshold, then nothing will be logged.\n * @param logLevel - The log level of this log.\n * @param message - The message of this log.\n */\n log(logLevel: HttpPipelineLogLevel, message: string): void;\n}\n\n/**\n * Optional properties that can be used when creating a RequestPolicy.\n */\nexport class RequestPolicyOptions {\n constructor(private _logger?: HttpPipelineLogger) {}\n\n /**\n * Get whether or not a log with the provided log level should be logged.\n * @param logLevel - The log level of the log that will be logged.\n * @returns Whether or not a log with the provided log level should be logged.\n */\n public shouldLog(logLevel: HttpPipelineLogLevel): boolean {\n return (\n !!this._logger &&\n logLevel !== HttpPipelineLogLevel.OFF &&\n logLevel <= this._logger.minimumLogLevel\n );\n }\n\n /**\n * Attempt to log the provided message to the provided logger. If no logger was provided or if\n * the log level does not meet the logger's threshold, then nothing will be logged.\n * @param logLevel - The log level of this log.\n * @param message - The message of this log.\n */\n public log(logLevel: HttpPipelineLogLevel, message: string): void {\n if (this._logger && this.shouldLog(logLevel)) {\n this._logger.log(logLevel, message);\n }\n }\n}\n","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { BaseRequestPolicy, HttpOperationResponse, WebResource } from \"@azure/core-http\";\n\n/**\n * Credential policy used to sign HTTP(S) requests before sending. This is an\n * abstract class.\n */\nexport abstract class CredentialPolicy extends BaseRequestPolicy {\n /**\n * Sends out request.\n *\n * @param request -\n */\n public sendRequest(request: WebResource): Promise {\n return this._nextPolicy.sendRequest(this.signRequest(request));\n }\n\n /**\n * Child classes must implement this method with request signing. This method\n * will be executed in {@link sendRequest}.\n *\n * @param request -\n */\n protected signRequest(request: WebResource): WebResource {\n // Child classes must override this method with request signing. This method\n // will be executed in sendRequest().\n return request;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { RequestPolicy, RequestPolicyOptions } from \"@azure/core-http\";\n\nimport { CredentialPolicy } from \"./CredentialPolicy\";\n\n/**\n * AnonymousCredentialPolicy is used with HTTP(S) requests that read public resources\n * or for use with Shared Access Signatures (SAS).\n */\nexport class AnonymousCredentialPolicy extends CredentialPolicy {\n /**\n * Creates an instance of AnonymousCredentialPolicy.\n * @param nextPolicy -\n * @param options -\n */\n // The base class has a protected constructor. Adding a public one to enable constructing of this class.\n /* eslint-disable-next-line @typescript-eslint/no-useless-constructor*/\n constructor(nextPolicy: RequestPolicy, options: RequestPolicyOptions) {\n super(nextPolicy, options);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { RequestPolicy, RequestPolicyOptions } from \"@azure/core-http\";\n\nimport { AnonymousCredentialPolicy } from \"../policies/AnonymousCredentialPolicy\";\nimport { Credential } from \"./Credential\";\n\n/**\n * AnonymousCredential provides a credentialPolicyCreator member used to create\n * AnonymousCredentialPolicy objects. AnonymousCredentialPolicy is used with\n * HTTP(S) requests that read public resources or for use with Shared Access\n * Signatures (SAS).\n */\nexport class AnonymousCredential extends Credential {\n /**\n * Creates an {@link AnonymousCredentialPolicy} object.\n *\n * @param nextPolicy -\n * @param options -\n */\n public create(\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions\n ): AnonymousCredentialPolicy {\n return new AnonymousCredentialPolicy(nextPolicy, options);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { RequestPolicy, RequestPolicyFactory, RequestPolicyOptions } from \"@azure/core-http\";\nimport { CredentialPolicy } from \"../policies/CredentialPolicy\";\n\n/**\n * Credential is an abstract class for Azure Storage HTTP requests signing. This\n * class will host an credentialPolicyCreator factory which generates CredentialPolicy.\n */\nexport abstract class Credential implements RequestPolicyFactory {\n /**\n * Creates a RequestPolicy object.\n *\n * @param _nextPolicy -\n * @param _options -\n */\n public create(_nextPolicy: RequestPolicy, _options: RequestPolicyOptions): RequestPolicy {\n throw new Error(\"Method should be implemented in children classes.\");\n }\n}\n\n/**\n * A factory function that creates a new CredentialPolicy that uses the provided nextPolicy.\n */\nexport type CredentialPolicyCreator = (\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions\n) => CredentialPolicy;\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _DYN_DIAG_LOG, _DYN_ENABLE_DEBUG_EXCEPTI4, _DYN_LOGGER, _DYN_LOG_INTERNAL_MESSAGE, _DYN_MESSAGE, _DYN_MESSAGE_ID, _DYN_PUSH, _DYN_REPLACE } from \"../__DynamicConstants\";\r\nimport { getDebugExt } from \"./DbgExtensionUtils\";\r\nimport { dumpObj, getConsole, getJSON, hasJSON } from \"./EnvUtils\";\r\nimport { getCfgValue, isFunction, isUndefined } from \"./HelperFuncs\";\r\nimport { STR_EMPTY, STR_ERROR_TO_CONSOLE, STR_WARN_TO_CONSOLE } from \"./InternalConstants\";\r\n/**\r\n * For user non actionable traces use AI Internal prefix.\r\n */\r\nvar AiNonUserActionablePrefix = \"AI (Internal): \";\r\n/**\r\n * Prefix of the traces in portal.\r\n */\r\nvar AiUserActionablePrefix = \"AI: \";\r\n/**\r\n * Session storage key for the prefix for the key indicating message type already logged\r\n */\r\nvar AIInternalMessagePrefix = \"AITR_\";\r\nfunction _sanitizeDiagnosticText(text) {\r\n if (text) {\r\n return \"\\\"\" + text[_DYN_REPLACE /* @min:%2ereplace */](/\\\"/g, STR_EMPTY) + \"\\\"\";\r\n }\r\n return STR_EMPTY;\r\n}\r\nfunction _logToConsole(func, message) {\r\n var theConsole = getConsole();\r\n if (!!theConsole) {\r\n var logFunc = \"log\";\r\n if (theConsole[func]) {\r\n logFunc = func;\r\n }\r\n if (isFunction(theConsole[logFunc])) {\r\n theConsole[logFunc](message);\r\n }\r\n }\r\n}\r\nvar _InternalLogMessage = /** @class */ (function () {\r\n function _InternalLogMessage(msgId, msg, isUserAct, properties) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n var _self = this;\r\n _self[_DYN_MESSAGE_ID /* @min:%2emessageId */] = msgId;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] =\r\n (isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +\r\n msgId;\r\n var strProps = STR_EMPTY;\r\n if (hasJSON()) {\r\n strProps = getJSON().stringify(properties);\r\n }\r\n var diagnosticText = (msg ? \" message:\" + _sanitizeDiagnosticText(msg) : STR_EMPTY) +\r\n (properties ? \" props:\" + _sanitizeDiagnosticText(strProps) : STR_EMPTY);\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] += diagnosticText;\r\n }\r\n _InternalLogMessage.dataType = \"MessageData\";\r\n return _InternalLogMessage;\r\n}());\r\nexport { _InternalLogMessage };\r\nexport function safeGetLogger(core, config) {\r\n return (core || {})[_DYN_LOGGER /* @min:%2elogger */] || new DiagnosticLogger(config);\r\n}\r\nvar DiagnosticLogger = /** @class */ (function () {\r\n function DiagnosticLogger(config) {\r\n this.identifier = \"DiagnosticLogger\";\r\n /**\r\n * The internal logging queue\r\n */\r\n this.queue = [];\r\n /**\r\n * Count of internal messages sent\r\n */\r\n var _messageCount = 0;\r\n /**\r\n * Holds information about what message types were already logged to console or sent to server.\r\n */\r\n var _messageLogged = {};\r\n var _loggingLevelConsole;\r\n var _loggingLevelTelemetry;\r\n var _maxInternalMessageLimit;\r\n var _enableDebugExceptions;\r\n dynamicProto(DiagnosticLogger, this, function (_self) {\r\n _setDefaultsFromConfig(config || {});\r\n _self.consoleLoggingLevel = function () { return _loggingLevelConsole; };\r\n _self.telemetryLoggingLevel = function () { return _loggingLevelTelemetry; };\r\n _self.maxInternalMessageLimit = function () { return _maxInternalMessageLimit; };\r\n _self[_DYN_ENABLE_DEBUG_EXCEPTI4 /* @min:%2eenableDebugExceptions */] = function () { return _enableDebugExceptions; };\r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The log message.\r\n */\r\n _self.throwInternal = function (severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n var message = new _InternalLogMessage(msgId, msg, isUserAct, properties);\r\n if (_enableDebugExceptions) {\r\n throw dumpObj(message);\r\n }\r\n else {\r\n // Get the logging function and fallback to warnToConsole of for some reason errorToConsole doesn't exist\r\n var logFunc = severity === 1 /* eLoggingSeverity.CRITICAL */ ? STR_ERROR_TO_CONSOLE : STR_WARN_TO_CONSOLE;\r\n if (!isUndefined(message[_DYN_MESSAGE /* @min:%2emessage */])) {\r\n if (isUserAct) {\r\n // check if this message type was already logged to console for this page view and if so, don't log it again\r\n var messageKey = +message[_DYN_MESSAGE_ID /* @min:%2emessageId */];\r\n if (!_messageLogged[messageKey] && _loggingLevelConsole >= severity) {\r\n _self[logFunc](message[_DYN_MESSAGE /* @min:%2emessage */]);\r\n _messageLogged[messageKey] = true;\r\n }\r\n }\r\n else {\r\n // Only log traces if the console Logging Level is >= the throwInternal severity level\r\n if (_loggingLevelConsole >= severity) {\r\n _self[logFunc](message[_DYN_MESSAGE /* @min:%2emessage */]);\r\n }\r\n }\r\n _logInternalMessage(severity, message);\r\n }\r\n else {\r\n _debugExtMsg(\"throw\" + (severity === 1 /* eLoggingSeverity.CRITICAL */ ? \"Critical\" : \"Warning\"), message);\r\n }\r\n }\r\n };\r\n /**\r\n * This will write a warning to the console if possible\r\n * @param message {string} - The warning message\r\n */\r\n _self[STR_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */] = function (message) {\r\n _logToConsole(\"warn\", message);\r\n _debugExtMsg(\"warning\", message);\r\n };\r\n /**\r\n * This will write an error to the console if possible\r\n * @param message {string} - The error message\r\n */\r\n _self[STR_ERROR_TO_CONSOLE /* @min:%2eerrorToConsole */] = function (message) {\r\n _logToConsole(\"error\", message);\r\n _debugExtMsg(\"error\", message);\r\n };\r\n /**\r\n * Resets the internal message count\r\n */\r\n _self.resetInternalMessageCount = function () {\r\n _messageCount = 0;\r\n _messageLogged = {};\r\n };\r\n /**\r\n * Logs a message to the internal queue.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The message to log.\r\n */\r\n _self[_DYN_LOG_INTERNAL_MESSAGE /* @min:%2elogInternalMessage */] = _logInternalMessage;\r\n function _logInternalMessage(severity, message) {\r\n if (_areInternalMessagesThrottled()) {\r\n return;\r\n }\r\n // check if this message type was already logged for this session and if so, don't log it again\r\n var logMessage = true;\r\n var messageKey = AIInternalMessagePrefix + message[_DYN_MESSAGE_ID /* @min:%2emessageId */];\r\n // if the session storage is not available, limit to only one message type per page view\r\n if (_messageLogged[messageKey]) {\r\n logMessage = false;\r\n }\r\n else {\r\n _messageLogged[messageKey] = true;\r\n }\r\n if (logMessage) {\r\n // Push the event in the internal queue\r\n if (severity <= _loggingLevelTelemetry) {\r\n _self.queue[_DYN_PUSH /* @min:%2epush */](message);\r\n _messageCount++;\r\n _debugExtMsg((severity === 1 /* eLoggingSeverity.CRITICAL */ ? \"error\" : \"warn\"), message);\r\n }\r\n // When throttle limit reached, send a special event\r\n if (_messageCount === _maxInternalMessageLimit) {\r\n var throttleLimitMessage = \"Internal events throttle limit per PageView reached for this app.\";\r\n var throttleMessage = new _InternalLogMessage(23 /* _eInternalMessageId.MessageLimitPerPVExceeded */, throttleLimitMessage, false);\r\n _self.queue[_DYN_PUSH /* @min:%2epush */](throttleMessage);\r\n if (severity === 1 /* eLoggingSeverity.CRITICAL */) {\r\n _self[STR_ERROR_TO_CONSOLE /* @min:%2eerrorToConsole */](throttleLimitMessage);\r\n }\r\n else {\r\n _self[STR_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](throttleLimitMessage);\r\n }\r\n }\r\n }\r\n }\r\n function _setDefaultsFromConfig(config) {\r\n _loggingLevelConsole = getCfgValue(config.loggingLevelConsole, 0);\r\n _loggingLevelTelemetry = getCfgValue(config.loggingLevelTelemetry, 1);\r\n _maxInternalMessageLimit = getCfgValue(config.maxMessageLimit, 25);\r\n _enableDebugExceptions = getCfgValue(config[_DYN_ENABLE_DEBUG_EXCEPTI4 /* @min:%2eenableDebugExceptions */], false);\r\n }\r\n function _areInternalMessagesThrottled() {\r\n return _messageCount >= _maxInternalMessageLimit;\r\n }\r\n function _debugExtMsg(name, data) {\r\n var dbgExt = getDebugExt(config || {});\r\n if (dbgExt && dbgExt[_DYN_DIAG_LOG /* @min:%2ediagLog */]) {\r\n dbgExt[_DYN_DIAG_LOG /* @min:%2ediagLog */](name, data);\r\n }\r\n }\r\n });\r\n }\r\n /**\r\n * When this is true the SDK will throw exceptions to aid in debugging.\r\n */\r\n DiagnosticLogger.prototype.enableDebugExceptions = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return false;\r\n };\r\n /**\r\n * 0: OFF (default)\r\n * 1: CRITICAL\r\n * 2: >= WARNING\r\n */\r\n DiagnosticLogger.prototype.consoleLoggingLevel = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 0;\r\n };\r\n /**\r\n * 0: OFF\r\n * 1: CRITICAL (default)\r\n * 2: >= WARNING\r\n */\r\n DiagnosticLogger.prototype.telemetryLoggingLevel = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 1;\r\n };\r\n /**\r\n * The maximum number of internal messages allowed to be sent per page view\r\n */\r\n DiagnosticLogger.prototype.maxInternalMessageLimit = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 25;\r\n };\r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The log message.\r\n */\r\n DiagnosticLogger.prototype.throwInternal = function (severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * This will write a warning to the console if possible\r\n * @param message {string} - The warning message\r\n */\r\n DiagnosticLogger.prototype.warnToConsole = function (message) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * This will write an error to the console if possible\r\n * @param message {string} - The warning message\r\n */\r\n DiagnosticLogger.prototype.errorToConsole = function (message) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Resets the internal message count\r\n */\r\n DiagnosticLogger.prototype.resetInternalMessageCount = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Logs a message to the internal queue.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The message to log.\r\n */\r\n DiagnosticLogger.prototype.logInternalMessage = function (severity, message) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return DiagnosticLogger;\r\n}());\r\nexport { DiagnosticLogger };\r\nfunction _getLogger(logger) {\r\n return (logger || new DiagnosticLogger());\r\n}\r\n/**\r\n * This is a helper method which will call throwInternal on the passed logger, will throw exceptions in\r\n * debug mode or attempt to log the error as a console warning. This helper is provided mostly to better\r\n * support minification as logger.throwInternal() will not compress the publish \"throwInternal\" used throughout\r\n * the code.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The log message.\r\n */\r\nexport function _throwInternal(logger, severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n _getLogger(logger).throwInternal(severity, msgId, msg, properties, isUserAct);\r\n}\r\n/**\r\n * This is a helper method which will call warnToConsole on the passed logger with the provided message.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param message {_InternalLogMessage} - The log message.\r\n */\r\nexport function _warnToConsole(logger, message) {\r\n _getLogger(logger)[STR_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](message);\r\n}\r\n/**\r\n * Logs a message to the internal queue.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The message to log.\r\n */\r\nexport function _logInternalMessage(logger, severity, message) {\r\n _getLogger(logger)[_DYN_LOG_INTERNAL_MESSAGE /* @min:%2elogInternalMessage */](severity, message);\r\n}\r\n//# sourceMappingURL=DiagnosticLogger.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * Default key used to access the XML attributes.\n */\nexport const XML_ATTRKEY = \"$\";\n/**\n * Default key used to access the XML value content.\n */\nexport const XML_CHARKEY = \"_\";\n\n/**\n * Options to govern behavior of xml parser and builder.\n */\nexport interface SerializerOptions {\n /**\n * indicates the name of the root element in the resulting XML when building XML.\n */\n rootName?: string;\n /**\n * indicates whether the root element is to be included or not in the output when parsing XML.\n */\n includeRoot?: boolean;\n /**\n * key used to access the XML value content when parsing XML.\n */\n xmlCharKey?: string;\n}\n","import { canUseDOM } from './canUseDOM';\n\nlet _window: Window | undefined = undefined;\n\n// Note: Accessing \"window\" in IE11 is somewhat expensive, and calling \"typeof window\"\n// hits a memory leak, whereas aliasing it and calling \"typeof _window\" does not.\n// Caching the window value at the file scope lets us minimize the impact.\ntry {\n _window = window;\n} catch (e) {\n /* no-op */\n}\n\n/**\n * Helper to get the window object. The helper will make sure to use a cached variable\n * of \"window\", to avoid overhead and memory leaks in IE11. Note that in popup scenarios the\n * window object won't match the \"global\" window object, and for these scenarios, you should\n * pass in an element hosted within the popup.\n *\n * @public\n */\nexport function getWindow(rootElement?: Element | null): Window | undefined {\n if (!canUseDOM() || typeof _window === 'undefined') {\n return undefined;\n } else {\n const el = rootElement as Element;\n\n return el && el.ownerDocument && el.ownerDocument.defaultView ? el.ownerDocument.defaultView : _window;\n }\n}\n","import { elementContainsAttribute } from './dom/elementContainsAttribute';\nimport { elementContains } from './dom/elementContains';\nimport { getParent } from './dom/getParent';\nimport { getWindow } from './dom/getWindow';\nimport { getDocument } from './dom/getDocument';\n\nconst IS_FOCUSABLE_ATTRIBUTE = 'data-is-focusable';\nconst IS_VISIBLE_ATTRIBUTE = 'data-is-visible';\nconst FOCUSZONE_ID_ATTRIBUTE = 'data-focuszone-id';\nconst FOCUSZONE_SUB_ATTRIBUTE = 'data-is-sub-focuszone';\n\n/**\n * Gets the first focusable element.\n *\n * @public\n */\nexport function getFirstFocusable(\n rootElement: HTMLElement,\n currentElement: HTMLElement,\n includeElementsInFocusZones?: boolean,\n): HTMLElement | null {\n return getNextElement(\n rootElement,\n currentElement,\n true /*checkNode*/,\n false /*suppressParentTraversal*/,\n false /*suppressChildTraversal*/,\n includeElementsInFocusZones,\n );\n}\n\n/**\n * Gets the last focusable element.\n *\n * @public\n */\nexport function getLastFocusable(\n rootElement: HTMLElement,\n currentElement: HTMLElement,\n includeElementsInFocusZones?: boolean,\n): HTMLElement | null {\n return getPreviousElement(\n rootElement,\n currentElement,\n true /*checkNode*/,\n false /*suppressParentTraversal*/,\n true /*traverseChildren*/,\n includeElementsInFocusZones,\n );\n}\n\n/**\n * Gets the first tabbable element. (The difference between focusable and tabbable is that tabbable elements are\n * focusable elements that also have tabIndex != -1.)\n * @param rootElement - The parent element to search beneath.\n * @param currentElement - The descendant of rootElement to start the search at. This element is the first one checked,\n * and iteration continues forward. Typical use passes rootElement.firstChild.\n * @param includeElementsInFocusZones - true if traversal should go into FocusZone descendants.\n * @param checkNode - Include currentElement in search when true. Defaults to true.\n * @public\n */\nexport function getFirstTabbable(\n rootElement: HTMLElement,\n currentElement: HTMLElement,\n includeElementsInFocusZones?: boolean,\n checkNode: boolean = true,\n): HTMLElement | null {\n return getNextElement(\n rootElement,\n currentElement,\n checkNode,\n false /*suppressParentTraversal*/,\n false /*suppressChildTraversal*/,\n includeElementsInFocusZones,\n false /*allowFocusRoot*/,\n true /*tabbable*/,\n );\n}\n\n/**\n * Gets the last tabbable element. (The difference between focusable and tabbable is that tabbable elements are\n * focusable elements that also have tabIndex != -1.)\n * @param rootElement - The parent element to search beneath.\n * @param currentElement - The descendant of rootElement to start the search at. This element is the first one checked,\n * and iteration continues in reverse. Typical use passes rootElement.lastChild.\n * @param includeElementsInFocusZones - true if traversal should go into FocusZone descendants.\n * @param checkNode - Include currentElement in search when true. Defaults to true.\n * @public\n */\nexport function getLastTabbable(\n rootElement: HTMLElement,\n currentElement: HTMLElement,\n includeElementsInFocusZones?: boolean,\n checkNode: boolean = true,\n): HTMLElement | null {\n return getPreviousElement(\n rootElement,\n currentElement,\n checkNode,\n false /*suppressParentTraversal*/,\n true /*traverseChildren*/,\n includeElementsInFocusZones,\n false /*allowFocusRoot*/,\n true /*tabbable*/,\n );\n}\n\n/**\n * Attempts to focus the first focusable element that is a child or child's child of the rootElement.\n *\n * @public\n * @param rootElement - Element to start the search for a focusable child.\n * @returns True if focus was set, false if it was not.\n */\nexport function focusFirstChild(rootElement: HTMLElement): boolean {\n let element: HTMLElement | null = getNextElement(rootElement, rootElement, true, false, false, true);\n\n if (element) {\n focusAsync(element);\n return true;\n }\n return false;\n}\n\n/**\n * Traverse to find the previous element.\n * If tabbable is true, the element must have tabIndex != -1.\n *\n * @public\n */\nexport function getPreviousElement(\n rootElement: HTMLElement,\n currentElement: HTMLElement | null,\n checkNode?: boolean,\n suppressParentTraversal?: boolean,\n traverseChildren?: boolean,\n includeElementsInFocusZones?: boolean,\n allowFocusRoot?: boolean,\n tabbable?: boolean,\n): HTMLElement | null {\n if (!currentElement || (!allowFocusRoot && currentElement === rootElement)) {\n return null;\n }\n\n let isCurrentElementVisible = isElementVisible(currentElement);\n\n // Check its children.\n if (\n traverseChildren &&\n isCurrentElementVisible &&\n (includeElementsInFocusZones || !(isElementFocusZone(currentElement) || isElementFocusSubZone(currentElement)))\n ) {\n const childMatch = getPreviousElement(\n rootElement,\n currentElement.lastElementChild as HTMLElement,\n true,\n true,\n true,\n includeElementsInFocusZones,\n allowFocusRoot,\n tabbable,\n );\n\n if (childMatch) {\n if ((tabbable && isElementTabbable(childMatch, true)) || !tabbable) {\n return childMatch;\n }\n\n const childMatchSiblingMatch = getPreviousElement(\n rootElement,\n childMatch.previousElementSibling as HTMLElement,\n true,\n true,\n true,\n includeElementsInFocusZones,\n allowFocusRoot,\n tabbable,\n );\n if (childMatchSiblingMatch) {\n return childMatchSiblingMatch;\n }\n\n let childMatchParent = childMatch.parentElement;\n\n // At this point if we have not found any potential matches\n // start looking at the rest of the subtree under the currentParent.\n // NOTE: We do not want to recurse here because doing so could\n // cause elements to get skipped.\n while (childMatchParent && childMatchParent !== currentElement) {\n const childMatchParentMatch = getPreviousElement(\n rootElement,\n childMatchParent.previousElementSibling as HTMLElement,\n true,\n true,\n true,\n includeElementsInFocusZones,\n allowFocusRoot,\n tabbable,\n );\n\n if (childMatchParentMatch) {\n return childMatchParentMatch;\n }\n\n childMatchParent = childMatchParent.parentElement;\n }\n }\n }\n\n // Check the current node, if it's not the first traversal.\n if (checkNode && isCurrentElementVisible && isElementTabbable(currentElement, tabbable)) {\n return currentElement;\n }\n\n // Check its previous sibling.\n const siblingMatch = getPreviousElement(\n rootElement,\n currentElement.previousElementSibling as HTMLElement,\n true,\n true,\n true,\n includeElementsInFocusZones,\n allowFocusRoot,\n tabbable,\n );\n\n if (siblingMatch) {\n return siblingMatch;\n }\n\n // Check its parent.\n if (!suppressParentTraversal) {\n return getPreviousElement(\n rootElement,\n currentElement.parentElement,\n true,\n false,\n false,\n includeElementsInFocusZones,\n allowFocusRoot,\n tabbable,\n );\n }\n\n return null;\n}\n\n/**\n * Traverse to find the next focusable element.\n * If tabbable is true, the element must have tabIndex != -1.\n *\n * @public\n * @param checkNode - Include currentElement in search when true.\n */\nexport function getNextElement(\n rootElement: HTMLElement,\n currentElement: HTMLElement | null,\n checkNode?: boolean,\n suppressParentTraversal?: boolean,\n suppressChildTraversal?: boolean,\n includeElementsInFocusZones?: boolean,\n allowFocusRoot?: boolean,\n tabbable?: boolean,\n): HTMLElement | null {\n if (!currentElement || (currentElement === rootElement && suppressChildTraversal && !allowFocusRoot)) {\n return null;\n }\n\n let isCurrentElementVisible = isElementVisible(currentElement);\n\n // Check the current node, if it's not the first traversal.\n if (checkNode && isCurrentElementVisible && isElementTabbable(currentElement, tabbable)) {\n return currentElement;\n }\n\n // Check its children.\n if (\n !suppressChildTraversal &&\n isCurrentElementVisible &&\n (includeElementsInFocusZones || !(isElementFocusZone(currentElement) || isElementFocusSubZone(currentElement)))\n ) {\n const childMatch = getNextElement(\n rootElement,\n currentElement.firstElementChild as HTMLElement,\n true,\n true,\n false,\n includeElementsInFocusZones,\n allowFocusRoot,\n tabbable,\n );\n\n if (childMatch) {\n return childMatch;\n }\n }\n\n if (currentElement === rootElement) {\n return null;\n }\n\n // Check its sibling.\n const siblingMatch = getNextElement(\n rootElement,\n currentElement.nextElementSibling as HTMLElement,\n true,\n true,\n false,\n includeElementsInFocusZones,\n allowFocusRoot,\n tabbable,\n );\n\n if (siblingMatch) {\n return siblingMatch;\n }\n\n if (!suppressParentTraversal) {\n return getNextElement(\n rootElement,\n currentElement.parentElement,\n false,\n false,\n true,\n includeElementsInFocusZones,\n allowFocusRoot,\n tabbable,\n );\n }\n\n return null;\n}\n\n/**\n * Determines if an element is visible.\n *\n * @public\n */\nexport function isElementVisible(element: HTMLElement | undefined | null): boolean {\n // If the element is not valid, return false.\n if (!element || !element.getAttribute) {\n return false;\n }\n\n const visibilityAttribute = element.getAttribute(IS_VISIBLE_ATTRIBUTE);\n\n // If the element is explicitly marked with the visibility attribute, return that value as boolean.\n if (visibilityAttribute !== null && visibilityAttribute !== undefined) {\n return visibilityAttribute === 'true';\n }\n\n // Fallback to other methods of determining actual visibility.\n return (\n element.offsetHeight !== 0 ||\n element.offsetParent !== null ||\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (element as any).isVisible === true\n ); // used as a workaround for testing.\n}\n\n/**\n * Determines if an element is visible and not hidden\n * @param element - Element to check\n * @returns Returns true if the given element is visible and not hidden\n *\n * @public\n */\nexport function isElementVisibleAndNotHidden(element: HTMLElement | undefined | null): boolean {\n return (\n !!element &&\n isElementVisible(element) &&\n !element.hidden &&\n window.getComputedStyle(element).visibility !== 'hidden'\n );\n}\n\n/**\n * Determines if an element can receive focus programmatically or via a mouse click.\n * If checkTabIndex is true, additionally checks to ensure the element can be focused with the tab key,\n * meaning tabIndex != -1.\n *\n * @public\n */\nexport function isElementTabbable(element: HTMLElement, checkTabIndex?: boolean): boolean {\n // If this element is null or is disabled, it is not considered tabbable.\n if (!element || (element as HTMLButtonElement).disabled) {\n return false;\n }\n\n let tabIndex = 0;\n let tabIndexAttributeValue = null;\n\n if (element && element.getAttribute) {\n tabIndexAttributeValue = element.getAttribute('tabIndex');\n\n if (tabIndexAttributeValue) {\n tabIndex = parseInt(tabIndexAttributeValue, 10);\n }\n }\n\n let isFocusableAttribute = element.getAttribute ? element.getAttribute(IS_FOCUSABLE_ATTRIBUTE) : null;\n let isTabIndexSet = tabIndexAttributeValue !== null && tabIndex >= 0;\n\n const result =\n !!element &&\n isFocusableAttribute !== 'false' &&\n (element.tagName === 'A' ||\n element.tagName === 'BUTTON' ||\n element.tagName === 'INPUT' ||\n element.tagName === 'TEXTAREA' ||\n element.tagName === 'SELECT' ||\n isFocusableAttribute === 'true' ||\n isTabIndexSet);\n\n return checkTabIndex ? tabIndex !== -1 && result : result;\n}\n\n/**\n * Determines if a given element is a focus zone.\n *\n * @public\n */\nexport function isElementFocusZone(element?: HTMLElement): boolean {\n return !!(element && element.getAttribute && !!element.getAttribute(FOCUSZONE_ID_ATTRIBUTE));\n}\n\n/**\n * Determines if a given element is a focus sub zone.\n *\n * @public\n */\nexport function isElementFocusSubZone(element?: HTMLElement): boolean {\n return !!(element && element.getAttribute && element.getAttribute(FOCUSZONE_SUB_ATTRIBUTE) === 'true');\n}\n\n/**\n * Determines if an element, or any of its children, contain focus.\n *\n * @public\n */\nexport function doesElementContainFocus(element: HTMLElement): boolean {\n let document = getDocument(element);\n let currentActiveElement: HTMLElement | undefined = document && (document.activeElement as HTMLElement);\n if (currentActiveElement && elementContains(element, currentActiveElement)) {\n return true;\n }\n return false;\n}\n\n/**\n * Determines if an, or any of its ancestors, sepcificies that it doesn't want focus to wrap\n * @param element - element to start searching from\n * @param noWrapDataAttribute - the no wrap data attribute to match (either)\n * @returns true if focus should wrap, false otherwise\n */\nexport function shouldWrapFocus(\n element: HTMLElement,\n noWrapDataAttribute: 'data-no-vertical-wrap' | 'data-no-horizontal-wrap',\n): boolean {\n return elementContainsAttribute(element, noWrapDataAttribute) === 'true' ? false : true;\n}\n\nlet targetToFocusOnNextRepaint: HTMLElement | { focus: () => void } | null | undefined = undefined;\n\n/**\n * Sets focus to an element asynchronously. The focus will be set at the next browser repaint,\n * meaning it won't cause any extra recalculations. If more than one focusAsync is called during one frame,\n * only the latest called focusAsync element will actually be focused\n * @param element - The element to focus\n */\nexport function focusAsync(element: HTMLElement | { focus: () => void } | undefined | null): void {\n if (element) {\n // An element was already queued to be focused, so replace that one with the new element\n if (targetToFocusOnNextRepaint) {\n targetToFocusOnNextRepaint = element;\n return;\n }\n\n targetToFocusOnNextRepaint = element;\n\n const win = getWindow(element as Element);\n\n if (win) {\n // element.focus() is a no-op if the element is no longer in the DOM, meaning this is always safe\n win.requestAnimationFrame(() => {\n targetToFocusOnNextRepaint && targetToFocusOnNextRepaint.focus();\n\n // We are done focusing for this frame, so reset the queued focus element\n targetToFocusOnNextRepaint = undefined;\n });\n }\n }\n}\n\n/**\n * Finds the closest focusable element via an index path from a parent. See\n * `getElementIndexPath` for getting an index path from an element to a child.\n */\nexport function getFocusableByIndexPath(parent: HTMLElement, path: number[]): HTMLElement | undefined {\n let element = parent;\n\n for (const index of path) {\n const nextChild = element.children[Math.min(index, element.children.length - 1)] as HTMLElement;\n\n if (!nextChild) {\n break;\n }\n element = nextChild;\n }\n\n element =\n isElementTabbable(element) && isElementVisible(element)\n ? element\n : getNextElement(parent, element, true) || getPreviousElement(parent, element)!;\n\n return element as HTMLElement;\n}\n\n/**\n * Finds the element index path from a parent element to a child element.\n *\n * If you had this node structure: \"A has children [B, C] and C has child D\",\n * the index path from A to D would be [1, 0], or `parent.chidren[1].children[0]`.\n */\nexport function getElementIndexPath(fromElement: HTMLElement, toElement: HTMLElement): number[] {\n const path: number[] = [];\n\n while (toElement && fromElement && toElement !== fromElement) {\n const parent = getParent(toElement, true);\n\n if (parent === null) {\n return [];\n }\n\n path.unshift(Array.prototype.indexOf.call(parent.children, toElement));\n toElement = parent;\n }\n\n return path;\n}\n","import { findElementRecursive } from './findElementRecursive';\n\n/**\n * Determines if an element, or any of its ancestors, contain the given attribute\n * @param element - element to start searching at\n * @param attribute - the attribute to search for\n * @returns the value of the first instance found\n */\nexport function elementContainsAttribute(element: HTMLElement, attribute: string): string | null {\n const elementMatch = findElementRecursive(element, (testElement: HTMLElement) => testElement.hasAttribute(attribute));\n\n return elementMatch && elementMatch.getAttribute(attribute);\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the\r\nexport { Util, CorrelationIdHelper, DateTimeUtils, dateTimeUtilsNow, dateTimeUtilsDuration, UrlHelper, isInternalApplicationInsightsEndpoint, createDistributedTraceContextFromTrace } from \"./Util\";\r\nexport { parseConnectionString, ConnectionStringParser } from \"./ConnectionStringParser\";\r\nexport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nexport { DisabledPropertyName, ProcessLegacy, SampleRate, HttpMethod, DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, strNotSpecified } from \"./Constants\";\r\nexport { Envelope } from \"./Telemetry/Common/Envelope\";\r\nexport { Event } from \"./Telemetry/Event\";\r\nexport { Exception } from \"./Telemetry/Exception\";\r\nexport { Metric } from \"./Telemetry/Metric\";\r\nexport { PageView } from \"./Telemetry/PageView\";\r\nexport { RemoteDependencyData } from \"./Telemetry/RemoteDependencyData\";\r\nexport { Trace } from \"./Telemetry/Trace\";\r\nexport { PageViewPerformance } from \"./Telemetry/PageViewPerformance\";\r\nexport { Data } from \"./Telemetry/Common/Data\";\r\nexport { SeverityLevel } from \"./Interfaces/Contracts/SeverityLevel\";\r\nexport { ConfigurationManager } from \"./Interfaces/IConfig\";\r\nexport { ContextTagKeys } from \"./Interfaces/Contracts/ContextTagKeys\";\r\nexport { DataSanitizer, dataSanitizeKeyAndAddUniqueness, dataSanitizeKey, dataSanitizeString, dataSanitizeUrl, dataSanitizeMessage, dataSanitizeException, dataSanitizeProperties, dataSanitizeMeasurements, dataSanitizeId, dataSanitizeInput, dsPadNumber } from \"./Telemetry/Common/DataSanitizer\";\r\nexport { TelemetryItemCreator, createTelemetryItem } from \"./TelemetryItemCreator\";\r\nexport { CtxTagKeys, Extensions } from \"./Interfaces/PartAExtensions\";\r\nexport { DistributedTracingModes } from \"./Enums\";\r\nexport { stringToBoolOrDefault, msToTimeSpan, getExtensionByName, isCrossOriginError } from \"./HelperFuncs\";\r\nexport { isBeaconsSupported as isBeaconApiSupported, createTraceParent, parseTraceParent, isValidTraceId, isValidSpanId, isValidTraceParent, isSampledFlag, formatTraceParent, findW3cTraceParent } from \"@microsoft/applicationinsights-core-js\";\r\nexport { createDomEvent } from \"./DomHelperFuncs\";\r\nexport { utlDisableStorage, utlEnableStorage, utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage, utlRemoveStorage, utlCanUseSessionStorage, utlGetSessionStorageKeys, utlGetSessionStorage, utlSetSessionStorage, utlRemoveSessionStorage } from \"./StorageHelperFuncs\";\r\nexport { urlParseUrl, urlGetAbsoluteUrl, urlGetPathName, urlGetCompleteUrl, urlParseHost, urlParseFullHost } from \"./UrlHelperFuncs\";\r\nexport var PropertiesPluginIdentifier = \"AppInsightsPropertiesPlugin\";\r\nexport var BreezeChannelIdentifier = \"AppInsightsChannelPlugin\";\r\nexport var AnalyticsPluginIdentifier = \"ApplicationInsightsAnalytics\";\r\n//# sourceMappingURL=applicationinsights-common.js.map","import * as React from 'react';\nimport type { IStyle, ITheme } from '../../Styling';\nimport type { IStyleFunctionOrObject } from '../../Utilities';\n\n/**\n * {@docCategory Image}\n */\nexport interface IImage {}\n\n/**\n * {@docCategory Image}\n */\nexport interface IImageProps extends React.ImgHTMLAttributes, React.RefAttributes {\n /**\n * Call to provide customized styling that will layer on top of the variant rules\n */\n styles?: IStyleFunctionOrObject;\n\n /**\n * Theme provided by HOC.\n */\n theme?: ITheme;\n\n /**\n * Additional css class to apply to the Component\n * @defaultvalue undefined\n */\n className?: string;\n\n /**\n * If true, fades the image in when loaded.\n * @defaultvalue true\n */\n shouldFadeIn?: boolean;\n\n /**\n * If true, the image starts as visible and is hidden on error. Otherwise, the image is hidden until\n * it is successfully loaded. This disables shouldFadeIn.\n * @defaultvalue false;\n */\n shouldStartVisible?: boolean;\n\n /**\n * Used to determine how the image is scaled and cropped to fit the frame.\n *\n * @defaultvalue If both dimensions are provided, then the image is fit using `ImageFit.scale`.\n * Otherwise, the image won't be scaled or cropped.\n */\n imageFit?: ImageFit;\n\n /**\n * @deprecated Not used. Use `onLoadingStateChange` and re-render the Image with a different src.\n */\n errorSrc?: string;\n\n /**\n * If true, the image frame will expand to fill its parent container.\n */\n maximizeFrame?: boolean;\n\n /**\n * Optional callback method for when the image load state has changed.\n * The 'loadState' parameter indicates the current state of the Image.\n */\n onLoadingStateChange?: (loadState: ImageLoadState) => void;\n\n /**\n * Specifies the cover style to be used for this image. If not\n * specified, this will be dynamically calculated based on the\n * aspect ratio for the image.\n */\n coverStyle?: ImageCoverStyle;\n\n /**\n * Allows for browser-level image lazy-loading.\n */\n loading?: 'lazy' | 'eager';\n}\n\n/**\n * The possible methods that can be used to fit the image.\n * {@docCategory Image}\n */\nexport enum ImageFit {\n /**\n * The image is not scaled. The image is centered and cropped within the content box.\n */\n center = 0,\n\n /**\n * The image is scaled to maintain its aspect ratio while being fully contained within the frame. The image will\n * be centered horizontally and vertically within the frame. The space in the top and bottom or in the sides of\n * the frame will be empty depending on the difference in aspect ratio between the image and the frame.\n */\n contain = 1,\n\n /**\n * The image is scaled to maintain its aspect ratio while filling the frame. Portions of the image will be cropped\n * from the top and bottom, or the sides, depending on the difference in aspect ratio between the image and the frame.\n */\n cover = 2,\n\n /**\n * Neither the image nor the frame are scaled. If their sizes do not match, the image will either be cropped or the\n * frame will have empty space.\n */\n none = 3,\n\n /**\n * The image will be centered horizontally and vertically within the frame and maintains its aspect ratio. It will\n * behave as ImageFit.center if the image's natural height or width is less than the Image frame's height or width,\n * but if both natural height and width are larger than the frame it will behave as ImageFit.cover.\n */\n centerCover = 4,\n\n /**\n * The image will be centered horizontally and vertically within the frame and maintains its aspect ratio. It will\n * behave as ImageFit.center if the image's natural height and width is less than the Image frame's height and width,\n * but if either natural height or width are larger than the frame it will behave as ImageFit.contain.\n */\n centerContain = 5,\n}\n\n/**\n * The cover style to be used on the image\n * {@docCategory Image}\n */\nexport enum ImageCoverStyle {\n /**\n * The image will be shown at 100% height of container and the width will be scaled accordingly\n */\n landscape = 0,\n\n /**\n * The image will be shown at 100% width of container and the height will be scaled accordingly\n */\n portrait = 1,\n}\n\n/**\n * {@docCategory Image}\n */\nexport enum ImageLoadState {\n /**\n * The image has not yet been loaded, and there is no error yet.\n */\n notLoaded = 0,\n\n /**\n * The image has been loaded successfully.\n */\n loaded = 1,\n\n /**\n * An error has been encountered while loading the image.\n */\n error = 2,\n\n /**\n * @deprecated Not used. Use `onLoadingStateChange` and re-render the Image with a different src.\n */\n errorLoaded = 3,\n}\n\n/**\n * {@docCategory Image}\n */\nexport interface IImageStyleProps {\n /**\n * Accept theme prop.\n */\n theme: ITheme;\n\n /**\n * Accept custom classNames\n */\n className?: string;\n\n /**\n * If true, the image frame will expand to fill its parent container.\n */\n maximizeFrame?: boolean;\n\n /**\n * If true, the image is loaded\n */\n isLoaded?: boolean;\n\n /**\n * If true, fades the image in when loaded.\n * @defaultvalue true\n */\n shouldFadeIn?: boolean;\n\n /**\n * If true, the image starts as visible and is hidden on error. Otherwise, the image is hidden until\n * it is successfully loaded. This disables shouldFadeIn.\n * @defaultvalue false;\n */\n shouldStartVisible?: boolean;\n\n /**\n * If true the image is coverStyle landscape instead of portrait\n */\n isLandscape?: boolean;\n\n /**\n * ImageFit booleans for center, cover, contain, centerContain, centerCover, none\n */\n isCenter?: boolean;\n isContain?: boolean;\n isCover?: boolean;\n isCenterContain?: boolean;\n isCenterCover?: boolean;\n isNone?: boolean;\n\n /**\n * if true image load is in error\n */\n isError?: boolean;\n\n /**\n * if true, imageFit is undefined\n */\n isNotImageFit?: boolean;\n\n /**\n * Image width value\n */\n width?: number | string;\n\n /**\n * Image height value\n */\n height?: number | string;\n}\n\n/**\n * {@docCategory Image}\n */\nexport interface IImageStyles {\n /**\n * Style set for the root div element.\n */\n root: IStyle;\n /**\n * Style set for the img element.\n */\n image: IStyle;\n}\n","export const DirectionalHint = {\n /**\n * Appear above the target element, with the left edges of the callout and target aligning.\n */\n topLeftEdge: 0 as 0,\n\n /**\n * Appear above the target element, with the centers of the callout and target aligning.\n */\n topCenter: 1 as 1,\n\n /**\n * Appear above the target element, with the right edges of the callout and target aligning.\n */\n topRightEdge: 2 as 2,\n\n /**\n * Appear above the target element, aligning with the target element such that the callout tends toward\n * the center of the screen.\n */\n topAutoEdge: 3 as 3,\n\n /**\n * Appear below the target element, with the left edges of the callout and target aligning.\n */\n bottomLeftEdge: 4 as 4,\n\n /**\n * Appear below the target element, with the centers of the callout and target aligning.\n */\n bottomCenter: 5 as 5,\n\n /**\n * Appear below the target element, with the right edges of the callout and target aligning.\n */\n bottomRightEdge: 6 as 6,\n\n /**\n * Appear below the target element, aligning with the target element such that the callout tends toward\n * the center of the screen.\n */\n bottomAutoEdge: 7 as 7,\n\n /**\n * Appear to the left of the target element, with the top edges of the callout and target aligning.\n */\n leftTopEdge: 8 as 8,\n\n /**\n * Appear to the left of the target element, with the centers of the callout and target aligning.\n */\n leftCenter: 9 as 9,\n\n /**\n * Appear to the left of the target element, with the bottom edges of the callout and target aligning.\n */\n leftBottomEdge: 10 as 10,\n\n /**\n * Appear to the right of the target element, with the top edges of the callout and target aligning.\n */\n rightTopEdge: 11 as 11,\n\n /**\n * Appear to the right of the target element, with the centers of the callout and target aligning.\n */\n rightCenter: 12 as 12,\n\n /**\n * Appear to the right of the target element, with the bottom edges of the callout and target aligning.\n */\n rightBottomEdge: 13 as 13,\n};\n\nexport type DirectionalHint = typeof DirectionalHint[keyof typeof DirectionalHint];\n","/**\n * Simulated enum for keycodes. These will get inlined by uglify when used much like an enum\n *\n * @public\n * {@docCategory KeyCodes}\n */\nexport const KeyCodes = {\n backspace: 8 as 8,\n tab: 9 as 9,\n enter: 13 as 13,\n shift: 16 as 16,\n ctrl: 17 as 17,\n alt: 18 as 18,\n pauseBreak: 19 as 19,\n capslock: 20 as 20,\n escape: 27 as 27,\n space: 32 as 32,\n pageUp: 33 as 33,\n pageDown: 34 as 34,\n end: 35 as 35,\n home: 36 as 36,\n left: 37 as 37,\n up: 38 as 38,\n right: 39 as 39,\n down: 40 as 40,\n insert: 45 as 45,\n del: 46 as 46,\n zero: 48 as 48,\n one: 49 as 49,\n two: 50 as 50,\n three: 51 as 51,\n four: 52 as 52,\n five: 53 as 53,\n six: 54 as 54,\n seven: 55 as 55,\n eight: 56 as 56,\n nine: 57 as 57,\n colon: 58 as 58,\n a: 65 as 65,\n b: 66 as 66,\n c: 67 as 67,\n d: 68 as 68,\n e: 69 as 69,\n f: 70 as 70,\n g: 71 as 71,\n h: 72 as 72,\n i: 73 as 73,\n j: 74 as 74,\n k: 75 as 75,\n l: 76 as 76,\n m: 77 as 77,\n n: 78 as 78,\n o: 79 as 79,\n p: 80 as 80,\n q: 81 as 81,\n r: 82 as 82,\n s: 83 as 83,\n t: 84 as 84,\n u: 85 as 85,\n v: 86 as 86,\n w: 87 as 87,\n x: 88 as 88,\n y: 89 as 89,\n z: 90 as 90,\n leftWindow: 91 as 91,\n rightWindow: 92 as 92,\n select: 93 as 93,\n /* eslint-disable @typescript-eslint/naming-convention */\n zero_numpad: 96 as 96,\n one_numpad: 97 as 97,\n two_numpad: 98 as 98,\n three_numpad: 99 as 99,\n four_numpad: 100 as 100,\n five_numpad: 101 as 101,\n six_numpad: 102 as 102,\n seven_numpad: 103 as 103,\n eight_numpad: 104 as 104,\n nine_numpad: 105 as 105,\n /* eslint-enable @typescript-eslint/naming-convention */\n multiply: 106 as 106,\n add: 107 as 107,\n subtract: 109 as 109,\n decimalPoint: 110 as 110,\n divide: 111 as 111,\n f1: 112 as 112,\n f2: 113 as 113,\n f3: 114 as 114,\n f4: 115 as 115,\n f5: 116 as 116,\n f6: 117 as 117,\n f7: 118 as 118,\n f8: 119 as 119,\n f9: 120 as 120,\n f10: 121 as 121,\n f11: 122 as 122,\n f12: 123 as 123,\n numlock: 144 as 144,\n scrollLock: 145 as 145,\n semicolon: 186 as 186,\n equalSign: 187 as 187,\n comma: 188 as 188,\n dash: 189 as 189,\n period: 190 as 190,\n forwardSlash: 191 as 191,\n graveAccent: 192 as 192,\n openBracket: 219 as 219,\n backSlash: 220 as 220,\n closeBracket: 221 as 221,\n singleQuote: 222 as 222,\n};\nexport type KeyCodes = number;\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { BlobImmutabilityPolicyMode } from \"./generatedModels\";\nimport {\n LeaseAccessConditions,\n SequenceNumberAccessConditions,\n AppendPositionAccessConditions,\n AccessTier,\n CpkInfo,\n BlobDownloadResponseModel,\n} from \"./generatedModels\";\nimport { EncryptionAlgorithmAES25 } from \"./utils/constants\";\n\n/**\n * Blob tags.\n */\nexport type Tags = Record;\n\n/**\n * A map of name-value pairs to associate with the resource.\n */\nexport interface Metadata {\n /**\n * A name-value pair.\n */\n [propertyName: string]: string;\n}\n\n/**\n * standard HTTP conditional headers and tags condition.\n */\nexport interface ModifiedAccessConditions\n extends MatchConditions,\n ModificationConditions,\n TagConditions {}\n\n/**\n * standard HTTP conditional headers, tags condition and lease condition\n */\nexport interface BlobRequestConditions extends ModifiedAccessConditions, LeaseAccessConditions {}\n\n/**\n * Conditions to add to the creation of this page blob.\n */\nexport interface PageBlobRequestConditions\n extends BlobRequestConditions,\n SequenceNumberAccessConditions {}\n\n/**\n * Conditions to add to the creation of this append blob.\n */\nexport interface AppendBlobRequestConditions\n extends BlobRequestConditions,\n AppendPositionAccessConditions {}\n\n/**\n * Specifies HTTP options for conditional requests based on modification time.\n */\nexport interface ModificationConditions {\n /**\n * Specify this header value to operate only on a blob if it has been modified since the\n * specified date/time.\n */\n ifModifiedSince?: Date;\n /**\n * Specify this header value to operate only on a blob if it has not been modified since the\n * specified date/time.\n */\n ifUnmodifiedSince?: Date;\n}\n\n/**\n * Specifies HTTP options for conditional requests based on ETag matching.\n */\nexport interface MatchConditions {\n /**\n * Specify an ETag value to operate only on blobs with a matching value.\n */\n ifMatch?: string;\n /**\n * Specify an ETag value to operate only on blobs without a matching value.\n */\n ifNoneMatch?: string;\n}\n\n/**\n * Specifies HTTP options for conditional requests based on blob tags.\n */\nexport interface TagConditions {\n /**\n * Optional SQL statement to apply to the tags of the blob.\n */\n tagConditions?: string;\n}\n\n/**\n * Conditions to meet for the container.\n */\nexport interface ContainerRequestConditions extends LeaseAccessConditions, ModificationConditions {}\n\n/**\n * Represents the access tier on a blob.\n * For detailed information about block blob level tiering see {@link https://docs.microsoft.com/azure/storage/blobs/storage-blob-storage-tiers|Hot, cool and archive storage tiers.}\n */\nexport enum BlockBlobTier {\n /**\n * Optimized for storing data that is accessed frequently.\n */\n Hot = \"Hot\",\n /**\n * Optimized for storing data that is infrequently accessed and stored for at least 30 days.\n */\n Cool = \"Cool\",\n /**\n * Optimized for storing data that is rarely accessed and stored for at least 180 days\n * with flexible latency requirements (on the order of hours).\n */\n Archive = \"Archive\",\n}\n\n/**\n * Specifies the page blob tier to set the blob to. This is only applicable to page blobs on premium storage accounts.\n * Please see {@link https://docs.microsoft.com/azure/storage/storage-premium-storage#scalability-and-performance-targets|here}\n * for detailed information on the corresponding IOPS and throughput per PageBlobTier.\n */\nexport enum PremiumPageBlobTier {\n /**\n * P4 Tier.\n */\n P4 = \"P4\",\n /**\n * P6 Tier.\n */\n P6 = \"P6\",\n /**\n * P10 Tier.\n */\n P10 = \"P10\",\n /**\n * P15 Tier.\n */\n P15 = \"P15\",\n /**\n * P20 Tier.\n */\n P20 = \"P20\",\n /**\n * P30 Tier.\n */\n P30 = \"P30\",\n /**\n * P40 Tier.\n */\n P40 = \"P40\",\n /**\n * P50 Tier.\n */\n P50 = \"P50\",\n /**\n * P60 Tier.\n */\n P60 = \"P60\",\n /**\n * P70 Tier.\n */\n P70 = \"P70\",\n /**\n * P80 Tier.\n */\n P80 = \"P80\",\n}\n\nexport function toAccessTier(\n tier: BlockBlobTier | PremiumPageBlobTier | string | undefined\n): AccessTier | undefined {\n if (tier === undefined) {\n return undefined;\n }\n\n return tier as AccessTier; // No more check if string is a valid AccessTier, and left this to underlay logic to decide(service).\n}\n\nexport function ensureCpkIfSpecified(cpk: CpkInfo | undefined, isHttps: boolean): void {\n if (cpk && !isHttps) {\n throw new RangeError(\"Customer-provided encryption key must be used over HTTPS.\");\n }\n\n if (cpk && !cpk.encryptionAlgorithm) {\n cpk.encryptionAlgorithm = EncryptionAlgorithmAES25;\n }\n}\n\n/**\n * Specifies the Replication Status of a blob. This is used when a storage account has\n * Object Replication Policy(s) applied. See {@link ObjectReplicationPolicy} and {@link ObjectReplicationRule}.\n */\nexport type ObjectReplicationStatus = \"complete\" | \"failed\";\n\n/**\n * Contains the Object Replication Rule ID and {@link ObjectReplicationStatus} of a blob.\n * There can be more than one {@link ObjectReplicationRule} under a {@link ObjectReplicationPolicy}.\n */\nexport interface ObjectReplicationRule {\n /**\n * The Object Replication Rule ID.\n */\n ruleId: string;\n\n /**\n * The Replication Status\n */\n replicationStatus: ObjectReplicationStatus;\n}\n\n/**\n * Contains Object Replication Policy ID and the respective list of {@link ObjectReplicationRule}.\n * This is used when retrieving the Object Replication Properties on the source blob. The policy id for the\n * destination blob is set in ObjectReplicationDestinationPolicyId of the respective method responses\n * (e.g. {@link BlobProperties.ObjectReplicationDestinationPolicyId}.\n */\nexport interface ObjectReplicationPolicy {\n /**\n * The Object Replication Policy ID.\n */\n policyId: string;\n\n /**\n * The Rule ID(s) and respective Replication Status(s) that are under the Policy ID.\n */\n rules: ObjectReplicationRule[];\n}\n\n/**\n * Contains response data for the {@link BlobClient.download} operation.\n */\nexport interface BlobDownloadResponseParsed extends BlobDownloadResponseModel {\n /**\n * Parsed Object Replication Policy Id, Rule Id(s) and status of the source blob.\n */\n objectReplicationSourceProperties?: ObjectReplicationPolicy[];\n\n /**\n * Object Replication Policy Id of the destination blob.\n */\n objectReplicationDestinationPolicyId?: string;\n}\n\n/**\n * The type of a {@link BlobQueryArrowField}.\n */\nexport type BlobQueryArrowFieldType =\n | \"int64\"\n | \"bool\"\n | \"timestamp[ms]\"\n | \"string\"\n | \"double\"\n | \"decimal\";\n\n/**\n * Describe a field in {@link BlobQueryArrowConfiguration}.\n */\nexport interface BlobQueryArrowField {\n /**\n * The type of the field.\n */\n type: BlobQueryArrowFieldType;\n\n /**\n * The name of the field.\n */\n name?: string;\n\n /**\n * The precision of the field. Required if type is \"decimal\".\n */\n precision?: number;\n\n /**\n * The scale of the field. Required if type is is \"decimal\".\n */\n scale?: number;\n}\n\n/**\n * Describe immutable policy for blob.\n */\nexport interface BlobImmutabilityPolicy {\n /**\n * Specifies the date time when the blobs immutability policy is set to expire.\n */\n expiriesOn?: Date;\n /**\n * Specifies the immutability policy mode to set on the blob.\n */\n policyMode?: BlobImmutabilityPolicyMode;\n}\n\n/**\n * Represents authentication information in Authorization, ProxyAuthorization,\n * WWW-Authenticate, and Proxy-Authenticate header values.\n */\nexport interface HttpAuthorization {\n /**\n * The scheme to use for authorization.\n */\n scheme: string;\n\n /**\n * the credentials containing the authentication information of the user agent for the resource being requested.\n */\n value: string;\n}\n\n/**\n * Defines the known cloud audiences for Storage.\n */\nexport enum StorageBlobAudience {\n /**\n * The OAuth scope to use to retrieve an AAD token for Azure Storage.\n */\n StorageOAuthScopes = \"https://storage.azure.com/.default\",\n /**\n * The OAuth scope to use to retrieve an AAD token for Azure Disk.\n */\n DiskComputeOAuthScopes = \"https://disk.compute.azure.com/.default\",\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport class StorageSharedKeyCredential {}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { _throwInternal, dumpObj, getExceptionName, getGlobal, getGlobalInst, isNullOrUndefined, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { StorageType } from \"./Enums\";\r\nimport { _DYN_REMOVE_ITEM, _DYN_TO_STRING } from \"./__DynamicConstants\";\r\nvar _canUseLocalStorage = undefined;\r\nvar _canUseSessionStorage = undefined;\r\n/**\r\n * Gets the localStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getLocalStorageObject() {\r\n if (utlCanUseLocalStorage()) {\r\n return _getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Tests storage object (localStorage or sessionStorage) to verify that it is usable\r\n * More details here: https://mathiasbynens.be/notes/localstorage-pattern\r\n * @param storageType Type of storage\r\n * @return {Storage} Returns storage object verified that it is usable\r\n */\r\nfunction _getVerifiedStorageObject(storageType) {\r\n try {\r\n if (isNullOrUndefined(getGlobal())) {\r\n return null;\r\n }\r\n var uid = (new Date)[_DYN_TO_STRING /* @min:%2etoString */]();\r\n var storage = getGlobalInst(storageType === StorageType.LocalStorage ? \"localStorage\" : \"sessionStorage\");\r\n storage.setItem(uid, uid);\r\n var fail = storage.getItem(uid) !== uid;\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](uid);\r\n if (!fail) {\r\n return storage;\r\n }\r\n }\r\n catch (exception) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n}\r\n/**\r\n * Gets the sessionStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getSessionStorageObject() {\r\n if (utlCanUseSessionStorage()) {\r\n return _getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Disables the global SDK usage of local or session storage if available\r\n */\r\nexport function utlDisableStorage() {\r\n _canUseLocalStorage = false;\r\n _canUseSessionStorage = false;\r\n}\r\n/**\r\n * Re-enables the global SDK usage of local or session storage if available\r\n */\r\nexport function utlEnableStorage() {\r\n _canUseLocalStorage = utlCanUseLocalStorage(true);\r\n _canUseSessionStorage = utlCanUseSessionStorage(true);\r\n}\r\n/**\r\n * Returns whether LocalStorage can be used, if the reset parameter is passed a true this will override\r\n * any previous disable calls.\r\n * @param reset - Should the usage be reset and determined only based on whether LocalStorage is available\r\n */\r\nexport function utlCanUseLocalStorage(reset) {\r\n if (reset || _canUseLocalStorage === undefined) {\r\n _canUseLocalStorage = !!_getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n return _canUseLocalStorage;\r\n}\r\nexport function utlGetLocalStorage(logger, name) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 1 /* _eInternalMessageId.BrowserCannotReadLocalStorage */, \"Browser failed read of local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return null;\r\n}\r\nexport function utlSetLocalStorage(logger, name, data) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 3 /* _eInternalMessageId.BrowserCannotWriteLocalStorage */, \"Browser failed write to local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlRemoveStorage(logger, name) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 5 /* _eInternalMessageId.BrowserFailedRemovalFromLocalStorage */, \"Browser failed removal of local storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlCanUseSessionStorage(reset) {\r\n if (reset || _canUseSessionStorage === undefined) {\r\n _canUseSessionStorage = !!_getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return _canUseSessionStorage;\r\n}\r\nexport function utlGetSessionStorageKeys() {\r\n var keys = [];\r\n if (utlCanUseSessionStorage()) {\r\n objForEachKey(getGlobalInst(\"sessionStorage\"), function (key) {\r\n keys.push(key);\r\n });\r\n }\r\n return keys;\r\n}\r\nexport function utlGetSessionStorage(logger, name) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 2 /* _eInternalMessageId.BrowserCannotReadSessionStorage */, \"Browser failed read of session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return null;\r\n}\r\nexport function utlSetSessionStorage(logger, name, data) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 4 /* _eInternalMessageId.BrowserCannotWriteSessionStorage */, \"Browser failed write to session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlRemoveSessionStorage(logger, name) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 6 /* _eInternalMessageId.BrowserFailedRemovalFromSessionStorage */, \"Browser failed removal of session storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=StorageHelperFuncs.js.map","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n this._pendingLocation = location;\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this.unlisten) {\n // Any pre-mount location changes have been captured at\n // this point, so unregister the listener.\n this.unlisten();\n }\n if (!this.props.staticContext) {\n this.unlisten = this.props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n }\n });\n }\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(RouterContext).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(RouterContext).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AuthError } from \"@azure/msal-common\";\n\n/**\n * BrowserAuthErrorMessage class containing string constants used by error codes and messages.\n */\nexport const BrowserConfigurationAuthErrorMessage = {\n redirectUriNotSet: {\n code: \"redirect_uri_empty\",\n desc: \"A redirect URI is required for all calls, and none has been set.\"\n },\n postLogoutUriNotSet: {\n code: \"post_logout_uri_empty\",\n desc: \"A post logout redirect has not been set.\"\n },\n storageNotSupportedError: {\n code: \"storage_not_supported\",\n desc: \"Given storage configuration option was not supported.\"\n },\n noRedirectCallbacksSet: {\n code: \"no_redirect_callbacks\",\n desc: \"No redirect callbacks have been set. Please call setRedirectCallbacks() with the appropriate function arguments before continuing. \" +\n \"More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics.\"\n },\n invalidCallbackObject: {\n code: \"invalid_callback_object\",\n desc: \"The object passed for the callback was invalid. \" +\n \"More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics.\"\n },\n stubPcaInstanceCalled: {\n code: \"stubbed_public_client_application_called\",\n desc: \"Stub instance of Public Client Application was called. If using msal-react, please ensure context is not used without a provider. For more visit: aka.ms/msaljs/browser-errors\"\n },\n inMemRedirectUnavailable: {\n code: \"in_mem_redirect_unavailable\",\n desc: \"Redirect cannot be supported. In-memory storage was selected and storeAuthStateInCookie=false, which would cause the library to be unable to handle the incoming hash. If you would like to use the redirect API, please use session/localStorage or set storeAuthStateInCookie=true.\"\n }\n};\n\n/**\n * Browser library error class thrown by the MSAL.js library for SPAs\n */\nexport class BrowserConfigurationAuthError extends AuthError {\n\n constructor(errorCode: string, errorMessage?: string) {\n super(errorCode, errorMessage);\n this.name = \"BrowserConfigurationAuthError\";\n\n Object.setPrototypeOf(this, BrowserConfigurationAuthError.prototype);\n }\n\n /**\n * Creates an error thrown when the redirect uri is empty (not set by caller)\n */\n static createRedirectUriEmptyError(): BrowserConfigurationAuthError {\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.redirectUriNotSet.code,\n BrowserConfigurationAuthErrorMessage.redirectUriNotSet.desc);\n }\n\n /**\n * Creates an error thrown when the post-logout redirect uri is empty (not set by caller)\n */\n static createPostLogoutRedirectUriEmptyError(): BrowserConfigurationAuthError {\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.postLogoutUriNotSet.code,\n BrowserConfigurationAuthErrorMessage.postLogoutUriNotSet.desc);\n }\n\n /**\n * Creates error thrown when given storage location is not supported.\n * @param givenStorageLocation \n */\n static createStorageNotSupportedError(givenStorageLocation: string): BrowserConfigurationAuthError {\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.storageNotSupportedError.code, `${BrowserConfigurationAuthErrorMessage.storageNotSupportedError.desc} Given Location: ${givenStorageLocation}`);\n }\n\n /**\n * Creates error thrown when redirect callbacks are not set before calling loginRedirect() or acquireTokenRedirect().\n */\n static createRedirectCallbacksNotSetError(): BrowserConfigurationAuthError {\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.noRedirectCallbacksSet.code, \n BrowserConfigurationAuthErrorMessage.noRedirectCallbacksSet.desc);\n }\n\n /**\n * Creates error thrown when the stub instance of PublicClientApplication is called.\n */\n static createStubPcaInstanceCalledError(): BrowserConfigurationAuthError {\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.stubPcaInstanceCalled.code,\n BrowserConfigurationAuthErrorMessage.stubPcaInstanceCalled.desc);\n }\n\n /*\n * Create an error thrown when in-memory storage is used and storeAuthStateInCookie=false.\n */\n static createInMemoryRedirectUnavailableError(): BrowserConfigurationAuthError {\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.inMemRedirectUnavailable.code, BrowserConfigurationAuthErrorMessage.inMemRedirectUnavailable.desc);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * Encodes a string in base64 format.\n * @param value - The string to encode\n */\nexport function encodeString(value: string): string {\n return btoa(value);\n}\n\n/**\n * Encodes a byte array in base64 format.\n * @param value - The Uint8Aray to encode\n */\nexport function encodeByteArray(value: Uint8Array): string {\n let str = \"\";\n for (let i = 0; i < value.length; i++) {\n str += String.fromCharCode(value[i]);\n }\n return btoa(str);\n}\n\n/**\n * Decodes a base64 string into a byte array.\n * @param value - The base64 string to decode\n */\nexport function decodeString(value: string): Uint8Array {\n const byteString = atob(value);\n const arr = new Uint8Array(byteString.length);\n for (let i = 0; i < byteString.length; i++) {\n arr[i] = byteString.charCodeAt(i);\n }\n return arr;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n/* eslint-disable eqeqeq */\n\nimport * as base64 from \"./util/base64\";\nimport * as utils from \"./util/utils\";\nimport { SerializerOptions, XML_ATTRKEY, XML_CHARKEY } from \"./util/serializer.common\";\n\n// This file contains utility code to serialize and deserialize network operations according to `OperationSpec` objects generated by AutoRest.TypeScript from OpenAPI specifications.\n\n/**\n * Used to map raw response objects to final shapes.\n * Helps packing and unpacking Dates and other encoded types that are not intrinsic to JSON.\n * Also allows pulling values from headers, as well as inserting default values and constants.\n */\nexport class Serializer {\n constructor(\n /**\n * The provided model mapper.\n */\n public readonly modelMappers: { [key: string]: any } = {},\n /**\n * Whether the contents are XML or not.\n */\n public readonly isXML?: boolean\n ) {}\n\n /**\n * Validates constraints, if any. This function will throw if the provided value does not respect those constraints.\n * @param mapper - The definition of data models.\n * @param value - The value.\n * @param objectName - Name of the object. Used in the error messages.\n * @deprecated Removing the constraints validation on client side.\n */\n validateConstraints(mapper: Mapper, value: unknown, objectName: string): void {\n const failValidation = (\n constraintName: keyof MapperConstraints,\n constraintValue: any\n ): Error => {\n throw new Error(\n `\"${objectName}\" with value \"${value}\" should satisfy the constraint \"${constraintName}\": ${constraintValue}.`\n );\n };\n if (mapper.constraints && value != undefined) {\n const valueAsNumber = value as number;\n const {\n ExclusiveMaximum,\n ExclusiveMinimum,\n InclusiveMaximum,\n InclusiveMinimum,\n MaxItems,\n MaxLength,\n MinItems,\n MinLength,\n MultipleOf,\n Pattern,\n UniqueItems,\n } = mapper.constraints;\n if (ExclusiveMaximum != undefined && valueAsNumber >= ExclusiveMaximum) {\n failValidation(\"ExclusiveMaximum\", ExclusiveMaximum);\n }\n if (ExclusiveMinimum != undefined && valueAsNumber <= ExclusiveMinimum) {\n failValidation(\"ExclusiveMinimum\", ExclusiveMinimum);\n }\n if (InclusiveMaximum != undefined && valueAsNumber > InclusiveMaximum) {\n failValidation(\"InclusiveMaximum\", InclusiveMaximum);\n }\n if (InclusiveMinimum != undefined && valueAsNumber < InclusiveMinimum) {\n failValidation(\"InclusiveMinimum\", InclusiveMinimum);\n }\n const valueAsArray = value as any[];\n if (MaxItems != undefined && valueAsArray.length > MaxItems) {\n failValidation(\"MaxItems\", MaxItems);\n }\n if (MaxLength != undefined && valueAsArray.length > MaxLength) {\n failValidation(\"MaxLength\", MaxLength);\n }\n if (MinItems != undefined && valueAsArray.length < MinItems) {\n failValidation(\"MinItems\", MinItems);\n }\n if (MinLength != undefined && valueAsArray.length < MinLength) {\n failValidation(\"MinLength\", MinLength);\n }\n if (MultipleOf != undefined && valueAsNumber % MultipleOf !== 0) {\n failValidation(\"MultipleOf\", MultipleOf);\n }\n if (Pattern) {\n const pattern: RegExp = typeof Pattern === \"string\" ? new RegExp(Pattern) : Pattern;\n if (typeof value !== \"string\" || value.match(pattern) === null) {\n failValidation(\"Pattern\", Pattern);\n }\n }\n if (\n UniqueItems &&\n valueAsArray.some((item: any, i: number, ar: Array) => ar.indexOf(item) !== i)\n ) {\n failValidation(\"UniqueItems\", UniqueItems);\n }\n }\n }\n\n /**\n * Serialize the given object based on its metadata defined in the mapper.\n *\n * @param mapper - The mapper which defines the metadata of the serializable object.\n * @param object - A valid Javascript object to be serialized.\n * @param objectName - Name of the serialized object.\n * @param options - additional options to deserialization.\n * @returns A valid serialized Javascript object.\n */\n serialize(\n mapper: Mapper,\n object: unknown,\n objectName?: string,\n options: SerializerOptions = {}\n ): any {\n const updatedOptions: Required = {\n rootName: options.rootName ?? \"\",\n includeRoot: options.includeRoot ?? false,\n xmlCharKey: options.xmlCharKey ?? XML_CHARKEY,\n };\n let payload: any = {};\n const mapperType = mapper.type.name as string;\n if (!objectName) {\n objectName = mapper.serializedName!;\n }\n if (mapperType.match(/^Sequence$/i) !== null) {\n payload = [];\n }\n\n if (mapper.isConstant) {\n object = mapper.defaultValue;\n }\n\n // This table of allowed values should help explain\n // the mapper.required and mapper.nullable properties.\n // X means \"neither undefined or null are allowed\".\n // || required\n // || true | false\n // nullable || ==========================\n // true || null | undefined/null\n // false || X | undefined\n // undefined || X | undefined/null\n\n const { required, nullable } = mapper;\n\n if (required && nullable && object === undefined) {\n throw new Error(`${objectName} cannot be undefined.`);\n }\n if (required && !nullable && object == undefined) {\n throw new Error(`${objectName} cannot be null or undefined.`);\n }\n if (!required && nullable === false && object === null) {\n throw new Error(`${objectName} cannot be null.`);\n }\n\n if (object == undefined) {\n payload = object;\n } else {\n if (mapperType.match(/^any$/i) !== null) {\n payload = object;\n } else if (mapperType.match(/^(Number|String|Boolean|Object|Stream|Uuid)$/i) !== null) {\n payload = serializeBasicTypes(mapperType, objectName, object);\n } else if (mapperType.match(/^Enum$/i) !== null) {\n const enumMapper: EnumMapper = mapper as EnumMapper;\n payload = serializeEnumType(objectName, enumMapper.type.allowedValues, object);\n } else if (\n mapperType.match(/^(Date|DateTime|TimeSpan|DateTimeRfc1123|UnixTime)$/i) !== null\n ) {\n payload = serializeDateTypes(mapperType, object, objectName);\n } else if (mapperType.match(/^ByteArray$/i) !== null) {\n payload = serializeByteArrayType(objectName, object as Uint8Array);\n } else if (mapperType.match(/^Base64Url$/i) !== null) {\n payload = serializeBase64UrlType(objectName, object as Uint8Array);\n } else if (mapperType.match(/^Sequence$/i) !== null) {\n payload = serializeSequenceType(\n this,\n mapper as SequenceMapper,\n object,\n objectName,\n Boolean(this.isXML),\n updatedOptions\n );\n } else if (mapperType.match(/^Dictionary$/i) !== null) {\n payload = serializeDictionaryType(\n this,\n mapper as DictionaryMapper,\n object,\n objectName,\n Boolean(this.isXML),\n updatedOptions\n );\n } else if (mapperType.match(/^Composite$/i) !== null) {\n payload = serializeCompositeType(\n this,\n mapper as CompositeMapper,\n object,\n objectName,\n Boolean(this.isXML),\n updatedOptions\n );\n }\n }\n return payload;\n }\n\n /**\n * Deserialize the given object based on its metadata defined in the mapper.\n *\n * @param mapper - The mapper which defines the metadata of the serializable object.\n * @param responseBody - A valid Javascript entity to be deserialized.\n * @param objectName - Name of the deserialized object.\n * @param options - Controls behavior of XML parser and builder.\n * @returns A valid deserialized Javascript object.\n */\n deserialize(\n mapper: Mapper,\n responseBody: unknown,\n objectName: string,\n options: SerializerOptions = {}\n ): any {\n const updatedOptions: Required = {\n rootName: options.rootName ?? \"\",\n includeRoot: options.includeRoot ?? false,\n xmlCharKey: options.xmlCharKey ?? XML_CHARKEY,\n };\n if (responseBody == undefined) {\n if (this.isXML && mapper.type.name === \"Sequence\" && !mapper.xmlIsWrapped) {\n // Edge case for empty XML non-wrapped lists. xml2js can't distinguish\n // between the list being empty versus being missing,\n // so let's do the more user-friendly thing and return an empty list.\n responseBody = [];\n }\n // specifically check for undefined as default value can be a falsey value `0, \"\", false, null`\n if (mapper.defaultValue !== undefined) {\n responseBody = mapper.defaultValue;\n }\n return responseBody;\n }\n\n let payload: any;\n const mapperType = mapper.type.name;\n if (!objectName) {\n objectName = mapper.serializedName!;\n }\n\n if (mapperType.match(/^Composite$/i) !== null) {\n payload = deserializeCompositeType(\n this,\n mapper as CompositeMapper,\n responseBody,\n objectName,\n updatedOptions\n );\n } else {\n if (this.isXML) {\n const xmlCharKey = updatedOptions.xmlCharKey;\n const castResponseBody = responseBody as Record;\n /**\n * If the mapper specifies this as a non-composite type value but the responseBody contains\n * both header (\"$\" i.e., XML_ATTRKEY) and body (\"#\" i.e., XML_CHARKEY) properties,\n * then just reduce the responseBody value to the body (\"#\" i.e., XML_CHARKEY) property.\n */\n if (\n castResponseBody[XML_ATTRKEY] != undefined &&\n castResponseBody[xmlCharKey] != undefined\n ) {\n responseBody = castResponseBody[xmlCharKey];\n }\n }\n\n if (mapperType.match(/^Number$/i) !== null) {\n payload = parseFloat(responseBody as string);\n if (isNaN(payload)) {\n payload = responseBody;\n }\n } else if (mapperType.match(/^Boolean$/i) !== null) {\n if (responseBody === \"true\") {\n payload = true;\n } else if (responseBody === \"false\") {\n payload = false;\n } else {\n payload = responseBody;\n }\n } else if (mapperType.match(/^(String|Enum|Object|Stream|Uuid|TimeSpan|any)$/i) !== null) {\n payload = responseBody;\n } else if (mapperType.match(/^(Date|DateTime|DateTimeRfc1123)$/i) !== null) {\n payload = new Date(responseBody as string);\n } else if (mapperType.match(/^UnixTime$/i) !== null) {\n payload = unixTimeToDate(responseBody as number);\n } else if (mapperType.match(/^ByteArray$/i) !== null) {\n payload = base64.decodeString(responseBody as string);\n } else if (mapperType.match(/^Base64Url$/i) !== null) {\n payload = base64UrlToByteArray(responseBody as string);\n } else if (mapperType.match(/^Sequence$/i) !== null) {\n payload = deserializeSequenceType(\n this,\n mapper as SequenceMapper,\n responseBody,\n objectName,\n updatedOptions\n );\n } else if (mapperType.match(/^Dictionary$/i) !== null) {\n payload = deserializeDictionaryType(\n this,\n mapper as DictionaryMapper,\n responseBody,\n objectName,\n updatedOptions\n );\n }\n }\n\n if (mapper.isConstant) {\n payload = mapper.defaultValue;\n }\n\n return payload;\n }\n}\n\nfunction trimEnd(str: string, ch: string): string {\n let len = str.length;\n while (len - 1 >= 0 && str[len - 1] === ch) {\n --len;\n }\n return str.substr(0, len);\n}\n\nfunction bufferToBase64Url(buffer: any): string | undefined {\n if (!buffer) {\n return undefined;\n }\n if (!(buffer instanceof Uint8Array)) {\n throw new Error(`Please provide an input of type Uint8Array for converting to Base64Url.`);\n }\n // Uint8Array to Base64.\n const str = base64.encodeByteArray(buffer);\n // Base64 to Base64Url.\n return trimEnd(str, \"=\").replace(/\\+/g, \"-\").replace(/\\//g, \"_\");\n}\n\nfunction base64UrlToByteArray(str: string): Uint8Array | undefined {\n if (!str) {\n return undefined;\n }\n if (str && typeof str.valueOf() !== \"string\") {\n throw new Error(\"Please provide an input of type string for converting to Uint8Array\");\n }\n // Base64Url to Base64.\n str = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n // Base64 to Uint8Array.\n return base64.decodeString(str);\n}\n\nfunction splitSerializeName(prop: string | undefined): string[] {\n const classes: string[] = [];\n let partialclass = \"\";\n if (prop) {\n const subwords = prop.split(\".\");\n\n for (const item of subwords) {\n if (item.charAt(item.length - 1) === \"\\\\\") {\n partialclass += item.substr(0, item.length - 1) + \".\";\n } else {\n partialclass += item;\n classes.push(partialclass);\n partialclass = \"\";\n }\n }\n }\n\n return classes;\n}\n\nfunction dateToUnixTime(d: string | Date): number | undefined {\n if (!d) {\n return undefined;\n }\n\n if (typeof d.valueOf() === \"string\") {\n d = new Date(d as string);\n }\n return Math.floor((d as Date).getTime() / 1000);\n}\n\nfunction unixTimeToDate(n: number): Date | undefined {\n if (!n) {\n return undefined;\n }\n return new Date(n * 1000);\n}\n\nfunction serializeBasicTypes(typeName: string, objectName: string, value: any): any {\n if (value !== null && value !== undefined) {\n if (typeName.match(/^Number$/i) !== null) {\n if (typeof value !== \"number\") {\n throw new Error(`${objectName} with value ${value} must be of type number.`);\n }\n } else if (typeName.match(/^String$/i) !== null) {\n if (typeof value.valueOf() !== \"string\") {\n throw new Error(`${objectName} with value \"${value}\" must be of type string.`);\n }\n } else if (typeName.match(/^Uuid$/i) !== null) {\n if (!(typeof value.valueOf() === \"string\" && utils.isValidUuid(value))) {\n throw new Error(\n `${objectName} with value \"${value}\" must be of type string and a valid uuid.`\n );\n }\n } else if (typeName.match(/^Boolean$/i) !== null) {\n if (typeof value !== \"boolean\") {\n throw new Error(`${objectName} with value ${value} must be of type boolean.`);\n }\n } else if (typeName.match(/^Stream$/i) !== null) {\n const objectType = typeof value;\n if (\n objectType !== \"string\" &&\n objectType !== \"function\" &&\n !(value instanceof ArrayBuffer) &&\n !ArrayBuffer.isView(value) &&\n !((typeof Blob === \"function\" || typeof Blob === \"object\") && value instanceof Blob)\n ) {\n throw new Error(\n `${objectName} must be a string, Blob, ArrayBuffer, ArrayBufferView, or a function returning NodeJS.ReadableStream.`\n );\n }\n }\n }\n\n return value;\n}\n\nfunction serializeEnumType(objectName: string, allowedValues: Array, value: any): any {\n if (!allowedValues) {\n throw new Error(\n `Please provide a set of allowedValues to validate ${objectName} as an Enum Type.`\n );\n }\n const isPresent = allowedValues.some((item) => {\n if (typeof item.valueOf() === \"string\") {\n return item.toLowerCase() === value.toLowerCase();\n }\n return item === value;\n });\n if (!isPresent) {\n throw new Error(\n `${value} is not a valid value for ${objectName}. The valid values are: ${JSON.stringify(\n allowedValues\n )}.`\n );\n }\n return value;\n}\n\nfunction serializeByteArrayType(objectName: string, value: Uint8Array): string {\n let returnValue: string = \"\";\n if (value != undefined) {\n if (!(value instanceof Uint8Array)) {\n throw new Error(`${objectName} must be of type Uint8Array.`);\n }\n returnValue = base64.encodeByteArray(value);\n }\n return returnValue;\n}\n\nfunction serializeBase64UrlType(objectName: string, value: Uint8Array): string {\n let returnValue: string = \"\";\n if (value != undefined) {\n if (!(value instanceof Uint8Array)) {\n throw new Error(`${objectName} must be of type Uint8Array.`);\n }\n returnValue = bufferToBase64Url(value) || \"\";\n }\n return returnValue;\n}\n\nfunction serializeDateTypes(typeName: string, value: any, objectName: string): any {\n if (value != undefined) {\n if (typeName.match(/^Date$/i) !== null) {\n if (\n !(\n value instanceof Date ||\n (typeof value.valueOf() === \"string\" && !isNaN(Date.parse(value)))\n )\n ) {\n throw new Error(`${objectName} must be an instanceof Date or a string in ISO8601 format.`);\n }\n value =\n value instanceof Date\n ? value.toISOString().substring(0, 10)\n : new Date(value).toISOString().substring(0, 10);\n } else if (typeName.match(/^DateTime$/i) !== null) {\n if (\n !(\n value instanceof Date ||\n (typeof value.valueOf() === \"string\" && !isNaN(Date.parse(value)))\n )\n ) {\n throw new Error(`${objectName} must be an instanceof Date or a string in ISO8601 format.`);\n }\n value = value instanceof Date ? value.toISOString() : new Date(value).toISOString();\n } else if (typeName.match(/^DateTimeRfc1123$/i) !== null) {\n if (\n !(\n value instanceof Date ||\n (typeof value.valueOf() === \"string\" && !isNaN(Date.parse(value)))\n )\n ) {\n throw new Error(`${objectName} must be an instanceof Date or a string in RFC-1123 format.`);\n }\n value = value instanceof Date ? value.toUTCString() : new Date(value).toUTCString();\n } else if (typeName.match(/^UnixTime$/i) !== null) {\n if (\n !(\n value instanceof Date ||\n (typeof value.valueOf() === \"string\" && !isNaN(Date.parse(value)))\n )\n ) {\n throw new Error(\n `${objectName} must be an instanceof Date or a string in RFC-1123/ISO8601 format ` +\n `for it to be serialized in UnixTime/Epoch format.`\n );\n }\n value = dateToUnixTime(value);\n } else if (typeName.match(/^TimeSpan$/i) !== null) {\n if (!utils.isDuration(value)) {\n throw new Error(\n `${objectName} must be a string in ISO 8601 format. Instead was \"${value}\".`\n );\n }\n }\n }\n return value;\n}\n\nfunction serializeSequenceType(\n serializer: Serializer,\n mapper: SequenceMapper,\n object: any,\n objectName: string,\n isXml: boolean,\n options: Required\n): any[] {\n if (!Array.isArray(object)) {\n throw new Error(`${objectName} must be of type Array.`);\n }\n const elementType = mapper.type.element;\n if (!elementType || typeof elementType !== \"object\") {\n throw new Error(\n `element\" metadata for an Array must be defined in the ` +\n `mapper and it must of type \"object\" in ${objectName}.`\n );\n }\n const tempArray = [];\n for (let i = 0; i < object.length; i++) {\n const serializedValue = serializer.serialize(elementType, object[i], objectName, options);\n\n if (isXml && elementType.xmlNamespace) {\n const xmlnsKey = elementType.xmlNamespacePrefix\n ? `xmlns:${elementType.xmlNamespacePrefix}`\n : \"xmlns\";\n if (elementType.type.name === \"Composite\") {\n tempArray[i] = { ...serializedValue };\n tempArray[i][XML_ATTRKEY] = { [xmlnsKey]: elementType.xmlNamespace };\n } else {\n tempArray[i] = {};\n tempArray[i][options.xmlCharKey] = serializedValue;\n tempArray[i][XML_ATTRKEY] = { [xmlnsKey]: elementType.xmlNamespace };\n }\n } else {\n tempArray[i] = serializedValue;\n }\n }\n return tempArray;\n}\n\nfunction serializeDictionaryType(\n serializer: Serializer,\n mapper: DictionaryMapper,\n object: any,\n objectName: string,\n isXml: boolean,\n options: Required\n): { [key: string]: any } {\n if (typeof object !== \"object\") {\n throw new Error(`${objectName} must be of type object.`);\n }\n const valueType = mapper.type.value;\n if (!valueType || typeof valueType !== \"object\") {\n throw new Error(\n `\"value\" metadata for a Dictionary must be defined in the ` +\n `mapper and it must of type \"object\" in ${objectName}.`\n );\n }\n const tempDictionary: { [key: string]: any } = {};\n for (const key of Object.keys(object)) {\n const serializedValue = serializer.serialize(valueType, object[key], objectName, options);\n // If the element needs an XML namespace we need to add it within the $ property\n tempDictionary[key] = getXmlObjectValue(valueType, serializedValue, isXml, options);\n }\n\n // Add the namespace to the root element if needed\n if (isXml && mapper.xmlNamespace) {\n const xmlnsKey = mapper.xmlNamespacePrefix ? `xmlns:${mapper.xmlNamespacePrefix}` : \"xmlns\";\n\n const result = tempDictionary;\n result[XML_ATTRKEY] = { [xmlnsKey]: mapper.xmlNamespace };\n return result;\n }\n\n return tempDictionary;\n}\n\n/**\n * Resolves the additionalProperties property from a referenced mapper.\n * @param serializer - The serializer containing the entire set of mappers.\n * @param mapper - The composite mapper to resolve.\n * @param objectName - Name of the object being serialized.\n */\nfunction resolveAdditionalProperties(\n serializer: Serializer,\n mapper: CompositeMapper,\n objectName: string\n): SequenceMapper | BaseMapper | CompositeMapper | DictionaryMapper | EnumMapper | undefined {\n const additionalProperties = mapper.type.additionalProperties;\n\n if (!additionalProperties && mapper.type.className) {\n const modelMapper = resolveReferencedMapper(serializer, mapper, objectName);\n return modelMapper?.type.additionalProperties;\n }\n\n return additionalProperties;\n}\n\n/**\n * Finds the mapper referenced by `className`.\n * @param serializer - The serializer containing the entire set of mappers\n * @param mapper - The composite mapper to resolve\n * @param objectName - Name of the object being serialized\n */\nfunction resolveReferencedMapper(\n serializer: Serializer,\n mapper: CompositeMapper,\n objectName: string\n): CompositeMapper | undefined {\n const className = mapper.type.className;\n if (!className) {\n throw new Error(\n `Class name for model \"${objectName}\" is not provided in the mapper \"${JSON.stringify(\n mapper,\n undefined,\n 2\n )}\".`\n );\n }\n\n return serializer.modelMappers[className];\n}\n\n/**\n * Resolves a composite mapper's modelProperties.\n * @param serializer - The serializer containing the entire set of mappers\n * @param mapper - The composite mapper to resolve\n */\nfunction resolveModelProperties(\n serializer: Serializer,\n mapper: CompositeMapper,\n objectName: string\n): { [propertyName: string]: Mapper } {\n let modelProps = mapper.type.modelProperties;\n if (!modelProps) {\n const modelMapper = resolveReferencedMapper(serializer, mapper, objectName);\n if (!modelMapper) {\n throw new Error(`mapper() cannot be null or undefined for model \"${mapper.type.className}\".`);\n }\n modelProps = modelMapper?.type.modelProperties;\n if (!modelProps) {\n throw new Error(\n `modelProperties cannot be null or undefined in the ` +\n `mapper \"${JSON.stringify(modelMapper)}\" of type \"${\n mapper.type.className\n }\" for object \"${objectName}\".`\n );\n }\n }\n\n return modelProps;\n}\n\nfunction serializeCompositeType(\n serializer: Serializer,\n mapper: CompositeMapper,\n object: any,\n objectName: string,\n isXml: boolean,\n options: Required\n): any {\n if (getPolymorphicDiscriminatorRecursively(serializer, mapper)) {\n mapper = getPolymorphicMapper(serializer, mapper, object, \"clientName\");\n }\n\n if (object != undefined) {\n const payload: any = {};\n const modelProps = resolveModelProperties(serializer, mapper, objectName);\n for (const key of Object.keys(modelProps)) {\n const propertyMapper = modelProps[key];\n if (propertyMapper.readOnly) {\n continue;\n }\n\n let propName: string | undefined;\n let parentObject: any = payload;\n if (serializer.isXML) {\n if (propertyMapper.xmlIsWrapped) {\n propName = propertyMapper.xmlName;\n } else {\n propName = propertyMapper.xmlElementName || propertyMapper.xmlName;\n }\n } else {\n const paths = splitSerializeName(propertyMapper.serializedName!);\n propName = paths.pop();\n\n for (const pathName of paths) {\n const childObject = parentObject[pathName];\n if (\n childObject == undefined &&\n (object[key] != undefined || propertyMapper.defaultValue !== undefined)\n ) {\n parentObject[pathName] = {};\n }\n parentObject = parentObject[pathName];\n }\n }\n\n if (parentObject != undefined) {\n if (isXml && mapper.xmlNamespace) {\n const xmlnsKey = mapper.xmlNamespacePrefix\n ? `xmlns:${mapper.xmlNamespacePrefix}`\n : \"xmlns\";\n parentObject[XML_ATTRKEY] = {\n ...parentObject[XML_ATTRKEY],\n [xmlnsKey]: mapper.xmlNamespace,\n };\n }\n const propertyObjectName =\n propertyMapper.serializedName !== \"\"\n ? objectName + \".\" + propertyMapper.serializedName\n : objectName;\n\n let toSerialize = object[key];\n const polymorphicDiscriminator = getPolymorphicDiscriminatorRecursively(serializer, mapper);\n if (\n polymorphicDiscriminator &&\n polymorphicDiscriminator.clientName === key &&\n toSerialize == undefined\n ) {\n toSerialize = mapper.serializedName;\n }\n\n const serializedValue = serializer.serialize(\n propertyMapper,\n toSerialize,\n propertyObjectName,\n options\n );\n\n if (serializedValue !== undefined && propName != undefined) {\n const value = getXmlObjectValue(propertyMapper, serializedValue, isXml, options);\n if (isXml && propertyMapper.xmlIsAttribute) {\n // XML_ATTRKEY, i.e., $ is the key attributes are kept under in xml2js.\n // This keeps things simple while preventing name collision\n // with names in user documents.\n parentObject[XML_ATTRKEY] = parentObject[XML_ATTRKEY] || {};\n parentObject[XML_ATTRKEY][propName] = serializedValue;\n } else if (isXml && propertyMapper.xmlIsWrapped) {\n parentObject[propName] = { [propertyMapper.xmlElementName!]: value };\n } else {\n parentObject[propName] = value;\n }\n }\n }\n }\n\n const additionalPropertiesMapper = resolveAdditionalProperties(serializer, mapper, objectName);\n if (additionalPropertiesMapper) {\n const propNames = Object.keys(modelProps);\n for (const clientPropName in object) {\n const isAdditionalProperty = propNames.every((pn) => pn !== clientPropName);\n if (isAdditionalProperty) {\n payload[clientPropName] = serializer.serialize(\n additionalPropertiesMapper,\n object[clientPropName],\n objectName + '[\"' + clientPropName + '\"]',\n options\n );\n }\n }\n }\n\n return payload;\n }\n return object;\n}\n\nfunction getXmlObjectValue(\n propertyMapper: Mapper,\n serializedValue: any,\n isXml: boolean,\n options: Required\n): any {\n if (!isXml || !propertyMapper.xmlNamespace) {\n return serializedValue;\n }\n\n const xmlnsKey = propertyMapper.xmlNamespacePrefix\n ? `xmlns:${propertyMapper.xmlNamespacePrefix}`\n : \"xmlns\";\n const xmlNamespace = { [xmlnsKey]: propertyMapper.xmlNamespace };\n\n if ([\"Composite\"].includes(propertyMapper.type.name)) {\n if (serializedValue[XML_ATTRKEY]) {\n return serializedValue;\n } else {\n const result: any = { ...serializedValue };\n result[XML_ATTRKEY] = xmlNamespace;\n return result;\n }\n }\n const result: any = {};\n result[options.xmlCharKey] = serializedValue;\n result[XML_ATTRKEY] = xmlNamespace;\n return result;\n}\n\nfunction isSpecialXmlProperty(propertyName: string, options: Required): boolean {\n return [XML_ATTRKEY, options.xmlCharKey].includes(propertyName);\n}\n\nfunction deserializeCompositeType(\n serializer: Serializer,\n mapper: CompositeMapper,\n responseBody: any,\n objectName: string,\n options: Required\n): any {\n if (getPolymorphicDiscriminatorRecursively(serializer, mapper)) {\n mapper = getPolymorphicMapper(serializer, mapper, responseBody, \"serializedName\");\n }\n\n const modelProps = resolveModelProperties(serializer, mapper, objectName);\n let instance: { [key: string]: any } = {};\n const handledPropertyNames: string[] = [];\n\n for (const key of Object.keys(modelProps)) {\n const propertyMapper = modelProps[key];\n const paths = splitSerializeName(modelProps[key].serializedName!);\n handledPropertyNames.push(paths[0]);\n const { serializedName, xmlName, xmlElementName } = propertyMapper;\n let propertyObjectName = objectName;\n if (serializedName !== \"\" && serializedName !== undefined) {\n propertyObjectName = objectName + \".\" + serializedName;\n }\n\n const headerCollectionPrefix = (propertyMapper as DictionaryMapper).headerCollectionPrefix;\n if (headerCollectionPrefix) {\n const dictionary: any = {};\n for (const headerKey of Object.keys(responseBody)) {\n if (headerKey.startsWith(headerCollectionPrefix)) {\n dictionary[headerKey.substring(headerCollectionPrefix.length)] = serializer.deserialize(\n (propertyMapper as DictionaryMapper).type.value,\n responseBody[headerKey],\n propertyObjectName,\n options\n );\n }\n\n handledPropertyNames.push(headerKey);\n }\n instance[key] = dictionary;\n } else if (serializer.isXML) {\n if (propertyMapper.xmlIsAttribute && responseBody[XML_ATTRKEY]) {\n instance[key] = serializer.deserialize(\n propertyMapper,\n responseBody[XML_ATTRKEY][xmlName!],\n propertyObjectName,\n options\n );\n } else {\n const propertyName = xmlElementName || xmlName || serializedName;\n if (propertyMapper.xmlIsWrapped) {\n /* a list of wrapped by \n For the xml example below\n \n ...\n ...\n \n the responseBody has\n {\n Cors: {\n CorsRule: [{...}, {...}]\n }\n }\n xmlName is \"Cors\" and xmlElementName is\"CorsRule\".\n */\n const wrapped = responseBody[xmlName!];\n const elementList = wrapped?.[xmlElementName!] ?? [];\n instance[key] = serializer.deserialize(\n propertyMapper,\n elementList,\n propertyObjectName,\n options\n );\n } else {\n const property = responseBody[propertyName!];\n instance[key] = serializer.deserialize(\n propertyMapper,\n property,\n propertyObjectName,\n options\n );\n }\n }\n } else {\n // deserialize the property if it is present in the provided responseBody instance\n let propertyInstance;\n let res = responseBody;\n // traversing the object step by step.\n for (const item of paths) {\n if (!res) break;\n res = res[item];\n }\n propertyInstance = res;\n const polymorphicDiscriminator = mapper.type.polymorphicDiscriminator;\n // checking that the model property name (key)(ex: \"fishtype\") and the\n // clientName of the polymorphicDiscriminator {metadata} (ex: \"fishtype\")\n // instead of the serializedName of the polymorphicDiscriminator (ex: \"fish.type\")\n // is a better approach. The generator is not consistent with escaping '\\.' in the\n // serializedName of the property (ex: \"fish\\.type\") that is marked as polymorphic discriminator\n // and the serializedName of the metadata polymorphicDiscriminator (ex: \"fish.type\"). However,\n // the clientName transformation of the polymorphicDiscriminator (ex: \"fishtype\") and\n // the transformation of model property name (ex: \"fishtype\") is done consistently.\n // Hence, it is a safer bet to rely on the clientName of the polymorphicDiscriminator.\n if (\n polymorphicDiscriminator &&\n key === polymorphicDiscriminator.clientName &&\n propertyInstance == undefined\n ) {\n propertyInstance = mapper.serializedName;\n }\n\n let serializedValue;\n // paging\n if (Array.isArray(responseBody[key]) && modelProps[key].serializedName === \"\") {\n propertyInstance = responseBody[key];\n const arrayInstance = serializer.deserialize(\n propertyMapper,\n propertyInstance,\n propertyObjectName,\n options\n );\n // Copy over any properties that have already been added into the instance, where they do\n // not exist on the newly de-serialized array\n for (const [k, v] of Object.entries(instance)) {\n if (!Object.prototype.hasOwnProperty.call(arrayInstance, k)) {\n arrayInstance[k] = v;\n }\n }\n instance = arrayInstance;\n } else if (propertyInstance !== undefined || propertyMapper.defaultValue !== undefined) {\n serializedValue = serializer.deserialize(\n propertyMapper,\n propertyInstance,\n propertyObjectName,\n options\n );\n instance[key] = serializedValue;\n }\n }\n }\n\n const additionalPropertiesMapper = mapper.type.additionalProperties;\n if (additionalPropertiesMapper) {\n const isAdditionalProperty = (responsePropName: string): boolean => {\n for (const clientPropName in modelProps) {\n const paths = splitSerializeName(modelProps[clientPropName].serializedName);\n if (paths[0] === responsePropName) {\n return false;\n }\n }\n return true;\n };\n\n for (const responsePropName in responseBody) {\n if (isAdditionalProperty(responsePropName)) {\n instance[responsePropName] = serializer.deserialize(\n additionalPropertiesMapper,\n responseBody[responsePropName],\n objectName + '[\"' + responsePropName + '\"]',\n options\n );\n }\n }\n } else if (responseBody) {\n for (const key of Object.keys(responseBody)) {\n if (\n instance[key] === undefined &&\n !handledPropertyNames.includes(key) &&\n !isSpecialXmlProperty(key, options)\n ) {\n instance[key] = responseBody[key];\n }\n }\n }\n\n return instance;\n}\n\nfunction deserializeDictionaryType(\n serializer: Serializer,\n mapper: DictionaryMapper,\n responseBody: any,\n objectName: string,\n options: Required\n): { [key: string]: any } {\n const value = mapper.type.value;\n if (!value || typeof value !== \"object\") {\n throw new Error(\n `\"value\" metadata for a Dictionary must be defined in the ` +\n `mapper and it must of type \"object\" in ${objectName}`\n );\n }\n if (responseBody) {\n const tempDictionary: { [key: string]: any } = {};\n for (const key of Object.keys(responseBody)) {\n tempDictionary[key] = serializer.deserialize(value, responseBody[key], objectName, options);\n }\n return tempDictionary;\n }\n return responseBody;\n}\n\nfunction deserializeSequenceType(\n serializer: Serializer,\n mapper: SequenceMapper,\n responseBody: any,\n objectName: string,\n options: Required\n): any[] {\n const element = mapper.type.element;\n if (!element || typeof element !== \"object\") {\n throw new Error(\n `element\" metadata for an Array must be defined in the ` +\n `mapper and it must of type \"object\" in ${objectName}`\n );\n }\n if (responseBody) {\n if (!Array.isArray(responseBody)) {\n // xml2js will interpret a single element array as just the element, so force it to be an array\n responseBody = [responseBody];\n }\n\n const tempArray = [];\n for (let i = 0; i < responseBody.length; i++) {\n tempArray[i] = serializer.deserialize(\n element,\n responseBody[i],\n `${objectName}[${i}]`,\n options\n );\n }\n return tempArray;\n }\n return responseBody;\n}\n\nfunction getPolymorphicMapper(\n serializer: Serializer,\n mapper: CompositeMapper,\n object: any,\n polymorphicPropertyName: \"clientName\" | \"serializedName\"\n): CompositeMapper {\n const polymorphicDiscriminator = getPolymorphicDiscriminatorRecursively(serializer, mapper);\n if (polymorphicDiscriminator) {\n const discriminatorName = polymorphicDiscriminator[polymorphicPropertyName];\n if (discriminatorName != undefined) {\n const discriminatorValue = object[discriminatorName];\n if (discriminatorValue != undefined) {\n const typeName = mapper.type.uberParent || mapper.type.className;\n const indexDiscriminator =\n discriminatorValue === typeName\n ? discriminatorValue\n : typeName + \".\" + discriminatorValue;\n const polymorphicMapper = serializer.modelMappers.discriminators[indexDiscriminator];\n if (polymorphicMapper) {\n mapper = polymorphicMapper;\n }\n }\n }\n }\n return mapper;\n}\n\nfunction getPolymorphicDiscriminatorRecursively(\n serializer: Serializer,\n mapper: CompositeMapper\n): PolymorphicDiscriminator | undefined {\n return (\n mapper.type.polymorphicDiscriminator ||\n getPolymorphicDiscriminatorSafely(serializer, mapper.type.uberParent) ||\n getPolymorphicDiscriminatorSafely(serializer, mapper.type.className)\n );\n}\n\nfunction getPolymorphicDiscriminatorSafely(serializer: Serializer, typeName?: string): any {\n return (\n typeName &&\n serializer.modelMappers[typeName] &&\n serializer.modelMappers[typeName].type.polymorphicDiscriminator\n );\n}\n\n/**\n * Description of various value constraints such as integer ranges and string regex.\n */\nexport interface MapperConstraints {\n /**\n * The value should be less than or equal to the `InclusiveMaximum` value.\n */\n InclusiveMaximum?: number;\n /**\n * The value should be less than the `ExclusiveMaximum` value.\n */\n ExclusiveMaximum?: number;\n /**\n * The value should be greater than or equal to the `InclusiveMinimum` value.\n */\n InclusiveMinimum?: number;\n /**\n * The value should be greater than the `InclusiveMinimum` value.\n */\n ExclusiveMinimum?: number;\n /**\n * The length should be smaller than the `MaxLength`.\n */\n MaxLength?: number;\n /**\n * The length should be bigger than the `MinLength`.\n */\n MinLength?: number;\n /**\n * The value must match the pattern.\n */\n Pattern?: RegExp;\n /**\n * The value must contain fewer items than the MaxItems value.\n */\n MaxItems?: number;\n /**\n * The value must contain more items than the `MinItems` value.\n */\n MinItems?: number;\n /**\n * The value must contain only unique items.\n */\n UniqueItems?: true;\n /**\n * The value should be exactly divisible by the `MultipleOf` value.\n */\n MultipleOf?: number;\n}\n\n/**\n * Type of the mapper. Includes known mappers.\n */\nexport type MapperType =\n | SimpleMapperType\n | CompositeMapperType\n | SequenceMapperType\n | DictionaryMapperType\n | EnumMapperType;\n\n/**\n * The type of a simple mapper.\n */\nexport interface SimpleMapperType {\n /**\n * Name of the type of the property.\n */\n name:\n | \"Base64Url\"\n | \"Boolean\"\n | \"ByteArray\"\n | \"Date\"\n | \"DateTime\"\n | \"DateTimeRfc1123\"\n | \"Object\"\n | \"Stream\"\n | \"String\"\n | \"TimeSpan\"\n | \"UnixTime\"\n | \"Uuid\"\n | \"Number\"\n | \"any\";\n}\n\n/**\n * Helps build a mapper that describes how to map a set of properties of an object based on other mappers.\n *\n * Only one of the following properties should be present: `className`, `modelProperties` and `additionalProperties`.\n */\nexport interface CompositeMapperType {\n /**\n * Name of the composite mapper type.\n */\n name: \"Composite\";\n\n /**\n * Use `className` to reference another type definition.\n */\n className?: string;\n\n /**\n * Use `modelProperties` when the reference to the other type has been resolved.\n */\n modelProperties?: { [propertyName: string]: Mapper };\n\n /**\n * Used when a model has `additionalProperties: true`. Allows the generic processing of unnamed model properties on the response object.\n */\n additionalProperties?: Mapper;\n\n /**\n * The name of the top-most parent scheme, the one that has no parents.\n */\n uberParent?: string;\n\n /**\n * A polymorphic discriminator.\n */\n polymorphicDiscriminator?: PolymorphicDiscriminator;\n}\n\n/**\n * Helps build a mapper that describes how to parse a sequence of mapped values.\n */\nexport interface SequenceMapperType {\n /**\n * Name of the sequence type mapper.\n */\n name: \"Sequence\";\n /**\n * The mapper to use to map each one of the properties of the sequence.\n */\n element: Mapper;\n}\n\n/**\n * Helps build a mapper that describes how to parse a dictionary of mapped values.\n */\nexport interface DictionaryMapperType {\n /**\n * Name of the sequence type mapper.\n */\n name: \"Dictionary\";\n /**\n * The mapper to use to map the value of each property in the dictionary.\n */\n value: Mapper;\n}\n\n/**\n * Helps build a mapper that describes how to parse an enum value.\n */\nexport interface EnumMapperType {\n /**\n * Name of the enum type mapper.\n */\n name: \"Enum\";\n /**\n * Values allowed by this mapper.\n */\n allowedValues: any[];\n}\n\n/**\n * The base definition of a mapper. Can be used for XML and plain JavaScript objects.\n */\nexport interface BaseMapper {\n /**\n * Name for the xml element\n */\n xmlName?: string;\n /**\n * Xml element namespace\n */\n xmlNamespace?: string;\n /**\n * Xml element namespace prefix\n */\n xmlNamespacePrefix?: string;\n /**\n * Determines if the current property should be serialized as an attribute of the parent xml element\n */\n xmlIsAttribute?: boolean;\n /**\n * Name for the xml elements when serializing an array\n */\n xmlElementName?: string;\n /**\n * Whether or not the current property should have a wrapping XML element\n */\n xmlIsWrapped?: boolean;\n /**\n * Whether or not the current property is readonly\n */\n readOnly?: boolean;\n /**\n * Whether or not the current property is a constant\n */\n isConstant?: boolean;\n /**\n * Whether or not the current property is required\n */\n required?: boolean;\n /**\n * Whether or not the current property allows mull as a value\n */\n nullable?: boolean;\n /**\n * The name to use when serializing\n */\n serializedName?: string;\n /**\n * Type of the mapper\n */\n type: MapperType;\n /**\n * Default value when one is not explicitly provided\n */\n defaultValue?: any;\n /**\n * Constraints to test the current value against\n */\n constraints?: MapperConstraints;\n}\n\n/**\n * Mappers are definitions of the data models used in the library.\n * These data models are part of the Operation or Client definitions in the responses or parameters.\n */\nexport type Mapper = BaseMapper | CompositeMapper | SequenceMapper | DictionaryMapper | EnumMapper;\n\n/**\n * Used to disambiguate discriminated type unions.\n * For example, if response can have many shapes but also includes a 'kind' field (or similar),\n * that field can be used to determine how to deserialize the response to the correct type.\n */\nexport interface PolymorphicDiscriminator {\n /**\n * Name of the discriminant property in the original JSON payload, e.g. `@odata.kind`.\n */\n serializedName: string;\n /**\n * Name to use on the resulting object instead of the original property name.\n * Useful since the JSON property could be difficult to work with.\n * For example: For a field received as `@odata.kind`, the final object could instead include a property simply named `kind`.\n */\n clientName: string;\n /**\n * It may contain any other property.\n */\n [key: string]: string;\n}\n\n/**\n * A mapper composed of other mappers.\n */\nexport interface CompositeMapper extends BaseMapper {\n /**\n * The type descriptor of the `CompositeMapper`.\n */\n type: CompositeMapperType;\n}\n\n/**\n * A mapper describing arrays.\n */\nexport interface SequenceMapper extends BaseMapper {\n /**\n * The type descriptor of the `SequenceMapper`.\n */\n type: SequenceMapperType;\n}\n\n/**\n * A mapper describing plain JavaScript objects used as key/value pairs.\n */\nexport interface DictionaryMapper extends BaseMapper {\n /**\n * The type descriptor of the `DictionaryMapper`.\n */\n type: DictionaryMapperType;\n /**\n * Optionally, a prefix to add to the header collection.\n */\n headerCollectionPrefix?: string;\n}\n\n/**\n * A mapper describing an enum value.\n */\nexport interface EnumMapper extends BaseMapper {\n /**\n * The type descriptor of the `EnumMapper`.\n */\n type: EnumMapperType;\n}\n\n/**\n * An interface representing an URL parameter value.\n */\nexport interface UrlParameterValue {\n /**\n * The URL value.\n */\n value: string;\n /**\n * Whether to keep or skip URL encoding.\n */\n skipUrlEncoding: boolean;\n}\n\n/**\n * Utility function that serializes an object that might contain binary information into a plain object, array or a string.\n */\nexport function serializeObject(toSerialize: unknown): any {\n const castToSerialize = toSerialize as Record;\n if (toSerialize == undefined) return undefined;\n if (toSerialize instanceof Uint8Array) {\n toSerialize = base64.encodeByteArray(toSerialize);\n return toSerialize;\n } else if (toSerialize instanceof Date) {\n return toSerialize.toISOString();\n } else if (Array.isArray(toSerialize)) {\n const array = [];\n for (let i = 0; i < toSerialize.length; i++) {\n array.push(serializeObject(toSerialize[i]));\n }\n return array;\n } else if (typeof toSerialize === \"object\") {\n const dictionary: { [key: string]: any } = {};\n for (const property in toSerialize) {\n dictionary[property] = serializeObject(castToSerialize[property]);\n }\n return dictionary;\n }\n return toSerialize;\n}\n\n/**\n * Utility function to create a K:V from a list of strings\n */\nfunction strEnum(o: Array): { [K in T]: K } {\n const result: any = {};\n for (const key of o) {\n result[key] = key;\n }\n return result;\n}\n\n/**\n * String enum containing the string types of property mappers.\n */\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const MapperType = strEnum([\n \"Base64Url\",\n \"Boolean\",\n \"ByteArray\",\n \"Composite\",\n \"Date\",\n \"DateTime\",\n \"DateTimeRfc1123\",\n \"Dictionary\",\n \"Enum\",\n \"Number\",\n \"Object\",\n \"Sequence\",\n \"String\",\n \"Stream\",\n \"TimeSpan\",\n \"UnixTime\",\n]);\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { replaceAll } from \"./util/utils\";\n\ntype URLQueryParseState = \"ParameterName\" | \"ParameterValue\";\n\n/**\n * A class that handles the query portion of a URLBuilder.\n */\nexport class URLQuery {\n private readonly _rawQuery: { [queryParameterName: string]: string | string[] } = {};\n\n /**\n * Get whether or not there any query parameters in this URLQuery.\n */\n public any(): boolean {\n return Object.keys(this._rawQuery).length > 0;\n }\n\n /**\n * Get the keys of the query string.\n */\n public keys(): string[] {\n return Object.keys(this._rawQuery);\n }\n\n /**\n * Set a query parameter with the provided name and value. If the parameterValue is undefined or\n * empty, then this will attempt to remove an existing query parameter with the provided\n * parameterName.\n */\n public set(parameterName: string, parameterValue: unknown): void {\n const caseParameterValue = parameterValue as {\n toString: () => string;\n };\n if (parameterName) {\n if (caseParameterValue !== undefined && caseParameterValue !== null) {\n const newValue = Array.isArray(caseParameterValue)\n ? caseParameterValue\n : caseParameterValue.toString();\n this._rawQuery[parameterName] = newValue;\n } else {\n delete this._rawQuery[parameterName];\n }\n }\n }\n\n /**\n * Get the value of the query parameter with the provided name. If no parameter exists with the\n * provided parameter name, then undefined will be returned.\n */\n public get(parameterName: string): string | string[] | undefined {\n return parameterName ? this._rawQuery[parameterName] : undefined;\n }\n\n /**\n * Get the string representation of this query. The return value will not start with a \"?\".\n */\n public toString(): string {\n let result = \"\";\n for (const parameterName in this._rawQuery) {\n if (result) {\n result += \"&\";\n }\n const parameterValue = this._rawQuery[parameterName];\n if (Array.isArray(parameterValue)) {\n const parameterStrings = [];\n for (const parameterValueElement of parameterValue) {\n parameterStrings.push(`${parameterName}=${parameterValueElement}`);\n }\n result += parameterStrings.join(\"&\");\n } else {\n result += `${parameterName}=${parameterValue}`;\n }\n }\n return result;\n }\n\n /**\n * Parse a URLQuery from the provided text.\n */\n public static parse(text: string): URLQuery {\n const result = new URLQuery();\n\n if (text) {\n if (text.startsWith(\"?\")) {\n text = text.substring(1);\n }\n\n let currentState: URLQueryParseState = \"ParameterName\";\n\n let parameterName = \"\";\n let parameterValue = \"\";\n for (let i = 0; i < text.length; ++i) {\n const currentCharacter: string = text[i];\n switch (currentState) {\n case \"ParameterName\":\n switch (currentCharacter) {\n case \"=\":\n currentState = \"ParameterValue\";\n break;\n\n case \"&\":\n parameterName = \"\";\n parameterValue = \"\";\n break;\n\n default:\n parameterName += currentCharacter;\n break;\n }\n break;\n\n case \"ParameterValue\":\n switch (currentCharacter) {\n case \"&\":\n result.set(parameterName, parameterValue);\n parameterName = \"\";\n parameterValue = \"\";\n currentState = \"ParameterName\";\n break;\n\n default:\n parameterValue += currentCharacter;\n break;\n }\n break;\n\n default:\n throw new Error(\"Unrecognized URLQuery parse state: \" + currentState);\n }\n }\n if (currentState === \"ParameterValue\") {\n result.set(parameterName, parameterValue);\n }\n }\n\n return result;\n }\n}\n\n/**\n * A class that handles creating, modifying, and parsing URLs.\n */\nexport class URLBuilder {\n private _scheme: string | undefined;\n private _host: string | undefined;\n private _port: string | undefined;\n private _path: string | undefined;\n private _query: URLQuery | undefined;\n\n /**\n * Set the scheme/protocol for this URL. If the provided scheme contains other parts of a URL\n * (such as a host, port, path, or query), those parts will be added to this URL as well.\n */\n public setScheme(scheme: string | undefined): void {\n if (!scheme) {\n this._scheme = undefined;\n } else {\n this.set(scheme, \"SCHEME\");\n }\n }\n\n /**\n * Get the scheme that has been set in this URL.\n */\n public getScheme(): string | undefined {\n return this._scheme;\n }\n\n /**\n * Set the host for this URL. If the provided host contains other parts of a URL (such as a\n * port, path, or query), those parts will be added to this URL as well.\n */\n public setHost(host: string | undefined): void {\n if (!host) {\n this._host = undefined;\n } else {\n this.set(host, \"SCHEME_OR_HOST\");\n }\n }\n\n /**\n * Get the host that has been set in this URL.\n */\n public getHost(): string | undefined {\n return this._host;\n }\n\n /**\n * Set the port for this URL. If the provided port contains other parts of a URL (such as a\n * path or query), those parts will be added to this URL as well.\n */\n public setPort(port: number | string | undefined): void {\n if (port === undefined || port === null || port === \"\") {\n this._port = undefined;\n } else {\n this.set(port.toString(), \"PORT\");\n }\n }\n\n /**\n * Get the port that has been set in this URL.\n */\n public getPort(): string | undefined {\n return this._port;\n }\n\n /**\n * Set the path for this URL. If the provided path contains a query, then it will be added to\n * this URL as well.\n */\n public setPath(path: string | undefined): void {\n if (!path) {\n this._path = undefined;\n } else {\n const schemeIndex = path.indexOf(\"://\");\n if (schemeIndex !== -1) {\n const schemeStart = path.lastIndexOf(\"/\", schemeIndex);\n // Make sure to only grab the URL part of the path before setting the state back to SCHEME\n // this will handle cases such as \"/a/b/c/https://microsoft.com\" => \"https://microsoft.com\"\n this.set(schemeStart === -1 ? path : path.substr(schemeStart + 1), \"SCHEME\");\n } else {\n this.set(path, \"PATH\");\n }\n }\n }\n\n /**\n * Append the provided path to this URL's existing path. If the provided path contains a query,\n * then it will be added to this URL as well.\n */\n public appendPath(path: string | undefined): void {\n if (path) {\n let currentPath: string | undefined = this.getPath();\n if (currentPath) {\n if (!currentPath.endsWith(\"/\")) {\n currentPath += \"/\";\n }\n\n if (path.startsWith(\"/\")) {\n path = path.substring(1);\n }\n\n path = currentPath + path;\n }\n this.set(path, \"PATH\");\n }\n }\n\n /**\n * Get the path that has been set in this URL.\n */\n public getPath(): string | undefined {\n return this._path;\n }\n\n /**\n * Set the query in this URL.\n */\n public setQuery(query: string | undefined): void {\n if (!query) {\n this._query = undefined;\n } else {\n this._query = URLQuery.parse(query);\n }\n }\n\n /**\n * Set a query parameter with the provided name and value in this URL's query. If the provided\n * query parameter value is undefined or empty, then the query parameter will be removed if it\n * existed.\n */\n public setQueryParameter(queryParameterName: string, queryParameterValue: unknown): void {\n if (queryParameterName) {\n if (!this._query) {\n this._query = new URLQuery();\n }\n this._query.set(queryParameterName, queryParameterValue);\n }\n }\n\n /**\n * Get the value of the query parameter with the provided query parameter name. If no query\n * parameter exists with the provided name, then undefined will be returned.\n */\n public getQueryParameterValue(queryParameterName: string): string | string[] | undefined {\n return this._query ? this._query.get(queryParameterName) : undefined;\n }\n\n /**\n * Get the query in this URL.\n */\n public getQuery(): string | undefined {\n return this._query ? this._query.toString() : undefined;\n }\n\n /**\n * Set the parts of this URL by parsing the provided text using the provided startState.\n */\n private set(text: string, startState: URLTokenizerState): void {\n const tokenizer = new URLTokenizer(text, startState);\n\n while (tokenizer.next()) {\n const token: URLToken | undefined = tokenizer.current();\n let tokenPath: string | undefined;\n if (token) {\n switch (token.type) {\n case \"SCHEME\":\n this._scheme = token.text || undefined;\n break;\n\n case \"HOST\":\n this._host = token.text || undefined;\n break;\n\n case \"PORT\":\n this._port = token.text || undefined;\n break;\n\n case \"PATH\":\n tokenPath = token.text || undefined;\n if (!this._path || this._path === \"/\" || tokenPath !== \"/\") {\n this._path = tokenPath;\n }\n break;\n\n case \"QUERY\":\n this._query = URLQuery.parse(token.text);\n break;\n\n default:\n throw new Error(`Unrecognized URLTokenType: ${token.type}`);\n }\n }\n }\n }\n\n /**\n * Serializes the URL as a string.\n * @returns the URL as a string.\n */\n public toString(): string {\n let result = \"\";\n\n if (this._scheme) {\n result += `${this._scheme}://`;\n }\n\n if (this._host) {\n result += this._host;\n }\n\n if (this._port) {\n result += `:${this._port}`;\n }\n\n if (this._path) {\n if (!this._path.startsWith(\"/\")) {\n result += \"/\";\n }\n result += this._path;\n }\n\n if (this._query && this._query.any()) {\n result += `?${this._query.toString()}`;\n }\n\n return result;\n }\n\n /**\n * If the provided searchValue is found in this URLBuilder, then replace it with the provided\n * replaceValue.\n */\n public replaceAll(searchValue: string, replaceValue: string): void {\n if (searchValue) {\n this.setScheme(replaceAll(this.getScheme(), searchValue, replaceValue));\n this.setHost(replaceAll(this.getHost(), searchValue, replaceValue));\n this.setPort(replaceAll(this.getPort(), searchValue, replaceValue));\n this.setPath(replaceAll(this.getPath(), searchValue, replaceValue));\n this.setQuery(replaceAll(this.getQuery(), searchValue, replaceValue));\n }\n }\n\n /**\n * Parses a given string URL into a new {@link URLBuilder}.\n */\n public static parse(text: string): URLBuilder {\n const result = new URLBuilder();\n result.set(text, \"SCHEME_OR_HOST\");\n return result;\n }\n}\n\ntype URLTokenizerState = \"SCHEME\" | \"SCHEME_OR_HOST\" | \"HOST\" | \"PORT\" | \"PATH\" | \"QUERY\" | \"DONE\";\n\ntype URLTokenType = \"SCHEME\" | \"HOST\" | \"PORT\" | \"PATH\" | \"QUERY\";\n\nexport class URLToken {\n public constructor(public readonly text: string, public readonly type: URLTokenType) {}\n\n public static scheme(text: string): URLToken {\n return new URLToken(text, \"SCHEME\");\n }\n\n public static host(text: string): URLToken {\n return new URLToken(text, \"HOST\");\n }\n\n public static port(text: string): URLToken {\n return new URLToken(text, \"PORT\");\n }\n\n public static path(text: string): URLToken {\n return new URLToken(text, \"PATH\");\n }\n\n public static query(text: string): URLToken {\n return new URLToken(text, \"QUERY\");\n }\n}\n\n/**\n * Get whether or not the provided character (single character string) is an alphanumeric (letter or\n * digit) character.\n */\nexport function isAlphaNumericCharacter(character: string): boolean {\n const characterCode: number = character.charCodeAt(0);\n return (\n (48 /* '0' */ <= characterCode && characterCode <= 57) /* '9' */ ||\n (65 /* 'A' */ <= characterCode && characterCode <= 90) /* 'Z' */ ||\n (97 /* 'a' */ <= characterCode && characterCode <= 122) /* 'z' */\n );\n}\n\n/**\n * A class that tokenizes URL strings.\n */\nexport class URLTokenizer {\n readonly _textLength: number;\n _currentState: URLTokenizerState;\n _currentIndex: number;\n _currentToken: URLToken | undefined;\n\n public constructor(readonly _text: string, state?: URLTokenizerState) {\n this._textLength = _text ? _text.length : 0;\n this._currentState = state !== undefined && state !== null ? state : \"SCHEME_OR_HOST\";\n this._currentIndex = 0;\n }\n\n /**\n * Get the current URLToken this URLTokenizer is pointing at, or undefined if the URLTokenizer\n * hasn't started or has finished tokenizing.\n */\n public current(): URLToken | undefined {\n return this._currentToken;\n }\n\n /**\n * Advance to the next URLToken and return whether or not a URLToken was found.\n */\n public next(): boolean {\n if (!hasCurrentCharacter(this)) {\n this._currentToken = undefined;\n } else {\n switch (this._currentState) {\n case \"SCHEME\":\n nextScheme(this);\n break;\n\n case \"SCHEME_OR_HOST\":\n nextSchemeOrHost(this);\n break;\n\n case \"HOST\":\n nextHost(this);\n break;\n\n case \"PORT\":\n nextPort(this);\n break;\n\n case \"PATH\":\n nextPath(this);\n break;\n\n case \"QUERY\":\n nextQuery(this);\n break;\n\n default:\n throw new Error(`Unrecognized URLTokenizerState: ${this._currentState}`);\n }\n }\n return !!this._currentToken;\n }\n}\n\n/**\n * Read the remaining characters from this Tokenizer's character stream.\n */\nfunction readRemaining(tokenizer: URLTokenizer): string {\n let result = \"\";\n if (tokenizer._currentIndex < tokenizer._textLength) {\n result = tokenizer._text.substring(tokenizer._currentIndex);\n tokenizer._currentIndex = tokenizer._textLength;\n }\n return result;\n}\n\n/**\n * Whether or not this URLTokenizer has a current character.\n */\nfunction hasCurrentCharacter(tokenizer: URLTokenizer): boolean {\n return tokenizer._currentIndex < tokenizer._textLength;\n}\n\n/**\n * Get the character in the text string at the current index.\n */\nfunction getCurrentCharacter(tokenizer: URLTokenizer): string {\n return tokenizer._text[tokenizer._currentIndex];\n}\n\n/**\n * Advance to the character in text that is \"step\" characters ahead. If no step value is provided,\n * then step will default to 1.\n */\nfunction nextCharacter(tokenizer: URLTokenizer, step?: number): void {\n if (hasCurrentCharacter(tokenizer)) {\n if (!step) {\n step = 1;\n }\n tokenizer._currentIndex += step;\n }\n}\n\n/**\n * Starting with the current character, peek \"charactersToPeek\" number of characters ahead in this\n * Tokenizer's stream of characters.\n */\nfunction peekCharacters(tokenizer: URLTokenizer, charactersToPeek: number): string {\n let endIndex: number = tokenizer._currentIndex + charactersToPeek;\n if (tokenizer._textLength < endIndex) {\n endIndex = tokenizer._textLength;\n }\n return tokenizer._text.substring(tokenizer._currentIndex, endIndex);\n}\n\n/**\n * Read characters from this Tokenizer until the end of the stream or until the provided condition\n * is false when provided the current character.\n */\nfunction readWhile(tokenizer: URLTokenizer, condition: (character: string) => boolean): string {\n let result = \"\";\n\n while (hasCurrentCharacter(tokenizer)) {\n const currentCharacter: string = getCurrentCharacter(tokenizer);\n if (!condition(currentCharacter)) {\n break;\n } else {\n result += currentCharacter;\n nextCharacter(tokenizer);\n }\n }\n\n return result;\n}\n\n/**\n * Read characters from this Tokenizer until a non-alphanumeric character or the end of the\n * character stream is reached.\n */\nfunction readWhileLetterOrDigit(tokenizer: URLTokenizer): string {\n return readWhile(tokenizer, (character: string) => isAlphaNumericCharacter(character));\n}\n\n/**\n * Read characters from this Tokenizer until one of the provided terminating characters is read or\n * the end of the character stream is reached.\n */\nfunction readUntilCharacter(tokenizer: URLTokenizer, ...terminatingCharacters: string[]): string {\n return readWhile(\n tokenizer,\n (character: string) => terminatingCharacters.indexOf(character) === -1\n );\n}\n\nfunction nextScheme(tokenizer: URLTokenizer): void {\n const scheme: string = readWhileLetterOrDigit(tokenizer);\n tokenizer._currentToken = URLToken.scheme(scheme);\n if (!hasCurrentCharacter(tokenizer)) {\n tokenizer._currentState = \"DONE\";\n } else {\n tokenizer._currentState = \"HOST\";\n }\n}\n\nfunction nextSchemeOrHost(tokenizer: URLTokenizer): void {\n const schemeOrHost: string = readUntilCharacter(tokenizer, \":\", \"/\", \"?\");\n if (!hasCurrentCharacter(tokenizer)) {\n tokenizer._currentToken = URLToken.host(schemeOrHost);\n tokenizer._currentState = \"DONE\";\n } else if (getCurrentCharacter(tokenizer) === \":\") {\n if (peekCharacters(tokenizer, 3) === \"://\") {\n tokenizer._currentToken = URLToken.scheme(schemeOrHost);\n tokenizer._currentState = \"HOST\";\n } else {\n tokenizer._currentToken = URLToken.host(schemeOrHost);\n tokenizer._currentState = \"PORT\";\n }\n } else {\n tokenizer._currentToken = URLToken.host(schemeOrHost);\n if (getCurrentCharacter(tokenizer) === \"/\") {\n tokenizer._currentState = \"PATH\";\n } else {\n tokenizer._currentState = \"QUERY\";\n }\n }\n}\n\nfunction nextHost(tokenizer: URLTokenizer): void {\n if (peekCharacters(tokenizer, 3) === \"://\") {\n nextCharacter(tokenizer, 3);\n }\n\n const host: string = readUntilCharacter(tokenizer, \":\", \"/\", \"?\");\n tokenizer._currentToken = URLToken.host(host);\n\n if (!hasCurrentCharacter(tokenizer)) {\n tokenizer._currentState = \"DONE\";\n } else if (getCurrentCharacter(tokenizer) === \":\") {\n tokenizer._currentState = \"PORT\";\n } else if (getCurrentCharacter(tokenizer) === \"/\") {\n tokenizer._currentState = \"PATH\";\n } else {\n tokenizer._currentState = \"QUERY\";\n }\n}\n\nfunction nextPort(tokenizer: URLTokenizer): void {\n if (getCurrentCharacter(tokenizer) === \":\") {\n nextCharacter(tokenizer);\n }\n\n const port: string = readUntilCharacter(tokenizer, \"/\", \"?\");\n tokenizer._currentToken = URLToken.port(port);\n\n if (!hasCurrentCharacter(tokenizer)) {\n tokenizer._currentState = \"DONE\";\n } else if (getCurrentCharacter(tokenizer) === \"/\") {\n tokenizer._currentState = \"PATH\";\n } else {\n tokenizer._currentState = \"QUERY\";\n }\n}\n\nfunction nextPath(tokenizer: URLTokenizer): void {\n const path: string = readUntilCharacter(tokenizer, \"?\");\n tokenizer._currentToken = URLToken.path(path);\n\n if (!hasCurrentCharacter(tokenizer)) {\n tokenizer._currentState = \"DONE\";\n } else {\n tokenizer._currentState = \"QUERY\";\n }\n}\n\nfunction nextQuery(tokenizer: URLTokenizer): void {\n if (getCurrentCharacter(tokenizer) === \"?\") {\n nextCharacter(tokenizer);\n }\n\n const query: string = readRemaining(tokenizer);\n tokenizer._currentToken = URLToken.query(query);\n tokenizer._currentState = \"DONE\";\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { getDocument, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_PATHNAME, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar _document = getDocument() || {};\r\nvar _htmlAnchorIdx = 0;\r\n// Use an array of temporary values as it's possible for multiple calls to parseUrl() will be called with different URLs\r\n// Using a cache size of 5 for now as it current depth usage is at least 2, so adding a minor buffer to handle future updates\r\nvar _htmlAnchorElement = [null, null, null, null, null];\r\nexport function urlParseUrl(url) {\r\n var anchorIdx = _htmlAnchorIdx;\r\n var anchorCache = _htmlAnchorElement;\r\n var tempAnchor = anchorCache[anchorIdx];\r\n if (!_document.createElement) {\r\n // Always create the temp instance if createElement is not available\r\n tempAnchor = { host: urlParseHost(url, true) };\r\n }\r\n else if (!anchorCache[anchorIdx]) {\r\n // Create and cache the unattached anchor instance\r\n tempAnchor = anchorCache[anchorIdx] = _document.createElement(\"a\");\r\n }\r\n tempAnchor.href = url;\r\n // Move the cache index forward\r\n anchorIdx++;\r\n if (anchorIdx >= anchorCache[_DYN_LENGTH /* @min:%2elength */]) {\r\n anchorIdx = 0;\r\n }\r\n _htmlAnchorIdx = anchorIdx;\r\n return tempAnchor;\r\n}\r\nexport function urlGetAbsoluteUrl(url) {\r\n var result;\r\n var a = urlParseUrl(url);\r\n if (a) {\r\n result = a.href;\r\n }\r\n return result;\r\n}\r\nexport function urlGetPathName(url) {\r\n var result;\r\n var a = urlParseUrl(url);\r\n if (a) {\r\n result = a[_DYN_PATHNAME /* @min:%2epathname */];\r\n }\r\n return result;\r\n}\r\nexport function urlGetCompleteUrl(method, absoluteUrl) {\r\n if (method) {\r\n return method.toUpperCase() + \" \" + absoluteUrl;\r\n }\r\n return absoluteUrl;\r\n}\r\n// Fallback method to grab host from url if document.createElement method is not available\r\nexport function urlParseHost(url, inclPort) {\r\n var fullHost = urlParseFullHost(url, inclPort) || \"\";\r\n if (fullHost) {\r\n var match = fullHost.match(/(www[0-9]?\\.)?(.[^/:]+)(\\:[\\d]+)?/i);\r\n if (match != null && match[_DYN_LENGTH /* @min:%2elength */] > 3 && isString(match[2]) && match[2][_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n return match[2] + (match[3] || \"\");\r\n }\r\n }\r\n return fullHost;\r\n}\r\nexport function urlParseFullHost(url, inclPort) {\r\n var result = null;\r\n if (url) {\r\n var match = url.match(/(\\w*):\\/\\/(.[^/:]+)(\\:[\\d]+)?/i);\r\n if (match != null && match[_DYN_LENGTH /* @min:%2elength */] > 2 && isString(match[2]) && match[2][_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n result = match[2] || \"\";\r\n if (inclPort && match[_DYN_LENGTH /* @min:%2elength */] > 2) {\r\n var protocol = (match[1] || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n var port = match[3] || \"\";\r\n // IE includes the standard port so pass it off if it's the same as the protocol\r\n if (protocol === \"http\" && port === \":80\") {\r\n port = \"\";\r\n }\r\n else if (protocol === \"https\" && port === \":443\") {\r\n port = \"\";\r\n }\r\n result += port;\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=UrlHelperFuncs.js.map","import { canUseDOM } from './canUseDOM';\n\n/**\n * Helper to get the document object. Note that in popup window cases, document\n * might be the wrong document, which is why we look at ownerDocument for the\n * truth.\n *\n * @public\n */\nexport function getDocument(rootElement?: HTMLElement | null): Document | undefined {\n if (!canUseDOM() || typeof document === 'undefined') {\n return undefined;\n } else {\n const el = rootElement as Element;\n\n return el && el.ownerDocument ? el.ownerDocument : document;\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { _DYN_CALL, _DYN_CONFIG, _DYN_CREATE_NEW, _DYN_DIAG_LOG, _DYN_GET_NEXT, _DYN_GET_PLUGIN, _DYN_IDENTIFIER, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_LOGGER, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_SET_NEXT_PLUGIN, _DYN_TEARDOWN, _DYN_UPDATE } from \"../__DynamicConstants\";\r\nimport { _throwInternal, safeGetLogger } from \"./DiagnosticLogger\";\r\nimport { dumpObj } from \"./EnvUtils\";\r\nimport { arrForEach, isArray, isFunction, isNullOrUndefined, isObject, isUndefined, objExtend, objForEachKey, objFreeze, objKeys, proxyFunctions } from \"./HelperFuncs\";\r\nimport { STR_CORE, STR_DISABLED, STR_EMPTY, STR_EXTENSION_CONFIG, STR_PRIORITY, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { doPerf } from \"./PerfManager\";\r\nimport { _getPluginState } from \"./TelemetryHelpers\";\r\nvar strTelemetryPluginChain = \"TelemetryPluginChain\";\r\nvar strHasRunFlags = \"_hasRun\";\r\nvar strGetTelCtx = \"_getTelCtx\";\r\nvar _chainId = 0;\r\nfunction _getNextProxyStart(proxy, core, startAt) {\r\n while (proxy) {\r\n if (proxy[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]() === startAt) {\r\n return proxy;\r\n }\r\n proxy = proxy[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n // This wasn't found in the existing chain so create an isolated one with just this plugin\r\n return createTelemetryProxyChain([startAt], core[_DYN_CONFIG /* @min:%2econfig */] || {}, core);\r\n}\r\n/**\r\n * @ignore\r\n * @param telemetryChain\r\n * @param config\r\n * @param core\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n * @returns\r\n */\r\nfunction _createInternalContext(telemetryChain, config, core, startAt) {\r\n // We have a special case where we want to start execution from this specific plugin\r\n // or we simply reuse the existing telemetry plugin chain (normal execution case)\r\n var _nextProxy = null; // By Default set as no next plugin\r\n var _onComplete = [];\r\n if (startAt !== null) {\r\n // There is no next element (null) vs not defined (undefined) so use the full chain\r\n _nextProxy = startAt ? _getNextProxyStart(telemetryChain, core, startAt) : telemetryChain;\r\n }\r\n var context = {\r\n _next: _moveNext,\r\n ctx: {\r\n core: function () {\r\n return core;\r\n },\r\n diagLog: function () {\r\n return safeGetLogger(core, config);\r\n },\r\n getCfg: function () {\r\n return config;\r\n },\r\n getExtCfg: _getExtCfg,\r\n getConfig: _getConfig,\r\n hasNext: function () {\r\n return !!_nextProxy;\r\n },\r\n getNext: function () {\r\n return _nextProxy;\r\n },\r\n setNext: function (nextPlugin) {\r\n _nextProxy = nextPlugin;\r\n },\r\n iterate: _iterateChain,\r\n onComplete: _addOnComplete\r\n }\r\n };\r\n function _addOnComplete(onComplete, that) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n if (onComplete) {\r\n _onComplete[_DYN_PUSH /* @min:%2epush */]({\r\n func: onComplete,\r\n self: !isUndefined(that) ? that : context.ctx,\r\n args: args\r\n });\r\n }\r\n }\r\n function _moveNext() {\r\n var nextProxy = _nextProxy;\r\n // Automatically move to the next plugin\r\n _nextProxy = nextProxy ? nextProxy[_DYN_GET_NEXT /* @min:%2egetNext */]() : null;\r\n if (!nextProxy) {\r\n var onComplete = _onComplete;\r\n if (onComplete && onComplete[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(onComplete, function (completeDetails) {\r\n try {\r\n completeDetails.func[_DYN_CALL /* @min:%2ecall */](completeDetails.self, completeDetails.args);\r\n }\r\n catch (e) {\r\n _throwInternal(core[_DYN_LOGGER /* @min:%2elogger */], 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unexpected Exception during onComplete - \" + dumpObj(e));\r\n }\r\n });\r\n _onComplete = [];\r\n }\r\n }\r\n return nextProxy;\r\n }\r\n function _getExtCfg(identifier, defaultValue, mergeDefault) {\r\n if (defaultValue === void 0) { defaultValue = {}; }\r\n if (mergeDefault === void 0) { mergeDefault = 0 /* GetExtCfgMergeType.None */; }\r\n var theConfig;\r\n if (config) {\r\n var extConfig = config[STR_EXTENSION_CONFIG /* @min:%2eextensionConfig */];\r\n if (extConfig && identifier) {\r\n theConfig = extConfig[identifier];\r\n }\r\n }\r\n if (!theConfig) {\r\n // Just use the defaults\r\n theConfig = defaultValue;\r\n }\r\n else if (isObject(defaultValue)) {\r\n if (mergeDefault !== 0 /* GetExtCfgMergeType.None */) {\r\n // Merge the defaults and configured values\r\n var newConfig_1 = objExtend(true, defaultValue, theConfig);\r\n if (config && mergeDefault === 2 /* GetExtCfgMergeType.MergeDefaultFromRootOrDefault */) {\r\n // Enumerate over the defaultValues and if not already populated attempt to\r\n // find a value from the root config\r\n objForEachKey(defaultValue, function (field) {\r\n // for each unspecified field, set the default value\r\n if (isNullOrUndefined(newConfig_1[field])) {\r\n var cfgValue = config[field];\r\n if (!isNullOrUndefined(cfgValue)) {\r\n newConfig_1[field] = cfgValue;\r\n }\r\n }\r\n });\r\n }\r\n theConfig = newConfig_1;\r\n }\r\n }\r\n return theConfig;\r\n }\r\n function _getConfig(identifier, field, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n var theValue;\r\n var extConfig = _getExtCfg(identifier, null);\r\n if (extConfig && !isNullOrUndefined(extConfig[field])) {\r\n theValue = extConfig[field];\r\n }\r\n else if (config && !isNullOrUndefined(config[field])) {\r\n theValue = config[field];\r\n }\r\n return !isNullOrUndefined(theValue) ? theValue : defaultValue;\r\n }\r\n function _iterateChain(cb) {\r\n // Keep processing until we reach the end of the chain\r\n var nextPlugin;\r\n while (!!(nextPlugin = context._next())) {\r\n var plugin = nextPlugin[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]();\r\n if (plugin) {\r\n // callback with the current on\r\n cb(plugin);\r\n }\r\n }\r\n }\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryContext(telemetryChain, config, core, startAt) {\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(env) {\r\n var nextPlugin = internalContext._next();\r\n // Run the next plugin which will call \"processNext()\"\r\n nextPlugin && nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, context);\r\n return !nextPlugin;\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config, core, startAt);\r\n }\r\n return createProcessTelemetryContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), config, core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain for handling the unloading of the chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryUnloadContext(telemetryChain, core, startAt) {\r\n var config = core[_DYN_CONFIG /* @min:%2econfig */] || {};\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(unloadState) {\r\n var nextPlugin = internalContext._next();\r\n nextPlugin && nextPlugin.unload(context, unloadState);\r\n return !nextPlugin;\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config, core, startAt);\r\n }\r\n return createProcessTelemetryUnloadContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain for updating the configuration\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryUpdateContext(telemetryChain, core, startAt) {\r\n var config = core[_DYN_CONFIG /* @min:%2econfig */] || {};\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(updateState) {\r\n return context.iterate(function (plugin) {\r\n if (isFunction(plugin[_DYN_UPDATE /* @min:%2eupdate */])) {\r\n plugin[_DYN_UPDATE /* @min:%2eupdate */](context, updateState);\r\n }\r\n });\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config, core, startAt);\r\n }\r\n return createProcessTelemetryUpdateContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates an execution chain from the array of plugins\r\n * @param plugins - The array of plugins that will be executed in this order\r\n * @param defItemCtx - The default execution context to use when no telemetry context is passed to processTelemetry(), this\r\n * should be for legacy plugins only. Currently, only used for passing the current core instance and to provide better error\r\n * reporting (hasRun) when errors occur.\r\n */\r\nexport function createTelemetryProxyChain(plugins, config, core, startAt) {\r\n var firstProxy = null;\r\n var add = startAt ? false : true;\r\n if (isArray(plugins) && plugins[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // Create the proxies and wire up the next plugin chain\r\n var lastProxy_1 = null;\r\n arrForEach(plugins, function (thePlugin) {\r\n if (!add && startAt === thePlugin) {\r\n add = true;\r\n }\r\n if (add && thePlugin && isFunction(thePlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */])) {\r\n // Only add plugins that are processors\r\n var newProxy = createTelemetryPluginProxy(thePlugin, config, core);\r\n if (!firstProxy) {\r\n firstProxy = newProxy;\r\n }\r\n if (lastProxy_1) {\r\n // Set this new proxy as the next for the previous one\r\n lastProxy_1._setNext(newProxy);\r\n }\r\n lastProxy_1 = newProxy;\r\n }\r\n });\r\n }\r\n if (startAt && !firstProxy) {\r\n // Special case where the \"startAt\" was not in the original list of plugins\r\n return createTelemetryProxyChain([startAt], config, core);\r\n }\r\n return firstProxy;\r\n}\r\n/**\r\n * Create the processing telemetry proxy instance, the proxy is used to abstract the current plugin to allow monitoring and\r\n * execution plugins while passing around the dynamic execution state (IProcessTelemetryContext), the proxy instance no longer\r\n * contains any execution state and can be reused between requests (this was not the case for 2.7.2 and earlier with the\r\n * TelemetryPluginChain class).\r\n * @param plugin - The plugin instance to proxy\r\n * @param config - The default execution context to use when no telemetry context is passed to processTelemetry(), this\r\n * should be for legacy plugins only. Currently, only used for passing the current core instance and to provide better error\r\n * reporting (hasRun) when errors occur.\r\n * @returns\r\n */\r\nexport function createTelemetryPluginProxy(plugin, config, core) {\r\n var nextProxy = null;\r\n var hasProcessTelemetry = isFunction(plugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */]);\r\n var hasSetNext = isFunction(plugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */]);\r\n var chainId;\r\n if (plugin) {\r\n chainId = plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"-\" + plugin[STR_PRIORITY /* @min:%2epriority */] + \"-\" + _chainId++;\r\n }\r\n else {\r\n chainId = \"Unknown-0-\" + _chainId++;\r\n }\r\n var proxyChain = {\r\n getPlugin: function () {\r\n return plugin;\r\n },\r\n getNext: function () {\r\n return nextProxy;\r\n },\r\n processTelemetry: _processTelemetry,\r\n unload: _unloadPlugin,\r\n update: _updatePlugin,\r\n _id: chainId,\r\n _setNext: function (nextPlugin) {\r\n nextProxy = nextPlugin;\r\n }\r\n };\r\n function _getTelCtx() {\r\n var itemCtx;\r\n // Looks like a plugin didn't pass the (optional) context, so create a new one\r\n if (plugin && isFunction(plugin[strGetTelCtx])) {\r\n // This plugin extends from the BaseTelemetryPlugin so lets use it\r\n itemCtx = plugin[strGetTelCtx]();\r\n }\r\n if (!itemCtx) {\r\n // Create a temporary one\r\n itemCtx = createProcessTelemetryContext(proxyChain, config, core);\r\n }\r\n return itemCtx;\r\n }\r\n function _processChain(itemCtx, processPluginFn, name, details, isAsync) {\r\n var hasRun = false;\r\n var identifier = plugin ? plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] : strTelemetryPluginChain;\r\n var hasRunContext = itemCtx[strHasRunFlags];\r\n if (!hasRunContext) {\r\n // Assign and populate\r\n hasRunContext = itemCtx[strHasRunFlags] = {};\r\n }\r\n // Ensure that we keep the context in sync\r\n itemCtx.setNext(nextProxy);\r\n if (plugin) {\r\n doPerf(itemCtx[STR_CORE /* @min:%2ecore */](), function () { return identifier + \":\" + name; }, function () {\r\n // Mark this component as having run\r\n hasRunContext[chainId] = true;\r\n try {\r\n // Set a flag on the next plugin so we know if it was attempted to be executed\r\n var nextId = nextProxy ? nextProxy._id : STR_EMPTY;\r\n if (nextId) {\r\n hasRunContext[nextId] = false;\r\n }\r\n hasRun = processPluginFn(itemCtx);\r\n }\r\n catch (error) {\r\n var hasNextRun = nextProxy ? hasRunContext[nextProxy._id] : true;\r\n if (hasNextRun) {\r\n // The next plugin after us has already run so set this one as complete\r\n hasRun = true;\r\n }\r\n if (!nextProxy || !hasNextRun) {\r\n // Either we have no next plugin or the current one did not attempt to call the next plugin\r\n // Which means the current one is the root of the failure so log/report this failure\r\n _throwInternal(itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 73 /* _eInternalMessageId.PluginException */, \"Plugin [\" + identifier + \"] failed during \" + name + \" - \" + dumpObj(error) + \", run flags: \" + dumpObj(hasRunContext));\r\n }\r\n }\r\n }, details, isAsync);\r\n }\r\n return hasRun;\r\n }\r\n function _processTelemetry(env, itemCtx) {\r\n itemCtx = itemCtx || _getTelCtx();\r\n function _callProcessTelemetry(itemCtx) {\r\n if (!plugin || !hasProcessTelemetry) {\r\n return false;\r\n }\r\n var pluginState = _getPluginState(plugin);\r\n if (pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] || pluginState[STR_DISABLED]) {\r\n return false;\r\n }\r\n // Ensure that we keep the context in sync (for processNext()), just in case a plugin\r\n // doesn't calls processTelemetry() instead of itemContext.processNext() or some\r\n // other form of error occurred\r\n if (hasSetNext) {\r\n // Backward compatibility setting the next plugin on the instance\r\n plugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */](nextProxy);\r\n }\r\n plugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, itemCtx);\r\n // Process Telemetry is expected to call itemCtx.processNext() or nextPlugin.processTelemetry()\r\n return true;\r\n }\r\n if (!_processChain(itemCtx, _callProcessTelemetry, \"processTelemetry\", function () { return ({ item: env }); }, !(env.sync))) {\r\n // The underlying plugin is either not defined, not enabled or does not have a processTelemetry implementation\r\n // so we still want the next plugin to be executed.\r\n itemCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](env);\r\n }\r\n }\r\n function _unloadPlugin(unloadCtx, unloadState) {\r\n function _callTeardown() {\r\n // Setting default of hasRun as false so the proxyProcessFn() is called as teardown() doesn't have to exist or call unloadNext().\r\n var hasRun = false;\r\n if (plugin) {\r\n var pluginState = _getPluginState(plugin);\r\n var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE /* @min:%2ecore */];\r\n // Only teardown the plugin if it was initialized by the current core (i.e. It's not a shared plugin)\r\n if (plugin && (!pluginCore || pluginCore === unloadCtx.core()) && !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */]) {\r\n // Handle plugins that don't extend from the BaseTelemetryPlugin\r\n pluginState[STR_CORE /* @min:%2ecore */] = null;\r\n pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] = true;\r\n pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = false;\r\n if (plugin[_DYN_TEARDOWN /* @min:%2eteardown */] && plugin[_DYN_TEARDOWN /* @min:%2eteardown */](unloadCtx, unloadState) === true) {\r\n // plugin told us that it was going to (or has) call unloadCtx.processNext()\r\n hasRun = true;\r\n }\r\n }\r\n }\r\n return hasRun;\r\n }\r\n if (!_processChain(unloadCtx, _callTeardown, \"unload\", function () { }, unloadState[_DYN_IS_ASYNC /* @min:%2eisAsync */])) {\r\n // Only called if we hasRun was not true\r\n unloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n }\r\n function _updatePlugin(updateCtx, updateState) {\r\n function _callUpdate() {\r\n // Setting default of hasRun as false so the proxyProcessFn() is called as teardown() doesn't have to exist or call unloadNext().\r\n var hasRun = false;\r\n if (plugin) {\r\n var pluginState = _getPluginState(plugin);\r\n var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE /* @min:%2ecore */];\r\n // Only update the plugin if it was initialized by the current core (i.e. It's not a shared plugin)\r\n if (plugin && (!pluginCore || pluginCore === updateCtx.core()) && !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */]) {\r\n if (plugin[_DYN_UPDATE /* @min:%2eupdate */] && plugin[_DYN_UPDATE /* @min:%2eupdate */](updateCtx, updateState) === true) {\r\n // plugin told us that it was going to (or has) call unloadCtx.processNext()\r\n hasRun = true;\r\n }\r\n }\r\n }\r\n return hasRun;\r\n }\r\n if (!_processChain(updateCtx, _callUpdate, \"update\", function () { }, false)) {\r\n // Only called if we hasRun was not true\r\n updateCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](updateState);\r\n }\r\n }\r\n return objFreeze(proxyChain);\r\n}\r\n/**\r\n * This class will be removed!\r\n * @deprecated use createProcessTelemetryContext() instead\r\n */\r\nvar ProcessTelemetryContext = /** @class */ (function () {\r\n /**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n */\r\n function ProcessTelemetryContext(pluginChain, config, core, startAt) {\r\n var _self = this;\r\n var context = createProcessTelemetryContext(pluginChain, config, core, startAt);\r\n // Proxy all functions of the context to this object\r\n proxyFunctions(_self, context, objKeys(context));\r\n }\r\n return ProcessTelemetryContext;\r\n}());\r\nexport { ProcessTelemetryContext };\r\n//# sourceMappingURL=ProcessTelemetryContext.js.map","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { arrForEach, arrIndexOf, attachEvent, canUseCookies as coreCanUseCookies, dateNow, deleteCookie as coreDeleteCookie, disableCookies as coreDisableCookies, dumpObj, generateW3CId, getCookie as coreGetCookie, getExceptionName as coreGetExceptionName, getIEVersion, getPerformance, isArray, isBeaconsSupported, isDate, isError, isNullOrUndefined, isValidSpanId, isValidTraceId, newId, random32, setCookie as coreSetCookie, strTrim, toISOString, uaDisallowsSameSiteNone } from \"@microsoft/applicationinsights-core-js\";\r\nimport { DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, strNotSpecified } from \"./Constants\";\r\nimport { createDomEvent } from \"./DomHelperFuncs\";\r\nimport { getExtensionByName, isCrossOriginError, msToTimeSpan, stringToBoolOrDefault } from \"./HelperFuncs\";\r\nimport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nimport { utlCanUseLocalStorage, utlCanUseSessionStorage, utlDisableStorage, utlGetLocalStorage, utlGetSessionStorage, utlGetSessionStorageKeys, utlRemoveSessionStorage, utlRemoveStorage, utlSetLocalStorage, utlSetSessionStorage } from \"./StorageHelperFuncs\";\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { urlGetAbsoluteUrl, urlGetCompleteUrl, urlGetPathName, urlParseFullHost, urlParseHost, urlParseUrl } from \"./UrlHelperFuncs\";\r\nimport { _DYN_CORRELATION_HEADER_E0, _DYN_INDEX_OF, _DYN_LENGTH, _DYN_NAME, _DYN_PATHNAME, _DYN_SPLIT, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\n// listing only non-geo specific locations\r\nvar _internalEndpoints = [\r\n DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH,\r\n \"https://breeze.aimon.applicationinsights.io\" + DEFAULT_BREEZE_PATH,\r\n \"https://dc-int.services.visualstudio.com\" + DEFAULT_BREEZE_PATH\r\n];\r\nexport function isInternalApplicationInsightsEndpoint(endpointUrl) {\r\n return arrIndexOf(_internalEndpoints, endpointUrl[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()) !== -1;\r\n}\r\nexport var Util = {\r\n NotSpecified: strNotSpecified,\r\n createDomEvent: createDomEvent,\r\n disableStorage: utlDisableStorage,\r\n isInternalApplicationInsightsEndpoint: isInternalApplicationInsightsEndpoint,\r\n canUseLocalStorage: utlCanUseLocalStorage,\r\n getStorage: utlGetLocalStorage,\r\n setStorage: utlSetLocalStorage,\r\n removeStorage: utlRemoveStorage,\r\n canUseSessionStorage: utlCanUseSessionStorage,\r\n getSessionStorageKeys: utlGetSessionStorageKeys,\r\n getSessionStorage: utlGetSessionStorage,\r\n setSessionStorage: utlSetSessionStorage,\r\n removeSessionStorage: utlRemoveSessionStorage,\r\n disableCookies: coreDisableCookies,\r\n canUseCookies: coreCanUseCookies,\r\n disallowsSameSiteNone: uaDisallowsSameSiteNone,\r\n setCookie: coreSetCookie,\r\n stringToBoolOrDefault: stringToBoolOrDefault,\r\n getCookie: coreGetCookie,\r\n deleteCookie: coreDeleteCookie,\r\n trim: strTrim,\r\n newId: newId,\r\n random32: function () {\r\n return random32(true);\r\n },\r\n generateW3CId: generateW3CId,\r\n isArray: isArray,\r\n isError: isError,\r\n isDate: isDate,\r\n toISOStringForIE8: toISOString,\r\n getIEVersion: getIEVersion,\r\n msToTimeSpan: msToTimeSpan,\r\n isCrossOriginError: isCrossOriginError,\r\n dump: dumpObj,\r\n getExceptionName: coreGetExceptionName,\r\n addEventHandler: attachEvent,\r\n IsBeaconApiSupported: isBeaconsSupported,\r\n getExtension: getExtensionByName\r\n};\r\nexport var UrlHelper = {\r\n parseUrl: urlParseUrl,\r\n getAbsoluteUrl: urlGetAbsoluteUrl,\r\n getPathName: urlGetPathName,\r\n getCompleteUrl: urlGetCompleteUrl,\r\n parseHost: urlParseHost,\r\n parseFullHost: urlParseFullHost\r\n};\r\nexport var CorrelationIdHelper = {\r\n correlationIdPrefix: \"cid-v1:\",\r\n /**\r\n * Checks if a request url is not on a excluded domain list and if it is safe to add correlation headers.\r\n * Headers are always included if the current domain matches the request domain. If they do not match (CORS),\r\n * they are regex-ed across correlationHeaderDomains and correlationHeaderExcludedDomains to determine if headers are included.\r\n * Some environments don't give information on currentHost via window.location.host (e.g. Cordova). In these cases, the user must\r\n * manually supply domains to include correlation headers on. Else, no headers will be included at all.\r\n */\r\n canIncludeCorrelationHeader: function (config, requestUrl, currentHost) {\r\n if (!requestUrl || (config && config.disableCorrelationHeaders)) {\r\n return false;\r\n }\r\n if (config && config[_DYN_CORRELATION_HEADER_E0 /* @min:%2ecorrelationHeaderExcludePatterns */]) {\r\n for (var i = 0; i < config.correlationHeaderExcludePatterns[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (config[_DYN_CORRELATION_HEADER_E0 /* @min:%2ecorrelationHeaderExcludePatterns */][i].test(requestUrl)) {\r\n return false;\r\n }\r\n }\r\n }\r\n var requestHost = urlParseUrl(requestUrl).host[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n if (requestHost && (requestHost[_DYN_INDEX_OF /* @min:%2eindexOf */](\":443\") !== -1 || requestHost[_DYN_INDEX_OF /* @min:%2eindexOf */](\":80\") !== -1)) {\r\n // [Bug #1260] IE can include the port even for http and https URLs so if present\r\n // try and parse it to remove if it matches the default protocol port\r\n requestHost = (urlParseFullHost(requestUrl, true) || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n }\r\n if ((!config || !config.enableCorsCorrelation) && (requestHost && requestHost !== currentHost)) {\r\n return false;\r\n }\r\n var includedDomains = config && config.correlationHeaderDomains;\r\n if (includedDomains) {\r\n var matchExists_1;\r\n arrForEach(includedDomains, function (domain) {\r\n var regex = new RegExp(domain.toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\r\n matchExists_1 = matchExists_1 || regex.test(requestHost);\r\n });\r\n if (!matchExists_1) {\r\n return false;\r\n }\r\n }\r\n var excludedDomains = config && config.correlationHeaderExcludedDomains;\r\n if (!excludedDomains || excludedDomains[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n return true;\r\n }\r\n for (var i = 0; i < excludedDomains[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var regex = new RegExp(excludedDomains[i].toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\r\n if (regex.test(requestHost)) {\r\n return false;\r\n }\r\n }\r\n // if we don't know anything about the requestHost, require the user to use included/excludedDomains.\r\n // Previously we always returned false for a falsy requestHost\r\n return requestHost && requestHost[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n },\r\n /**\r\n * Combines target appId and target role name from response header.\r\n */\r\n getCorrelationContext: function (responseHeader) {\r\n if (responseHeader) {\r\n var correlationId = CorrelationIdHelper.getCorrelationContextValue(responseHeader, RequestHeaders[1 /* eRequestHeaders.requestContextTargetKey */]);\r\n if (correlationId && correlationId !== CorrelationIdHelper.correlationIdPrefix) {\r\n return correlationId;\r\n }\r\n }\r\n },\r\n /**\r\n * Gets key from correlation response header\r\n */\r\n getCorrelationContextValue: function (responseHeader, key) {\r\n if (responseHeader) {\r\n var keyValues = responseHeader[_DYN_SPLIT /* @min:%2esplit */](\",\");\r\n for (var i = 0; i < keyValues[_DYN_LENGTH /* @min:%2elength */]; ++i) {\r\n var keyValue = keyValues[i][_DYN_SPLIT /* @min:%2esplit */](\"=\");\r\n if (keyValue[_DYN_LENGTH /* @min:%2elength */] === 2 && keyValue[0] === key) {\r\n return keyValue[1];\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexport function AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName) {\r\n var target, name = commandName, data = commandName;\r\n if (absoluteUrl && absoluteUrl[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var parsedUrl = urlParseUrl(absoluteUrl);\r\n target = parsedUrl.host;\r\n if (!name) {\r\n if (parsedUrl[_DYN_PATHNAME /* @min:%2epathname */] != null) {\r\n var pathName = (parsedUrl.pathname[_DYN_LENGTH /* @min:%2elength */] === 0) ? \"/\" : parsedUrl[_DYN_PATHNAME /* @min:%2epathname */];\r\n if (pathName.charAt(0) !== \"/\") {\r\n pathName = \"/\" + pathName;\r\n }\r\n data = parsedUrl[_DYN_PATHNAME /* @min:%2epathname */];\r\n name = dataSanitizeString(logger, method ? method + \" \" + pathName : pathName);\r\n }\r\n else {\r\n name = dataSanitizeString(logger, absoluteUrl);\r\n }\r\n }\r\n }\r\n else {\r\n target = commandName;\r\n name = commandName;\r\n }\r\n return {\r\n target: target,\r\n name: name,\r\n data: data\r\n };\r\n}\r\nexport function dateTimeUtilsNow() {\r\n // returns the window or webworker performance object\r\n var perf = getPerformance();\r\n if (perf && perf.now && perf.timing) {\r\n var now = perf.now() + perf.timing.navigationStart;\r\n // Known issue with IE where this calculation can be negative, so if it is then ignore and fallback\r\n if (now > 0) {\r\n return now;\r\n }\r\n }\r\n return dateNow();\r\n}\r\nexport function dateTimeUtilsDuration(start, end) {\r\n var result = null;\r\n if (start !== 0 && end !== 0 && !isNullOrUndefined(start) && !isNullOrUndefined(end)) {\r\n result = end - start;\r\n }\r\n return result;\r\n}\r\n/**\r\n * A utility class that helps getting time related parameters\r\n */\r\nexport var DateTimeUtils = {\r\n Now: dateTimeUtilsNow,\r\n GetDuration: dateTimeUtilsDuration\r\n};\r\n/**\r\n * Creates a IDistributedTraceContext from an optional telemetryTrace\r\n * @param telemetryTrace - The telemetryTrace instance that is being wrapped\r\n * @param parentCtx - An optional parent distributed trace instance, almost always undefined as this scenario is only used in the case of multiple property handlers.\r\n * @returns A new IDistributedTraceContext instance that is backed by the telemetryTrace or temporary object\r\n */\r\nexport function createDistributedTraceContextFromTrace(telemetryTrace, parentCtx) {\r\n var trace = telemetryTrace || {};\r\n return {\r\n getName: function () {\r\n return trace[_DYN_NAME /* @min:%2ename */];\r\n },\r\n setName: function (newValue) {\r\n parentCtx && parentCtx.setName(newValue);\r\n trace[_DYN_NAME /* @min:%2ename */] = newValue;\r\n },\r\n getTraceId: function () {\r\n return trace.traceID;\r\n },\r\n setTraceId: function (newValue) {\r\n parentCtx && parentCtx.setTraceId(newValue);\r\n if (isValidTraceId(newValue)) {\r\n trace.traceID = newValue;\r\n }\r\n },\r\n getSpanId: function () {\r\n return trace.parentID;\r\n },\r\n setSpanId: function (newValue) {\r\n parentCtx && parentCtx.setSpanId(newValue);\r\n if (isValidSpanId(newValue)) {\r\n trace.parentID = newValue;\r\n }\r\n },\r\n getTraceFlags: function () {\r\n return trace.traceFlags;\r\n },\r\n setTraceFlags: function (newTraceFlags) {\r\n parentCtx && parentCtx.setTraceFlags(newTraceFlags);\r\n trace.traceFlags = newTraceFlags;\r\n }\r\n };\r\n}\r\n//# sourceMappingURL=Util.js.map","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ClientAuthError } from \"../error/ClientAuthError\";\nimport { StringUtils } from \"../utils/StringUtils\";\nimport { ICrypto } from \"../crypto/ICrypto\";\nimport { Separators, Constants } from \"../utils/Constants\";\n\n/**\n * Client info object which consists of two IDs. Need to add more info here.\n */\nexport type ClientInfo = {\n uid: string,\n utid: string\n};\n\n/**\n * Function to build a client info object from server clientInfo string\n * @param rawClientInfo\n * @param crypto\n */\nexport function buildClientInfo(rawClientInfo: string, crypto: ICrypto): ClientInfo {\n if (StringUtils.isEmpty(rawClientInfo)) {\n throw ClientAuthError.createClientInfoEmptyError();\n }\n\n try {\n const decodedClientInfo: string = crypto.base64Decode(rawClientInfo);\n return JSON.parse(decodedClientInfo) as ClientInfo;\n } catch (e) {\n throw ClientAuthError.createClientInfoDecodingError(e);\n }\n}\n\n/**\n * Function to build a client info object from cached homeAccountId string\n * @param homeAccountId \n */\nexport function buildClientInfoFromHomeAccountId(homeAccountId: string): ClientInfo {\n if (StringUtils.isEmpty(homeAccountId)) {\n throw ClientAuthError.createClientInfoDecodingError(\"Home account ID was empty.\");\n }\n const clientInfoParts: string[] = homeAccountId.split(Separators.CLIENT_INFO_SEPARATOR, 2);\n return {\n uid: clientInfoParts[0],\n utid: clientInfoParts.length < 2 ? Constants.EMPTY_STRING : clientInfoParts[1]\n };\n}\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","import { IStyle } from './IStyle';\n\nexport const InjectionMode = {\n /**\n * Avoids style injection, use getRules() to read the styles.\n */\n none: 0 as 0,\n\n /**\n * Inserts rules using the insertRule api.\n */\n insertNode: 1 as 1,\n\n /**\n * Appends rules using appendChild.\n */\n appendChild: 2 as 2,\n};\n\nexport type InjectionMode = typeof InjectionMode[keyof typeof InjectionMode];\n\n/**\n * CSP settings for the stylesheet\n */\nexport interface ICSPSettings {\n /**\n * Nonce to inject into script tag\n */\n nonce?: string;\n}\n\n/**\n * Stylesheet config.\n *\n * @public\n */\nexport interface IStyleSheetConfig {\n /**\n * Injection mode for how rules are inserted.\n */\n injectionMode?: InjectionMode;\n\n /**\n * Default 'displayName' to use for a className.\n * @defaultvalue 'css'\n */\n defaultPrefix?: string;\n\n /**\n * Defines the default direction of rules for auto-rtlifying things.\n * While typically this is represented as a DIR attribute in the markup,\n * the DIR is not enough to control whether padding goes on the left or\n * right. Use this to set the default direction when rules are registered.\n */\n rtl?: boolean;\n\n /**\n * Default 'namespace' to attach before the className.\n */\n namespace?: string;\n\n /**\n * CSP settings\n */\n cspSettings?: ICSPSettings;\n\n /**\n * Callback executed when a rule is inserted.\n * @deprecated Use `Stylesheet.onInsertRule` instead.\n */\n onInsertRule?: (rule: string) => void;\n\n /**\n * Initial value for classnames cache. Key is serialized css rules associated with a classname.\n */\n classNameCache?: { [key: string]: string };\n}\n\n/**\n * Representation of Stylesheet used for rehydration.\n */\nexport interface ISerializedStylesheet {\n classNameToArgs: Stylesheet['_classNameToArgs'];\n counter: Stylesheet['_counter'];\n keyToClassName: Stylesheet['_keyToClassName'];\n preservedRules: Stylesheet['_preservedRules'];\n rules: Stylesheet['_rules'];\n}\n\nconst STYLESHEET_SETTING = '__stylesheet__';\n/**\n * MSIE 11 doesn't cascade styles based on DOM ordering, but rather on the order that each style node\n * is created. As such, to maintain consistent priority, IE11 should reuse a single style node.\n */\nconst REUSE_STYLE_NODE = typeof navigator !== 'undefined' && /rv:11.0/.test(navigator.userAgent);\n\nlet _global: (Window | {}) & {\n [STYLESHEET_SETTING]?: Stylesheet;\n FabricConfig?: {\n mergeStyles?: IStyleSheetConfig;\n serializedStylesheet?: ISerializedStylesheet;\n };\n} = {};\n\n// Grab window.\ntry {\n _global = window || {};\n} catch {\n /* leave as blank object */\n}\n\nlet _stylesheet: Stylesheet | undefined;\n\n/**\n * Represents the state of styles registered in the page. Abstracts\n * the surface for adding styles to the stylesheet, exposes helpers\n * for reading the styles registered in server rendered scenarios.\n *\n * @public\n */\nexport class Stylesheet {\n private _lastStyleElement?: HTMLStyleElement;\n private _styleElement?: HTMLStyleElement;\n private _rules: string[] = [];\n private _preservedRules: string[] = [];\n private _config: IStyleSheetConfig;\n private _counter = 0;\n private _keyToClassName: { [key: string]: string } = {};\n private _onInsertRuleCallbacks: Function[] = [];\n private _onResetCallbacks: Function[] = [];\n private _classNameToArgs: { [key: string]: { args: any; rules: string[] } } = {};\n\n /**\n * Gets the singleton instance.\n */\n public static getInstance(): Stylesheet {\n _stylesheet = _global[STYLESHEET_SETTING] as Stylesheet;\n\n if (!_stylesheet || (_stylesheet._lastStyleElement && _stylesheet._lastStyleElement.ownerDocument !== document)) {\n const fabricConfig = _global?.FabricConfig || {};\n\n const stylesheet = new Stylesheet(fabricConfig.mergeStyles, fabricConfig.serializedStylesheet);\n _stylesheet = stylesheet;\n _global[STYLESHEET_SETTING] = stylesheet;\n }\n\n return _stylesheet;\n }\n\n constructor(config?: IStyleSheetConfig, serializedStylesheet?: ISerializedStylesheet) {\n this._config = {\n // If there is no document we won't have an element to inject into.\n injectionMode: typeof document === 'undefined' ? InjectionMode.none : InjectionMode.insertNode,\n defaultPrefix: 'css',\n namespace: undefined,\n cspSettings: undefined,\n ...config,\n };\n\n this._classNameToArgs = serializedStylesheet?.classNameToArgs ?? this._classNameToArgs;\n this._counter = serializedStylesheet?.counter ?? this._counter;\n this._keyToClassName = this._config.classNameCache ?? serializedStylesheet?.keyToClassName ?? this._keyToClassName;\n this._preservedRules = serializedStylesheet?.preservedRules ?? this._preservedRules;\n this._rules = serializedStylesheet?.rules ?? this._rules;\n }\n\n /**\n * Serializes the Stylesheet instance into a format which allows rehydration on creation.\n * @returns string representation of `ISerializedStylesheet` interface.\n */\n public serialize(): string {\n return JSON.stringify({\n classNameToArgs: this._classNameToArgs,\n counter: this._counter,\n keyToClassName: this._keyToClassName,\n preservedRules: this._preservedRules,\n rules: this._rules,\n });\n }\n\n /**\n * Configures the stylesheet.\n */\n public setConfig(config?: IStyleSheetConfig): void {\n this._config = {\n ...this._config,\n ...config,\n };\n }\n\n /**\n * Configures a reset callback.\n *\n * @param callback - A callback which will be called when the Stylesheet is reset.\n * @returns function which when called un-registers provided callback.\n */\n public onReset(callback: Function): Function {\n this._onResetCallbacks.push(callback);\n\n return () => {\n this._onResetCallbacks = this._onResetCallbacks.filter(cb => cb !== callback);\n };\n }\n\n /**\n * Configures an insert rule callback.\n *\n * @param callback - A callback which will be called when a rule is inserted.\n * @returns function which when called un-registers provided callback.\n */\n public onInsertRule(callback: Function): Function {\n this._onInsertRuleCallbacks.push(callback);\n\n return () => {\n this._onInsertRuleCallbacks = this._onInsertRuleCallbacks.filter(cb => cb !== callback);\n };\n }\n\n /**\n * Generates a unique classname.\n *\n * @param displayName - Optional value to use as a prefix.\n */\n public getClassName(displayName?: string): string {\n const { namespace } = this._config;\n const prefix = displayName || this._config.defaultPrefix;\n\n return `${namespace ? namespace + '-' : ''}${prefix}-${this._counter++}`;\n }\n\n /**\n * Used internally to cache information about a class which was\n * registered with the stylesheet.\n */\n public cacheClassName(className: string, key: string, args: IStyle[], rules: string[]): void {\n this._keyToClassName[key] = className;\n this._classNameToArgs[className] = {\n args,\n rules,\n };\n }\n\n /**\n * Gets the appropriate classname given a key which was previously\n * registered using cacheClassName.\n */\n public classNameFromKey(key: string): string | undefined {\n return this._keyToClassName[key];\n }\n\n /**\n * Gets all classnames cache with the stylesheet.\n */\n public getClassNameCache(): { [key: string]: string } {\n return this._keyToClassName;\n }\n\n /**\n * Gets the arguments associated with a given classname which was\n * previously registered using cacheClassName.\n */\n public argsFromClassName(className: string): IStyle[] | undefined {\n const entry = this._classNameToArgs[className];\n\n return entry && entry.args;\n }\n\n /**\n * Gets the rules associated with a given classname which was\n * previously registered using cacheClassName.\n */\n public insertedRulesFromClassName(className: string): string[] | undefined {\n const entry = this._classNameToArgs[className];\n\n return entry && entry.rules;\n }\n\n /**\n * Inserts a css rule into the stylesheet.\n * @param preserve - Preserves the rule beyond a reset boundary.\n */\n public insertRule(rule: string, preserve?: boolean): void {\n const { injectionMode } = this._config;\n const element = injectionMode !== InjectionMode.none ? this._getStyleElement() : undefined;\n\n if (preserve) {\n this._preservedRules.push(rule);\n }\n\n if (element) {\n switch (injectionMode) {\n case InjectionMode.insertNode:\n const { sheet } = element!;\n\n try {\n (sheet as CSSStyleSheet).insertRule(rule, (sheet as CSSStyleSheet).cssRules.length);\n } catch (e) {\n // The browser will throw exceptions on unsupported rules (such as a moz prefix in webkit.)\n // We need to swallow the exceptions for this scenario, otherwise we'd need to filter\n // which could be slower and bulkier.\n }\n break;\n\n case InjectionMode.appendChild:\n element.appendChild(document.createTextNode(rule));\n break;\n }\n } else {\n this._rules.push(rule);\n }\n\n // eslint-disable-next-line deprecation/deprecation\n if (this._config.onInsertRule) {\n // eslint-disable-next-line deprecation/deprecation\n this._config.onInsertRule(rule);\n }\n\n this._onInsertRuleCallbacks.forEach(callback => callback());\n }\n\n /**\n * Gets all rules registered with the stylesheet; only valid when\n * using InsertionMode.none.\n */\n public getRules(includePreservedRules?: boolean): string {\n return (includePreservedRules ? this._preservedRules.join('') : '') + this._rules.join('');\n }\n\n /**\n * Resets the internal state of the stylesheet. Only used in server\n * rendered scenarios where we're using InsertionMode.none.\n */\n public reset(): void {\n this._rules = [];\n this._counter = 0;\n this._classNameToArgs = {};\n this._keyToClassName = {};\n\n this._onResetCallbacks.forEach(callback => callback());\n }\n\n // Forces the regeneration of incoming styles without totally resetting the stylesheet.\n public resetKeys(): void {\n this._keyToClassName = {};\n }\n\n private _getStyleElement(): HTMLStyleElement | undefined {\n if (!this._styleElement && typeof document !== 'undefined') {\n this._styleElement = this._createStyleElement();\n\n if (!REUSE_STYLE_NODE) {\n // Reset the style element on the next frame.\n window.requestAnimationFrame(() => {\n this._styleElement = undefined;\n });\n }\n }\n return this._styleElement;\n }\n\n private _createStyleElement(): HTMLStyleElement {\n const head: HTMLHeadElement = document.head;\n const styleElement = document.createElement('style');\n let nodeToInsertBefore: Node | null = null;\n\n styleElement.setAttribute('data-merge-styles', 'true');\n\n const { cspSettings } = this._config;\n if (cspSettings) {\n if (cspSettings.nonce) {\n styleElement.setAttribute('nonce', cspSettings.nonce);\n }\n }\n if (this._lastStyleElement) {\n // If the `nextElementSibling` is null, then the insertBefore will act as a regular append.\n // https://developer.mozilla.org/en-US/docs/Web/API/Node/insertBefore#Syntax\n nodeToInsertBefore = this._lastStyleElement.nextElementSibling;\n } else {\n const placeholderStyleTag: Element | null = this._findPlaceholderStyleTag();\n\n if (placeholderStyleTag) {\n nodeToInsertBefore = placeholderStyleTag.nextElementSibling;\n } else {\n nodeToInsertBefore = head.childNodes[0];\n }\n }\n\n head!.insertBefore(styleElement, head!.contains(nodeToInsertBefore) ? nodeToInsertBefore : null);\n this._lastStyleElement = styleElement;\n\n return styleElement;\n }\n\n private _findPlaceholderStyleTag(): Element | null {\n const head: HTMLHeadElement = document.head;\n if (head) {\n return head.querySelector('style[data-merge-styles]');\n }\n return null;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport { createClientLogger } from \"@azure/logger\";\nexport const logger = createClientLogger(\"core-http\");\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { _DYN_CALL, _DYN_GET_NEXT, _DYN_GET_PLUGIN, _DYN_INITIALIZE, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SET_NEXT_PLUGIN, _DYN_SPAN_ID, _DYN_TEARDOWN, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { createElmNodeData } from \"./DataCacheHelper\";\r\nimport { arrForEach, isFunction } from \"./HelperFuncs\";\r\nimport { STR_CORE, STR_PRIORITY, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { isValidSpanId, isValidTraceId } from \"./W3cTraceParent\";\r\nvar pluginStateData = createElmNodeData(\"plugin\");\r\nexport function _getPluginState(plugin) {\r\n return pluginStateData.get(plugin, \"state\", {}, true);\r\n}\r\n/**\r\n * Initialize the queue of plugins\r\n * @param plugins - The array of plugins to initialize and setting of the next plugin\r\n * @param config The current config for the instance\r\n * @param core THe current core instance\r\n * @param extensions The extensions\r\n */\r\nexport function initializePlugins(processContext, extensions) {\r\n // Set the next plugin and identified the uninitialized plugins\r\n var initPlugins = [];\r\n var lastPlugin = null;\r\n var proxy = processContext[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n var pluginState;\r\n while (proxy) {\r\n var thePlugin = proxy[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]();\r\n if (thePlugin) {\r\n if (lastPlugin &&\r\n isFunction(lastPlugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */]) &&\r\n isFunction(thePlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */])) {\r\n // Set this plugin as the next for the previous one\r\n lastPlugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */](thePlugin);\r\n }\r\n var isInitialized = false;\r\n if (isFunction(thePlugin[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */])) {\r\n isInitialized = thePlugin[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]();\r\n }\r\n else {\r\n pluginState = _getPluginState(thePlugin);\r\n isInitialized = pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */];\r\n }\r\n if (!isInitialized) {\r\n initPlugins[_DYN_PUSH /* @min:%2epush */](thePlugin);\r\n }\r\n lastPlugin = thePlugin;\r\n proxy = proxy[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n }\r\n // Now initialize the plugins\r\n arrForEach(initPlugins, function (thePlugin) {\r\n var core = processContext[STR_CORE]();\r\n thePlugin[_DYN_INITIALIZE /* @min:%2einitialize */](processContext.getCfg(), core, extensions, processContext[_DYN_GET_NEXT /* @min:%2egetNext */]());\r\n pluginState = _getPluginState(thePlugin);\r\n // Only add the core to the state if the plugin didn't set it (doesn't extent from BaseTelemetryPlugin)\r\n if (!thePlugin[STR_CORE] && !pluginState[STR_CORE]) {\r\n pluginState[STR_CORE] = core;\r\n }\r\n pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = true;\r\n delete pluginState[_DYN_TEARDOWN /* @min:%2eteardown */];\r\n });\r\n}\r\nexport function sortPlugins(plugins) {\r\n // Sort by priority\r\n return plugins.sort(function (extA, extB) {\r\n var result = 0;\r\n if (extB) {\r\n var bHasProcess = isFunction(extB[STR_PROCESS_TELEMETRY]);\r\n if (isFunction(extA[STR_PROCESS_TELEMETRY])) {\r\n result = bHasProcess ? extA[STR_PRIORITY] - extB[STR_PRIORITY] : 1;\r\n }\r\n else if (bHasProcess) {\r\n result = -1;\r\n }\r\n }\r\n else {\r\n result = extA ? 1 : -1;\r\n }\r\n return result;\r\n });\r\n // sort complete\r\n}\r\n/**\r\n * Teardown / Unload helper to perform teardown/unloading operations for the provided components synchronously or asynchronously, this will call any\r\n * _doTeardown() or _doUnload() functions on the provided components to allow them to finish removal.\r\n * @param components - The components you want to unload\r\n * @param unloadCtx - This is the context that should be used during unloading.\r\n * @param unloadState - The details / state of the unload process, it holds details like whether it should be unloaded synchronously or asynchronously and the reason for the unload.\r\n * @param asyncCallback - An optional callback that the plugin must call if it returns true to inform the caller that it has completed any async unload/teardown operations.\r\n * @returns boolean - true if the plugin has or will call asyncCallback, this allows the plugin to perform any asynchronous operations.\r\n */\r\nexport function unloadComponents(components, unloadCtx, unloadState, asyncCallback) {\r\n var idx = 0;\r\n function _doUnload() {\r\n while (idx < components[_DYN_LENGTH /* @min:%2elength */]) {\r\n var component = components[idx++];\r\n if (component) {\r\n var func = component._doUnload || component[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */];\r\n if (isFunction(func)) {\r\n if (func[_DYN_CALL /* @min:%2ecall */](component, unloadCtx, unloadState, _doUnload) === true) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return _doUnload();\r\n}\r\n/**\r\n * Creates a IDistributedTraceContext which optionally also \"sets\" the value on a parent\r\n * @param parentCtx - An optional parent distributed trace instance\r\n * @returns A new IDistributedTraceContext instance that uses an internal temporary object\r\n */\r\nexport function createDistributedTraceContext(parentCtx) {\r\n var trace = {};\r\n return {\r\n getName: function () {\r\n return trace[_DYN_NAME /* @min:%2ename */];\r\n },\r\n setName: function (newValue) {\r\n parentCtx && parentCtx.setName(newValue);\r\n trace[_DYN_NAME /* @min:%2ename */] = newValue;\r\n },\r\n getTraceId: function () {\r\n return trace[_DYN_TRACE_ID /* @min:%2etraceId */];\r\n },\r\n setTraceId: function (newValue) {\r\n parentCtx && parentCtx.setTraceId(newValue);\r\n if (isValidTraceId(newValue)) {\r\n trace[_DYN_TRACE_ID /* @min:%2etraceId */] = newValue;\r\n }\r\n },\r\n getSpanId: function () {\r\n return trace[_DYN_SPAN_ID /* @min:%2espanId */];\r\n },\r\n setSpanId: function (newValue) {\r\n parentCtx && parentCtx.setSpanId(newValue);\r\n if (isValidSpanId(newValue)) {\r\n trace[_DYN_SPAN_ID /* @min:%2espanId */] = newValue;\r\n }\r\n },\r\n getTraceFlags: function () {\r\n return trace[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n },\r\n setTraceFlags: function (newTraceFlags) {\r\n parentCtx && parentCtx.setTraceFlags(newTraceFlags);\r\n trace[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = newTraceFlags;\r\n }\r\n };\r\n}\r\n//# sourceMappingURL=TelemetryHelpers.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * Range for Blob Service Operations.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/specifying-the-range-header-for-blob-service-operations\n */\nexport interface Range {\n /**\n * StartByte, larger than or equal 0.\n */\n offset: number;\n /**\n * Optional. Count of bytes, larger than 0.\n * If not provided, will return bytes from offset to the end.\n */\n count?: number;\n}\n\n/**\n * Generate a range string. For example:\n *\n * \"bytes=255-\" or \"bytes=0-511\"\n *\n * @param iRange -\n */\nexport function rangeToString(iRange: Range): string {\n if (iRange.offset < 0) {\n throw new RangeError(`Range.offset cannot be smaller than 0.`);\n }\n if (iRange.count && iRange.count <= 0) {\n throw new RangeError(\n `Range.count must be larger than 0. Leave it undefined if you want a range from offset to the end.`\n );\n }\n return iRange.count\n ? `bytes=${iRange.offset}-${iRange.offset + iRange.count - 1}`\n : `bytes=${iRange.offset}-`;\n}\n","import { _DYN_LENGTH, _DYN_SPAN_ID, _DYN_SUBSTR, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_VERSION } from \"../__DynamicConstants\";\r\nimport { generateW3CId } from \"./CoreUtils\";\r\nimport { findMetaTag, findNamedServerTiming } from \"./EnvUtils\";\r\nimport { isArray, isString, strTrim } from \"./HelperFuncs\";\r\n// using {0,16} for leading and trailing whitespace just to constrain the possible runtime of a random string\r\nvar TRACE_PARENT_REGEX = /^([\\da-f]{2})-([\\da-f]{32})-([\\da-f]{16})-([\\da-f]{2})(-[^\\s]*)?$/;\r\nvar DEFAULT_VERSION = \"00\";\r\nvar INVALID_VERSION = \"ff\";\r\nvar INVALID_TRACE_ID = \"00000000000000000000000000000000\";\r\nvar INVALID_SPAN_ID = \"0000000000000000\";\r\nvar SAMPLED_FLAG = 0x01;\r\nfunction _isValid(value, len, invalidValue) {\r\n if (value && value[_DYN_LENGTH /* @min:%2elength */] === len && value !== invalidValue) {\r\n return !!value.match(/^[\\da-f]*$/);\r\n }\r\n return false;\r\n}\r\nfunction _formatValue(value, len, defValue) {\r\n if (_isValid(value, len)) {\r\n return value;\r\n }\r\n return defValue;\r\n}\r\nfunction _formatFlags(value) {\r\n if (isNaN(value) || value < 0 || value > 255) {\r\n value = 0x01;\r\n }\r\n var result = value.toString(16);\r\n while (result[_DYN_LENGTH /* @min:%2elength */] < 2) {\r\n result = \"0\" + result;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Create a new ITraceParent instance using the provided values.\r\n * @param traceId - The traceId to use, when invalid a new random W3C id will be generated.\r\n * @param spanId - The parent/span id to use, a new random value will be generated if it is invalid.\r\n * @param flags - The traceFlags to use, defaults to zero (0) if not supplied or invalid\r\n * @param version - The version to used, defaults to version \"01\" if not supplied or invalid.\r\n * @returns\r\n */\r\nexport function createTraceParent(traceId, spanId, flags, version) {\r\n var _a;\r\n return _a = {},\r\n _a[_DYN_VERSION /* @min:version */] = _isValid(version, 2, INVALID_VERSION) ? version : DEFAULT_VERSION,\r\n _a[_DYN_TRACE_ID /* @min:traceId */] = isValidTraceId(traceId) ? traceId : generateW3CId(),\r\n _a.spanId = isValidSpanId(spanId) ? spanId : generateW3CId()[_DYN_SUBSTR /* @min:%2esubstr */](0, 16),\r\n _a.traceFlags = flags >= 0 && flags <= 0xFF ? flags : 1,\r\n _a;\r\n}\r\n/**\r\n * Attempt to parse the provided string as a W3C TraceParent header value (https://www.w3.org/TR/trace-context/#traceparent-header)\r\n *\r\n * @param value\r\n * @returns\r\n */\r\nexport function parseTraceParent(value) {\r\n var _a;\r\n if (!value) {\r\n // Don't pass a null/undefined or empty string\r\n return null;\r\n }\r\n if (isArray(value)) {\r\n // The value may have been encoded on the page into an array so handle this automatically\r\n value = value[0] || \"\";\r\n }\r\n if (!value || !isString(value) || value[_DYN_LENGTH /* @min:%2elength */] > 8192) {\r\n // limit potential processing based on total length\r\n return null;\r\n }\r\n // See https://www.w3.org/TR/trace-context/#versioning-of-traceparent\r\n var match = TRACE_PARENT_REGEX.exec(strTrim(value));\r\n if (!match || // No match\r\n match[1] === INVALID_VERSION || // version ff is forbidden\r\n match[2] === INVALID_TRACE_ID || // All zeros is considered to be invalid\r\n match[3] === INVALID_SPAN_ID) { // All zeros is considered to be invalid\r\n return null;\r\n }\r\n return _a = {},\r\n _a[_DYN_VERSION /* @min:version */] = match[1],\r\n _a[_DYN_TRACE_ID /* @min:traceId */] = match[2],\r\n _a[_DYN_SPAN_ID /* @min:spanId */] = match[3],\r\n _a[_DYN_TRACE_FLAGS /* @min:traceFlags */] = parseInt(match[4], 16),\r\n _a;\r\n}\r\n/**\r\n * Is the provided W3c Trace Id a valid string representation, it must be a 32-character string\r\n * of lowercase hexadecimal characters for example, 4bf92f3577b34da6a3ce929d0e0e4736.\r\n * If all characters as zero (00000000000000000000000000000000) it will be considered an invalid value.\r\n * @param value - The W3c trace Id to be validated\r\n * @returns true if valid otherwise false\r\n */\r\nexport function isValidTraceId(value) {\r\n return _isValid(value, 32, INVALID_TRACE_ID);\r\n}\r\n/**\r\n * Is the provided W3c span id (aka. parent id) a valid string representation, it must be a 16-character\r\n * string of lowercase hexadecimal characters, for example, 00f067aa0ba902b7.\r\n * If all characters are zero (0000000000000000) this is considered an invalid value.\r\n * @param value - The W3c span id to be validated\r\n * @returns true if valid otherwise false\r\n */\r\nexport function isValidSpanId(value) {\r\n return _isValid(value, 16, INVALID_SPAN_ID);\r\n}\r\n/**\r\n * Validates that the provided ITraceParent instance conforms to the currently supported specifications\r\n * @param value\r\n * @returns\r\n */\r\nexport function isValidTraceParent(value) {\r\n if (!value ||\r\n !_isValid(value[_DYN_VERSION /* @min:%2eversion */], 2, INVALID_VERSION) ||\r\n !_isValid(value[_DYN_TRACE_ID /* @min:%2etraceId */], 32, INVALID_TRACE_ID) ||\r\n !_isValid(value[_DYN_SPAN_ID /* @min:%2espanId */], 16, INVALID_SPAN_ID) ||\r\n !_isValid(_formatFlags(value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */]), 2)) {\r\n // Each known field must contain a valid value\r\n return false;\r\n }\r\n return true;\r\n}\r\n/**\r\n * Is the parsed traceParent indicating that the trace is currently sampled.\r\n * @param value - The parsed traceParent value\r\n * @returns\r\n */\r\nexport function isSampledFlag(value) {\r\n if (isValidTraceParent(value)) {\r\n return (value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] & SAMPLED_FLAG) === SAMPLED_FLAG;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Format the ITraceParent value as a string using the supported and know version formats.\r\n * So even if the passed traceParent is a later version the string value returned from this\r\n * function will convert it to only the known version formats.\r\n * This currently only supports version \"00\" and invalid \"ff\"\r\n * @param value - The parsed traceParent value\r\n * @returns\r\n */\r\nexport function formatTraceParent(value) {\r\n if (value) {\r\n // Special Note: This only supports formatting as version 00, future versions should encode any known supported version\r\n // So parsing a future version will populate the correct version value but reformatting will reduce it to version 00.\r\n var flags = _formatFlags(value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */]);\r\n if (!_isValid(flags, 2)) {\r\n flags = \"01\";\r\n }\r\n var version = value[_DYN_VERSION /* @min:%2eversion */] || DEFAULT_VERSION;\r\n if (version !== \"00\" && version !== \"ff\") {\r\n // Reduce version to \"00\"\r\n version = DEFAULT_VERSION;\r\n }\r\n // Format as version 00\r\n return \"\".concat(version, \"-\").concat(_formatValue(value.traceId, 32, INVALID_TRACE_ID), \"-\").concat(_formatValue(value.spanId, 16, INVALID_SPAN_ID), \"-\").concat(flags);\r\n }\r\n return \"\";\r\n}\r\n/**\r\n * Helper function to fetch the passed traceparent from the page, looking for it as a meta-tag or a Server-Timing header.\r\n * @returns\r\n */\r\nexport function findW3cTraceParent() {\r\n var name = \"traceparent\";\r\n var traceParent = parseTraceParent(findMetaTag(name));\r\n if (!traceParent) {\r\n traceParent = parseTraceParent(findNamedServerTiming(name));\r\n }\r\n return traceParent;\r\n}\r\n//# sourceMappingURL=W3cTraceParent.js.map","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? prefix + \": \" + provided : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { createClientLogger } from \"@azure/logger\";\n\n/**\n * The `@azure/logger` configuration for this package.\n */\nexport const logger = createClientLogger(\"storage-blob\");\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","import { Stylesheet } from '@fluentui/merge-styles';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\ndeclare class WeakMap {\n public get(key: any): any;\n public set(key: any, value: any): void;\n public has(key: any): boolean;\n}\n\nlet _initializedStylesheetResets = false;\nlet _resetCounter = 0;\nconst _emptyObject = { empty: true };\nconst _dictionary: any = {};\nlet _weakMap = typeof WeakMap === 'undefined' ? null : WeakMap;\n\ninterface IMemoizeNode {\n map: WeakMap | null;\n value?: any;\n}\n\n/**\n * Test utility for providing a custom weakmap.\n *\n * @internal\n * */\nexport function setMemoizeWeakMap(weakMap: any): void {\n _weakMap = weakMap;\n}\n\n/**\n * Reset memoizations.\n */\nexport function resetMemoizations(): void {\n _resetCounter++;\n}\n\n/**\n * Memoize decorator to be used on class methods. WARNING: the `this` reference\n * will be inaccessible within a memoized method, given that a cached method's `this`\n * would not be instance-specific.\n *\n * @public\n */\nexport function memoize(\n _target: any,\n _key: string,\n descriptor: TypedPropertyDescriptor,\n): {\n configurable: boolean;\n get(): T;\n} {\n // We bind to \"null\" to prevent people from inadvertently pulling values from \"this\",\n // rather than passing them in as input values which can be memoized.\n let fn = memoizeFunction(descriptor.value && descriptor.value.bind(null));\n\n return {\n configurable: true,\n get(): T {\n return fn;\n },\n };\n}\n\n/**\n * Memoizes a function; when you pass in the same parameters multiple times, it returns a cached result.\n * Be careful when passing in objects, you need to pass in the same INSTANCE for caching to work. Otherwise\n * it will grow the cache unnecessarily. Also avoid using default values that evaluate functions; passing in\n * undefined for a value and relying on a default function will execute it the first time, but will not\n * re-evaluate subsequent times which may have been unexpected.\n *\n * By default, the cache will reset after 100 permutations, to avoid abuse cases where the function is\n * unintendedly called with unique objects. Without a reset, the cache could grow infinitely, so we safeguard\n * by resetting. To override this behavior, pass a value of 0 to the maxCacheSize parameter.\n *\n * @public\n * @param cb - The function to memoize.\n * @param maxCacheSize - Max results to cache. If the cache exceeds this value, it will reset on the next call.\n * @param ignoreNullOrUndefinedResult - Flag to decide whether to cache callback result if it is undefined/null.\n * If the flag is set to true, the callback result is recomputed every time till the callback result is\n * not undefined/null for the first time, and then the non-undefined/null version gets cached.\n * @returns A memoized version of the function.\n */\nexport function memoizeFunction RetType, RetType>(\n cb: T,\n maxCacheSize: number = 100,\n ignoreNullOrUndefinedResult: boolean = false,\n): T {\n // Avoid breaking scenarios which don't have weak map.\n if (!_weakMap) {\n return cb;\n }\n\n if (!_initializedStylesheetResets) {\n const stylesheet = Stylesheet.getInstance();\n\n if (stylesheet && (stylesheet as { onReset?: unknown }).onReset) {\n Stylesheet.getInstance().onReset(resetMemoizations);\n }\n _initializedStylesheetResets = true;\n }\n\n let rootNode: any;\n let cacheSize = 0;\n let localResetCounter = _resetCounter;\n\n return function memoizedFunction(...args: any[]): RetType {\n let currentNode: any = rootNode;\n\n if (\n rootNode === undefined ||\n localResetCounter !== _resetCounter ||\n (maxCacheSize > 0 && cacheSize > maxCacheSize)\n ) {\n rootNode = _createNode();\n cacheSize = 0;\n localResetCounter = _resetCounter;\n }\n\n currentNode = rootNode;\n\n // Traverse the tree until we find the match.\n for (let i = 0; i < args.length; i++) {\n let arg = _normalizeArg(args[i]);\n\n if (!currentNode.map.has(arg)) {\n currentNode.map.set(arg, _createNode());\n }\n\n currentNode = currentNode.map.get(arg);\n }\n\n if (!currentNode.hasOwnProperty('value')) {\n currentNode.value = cb(...args);\n cacheSize++;\n }\n\n if (ignoreNullOrUndefinedResult && (currentNode.value === null || currentNode.value === undefined)) {\n currentNode.value = cb(...args);\n }\n\n return currentNode.value;\n } as any;\n}\n\n/**\n * Creates a memoizer for a single-value function, backed by a WeakMap.\n * With a WeakMap, the memoized values are only kept as long as the source objects,\n * ensuring that there is no memory leak.\n *\n * This function assumes that the input values passed to the wrapped function will be\n * `function` or `object` types. To memoize functions which accept other inputs, use\n * `memoizeFunction`, which memoizes against arbitrary inputs using a lookup cache.\n *\n * @public\n */\nexport function createMemoizer any>(getValue: F): F {\n if (!_weakMap) {\n // Without a `WeakMap` implementation, memoization is not possible.\n return getValue;\n }\n\n const cache = new _weakMap();\n\n function memoizedGetValue(input: any): any {\n if (!input || (typeof input !== 'function' && typeof input !== 'object')) {\n // A WeakMap can only be used to test against reference values, i.e. 'function' and 'object'.\n // All other inputs cannot be memoized against in this manner.\n return getValue(input);\n }\n\n if (cache.has(input)) {\n return cache.get(input)!;\n }\n\n const value = getValue(input);\n\n cache.set(input, value);\n\n return value;\n }\n\n return memoizedGetValue as F;\n}\n\nfunction _normalizeArg(val: null | undefined): { empty: boolean } | any;\nfunction _normalizeArg(val: object): any;\nfunction _normalizeArg(val: any): any {\n if (!val) {\n return _emptyObject;\n } else if (typeof val === 'object' || typeof val === 'function') {\n return val;\n } else if (!_dictionary[val]) {\n _dictionary[val] = { val };\n }\n\n return _dictionary[val];\n}\n\nfunction _createNode(): IMemoizeNode {\n return {\n map: _weakMap ? new _weakMap() : null,\n };\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { _DYN_HANDLER, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_REPLACE, _DYN_SPLICE, _DYN_SPLIT, _DYN_TYPE } from \"../__DynamicConstants\";\r\nimport { createElmNodeData, createUniqueNamespace } from \"./DataCacheHelper\";\r\nimport { getDocument, getWindow } from \"./EnvUtils\";\r\nimport { arrForEach, arrIndexOf, isArray, objForEachKey, objKeys } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// Added to help with minfication\r\nvar strOnPrefix = \"on\";\r\nvar strAttachEvent = \"attachEvent\";\r\nvar strAddEventHelper = \"addEventListener\";\r\nvar strDetachEvent = \"detachEvent\";\r\nvar strRemoveEventListener = \"removeEventListener\";\r\nvar strEvents = \"events\";\r\nvar strVisibilityChangeEvt = \"visibilitychange\";\r\nvar strPageHide = \"pagehide\";\r\nvar strPageShow = \"pageshow\";\r\nvar strUnload = \"unload\";\r\nvar strBeforeUnload = \"beforeunload\";\r\nvar strPageHideNamespace = createUniqueNamespace(\"aiEvtPageHide\");\r\nvar strPageShowNamespace = createUniqueNamespace(\"aiEvtPageShow\");\r\nvar rRemoveEmptyNs = /\\.[\\.]+/g;\r\nvar rRemoveTrailingEmptyNs = /[\\.]+$/;\r\nvar _guid = 1;\r\nvar elmNodeData = createElmNodeData(\"events\");\r\nvar eventNamespace = /^([^.]*)(?:\\.(.+)|)/;\r\nfunction _normalizeNamespace(name) {\r\n if (name && name[_DYN_REPLACE /* @min:%2ereplace */]) {\r\n return name.replace(/^\\s*\\.*|\\.*\\s*$/g, STR_EMPTY);\r\n }\r\n return name;\r\n}\r\nfunction _getEvtNamespace(eventName, evtNamespace) {\r\n var _a;\r\n if (evtNamespace) {\r\n var theNamespace_1 = STR_EMPTY;\r\n if (isArray(evtNamespace)) {\r\n theNamespace_1 = STR_EMPTY;\r\n arrForEach(evtNamespace, function (name) {\r\n name = _normalizeNamespace(name);\r\n if (name) {\r\n if (name[0] !== \".\") {\r\n name = \".\" + name;\r\n }\r\n theNamespace_1 += name;\r\n }\r\n });\r\n }\r\n else {\r\n theNamespace_1 = _normalizeNamespace(evtNamespace);\r\n }\r\n if (theNamespace_1) {\r\n if (theNamespace_1[0] !== \".\") {\r\n theNamespace_1 = \".\" + theNamespace_1;\r\n }\r\n // We may only have the namespace and not an eventName\r\n eventName = (eventName || STR_EMPTY) + theNamespace_1;\r\n }\r\n }\r\n var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY) || []);\r\n return _a = {},\r\n _a[_DYN_TYPE /* @min:type */] = parsedEvent[1],\r\n _a.ns = ((parsedEvent[2] || STR_EMPTY).replace(rRemoveEmptyNs, \".\").replace(rRemoveTrailingEmptyNs, STR_EMPTY)[_DYN_SPLIT /* @min:%2esplit */](\".\").sort()).join(\".\"),\r\n _a;\r\n}\r\n/**\r\n * Get all of the registered events on the target object, this is primarily used for testing cleanup but may also be used by\r\n * applications to remove their own events\r\n * @param target - The EventTarget that has registered events\r\n * @param eventName - [Optional] The name of the event to return the registered handlers and full name (with namespaces)\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n */\r\nexport function __getRegisteredEvents(target, eventName, evtNamespace) {\r\n var theEvents = [];\r\n var eventCache = elmNodeData.get(target, strEvents, {}, false);\r\n var evtName = _getEvtNamespace(eventName, evtNamespace);\r\n objForEachKey(eventCache, function (evtType, registeredEvents) {\r\n arrForEach(registeredEvents, function (value) {\r\n var _a;\r\n if (!evtName[_DYN_TYPE /* @min:%2etype */] || evtName[_DYN_TYPE /* @min:%2etype */] === value.evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n if (!evtName.ns || evtName.ns === evtName.ns) {\r\n theEvents[_DYN_PUSH /* @min:%2epush */]((_a = {},\r\n _a[_DYN_NAME /* @min:name */] = value.evtName[_DYN_TYPE /* @min:%2etype */] + (value.evtName.ns ? \".\" + value.evtName.ns : STR_EMPTY),\r\n _a.handler = value[_DYN_HANDLER /* @min:%2ehandler */],\r\n _a));\r\n }\r\n }\r\n });\r\n });\r\n return theEvents;\r\n}\r\n// Exported for internal unit testing only\r\nfunction _getRegisteredEvents(target, evtName, addDefault) {\r\n if (addDefault === void 0) { addDefault = true; }\r\n var aiEvts = elmNodeData.get(target, strEvents, {}, addDefault);\r\n var registeredEvents = aiEvts[evtName];\r\n if (!registeredEvents) {\r\n registeredEvents = aiEvts[evtName] = [];\r\n }\r\n return registeredEvents;\r\n}\r\nfunction _doDetach(obj, evtName, handlerRef, useCapture) {\r\n if (obj && evtName && evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n if (obj[strRemoveEventListener]) {\r\n obj[strRemoveEventListener](evtName[_DYN_TYPE /* @min:%2etype */], handlerRef, useCapture);\r\n }\r\n else if (obj[strDetachEvent]) {\r\n obj[strDetachEvent](strOnPrefix + evtName[_DYN_TYPE /* @min:%2etype */], handlerRef);\r\n }\r\n }\r\n}\r\nfunction _doAttach(obj, evtName, handlerRef, useCapture) {\r\n var result = false;\r\n if (obj && evtName && evtName[_DYN_TYPE /* @min:%2etype */] && handlerRef) {\r\n if (obj[strAddEventHelper]) {\r\n // all browsers except IE before version 9\r\n obj[strAddEventHelper](evtName[_DYN_TYPE /* @min:%2etype */], handlerRef, useCapture);\r\n result = true;\r\n }\r\n else if (obj[strAttachEvent]) {\r\n // IE before version 9\r\n obj[strAttachEvent](strOnPrefix + evtName[_DYN_TYPE /* @min:%2etype */], handlerRef);\r\n result = true;\r\n }\r\n }\r\n return result;\r\n}\r\nfunction _doUnregister(target, events, evtName, unRegFn) {\r\n var idx = events[_DYN_LENGTH /* @min:%2elength */];\r\n while (idx--) {\r\n var theEvent = events[idx];\r\n if (theEvent) {\r\n if (!evtName.ns || evtName.ns === theEvent.evtName.ns) {\r\n if (!unRegFn || unRegFn(theEvent)) {\r\n _doDetach(target, theEvent.evtName, theEvent[_DYN_HANDLER /* @min:%2ehandler */], theEvent.capture);\r\n // Remove the registered event\r\n events[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n }\r\n }\r\n }\r\n }\r\n}\r\nfunction _unregisterEvents(target, evtName, unRegFn) {\r\n if (evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n _doUnregister(target, _getRegisteredEvents(target, evtName[_DYN_TYPE /* @min:%2etype */]), evtName, unRegFn);\r\n }\r\n else {\r\n var eventCache = elmNodeData.get(target, strEvents, {});\r\n objForEachKey(eventCache, function (evtType, events) {\r\n _doUnregister(target, events, evtName, unRegFn);\r\n });\r\n // Cleanup\r\n if (objKeys(eventCache)[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n elmNodeData.kill(target, strEvents);\r\n }\r\n }\r\n}\r\nexport function mergeEvtNamespace(theNamespace, namespaces) {\r\n var newNamespaces;\r\n if (namespaces) {\r\n if (isArray(namespaces)) {\r\n newNamespaces = [theNamespace].concat(namespaces);\r\n }\r\n else {\r\n newNamespaces = [theNamespace, namespaces];\r\n }\r\n // resort the namespaces so they are always in order\r\n newNamespaces = (_getEvtNamespace(\"xx\", newNamespaces).ns)[_DYN_SPLIT /* @min:%2esplit */](\".\");\r\n }\r\n else {\r\n newNamespaces = theNamespace;\r\n }\r\n return newNamespaces;\r\n}\r\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj Object to add the event too.\r\n * @param eventName String that specifies any of the standard DHTML Events without \"on\" prefix, if may also include an optional (dot \".\" prefixed)\r\n * namespaces \"click\" \"click.mynamespace\" in addition to specific namespaces.\r\n * @param handlerRef Pointer that specifies the function to call when event fires\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n * @param useCapture [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\nexport function eventOn(target, eventName, handlerRef, evtNamespace, useCapture) {\r\n var _a;\r\n if (useCapture === void 0) { useCapture = false; }\r\n var result = false;\r\n if (target) {\r\n try {\r\n var evtName = _getEvtNamespace(eventName, evtNamespace);\r\n result = _doAttach(target, evtName, handlerRef, useCapture);\r\n if (result && elmNodeData.accept(target)) {\r\n var registeredEvent = (_a = {\r\n guid: _guid++,\r\n evtName: evtName\r\n },\r\n _a[_DYN_HANDLER /* @min:handler */] = handlerRef,\r\n _a.capture = useCapture,\r\n _a);\r\n _getRegisteredEvents(target, evtName.type)[_DYN_PUSH /* @min:%2epush */](registeredEvent);\r\n }\r\n }\r\n catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object to remove the event from\r\n * @param eventName {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param handlerRef {any} - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n * @param useCapture [Optional] Defaults to false\r\n */\r\nexport function eventOff(target, eventName, handlerRef, evtNamespace, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n if (target) {\r\n try {\r\n var evtName_1 = _getEvtNamespace(eventName, evtNamespace);\r\n var found_1 = false;\r\n _unregisterEvents(target, evtName_1, function (regEvent) {\r\n if ((evtName_1.ns && !handlerRef) || regEvent[_DYN_HANDLER /* @min:%2ehandler */] === handlerRef) {\r\n found_1 = true;\r\n return true;\r\n }\r\n return false;\r\n });\r\n if (!found_1) {\r\n // fallback to try and remove as requested\r\n _doDetach(target, evtName_1, handlerRef, useCapture);\r\n }\r\n }\r\n catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n}\r\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj Object to add the event too.\r\n * @param eventNameWithoutOn String that specifies any of the standard DHTML Events without \"on\" prefix and optional (dot \".\" prefixed) namespaces \"click\" \"click.mynamespace\".\r\n * @param handlerRef Pointer that specifies the function to call when event fires\r\n * @param useCapture [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\nexport function attachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n return eventOn(obj, eventNameWithoutOn, handlerRef, null, useCapture);\r\n}\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object to remove the event from\r\n * @param eventNameWithoutOn {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param handlerRef {any} - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param useCapture [Optional] Defaults to false\r\n */\r\nexport function detachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n eventOff(obj, eventNameWithoutOn, handlerRef, null, useCapture);\r\n}\r\n/**\r\n * Trys to add an event handler for the specified event to the window, body and document\r\n * @param eventName {string} - The name of the event\r\n * @param callback {any} - The callback function that needs to be executed for the given event\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @return {boolean} - true if the handler was successfully added\r\n */\r\nexport function addEventHandler(eventName, callback, evtNamespace) {\r\n var result = false;\r\n var w = getWindow();\r\n if (w) {\r\n result = eventOn(w, eventName, callback, evtNamespace);\r\n result = eventOn(w[\"body\"], eventName, callback, evtNamespace) || result;\r\n }\r\n var doc = getDocument();\r\n if (doc) {\r\n result = eventOn(doc, eventName, callback, evtNamespace) || result;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Trys to remove event handler(s) for the specified event/namespace to the window, body and document\r\n * @param eventName {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param callback {any} - - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n */\r\nexport function removeEventHandler(eventName, callback, evtNamespace) {\r\n var w = getWindow();\r\n if (w) {\r\n eventOff(w, eventName, callback, evtNamespace);\r\n eventOff(w[\"body\"], eventName, callback, evtNamespace);\r\n }\r\n var doc = getDocument();\r\n if (doc) {\r\n eventOff(doc, eventName, callback, evtNamespace);\r\n }\r\n}\r\n/**\r\n * Bind the listener to the array of events\r\n * @param events An string array of event names to bind the listener to\r\n * @param listener The event callback to call when the event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nfunction _addEventListeners(events, listener, excludeEvents, evtNamespace) {\r\n var added = false;\r\n if (listener && events && events[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(events, function (name) {\r\n if (name) {\r\n if (!excludeEvents || arrIndexOf(excludeEvents, name) === -1) {\r\n added = addEventHandler(name, listener, evtNamespace) || added;\r\n }\r\n }\r\n });\r\n }\r\n return added;\r\n}\r\n/**\r\n * Bind the listener to the array of events\r\n * @param events An string array of event names to bind the listener to\r\n * @param listener The event callback to call when the event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addEventListeners(events, listener, excludeEvents, evtNamespace) {\r\n var added = false;\r\n if (listener && events && isArray(events)) {\r\n added = _addEventListeners(events, listener, excludeEvents, evtNamespace);\r\n if (!added && excludeEvents && excludeEvents[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // Failed to add any listeners and we excluded some, so just attempt to add the excluded events\r\n added = _addEventListeners(events, listener, null, evtNamespace);\r\n }\r\n }\r\n return added;\r\n}\r\n/**\r\n * Remove the listener from the array of events\r\n * @param events An string array of event names to bind the listener to\r\n * @param listener The event callback to call when the event is triggered\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n */\r\nexport function removeEventListeners(events, listener, evtNamespace) {\r\n if (events && isArray(events)) {\r\n arrForEach(events, function (name) {\r\n if (name) {\r\n removeEventHandler(name, listener, evtNamespace);\r\n }\r\n });\r\n }\r\n}\r\n/**\r\n * Listen to the 'beforeunload', 'unload' and 'pagehide' events which indicates a page unload is occurring,\r\n * this does NOT listen to the 'visibilitychange' event as while it does indicate that the page is being hidden\r\n * it does not *necessarily* mean that the page is being completely unloaded, it can mean that the user is\r\n * just navigating to a different Tab and may come back (without unloading the page). As such you may also\r\n * need to listen to the 'addPageHideEventListener' and 'addPageShowEventListener' events.\r\n * @param listener - The event callback to call when a page unload event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked, unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageUnloadEventListener(listener, excludeEvents, evtNamespace) {\r\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n // As just hooking the window does not always fire (on chrome) for page navigation's.\r\n return addEventListeners([strBeforeUnload, strUnload, strPageHide], listener, excludeEvents, evtNamespace);\r\n}\r\n/**\r\n * Remove any matching 'beforeunload', 'unload' and 'pagehide' events that may have been added via addEventListener,\r\n * addEventListeners, addPageUnloadEventListener or addPageHideEventListener.\r\n * @param listener - The specific event callback to to be removed\r\n * @param evtNamespace - [Optional] Namespace(s) uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function removePageUnloadEventListener(listener, evtNamespace) {\r\n removeEventListeners([strBeforeUnload, strUnload, strPageHide], listener, evtNamespace);\r\n}\r\n/**\r\n * Listen to the pagehide and visibility changing to 'hidden' events, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when if you plan to call\r\n * removePageShowEventListener as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The event callback to call when a page hide event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] A Namespace to append to the event listeners so they can be uniquely identified and removed\r\n * based on this namespace. This call also adds an additional unique \"pageshow\" namespace to the events\r\n * so that only the matching \"removePageHideEventListener\" can remove these events.\r\n * Suggestion: pass as true if you are also calling addPageUnloadEventListener as that also hooks pagehide\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageHideEventListener(listener, excludeEvents, evtNamespace) {\r\n function _handlePageVisibility(evt) {\r\n var doc = getDocument();\r\n if (listener && doc && doc.visibilityState === \"hidden\") {\r\n listener(evt);\r\n }\r\n }\r\n // add the unique page show namespace to any provided namespace so we can only remove the ones added by \"pagehide\"\r\n var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);\r\n var pageUnloadAdded = _addEventListeners([strPageHide], listener, excludeEvents, newNamespaces);\r\n if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {\r\n pageUnloadAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageUnloadAdded;\r\n }\r\n if (!pageUnloadAdded && excludeEvents) {\r\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n pageUnloadAdded = addPageHideEventListener(listener, null, evtNamespace);\r\n }\r\n return pageUnloadAdded;\r\n}\r\n/**\r\n * Removes the pageHide event listeners added by addPageHideEventListener, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when calling addPageHideEventListener\r\n * as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The specific listener to remove for the 'pageshow' event only (ignored for 'visibilitychange')\r\n * @param evtNamespace - The unique namespace used when calling addPageShowEventListener\r\n */\r\nexport function removePageHideEventListener(listener, evtNamespace) {\r\n // add the unique page show namespace to any provided namespace so we only remove the ones added by \"pagehide\"\r\n var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);\r\n removeEventListeners([strPageHide], listener, newNamespaces);\r\n removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);\r\n}\r\n/**\r\n * Listen to the pageshow and visibility changing to 'visible' events, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when if you plan to call\r\n * removePageShowEventListener as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The event callback to call when a page is show event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional/Recommended] A Namespace to append to the event listeners so they can be uniquely\r\n * identified and removed based on this namespace. This call also adds an additional unique \"pageshow\" namespace to the events\r\n * so that only the matching \"removePageShowEventListener\" can remove these events.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageShowEventListener(listener, excludeEvents, evtNamespace) {\r\n function _handlePageVisibility(evt) {\r\n var doc = getDocument();\r\n if (listener && doc && doc.visibilityState === \"visible\") {\r\n listener(evt);\r\n }\r\n }\r\n // add the unique page show namespace to any provided namespace so we can only remove the ones added by \"pageshow\"\r\n var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);\r\n var pageShowAdded = _addEventListeners([strPageShow], listener, excludeEvents, newNamespaces);\r\n pageShowAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageShowAdded;\r\n if (!pageShowAdded && excludeEvents) {\r\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n pageShowAdded = addPageShowEventListener(listener, null, evtNamespace);\r\n }\r\n return pageShowAdded;\r\n}\r\n/**\r\n * Removes the pageShow event listeners added by addPageShowEventListener, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when calling addPageShowEventListener\r\n * as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The specific listener to remove for the 'pageshow' event only (ignored for 'visibilitychange')\r\n * @param evtNamespace - The unique namespace used when calling addPageShowEventListener\r\n */\r\nexport function removePageShowEventListener(listener, evtNamespace) {\r\n // add the unique page show namespace to any provided namespace so we only remove the ones added by \"pageshow\"\r\n var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);\r\n removeEventListeners([strPageShow], listener, newNamespaces);\r\n removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);\r\n}\r\n//# sourceMappingURL=EventHelpers.js.map","import * as React from 'react';\nimport type { IRefObject, Point } from '@fluentui/utilities';\n\n/**\n * FocusZone component class interface.\n * {@docCategory FocusZone}\n */\nexport interface IFocusZone {\n /**\n * Sets focus to the first tabbable item in the zone.\n * @param forceIntoFirstElement - If true, focus will be forced into the first element, even\n * if focus is already in the focus zone.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n focus(forceIntoFirstElement?: boolean): boolean;\n\n /**\n * Sets focus to the last tabbable item in the zone.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n focusLast(): boolean;\n\n /**\n * Sets focus to a specific child element within the zone. This can be used in conjunction with\n * shouldReceiveFocus to create delayed focus scenarios (like animate the scroll position to the correct\n * location and then focus.)\n * @param childElement - The child element within the zone to focus.\n * @param forceAlignment - If true, focus alignment will be set according to the element provided.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n focusElement(childElement?: HTMLElement, forceAlignment?: boolean): boolean;\n\n /**\n * Forces horizontal alignment in the context of vertical arrowing to use specific point as the reference, rather\n * than a center based on the last horizontal motion.\n * @param point - the new reference point.\n */\n setFocusAlignment(point: Point): void;\n}\n\n/**\n * FocusZone component props.\n * {@docCategory FocusZone}\n */\nexport interface IFocusZoneProps extends React.HTMLAttributes {\n /**\n * Optional callback to access the IFocusZone interface. Use this instead of ref for accessing\n * the public methods and properties of the component.\n */\n componentRef?: IRefObject;\n\n /**\n * Optional callback to access the root DOM element.\n * @deprecated Temporary solution which will be replaced with ref in the V8 release.\n */\n elementRef?: React.Ref;\n\n /**\n * Additional class name to provide on the root element, in addition to the ms-FocusZone class.\n */\n className?: string;\n\n /**\n * Defines which arrows to react to.\n * @defaultvalue FocusZoneDirection.bidirectional\n */\n direction?: FocusZoneDirection;\n\n /**\n * Optionally defines the initial tabbable element inside the FocusZone.\n * If a string is passed then it is treated as a selector for identifying the initial tabbable element.\n * If a function is passed then it uses the root element as a parameter to return the initial tabbable element.\n */\n defaultTabbableElement?: string | ((root: HTMLElement) => HTMLElement);\n\n /**\n * Optionally provide a selector for identifying the initial active element.\n * @deprecated Use `defaultTabbableElement` instead.\n */\n defaultActiveElement?: string;\n\n /**\n * Determines if a default tabbable element should be force focused on FocusZone mount.\n * @default false\n */\n shouldFocusOnMount?: boolean;\n\n /**\n * If set, the FocusZone will not be tabbable and keyboard navigation will be disabled.\n * This does not affect disabled attribute of any child.\n */\n disabled?: boolean;\n\n /**\n * Element type the root element will use. Default is \"div\".\n * @deprecated Use `as` instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n elementType?: any /* TODO should be `keyof React.ReactHTML`, tracking with https://github.com/Microsoft/TypeScript/issues/30050 */;\n\n /**\n * A component that should be used as the root element of the FocusZone component.\n */\n as?: React.ElementType;\n\n /**\n * If set, will cycle to the beginning of the targets once the user navigates to the\n * next target while at the end, and to the end when navigate to the previous at the beginning.\n */\n isCircularNavigation?: boolean;\n\n /**\n * If provided, this callback will be executed on keypresses to determine if the user\n * intends to navigate into the inner zone. Returning true will ask the first inner zone to\n * set focus.\n * @deprecated Use `shouldEnterInnerZone` instead.\n */\n isInnerZoneKeystroke?: (ev: React.KeyboardEvent) => boolean;\n\n /**\n * Callback function that will be executed on keypresses to determine if the user intends to navigate into\n * the inner (nested) zone. Returning true will ask the first inner zone to set focus.\n */\n shouldEnterInnerZone?: (ev: React.KeyboardEvent) => boolean;\n\n /**\n * Sets the aria-labelledby attribute.\n * @deprecated Directly use the `aria-labelledby` attribute instead\n */\n ariaLabelledBy?: string;\n\n /**\n * Sets the aria-describedby attribute.\n * @deprecated Directly use the `aria-describedby` attribute instead\n */\n ariaDescribedBy?: string;\n\n /**\n * Callback for when one of immediate children elements gets active by getting focused\n * or by having one of its respective children elements focused.\n */\n onActiveElementChanged?: (element?: HTMLElement, ev?: React.FocusEvent) => void;\n\n /**\n * @deprecated Div props provided to the FocusZone will be mixed into the root element.\n * Deprecated at v1.12.1.\n */\n rootProps?: React.HTMLAttributes;\n\n /**\n * Callback method for determining if focus should indeed be set on the given element.\n * @param element - The child element within the zone to focus.\n * @returns True if focus should be set to the given element, false to avoid setting focus.\n * @deprecated Use `shouldReceiveFocus` instead.\n */\n onBeforeFocus?: (childElement?: HTMLElement) => boolean;\n\n /**\n * Callback method for determining if focus should indeed be set on the given element.\n * @param element - The child element within the zone to focus.\n * @returns True if focus should be set to the given element, false to avoid setting focus.\n */\n shouldReceiveFocus?: (childElement?: HTMLElement) => boolean;\n\n /** Allows focus to park on root when focus is in the `FocusZone` at render time. */\n allowFocusRoot?: boolean;\n\n /**\n * Allows tab key to be handled to tab through a list of items in the focus zone,\n * an unfortunate side effect is that users will not be able to tab out of the focus zone\n * and have to hit escape or some other key.\n * @deprecated Use `handleTabKey` instead.\n *\n */\n allowTabKey?: boolean;\n\n /**\n * Allows tab key to be handled to tab through a list of items in the focus zone,\n * an unfortunate side effect is that users will not be able to tab out of the focus zone\n * and have to hit escape or some other key.\n */\n handleTabKey?: FocusZoneTabbableElements;\n\n /**\n * If true and FocusZone's root element (container) receives focus, the focus will land either on the\n * defaultTabbableElement (if set) or on the first tabbable element of this FocusZone.\n * Usually a case for nested focus zones, when the nested focus zone's container is a focusable element.\n */\n shouldFocusInnerElementWhenReceivedFocus?: boolean;\n\n /**\n * If true and TAB key is not handled by FocusZone, resets current active element to null value.\n * For example, when roving index is not desirable and focus should always reset to the default tabbable element.\n */\n shouldResetActiveElementWhenTabFromZone?: boolean;\n\n /**\n * Determines whether the FocusZone will walk up the DOM trying to invoke click callbacks on focusable elements on\n * Enter and Space keydowns to ensure accessibility for tags that don't guarantee this behavior.\n * @defaultvalue true\n */\n shouldRaiseClicks?: boolean;\n\n /**\n * Relates to `shouldRaiseClicks`.\n * Allows the click event raising for the \"Enter\" key to be set independently from `shouldRaiseClicks`.\n * Inherits the value of `shouldRaiseClicks` if not set explicitly.\n */\n shouldRaiseClicksOnEnter?: boolean;\n\n /**\n * Relates to `shouldRaiseClicks`.\n * Allows the click event raising for the \"Space\" key to be set independently from `shouldRaiseClicks`.\n * Inherits the value of `shouldRaiseClicks` if not set explicitly.\n */\n shouldRaiseClicksOnSpace?: boolean;\n\n /**\n * A callback method to determine if an input or textarea element should lose focus on arrow keys\n * @param inputElement - The input or textarea element which is to lose focus.\n * @returns True if input element should loose focus or false otherwise.\n */\n shouldInputLoseFocusOnArrowKey?: (inputElement: HTMLInputElement | HTMLTextAreaElement) => boolean;\n\n /**\n * Determines whether to disable the paging support for Page Up and Page Down keyboard scenarios.\n * @defaultvalue false\n */\n pagingSupportDisabled?: boolean;\n\n /**\n * Determines whether to check for data-no-horizontal-wrap or data-no-vertical-wrap attributes\n * when determining how to move focus\n * @defaultvalue false\n */\n checkForNoWrap?: boolean;\n\n /**\n * Whether the FocusZone should allow focus events to propagate past the FocusZone.\n * @deprecated Use `stopFocusPropagation` instead.\n */\n doNotAllowFocusEventToPropagate?: boolean;\n\n /**\n * Whether the FocusZone should allow focus events to propagate past the FocusZone.\n */\n stopFocusPropagation?: boolean;\n\n /**\n * Callback to notify creators that focus has been set on the FocusZone\n * @deprecated Use `onFocus` instead.\n */\n onFocusNotification?: () => void;\n\n /**\n * Callback called when \"focus\" event triggered in FocusZone.\n * @param event - React's original FocusEvent.\n */\n onFocus?: (event: React.FocusEvent) => void;\n\n /**\n * If true, FocusZone prevents the default behavior of Keyboard events when changing focus between elements.\n * @defaultvalue false\n */\n preventDefaultWhenHandled?: boolean;\n\n /**\n * If true, prevents the FocusZone from attempting to restore the focus to the inner element when the focus is on the\n * root element after componentDidUpdate.\n * @defaultvalue false\n */\n preventFocusRestoration?: boolean;\n}\n/**\n * {@docCategory FocusZone}\n */\nexport const FocusZoneTabbableElements = {\n /** Tabbing is not allowed */\n none: 0 as 0,\n\n /** All tabbing action is allowed */\n all: 1 as 1,\n\n /** Tabbing is allowed only on input elements */\n inputOnly: 2 as 2,\n};\n\n/**\n * {@docCategory FocusZone}\n */\nexport type FocusZoneTabbableElements = typeof FocusZoneTabbableElements[keyof typeof FocusZoneTabbableElements];\n\n/**\n * {@docCategory FocusZone}\n */\nexport enum FocusZoneDirection {\n /** Only react to up/down arrows. */\n vertical = 0,\n\n /** Only react to left/right arrows. */\n horizontal = 1,\n\n /** React to all arrows. */\n bidirectional = 2,\n\n /**\n * React to all arrows. Navigate next item in DOM on right/down arrow keys and previous - left/up arrow keys.\n * Right and Left arrow keys are swapped in RTL mode.\n */\n domOrder = 3,\n}\n","import { GlobalSettings } from '../GlobalSettings';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type ISettings = { [key: string]: any };\nexport type ISettingsFunction = (settings: ISettings) => ISettings;\n\n/**\n * @deprecated Use ISettings.\n */\nexport type Settings = ISettings;\n\n/**\n * @deprecated Use ISettingsFunction.\n */\nexport type SettingsFunction = ISettingsFunction;\n\nexport interface ICustomizations {\n settings: ISettings;\n scopedSettings: { [key: string]: ISettings };\n inCustomizerContext?: boolean;\n}\n\nconst CustomizationsGlobalKey = 'customizations';\nconst NO_CUSTOMIZATIONS = { settings: {}, scopedSettings: {}, inCustomizerContext: false };\n\nlet _allSettings = GlobalSettings.getValue(CustomizationsGlobalKey, {\n settings: {},\n scopedSettings: {},\n inCustomizerContext: false,\n});\n\nlet _events: (() => void)[] = [];\n\nexport class Customizations {\n private static _suppressUpdates: boolean;\n\n public static reset(): void {\n _allSettings.settings = {};\n _allSettings.scopedSettings = {};\n }\n\n /** Apply global Customization settings.\n * @example Customizations.applySettings(\\{ theme: \\{...\\} \\});\n */\n public static applySettings(settings: ISettings): void {\n _allSettings.settings = { ..._allSettings.settings, ...settings };\n Customizations._raiseChange();\n }\n\n /** Apply Customizations to a particular named scope, like a component.\n * @example Customizations.applyScopedSettings('Nav', \\{ styles: () =\\> \\{\\} \\});\n */\n public static applyScopedSettings(scopeName: string, settings: ISettings): void {\n _allSettings.scopedSettings[scopeName] = { ..._allSettings.scopedSettings[scopeName], ...settings };\n Customizations._raiseChange();\n }\n\n public static getSettings(\n properties: string[],\n scopeName?: string,\n localSettings: ICustomizations = NO_CUSTOMIZATIONS,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): any {\n const settings: ISettings = {};\n const localScopedSettings = (scopeName && localSettings.scopedSettings[scopeName]) || {};\n const globalScopedSettings = (scopeName && _allSettings.scopedSettings[scopeName]) || {};\n\n for (let property of properties) {\n settings[property] =\n localScopedSettings[property] ||\n localSettings.settings[property] ||\n globalScopedSettings[property] ||\n _allSettings.settings[property];\n }\n\n return settings;\n }\n\n /** Used to run some code that sets Customizations without triggering an update until the end.\n * Useful for applying Customizations that don't affect anything currently rendered, or for\n * applying many customizations at once.\n * @param suppressUpdate - Do not raise the change event at the end, preventing all updates\n */\n public static applyBatchedUpdates(code: () => void, suppressUpdate?: boolean): void {\n Customizations._suppressUpdates = true;\n try {\n code();\n } catch {\n /* do nothing */\n }\n Customizations._suppressUpdates = false;\n if (!suppressUpdate) {\n Customizations._raiseChange();\n }\n }\n\n public static observe(onChange: () => void): void {\n _events.push(onChange);\n }\n\n public static unobserve(onChange: () => void): void {\n _events = _events.filter((cb: () => void) => cb !== onChange);\n }\n\n private static _raiseChange(): void {\n if (!Customizations._suppressUpdates) {\n _events.forEach((cb: () => void) => cb());\n }\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * Allowed IP range for a SAS.\n */\nexport interface SasIPRange {\n /**\n * Starting IP address in the IP range.\n * If end IP doesn't provide, start IP will the only IP allowed.\n */\n start: string;\n /**\n * Optional. IP address that ends the IP range.\n * If not provided, start IP will the only IP allowed.\n */\n end?: string;\n}\n\n/**\n * Generate SasIPRange format string. For example:\n *\n * \"8.8.8.8\" or \"1.1.1.1-255.255.255.255\"\n *\n * @param ipRange -\n */\nexport function ipRangeToString(ipRange: SasIPRange): string {\n return ipRange.end ? `${ipRange.start}-${ipRange.end}` : ipRange.start;\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { getCrypto, getMsCrypto, isIE } from \"./EnvUtils\";\r\nimport { dateNow } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nvar UInt32Mask = 0x100000000;\r\nvar MaxUInt32 = 0xffffffff;\r\n// MWC based Random generator (for IE)\r\nvar _mwcSeeded = false;\r\nvar _mwcW = 123456789;\r\nvar _mwcZ = 987654321;\r\n// Takes any integer\r\nfunction _mwcSeed(seedValue) {\r\n if (seedValue < 0) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n seedValue >>>= 0;\r\n }\r\n _mwcW = (123456789 + seedValue) & MaxUInt32;\r\n _mwcZ = (987654321 - seedValue) & MaxUInt32;\r\n _mwcSeeded = true;\r\n}\r\nfunction _autoSeedMwc() {\r\n // Simple initialization using default Math.random() - So we inherit any entropy from the browser\r\n // and bitwise XOR with the current milliseconds\r\n try {\r\n var now = dateNow() & 0x7fffffff;\r\n _mwcSeed(((Math.random() * UInt32Mask) ^ now) + now);\r\n }\r\n catch (e) {\r\n // Don't crash if something goes wrong\r\n }\r\n}\r\n/**\r\n * Generate a random value between 0 and maxValue, max value should be limited to a 32-bit maximum.\r\n * So maxValue(16) will produce a number from 0..16 (range of 17)\r\n * @param maxValue\r\n */\r\nexport function randomValue(maxValue) {\r\n if (maxValue > 0) {\r\n return Math.floor((random32() / MaxUInt32) * (maxValue + 1)) >>> 0;\r\n }\r\n return 0;\r\n}\r\n/**\r\n * generate a random 32-bit number (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), defaults un-unsigned.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\nexport function random32(signed) {\r\n var value = 0;\r\n var c = getCrypto() || getMsCrypto();\r\n if (c && c.getRandomValues) {\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = c.getRandomValues(new Uint32Array(1))[0] & MaxUInt32;\r\n }\r\n if (value === 0 && isIE()) {\r\n // For IE 6, 7, 8 (especially on XP) Math.random is not very random\r\n if (!_mwcSeeded) {\r\n // Set the seed for the Mwc algorithm\r\n _autoSeedMwc();\r\n }\r\n // Don't use Math.random for IE\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = mwcRandom32() & MaxUInt32;\r\n }\r\n if (value === 0) {\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = Math.floor((UInt32Mask * Math.random()) | 0);\r\n }\r\n if (!signed) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n value >>>= 0;\r\n }\r\n return value;\r\n}\r\n/**\r\n * Seed the MWC random number generator with the specified seed or a random value\r\n * @param value - optional the number to used as the seed, if undefined, null or zero a random value will be chosen\r\n */\r\nexport function mwcRandomSeed(value) {\r\n if (!value) {\r\n _autoSeedMwc();\r\n }\r\n else {\r\n _mwcSeed(value);\r\n }\r\n}\r\n/**\r\n * Generate a random 32-bit number between (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), using MWC (Multiply with carry)\r\n * instead of Math.random() defaults to un-signed.\r\n * Used as a replacement random generator for IE to avoid issues with older IE instances.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\nexport function mwcRandom32(signed) {\r\n _mwcZ = (36969 * (_mwcZ & 0xFFFF) + (_mwcZ >> 16)) & MaxUInt32;\r\n _mwcW = (18000 * (_mwcW & 0xFFFF) + (_mwcW >> 16)) & MaxUInt32;\r\n var value = (((_mwcZ << 16) + (_mwcW & 0xFFFF)) >>> 0) & MaxUInt32 | 0;\r\n if (!signed) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n value >>>= 0;\r\n }\r\n return value;\r\n}\r\n/**\r\n * Generate random base64 id string.\r\n * The default length is 22 which is 132-bits so almost the same as a GUID but as base64 (the previous default was 5)\r\n * @param maxLength - Optional value to specify the length of the id to be generated, defaults to 22\r\n */\r\nexport function newId(maxLength) {\r\n if (maxLength === void 0) { maxLength = 22; }\r\n var base64chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\r\n // Start with an initial random number, consuming the value in reverse byte order\r\n var number = random32() >>> 0; // Make sure it's a +ve number\r\n var chars = 0;\r\n var result = STR_EMPTY;\r\n while (result[_DYN_LENGTH /* @min:%2elength */] < maxLength) {\r\n chars++;\r\n result += base64chars.charAt(number & 0x3F);\r\n number >>>= 6; // Zero fill with right shift\r\n if (chars === 5) {\r\n // 5 base64 characters === 30 bits so we don't have enough bits for another base64 char\r\n // So add on another 30 bits and make sure it's +ve\r\n number = (((random32() << 2) & 0xFFFFFFFF) | (number & 0x03)) >>> 0;\r\n chars = 0; // We need to reset the number every 5 chars (30 bits)\r\n }\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=RandomHelper.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n/**\n * A set of constants used internally when processing requests.\n */\nexport const Constants = {\n /**\n * The core-http version\n */\n coreHttpVersion: \"2.2.6\",\n\n /**\n * Specifies HTTP.\n */\n HTTP: \"http:\",\n\n /**\n * Specifies HTTPS.\n */\n HTTPS: \"https:\",\n\n /**\n * Specifies HTTP Proxy.\n */\n HTTP_PROXY: \"HTTP_PROXY\",\n\n /**\n * Specifies HTTPS Proxy.\n */\n HTTPS_PROXY: \"HTTPS_PROXY\",\n\n /**\n * Specifies NO Proxy.\n */\n NO_PROXY: \"NO_PROXY\",\n\n /**\n * Specifies ALL Proxy.\n */\n ALL_PROXY: \"ALL_PROXY\",\n\n HttpConstants: {\n /**\n * Http Verbs\n */\n HttpVerbs: {\n PUT: \"PUT\",\n GET: \"GET\",\n DELETE: \"DELETE\",\n POST: \"POST\",\n MERGE: \"MERGE\",\n HEAD: \"HEAD\",\n PATCH: \"PATCH\",\n },\n\n StatusCodes: {\n TooManyRequests: 429,\n ServiceUnavailable: 503,\n },\n },\n\n /**\n * Defines constants for use with HTTP headers.\n */\n HeaderConstants: {\n /**\n * The Authorization header.\n */\n AUTHORIZATION: \"authorization\",\n\n AUTHORIZATION_SCHEME: \"Bearer\",\n\n /**\n * The Retry-After response-header field can be used with a 503 (Service\n * Unavailable) or 349 (Too Many Requests) responses to indicate how long\n * the service is expected to be unavailable to the requesting client.\n */\n RETRY_AFTER: \"Retry-After\",\n\n /**\n * The UserAgent header.\n */\n USER_AGENT: \"User-Agent\",\n },\n};\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport const custom = {};\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { HttpOperationResponse } from \"./httpOperationResponse\";\nimport { Sanitizer } from \"./util/sanitizer\";\nimport { WebResourceLike } from \"./webResource\";\nimport { custom } from \"./util/inspect\";\n\nconst errorSanitizer = new Sanitizer();\n\n/**\n * An error resulting from an HTTP request to a service endpoint.\n */\nexport class RestError extends Error {\n /**\n * A constant string to identify errors that may arise when making an HTTP request that indicates an issue with the transport layer (e.g. the hostname of the URL cannot be resolved via DNS.)\n */\n static readonly REQUEST_SEND_ERROR: string = \"REQUEST_SEND_ERROR\";\n /**\n * A constant string to identify errors that may arise from parsing an incoming HTTP response. Usually indicates a malformed HTTP body, such as an encoded JSON payload that is incomplete.\n */\n static readonly PARSE_ERROR: string = \"PARSE_ERROR\";\n\n /**\n * The error code, if any. Can be one of the static error code properties (REQUEST_SEND_ERROR / PARSE_ERROR) or can be a string code from an underlying system call (E_NOENT).\n */\n code?: string;\n /**\n * The HTTP status code of the response, if one was returned.\n */\n statusCode?: number;\n /**\n * Outgoing request.\n */\n request?: WebResourceLike;\n /**\n * Incoming response.\n */\n response?: HttpOperationResponse;\n /**\n * Any additional details. In the case of deserialization errors, can be the processed response.\n */\n details?: unknown;\n constructor(\n message: string,\n code?: string,\n statusCode?: number,\n request?: WebResourceLike,\n response?: HttpOperationResponse\n ) {\n super(message);\n this.name = \"RestError\";\n this.code = code;\n this.statusCode = statusCode;\n this.request = request;\n this.response = response;\n\n Object.setPrototypeOf(this, RestError.prototype);\n }\n\n /**\n * Logging method for util.inspect in Node\n */\n [custom](): string {\n return `RestError: ${this.message} \\n ${errorSanitizer.sanitize(this)}`;\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const VERSION = '1.1.0';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { VERSION } from '../version';\n\nconst re = /^(\\d+)\\.(\\d+)\\.(\\d+)(-(.+))?$/;\n\n/**\n * Create a function to test an API version to see if it is compatible with the provided ownVersion.\n *\n * The returned function has the following semantics:\n * - Exact match is always compatible\n * - Major versions must match exactly\n * - 1.x package cannot use global 2.x package\n * - 2.x package cannot use global 1.x package\n * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API\n * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects\n * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3\n * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor\n * - Patch and build tag differences are not considered at this time\n *\n * @param ownVersion version which should be checked against\n */\nexport function _makeCompatibilityCheck(\n ownVersion: string\n): (globalVersion: string) => boolean {\n const acceptedVersions = new Set([ownVersion]);\n const rejectedVersions = new Set();\n\n const myVersionMatch = ownVersion.match(re);\n if (!myVersionMatch) {\n // we cannot guarantee compatibility so we always return noop\n return () => false;\n }\n\n const ownVersionParsed = {\n major: +myVersionMatch[1],\n minor: +myVersionMatch[2],\n patch: +myVersionMatch[3],\n prerelease: myVersionMatch[4],\n };\n\n // if ownVersion has a prerelease tag, versions must match exactly\n if (ownVersionParsed.prerelease != null) {\n return function isExactmatch(globalVersion: string): boolean {\n return globalVersion === ownVersion;\n };\n }\n\n function _reject(v: string) {\n rejectedVersions.add(v);\n return false;\n }\n\n function _accept(v: string) {\n acceptedVersions.add(v);\n return true;\n }\n\n return function isCompatible(globalVersion: string): boolean {\n if (acceptedVersions.has(globalVersion)) {\n return true;\n }\n\n if (rejectedVersions.has(globalVersion)) {\n return false;\n }\n\n const globalVersionMatch = globalVersion.match(re);\n if (!globalVersionMatch) {\n // cannot parse other version\n // we cannot guarantee compatibility so we always noop\n return _reject(globalVersion);\n }\n\n const globalVersionParsed = {\n major: +globalVersionMatch[1],\n minor: +globalVersionMatch[2],\n patch: +globalVersionMatch[3],\n prerelease: globalVersionMatch[4],\n };\n\n // if globalVersion has a prerelease tag, versions must match exactly\n if (globalVersionParsed.prerelease != null) {\n return _reject(globalVersion);\n }\n\n // major versions must match\n if (ownVersionParsed.major !== globalVersionParsed.major) {\n return _reject(globalVersion);\n }\n\n if (ownVersionParsed.major === 0) {\n if (\n ownVersionParsed.minor === globalVersionParsed.minor &&\n ownVersionParsed.patch <= globalVersionParsed.patch\n ) {\n return _accept(globalVersion);\n }\n\n return _reject(globalVersion);\n }\n\n if (ownVersionParsed.minor <= globalVersionParsed.minor) {\n return _accept(globalVersion);\n }\n\n return _reject(globalVersion);\n };\n}\n\n/**\n * Test an API version to see if it is compatible with this API.\n *\n * - Exact match is always compatible\n * - Major versions must match exactly\n * - 1.x package cannot use global 2.x package\n * - 2.x package cannot use global 1.x package\n * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API\n * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects\n * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3\n * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor\n * - Patch and build tag differences are not considered at this time\n *\n * @param version version of the API requesting an instance of the global API\n */\nexport const isCompatible = _makeCompatibilityCheck(VERSION);\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ContextManager } from '../context/types';\nimport { DiagLogger } from '../diag';\nimport { _globalThis } from '../platform';\nimport { TextMapPropagator } from '../propagation/TextMapPropagator';\nimport type { TracerProvider } from '../trace/tracer_provider';\nimport { VERSION } from '../version';\nimport { isCompatible } from './semver';\n\nconst major = VERSION.split('.')[0];\nconst GLOBAL_OPENTELEMETRY_API_KEY = Symbol.for(\n `opentelemetry.js.api.${major}`\n);\n\nconst _global = _globalThis as OTelGlobal;\n\nexport function registerGlobal(\n type: Type,\n instance: OTelGlobalAPI[Type],\n diag: DiagLogger,\n allowOverride = false\n): boolean {\n const api = (_global[GLOBAL_OPENTELEMETRY_API_KEY] = _global[\n GLOBAL_OPENTELEMETRY_API_KEY\n ] ?? {\n version: VERSION,\n });\n\n if (!allowOverride && api[type]) {\n // already registered an API of this type\n const err = new Error(\n `@opentelemetry/api: Attempted duplicate registration of API: ${type}`\n );\n diag.error(err.stack || err.message);\n return false;\n }\n\n if (api.version !== VERSION) {\n // All registered APIs must be of the same version exactly\n const err = new Error(\n '@opentelemetry/api: All API registration versions must match'\n );\n diag.error(err.stack || err.message);\n return false;\n }\n\n api[type] = instance;\n diag.debug(\n `@opentelemetry/api: Registered a global for ${type} v${VERSION}.`\n );\n\n return true;\n}\n\nexport function getGlobal(\n type: Type\n): OTelGlobalAPI[Type] | undefined {\n const globalVersion = _global[GLOBAL_OPENTELEMETRY_API_KEY]?.version;\n if (!globalVersion || !isCompatible(globalVersion)) {\n return;\n }\n return _global[GLOBAL_OPENTELEMETRY_API_KEY]?.[type];\n}\n\nexport function unregisterGlobal(type: keyof OTelGlobalAPI, diag: DiagLogger) {\n diag.debug(\n `@opentelemetry/api: Unregistering a global for ${type} v${VERSION}.`\n );\n const api = _global[GLOBAL_OPENTELEMETRY_API_KEY];\n\n if (api) {\n delete api[type];\n }\n}\n\ntype OTelGlobal = {\n [GLOBAL_OPENTELEMETRY_API_KEY]?: OTelGlobalAPI;\n};\n\ntype OTelGlobalAPI = {\n version: string;\n\n diag?: DiagLogger;\n trace?: TracerProvider;\n context?: ContextManager;\n propagation?: TextMapPropagator;\n};\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getGlobal } from '../internal/global-utils';\nimport { ComponentLoggerOptions, DiagLogger, DiagLogFunction } from './types';\n\n/**\n * Component Logger which is meant to be used as part of any component which\n * will add automatically additional namespace in front of the log message.\n * It will then forward all message to global diag logger\n * @example\n * const cLogger = diag.createComponentLogger({ namespace: '@opentelemetry/instrumentation-http' });\n * cLogger.debug('test');\n * // @opentelemetry/instrumentation-http test\n */\nexport class DiagComponentLogger implements DiagLogger {\n private _namespace: string;\n\n constructor(props: ComponentLoggerOptions) {\n this._namespace = props.namespace || 'DiagComponentLogger';\n }\n\n public debug(...args: any[]): void {\n return logProxy('debug', this._namespace, args);\n }\n\n public error(...args: any[]): void {\n return logProxy('error', this._namespace, args);\n }\n\n public info(...args: any[]): void {\n return logProxy('info', this._namespace, args);\n }\n\n public warn(...args: any[]): void {\n return logProxy('warn', this._namespace, args);\n }\n\n public verbose(...args: any[]): void {\n return logProxy('verbose', this._namespace, args);\n }\n}\n\nfunction logProxy(\n funcName: keyof DiagLogger,\n namespace: string,\n args: any\n): void {\n const logger = getGlobal('diag');\n // shortcut if logger not set\n if (!logger) {\n return;\n }\n\n args.unshift(namespace);\n return logger[funcName](...(args as Parameters));\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport type DiagLogFunction = (message: string, ...args: unknown[]) => void;\n\n/**\n * Defines an internal diagnostic logger interface which is used to log internal diagnostic\n * messages, you can set the default diagnostic logger via the {@link DiagAPI} setLogger function.\n * API provided implementations include :-\n * - a No-Op {@link createNoopDiagLogger}\n * - a {@link DiagLogLevel} filtering wrapper {@link createLogLevelDiagLogger}\n * - a general Console {@link DiagConsoleLogger} version.\n */\nexport interface DiagLogger {\n /** Log an error scenario that was not expected and caused the requested operation to fail. */\n error: DiagLogFunction;\n\n /**\n * Log a warning scenario to inform the developer of an issues that should be investigated.\n * The requested operation may or may not have succeeded or completed.\n */\n warn: DiagLogFunction;\n\n /**\n * Log a general informational message, this should not affect functionality.\n * This is also the default logging level so this should NOT be used for logging\n * debugging level information.\n */\n info: DiagLogFunction;\n\n /**\n * Log a general debug message that can be useful for identifying a failure.\n * Information logged at this level may include diagnostic details that would\n * help identify a failure scenario.\n * For example: Logging the order of execution of async operations.\n */\n debug: DiagLogFunction;\n\n /**\n * Log a detailed (verbose) trace level logging that can be used to identify failures\n * where debug level logging would be insufficient, this level of tracing can include\n * input and output parameters and as such may include PII information passing through\n * the API. As such it is recommended that this level of tracing should not be enabled\n * in a production environment.\n */\n verbose: DiagLogFunction;\n}\n\n/**\n * Defines the available internal logging levels for the diagnostic logger, the numeric values\n * of the levels are defined to match the original values from the initial LogLevel to avoid\n * compatibility/migration issues for any implementation that assume the numeric ordering.\n */\nexport enum DiagLogLevel {\n /** Diagnostic Logging level setting to disable all logging (except and forced logs) */\n NONE = 0,\n\n /** Identifies an error scenario */\n ERROR = 30,\n\n /** Identifies a warning scenario */\n WARN = 50,\n\n /** General informational log message */\n INFO = 60,\n\n /** General debug log message */\n DEBUG = 70,\n\n /**\n * Detailed trace level logging should only be used for development, should only be set\n * in a development environment.\n */\n VERBOSE = 80,\n\n /** Used to set the logging level to include all logging */\n ALL = 9999,\n}\n\n/**\n * Defines options for ComponentLogger\n */\nexport interface ComponentLoggerOptions {\n namespace: string;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DiagComponentLogger } from '../diag/ComponentLogger';\nimport { createLogLevelDiagLogger } from '../diag/internal/logLevelLogger';\nimport {\n ComponentLoggerOptions,\n DiagLogFunction,\n DiagLogger,\n DiagLogLevel,\n} from '../diag/types';\nimport {\n getGlobal,\n registerGlobal,\n unregisterGlobal,\n} from '../internal/global-utils';\n\nconst API_NAME = 'diag';\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry internal\n * diagnostic API\n */\nexport class DiagAPI implements DiagLogger {\n private static _instance?: DiagAPI;\n\n /** Get the singleton instance of the DiagAPI API */\n public static instance(): DiagAPI {\n if (!this._instance) {\n this._instance = new DiagAPI();\n }\n\n return this._instance;\n }\n\n /**\n * Private internal constructor\n * @private\n */\n private constructor() {\n function _logProxy(funcName: keyof DiagLogger): DiagLogFunction {\n return function (...args) {\n const logger = getGlobal('diag');\n // shortcut if logger not set\n if (!logger) return;\n return logger[funcName](...args);\n };\n }\n\n // Using self local variable for minification purposes as 'this' cannot be minified\n const self = this;\n\n // DiagAPI specific functions\n\n self.setLogger = (\n logger: DiagLogger,\n logLevel: DiagLogLevel = DiagLogLevel.INFO\n ) => {\n if (logger === self) {\n // There isn't much we can do here.\n // Logging to the console might break the user application.\n // Try to log to self. If a logger was previously registered it will receive the log.\n const err = new Error(\n 'Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation'\n );\n self.error(err.stack ?? err.message);\n return false;\n }\n\n const oldLogger = getGlobal('diag');\n const newLogger = createLogLevelDiagLogger(logLevel, logger);\n // There already is an logger registered. We'll let it know before overwriting it.\n if (oldLogger) {\n const stack = new Error().stack ?? '';\n oldLogger.warn(`Current logger will be overwritten from ${stack}`);\n newLogger.warn(\n `Current logger will overwrite one already registered from ${stack}`\n );\n }\n\n return registerGlobal('diag', newLogger, self, true);\n };\n\n self.disable = () => {\n unregisterGlobal(API_NAME, self);\n };\n\n self.createComponentLogger = (options: ComponentLoggerOptions) => {\n return new DiagComponentLogger(options);\n };\n\n self.verbose = _logProxy('verbose');\n self.debug = _logProxy('debug');\n self.info = _logProxy('info');\n self.warn = _logProxy('warn');\n self.error = _logProxy('error');\n }\n\n /**\n * Set the global DiagLogger and DiagLogLevel.\n * If a global diag logger is already set, this will override it.\n *\n * @param logger - [Optional] The DiagLogger instance to set as the default logger.\n * @param logLevel - [Optional] The DiagLogLevel used to filter logs sent to the logger. If not provided it will default to INFO.\n * @returns true if the logger was successfully registered, else false\n */\n public setLogger!: (logger: DiagLogger, logLevel?: DiagLogLevel) => boolean;\n /**\n *\n */\n public createComponentLogger!: (\n options: ComponentLoggerOptions\n ) => DiagLogger;\n\n // DiagLogger implementation\n public verbose!: DiagLogFunction;\n public debug!: DiagLogFunction;\n public info!: DiagLogFunction;\n public warn!: DiagLogFunction;\n public error!: DiagLogFunction;\n\n /**\n * Unregister the global logger and return to Noop\n */\n public disable!: () => void;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DiagLogFunction, DiagLogger, DiagLogLevel } from '../types';\n\nexport function createLogLevelDiagLogger(\n maxLevel: DiagLogLevel,\n logger: DiagLogger\n): DiagLogger {\n if (maxLevel < DiagLogLevel.NONE) {\n maxLevel = DiagLogLevel.NONE;\n } else if (maxLevel > DiagLogLevel.ALL) {\n maxLevel = DiagLogLevel.ALL;\n }\n\n // In case the logger is null or undefined\n logger = logger || {};\n\n function _filterFunc(\n funcName: keyof DiagLogger,\n theLevel: DiagLogLevel\n ): DiagLogFunction {\n const theFunc = logger[funcName];\n\n if (typeof theFunc === 'function' && maxLevel >= theLevel) {\n return theFunc.bind(logger);\n }\n return function () {};\n }\n\n return {\n error: _filterFunc('error', DiagLogLevel.ERROR),\n warn: _filterFunc('warn', DiagLogLevel.WARN),\n info: _filterFunc('info', DiagLogLevel.INFO),\n debug: _filterFunc('debug', DiagLogLevel.DEBUG),\n verbose: _filterFunc('verbose', DiagLogLevel.VERBOSE),\n };\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Baggage, BaggageEntry } from '../types';\n\nexport class BaggageImpl implements Baggage {\n private _entries: Map;\n\n constructor(entries?: Map) {\n this._entries = entries ? new Map(entries) : new Map();\n }\n\n getEntry(key: string): BaggageEntry | undefined {\n const entry = this._entries.get(key);\n if (!entry) {\n return undefined;\n }\n\n return Object.assign({}, entry);\n }\n\n getAllEntries(): [string, BaggageEntry][] {\n return Array.from(this._entries.entries()).map(([k, v]) => [k, v]);\n }\n\n setEntry(key: string, entry: BaggageEntry): BaggageImpl {\n const newBaggage = new BaggageImpl(this._entries);\n newBaggage._entries.set(key, entry);\n return newBaggage;\n }\n\n removeEntry(key: string): BaggageImpl {\n const newBaggage = new BaggageImpl(this._entries);\n newBaggage._entries.delete(key);\n return newBaggage;\n }\n\n removeEntries(...keys: string[]): BaggageImpl {\n const newBaggage = new BaggageImpl(this._entries);\n for (const key of keys) {\n newBaggage._entries.delete(key);\n }\n return newBaggage;\n }\n\n clear(): BaggageImpl {\n return new BaggageImpl();\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Symbol used to make BaggageEntryMetadata an opaque type\n */\nexport const baggageEntryMetadataSymbol = Symbol('BaggageEntryMetadata');\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DiagAPI } from '../api/diag';\nimport { BaggageImpl } from './internal/baggage-impl';\nimport { baggageEntryMetadataSymbol } from './internal/symbol';\nimport { Baggage, BaggageEntry, BaggageEntryMetadata } from './types';\n\nconst diag = DiagAPI.instance();\n\n/**\n * Create a new Baggage with optional entries\n *\n * @param entries An array of baggage entries the new baggage should contain\n */\nexport function createBaggage(\n entries: Record = {}\n): Baggage {\n return new BaggageImpl(new Map(Object.entries(entries)));\n}\n\n/**\n * Create a serializable BaggageEntryMetadata object from a string.\n *\n * @param str string metadata. Format is currently not defined by the spec and has no special meaning.\n *\n */\nexport function baggageEntryMetadataFromString(\n str: string\n): BaggageEntryMetadata {\n if (typeof str !== 'string') {\n diag.error(\n `Cannot create baggage metadata from unknown type: ${typeof str}`\n );\n str = '';\n }\n\n return {\n __TYPE__: baggageEntryMetadataSymbol,\n toString() {\n return str;\n },\n };\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DiagLogger, DiagLogFunction } from './types';\n\ntype ConsoleMapKeys = 'error' | 'warn' | 'info' | 'debug' | 'trace';\nconst consoleMap: { n: keyof DiagLogger; c: ConsoleMapKeys }[] = [\n { n: 'error', c: 'error' },\n { n: 'warn', c: 'warn' },\n { n: 'info', c: 'info' },\n { n: 'debug', c: 'debug' },\n { n: 'verbose', c: 'trace' },\n];\n\n/**\n * A simple Immutable Console based diagnostic logger which will output any messages to the Console.\n * If you want to limit the amount of logging to a specific level or lower use the\n * {@link createLogLevelDiagLogger}\n */\nexport class DiagConsoleLogger implements DiagLogger {\n constructor() {\n function _consoleFunc(funcName: ConsoleMapKeys): DiagLogFunction {\n return function (...args) {\n if (console) {\n // Some environments only expose the console when the F12 developer console is open\n // eslint-disable-next-line no-console\n let theFunc = console[funcName];\n if (typeof theFunc !== 'function') {\n // Not all environments support all functions\n // eslint-disable-next-line no-console\n theFunc = console.log;\n }\n\n // One last final check\n if (typeof theFunc === 'function') {\n return theFunc.apply(console, args);\n }\n }\n };\n }\n\n for (let i = 0; i < consoleMap.length; i++) {\n this[consoleMap[i].n] = _consoleFunc(consoleMap[i].c);\n }\n }\n\n /** Log an error scenario that was not expected and caused the requested operation to fail. */\n public error!: DiagLogFunction;\n\n /**\n * Log a warning scenario to inform the developer of an issues that should be investigated.\n * The requested operation may or may not have succeeded or completed.\n */\n public warn!: DiagLogFunction;\n\n /**\n * Log a general informational message, this should not affect functionality.\n * This is also the default logging level so this should NOT be used for logging\n * debugging level information.\n */\n public info!: DiagLogFunction;\n\n /**\n * Log a general debug message that can be useful for identifying a failure.\n * Information logged at this level may include diagnostic details that would\n * help identify a failure scenario. Useful scenarios would be to log the execution\n * order of async operations\n */\n public debug!: DiagLogFunction;\n\n /**\n * Log a detailed (verbose) trace level logging that can be used to identify failures\n * where debug level logging would be insufficient, this level of tracing can include\n * input and output parameters and as such may include PII information passing through\n * the API. As such it is recommended that this level of tracing should not be enabled\n * in a production environment.\n */\n public verbose!: DiagLogFunction;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from '../context/types';\n\n/**\n * Injects `Context` into and extracts it from carriers that travel\n * in-band across process boundaries. Encoding is expected to conform to the\n * HTTP Header Field semantics. Values are often encoded as RPC/HTTP request\n * headers.\n *\n * The carrier of propagated data on both the client (injector) and server\n * (extractor) side is usually an object such as http headers. Propagation is\n * usually implemented via library-specific request interceptors, where the\n * client-side injects values and the server-side extracts them.\n */\nexport interface TextMapPropagator {\n /**\n * Injects values from a given `Context` into a carrier.\n *\n * OpenTelemetry defines a common set of format values (TextMapPropagator),\n * and each has an expected `carrier` type.\n *\n * @param context the Context from which to extract values to transmit over\n * the wire.\n * @param carrier the carrier of propagation fields, such as http request\n * headers.\n * @param setter an optional {@link TextMapSetter}. If undefined, values will be\n * set by direct object assignment.\n */\n inject(\n context: Context,\n carrier: Carrier,\n setter: TextMapSetter\n ): void;\n\n /**\n * Given a `Context` and a carrier, extract context values from a\n * carrier and return a new context, created from the old context, with the\n * extracted values.\n *\n * @param context the Context from which to extract values to transmit over\n * the wire.\n * @param carrier the carrier of propagation fields, such as http request\n * headers.\n * @param getter an optional {@link TextMapGetter}. If undefined, keys will be all\n * own properties, and keys will be accessed by direct object access.\n */\n extract(\n context: Context,\n carrier: Carrier,\n getter: TextMapGetter\n ): Context;\n\n /**\n * Return a list of all fields which may be used by the propagator.\n */\n fields(): string[];\n}\n\n/**\n * A setter is specified by the caller to define a specific method\n * to set key/value pairs on the carrier within a propagator.\n */\nexport interface TextMapSetter {\n /**\n * Callback used to set a key/value pair on an object.\n *\n * Should be called by the propagator each time a key/value pair\n * should be set, and should set that key/value pair on the propagator.\n *\n * @param carrier object or class which carries key/value pairs\n * @param key string key to modify\n * @param value value to be set to the key on the carrier\n */\n set(carrier: Carrier, key: string, value: string): void;\n}\n\n/**\n * A getter is specified by the caller to define a specific method\n * to get the value of a key from a carrier.\n */\nexport interface TextMapGetter {\n /**\n * Get a list of all keys available on the carrier.\n *\n * @param carrier\n */\n keys(carrier: Carrier): string[];\n\n /**\n * Get the value of a specific key from the carrier.\n *\n * @param carrier\n * @param key\n */\n get(carrier: Carrier, key: string): undefined | string | string[];\n}\n\nexport const defaultTextMapGetter: TextMapGetter = {\n get(carrier, key) {\n if (carrier == null) {\n return undefined;\n }\n return carrier[key];\n },\n\n keys(carrier) {\n if (carrier == null) {\n return [];\n }\n return Object.keys(carrier);\n },\n};\n\nexport const defaultTextMapSetter: TextMapSetter = {\n set(carrier, key, value) {\n if (carrier == null) {\n return;\n }\n\n carrier[key] = value;\n },\n};\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from './types';\n\n/** Get a key to uniquely identify a context value */\nexport function createContextKey(description: string) {\n // The specification states that for the same input, multiple calls should\n // return different keys. Due to the nature of the JS dependency management\n // system, this creates problems where multiple versions of some package\n // could hold different keys for the same property.\n //\n // Therefore, we use Symbol.for which returns the same key for the same input.\n return Symbol.for(description);\n}\n\nclass BaseContext implements Context {\n private _currentContext!: Map;\n\n /**\n * Construct a new context which inherits values from an optional parent context.\n *\n * @param parentContext a context from which to inherit values\n */\n constructor(parentContext?: Map) {\n // for minification\n const self = this;\n\n self._currentContext = parentContext ? new Map(parentContext) : new Map();\n\n self.getValue = (key: symbol) => self._currentContext.get(key);\n\n self.setValue = (key: symbol, value: unknown): Context => {\n const context = new BaseContext(self._currentContext);\n context._currentContext.set(key, value);\n return context;\n };\n\n self.deleteValue = (key: symbol): Context => {\n const context = new BaseContext(self._currentContext);\n context._currentContext.delete(key);\n return context;\n };\n }\n\n /**\n * Get a value from the context.\n *\n * @param key key which identifies a context value\n */\n public getValue!: (key: symbol) => unknown;\n\n /**\n * Create a new context which inherits from this context and has\n * the given key set to the given value.\n *\n * @param key context key for which to set the value\n * @param value value to set for the given key\n */\n public setValue!: (key: symbol, value: unknown) => Context;\n\n /**\n * Return a new context which inherits from this context but does\n * not contain a value for the given key.\n *\n * @param key context key for which to clear a value\n */\n public deleteValue!: (key: symbol) => Context;\n}\n\n/** The root context is used as the default parent context when there is no active context */\nexport const ROOT_CONTEXT: Context = new BaseContext();\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport enum TraceFlags {\n /** Represents no flag set. */\n NONE = 0x0,\n /** Bit to represent whether trace is sampled in trace flags. */\n SAMPLED = 0x1 << 0,\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ROOT_CONTEXT } from './context';\nimport * as types from './types';\n\nexport class NoopContextManager implements types.ContextManager {\n active(): types.Context {\n return ROOT_CONTEXT;\n }\n\n with ReturnType>(\n _context: types.Context,\n fn: F,\n thisArg?: ThisParameterType,\n ...args: A\n ): ReturnType {\n return fn.call(thisArg, ...args);\n }\n\n bind(_context: types.Context, target: T): T {\n return target;\n }\n\n enable(): this {\n return this;\n }\n\n disable(): this {\n return this;\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { NoopContextManager } from '../context/NoopContextManager';\nimport { Context, ContextManager } from '../context/types';\nimport {\n getGlobal,\n registerGlobal,\n unregisterGlobal,\n} from '../internal/global-utils';\nimport { DiagAPI } from './diag';\n\nconst API_NAME = 'context';\nconst NOOP_CONTEXT_MANAGER = new NoopContextManager();\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Context API\n */\nexport class ContextAPI {\n private static _instance?: ContextAPI;\n\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n private constructor() {}\n\n /** Get the singleton instance of the Context API */\n public static getInstance(): ContextAPI {\n if (!this._instance) {\n this._instance = new ContextAPI();\n }\n\n return this._instance;\n }\n\n /**\n * Set the current context manager.\n *\n * @returns true if the context manager was successfully registered, else false\n */\n public setGlobalContextManager(contextManager: ContextManager): boolean {\n return registerGlobal(API_NAME, contextManager, DiagAPI.instance());\n }\n\n /**\n * Get the currently active context\n */\n public active(): Context {\n return this._getContextManager().active();\n }\n\n /**\n * Execute a function with an active context\n *\n * @param context context to be active during function execution\n * @param fn function to execute in a context\n * @param thisArg optional receiver to be used for calling fn\n * @param args optional arguments forwarded to fn\n */\n public with ReturnType>(\n context: Context,\n fn: F,\n thisArg?: ThisParameterType,\n ...args: A\n ): ReturnType {\n return this._getContextManager().with(context, fn, thisArg, ...args);\n }\n\n /**\n * Bind a context to a target function or event emitter\n *\n * @param context context to bind to the event emitter or function. Defaults to the currently active context\n * @param target function or event emitter to bind\n */\n public bind(context: Context, target: T): T {\n return this._getContextManager().bind(context, target);\n }\n\n private _getContextManager(): ContextManager {\n return getGlobal(API_NAME) || NOOP_CONTEXT_MANAGER;\n }\n\n /** Disable and remove the global context manager */\n public disable() {\n this._getContextManager().disable();\n unregisterGlobal(API_NAME, DiagAPI.instance());\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SpanContext } from './span_context';\nimport { TraceFlags } from './trace_flags';\n\nexport const INVALID_SPANID = '0000000000000000';\nexport const INVALID_TRACEID = '00000000000000000000000000000000';\nexport const INVALID_SPAN_CONTEXT: SpanContext = {\n traceId: INVALID_TRACEID,\n spanId: INVALID_SPANID,\n traceFlags: TraceFlags.NONE,\n};\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Exception } from '../common/Exception';\nimport { TimeInput } from '../common/Time';\nimport { SpanAttributes } from './attributes';\nimport { INVALID_SPAN_CONTEXT } from './invalid-span-constants';\nimport { Span } from './span';\nimport { SpanContext } from './span_context';\nimport { SpanStatus } from './status';\n\n/**\n * The NonRecordingSpan is the default {@link Span} that is used when no Span\n * implementation is available. All operations are no-op including context\n * propagation.\n */\nexport class NonRecordingSpan implements Span {\n constructor(\n private readonly _spanContext: SpanContext = INVALID_SPAN_CONTEXT\n ) {}\n\n // Returns a SpanContext.\n spanContext(): SpanContext {\n return this._spanContext;\n }\n\n // By default does nothing\n setAttribute(_key: string, _value: unknown): this {\n return this;\n }\n\n // By default does nothing\n setAttributes(_attributes: SpanAttributes): this {\n return this;\n }\n\n // By default does nothing\n addEvent(_name: string, _attributes?: SpanAttributes): this {\n return this;\n }\n\n // By default does nothing\n setStatus(_status: SpanStatus): this {\n return this;\n }\n\n // By default does nothing\n updateName(_name: string): this {\n return this;\n }\n\n // By default does nothing\n end(_endTime?: TimeInput): void {}\n\n // isRecording always returns false for NonRecordingSpan.\n isRecording(): boolean {\n return false;\n }\n\n // By default does nothing\n recordException(_exception: Exception, _time?: TimeInput): void {}\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createContextKey } from '../context/context';\nimport { Context } from '../context/types';\nimport { Span } from './span';\nimport { SpanContext } from './span_context';\nimport { NonRecordingSpan } from './NonRecordingSpan';\n\n/**\n * span key\n */\nconst SPAN_KEY = createContextKey('OpenTelemetry Context Key SPAN');\n\n/**\n * Return the span if one exists\n *\n * @param context context to get span from\n */\nexport function getSpan(context: Context): Span | undefined {\n return (context.getValue(SPAN_KEY) as Span) || undefined;\n}\n\n/**\n * Set the span on a context\n *\n * @param context context to use as parent\n * @param span span to set active\n */\nexport function setSpan(context: Context, span: Span): Context {\n return context.setValue(SPAN_KEY, span);\n}\n\n/**\n * Remove current span stored in the context\n *\n * @param context context to delete span from\n */\nexport function deleteSpan(context: Context): Context {\n return context.deleteValue(SPAN_KEY);\n}\n\n/**\n * Wrap span context in a NoopSpan and set as span in a new\n * context\n *\n * @param context context to set active span on\n * @param spanContext span context to be wrapped\n */\nexport function setSpanContext(\n context: Context,\n spanContext: SpanContext\n): Context {\n return setSpan(context, new NonRecordingSpan(spanContext));\n}\n\n/**\n * Get the span context of the span if it exists.\n *\n * @param context context to get values from\n */\nexport function getSpanContext(context: Context): SpanContext | undefined {\n return getSpan(context)?.spanContext();\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { INVALID_SPANID, INVALID_TRACEID } from './invalid-span-constants';\nimport { NonRecordingSpan } from './NonRecordingSpan';\nimport { Span } from './span';\nimport { SpanContext } from './span_context';\n\nconst VALID_TRACEID_REGEX = /^([0-9a-f]{32})$/i;\nconst VALID_SPANID_REGEX = /^[0-9a-f]{16}$/i;\n\nexport function isValidTraceId(traceId: string): boolean {\n return VALID_TRACEID_REGEX.test(traceId) && traceId !== INVALID_TRACEID;\n}\n\nexport function isValidSpanId(spanId: string): boolean {\n return VALID_SPANID_REGEX.test(spanId) && spanId !== INVALID_SPANID;\n}\n\n/**\n * Returns true if this {@link SpanContext} is valid.\n * @return true if this {@link SpanContext} is valid.\n */\nexport function isSpanContextValid(spanContext: SpanContext): boolean {\n return (\n isValidTraceId(spanContext.traceId) && isValidSpanId(spanContext.spanId)\n );\n}\n\n/**\n * Wrap the given {@link SpanContext} in a new non-recording {@link Span}\n *\n * @param spanContext span context to be wrapped\n * @returns a new non-recording {@link Span} with the provided context\n */\nexport function wrapSpanContext(spanContext: SpanContext): Span {\n return new NonRecordingSpan(spanContext);\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ContextAPI } from '../api/context';\nimport { Context } from '../context/types';\nimport { getSpanContext, setSpan } from '../trace/context-utils';\nimport { NonRecordingSpan } from './NonRecordingSpan';\nimport { Span } from './span';\nimport { isSpanContextValid } from './spancontext-utils';\nimport { SpanOptions } from './SpanOptions';\nimport { SpanContext } from './span_context';\nimport { Tracer } from './tracer';\n\nconst context = ContextAPI.getInstance();\n\n/**\n * No-op implementations of {@link Tracer}.\n */\nexport class NoopTracer implements Tracer {\n // startSpan starts a noop span.\n startSpan(name: string, options?: SpanOptions, context?: Context): Span {\n const root = Boolean(options?.root);\n if (root) {\n return new NonRecordingSpan();\n }\n\n const parentFromContext = context && getSpanContext(context);\n\n if (\n isSpanContext(parentFromContext) &&\n isSpanContextValid(parentFromContext)\n ) {\n return new NonRecordingSpan(parentFromContext);\n } else {\n return new NonRecordingSpan();\n }\n }\n\n startActiveSpan ReturnType>(\n name: string,\n fn: F\n ): ReturnType;\n startActiveSpan ReturnType>(\n name: string,\n opts: SpanOptions | undefined,\n fn: F\n ): ReturnType;\n startActiveSpan ReturnType>(\n name: string,\n opts: SpanOptions | undefined,\n ctx: Context | undefined,\n fn: F\n ): ReturnType;\n startActiveSpan ReturnType>(\n name: string,\n arg2?: F | SpanOptions,\n arg3?: F | Context,\n arg4?: F\n ): ReturnType | undefined {\n let opts: SpanOptions | undefined;\n let ctx: Context | undefined;\n let fn: F;\n\n if (arguments.length < 2) {\n return;\n } else if (arguments.length === 2) {\n fn = arg2 as F;\n } else if (arguments.length === 3) {\n opts = arg2 as SpanOptions | undefined;\n fn = arg3 as F;\n } else {\n opts = arg2 as SpanOptions | undefined;\n ctx = arg3 as Context | undefined;\n fn = arg4 as F;\n }\n\n const parentContext = ctx ?? context.active();\n const span = this.startSpan(name, opts, parentContext);\n const contextWithSpanSet = setSpan(parentContext, span);\n\n return context.with(contextWithSpanSet, fn, undefined, span);\n }\n}\n\nfunction isSpanContext(spanContext: any): spanContext is SpanContext {\n return (\n typeof spanContext === 'object' &&\n typeof spanContext['spanId'] === 'string' &&\n typeof spanContext['traceId'] === 'string' &&\n typeof spanContext['traceFlags'] === 'number'\n );\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from '../context/types';\nimport { NoopTracer } from './NoopTracer';\nimport { Span } from './span';\nimport { SpanOptions } from './SpanOptions';\nimport { Tracer } from './tracer';\nimport { TracerOptions } from './tracer_options';\n\nconst NOOP_TRACER = new NoopTracer();\n\n/**\n * Proxy tracer provided by the proxy tracer provider\n */\nexport class ProxyTracer implements Tracer {\n // When a real implementation is provided, this will be it\n private _delegate?: Tracer;\n\n constructor(\n private _provider: TracerDelegator,\n public readonly name: string,\n public readonly version?: string,\n public readonly options?: TracerOptions\n ) {}\n\n startSpan(name: string, options?: SpanOptions, context?: Context): Span {\n return this._getTracer().startSpan(name, options, context);\n }\n\n startActiveSpan unknown>(\n _name: string,\n _options: F | SpanOptions,\n _context?: F | Context,\n _fn?: F\n ): ReturnType {\n const tracer = this._getTracer();\n return Reflect.apply(tracer.startActiveSpan, tracer, arguments);\n }\n\n /**\n * Try to get a tracer from the proxy tracer provider.\n * If the proxy tracer provider has no delegate, return a noop tracer.\n */\n private _getTracer() {\n if (this._delegate) {\n return this._delegate;\n }\n\n const tracer = this._provider.getDelegateTracer(this.name, this.version, this.options);\n\n if (!tracer) {\n return NOOP_TRACER;\n }\n\n this._delegate = tracer;\n return this._delegate;\n }\n}\n\nexport interface TracerDelegator {\n getDelegateTracer(name: string, version?: string, options?: TracerOptions): Tracer | undefined;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SpanAttributes } from './attributes';\n\n/**\n * A sampling decision that determines how a {@link Span} will be recorded\n * and collected.\n */\nexport enum SamplingDecision {\n /**\n * `Span.isRecording() === false`, span will not be recorded and all events\n * and attributes will be dropped.\n */\n NOT_RECORD,\n /**\n * `Span.isRecording() === true`, but `Sampled` flag in {@link TraceFlags}\n * MUST NOT be set.\n */\n RECORD,\n /**\n * `Span.isRecording() === true` AND `Sampled` flag in {@link TraceFlags}\n * MUST be set.\n */\n RECORD_AND_SAMPLED,\n}\n\n/**\n * A sampling result contains a decision for a {@link Span} and additional\n * attributes the sampler would like to added to the Span.\n */\nexport interface SamplingResult {\n /**\n * A sampling decision, refer to {@link SamplingDecision} for details.\n */\n decision: SamplingDecision;\n /**\n * The list of attributes returned by SamplingResult MUST be immutable.\n * Caller may call {@link Sampler}.shouldSample any number of times and\n * can safely cache the returned value.\n */\n attributes?: Readonly;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport enum SpanKind {\n /** Default value. Indicates that the span is used internally. */\n INTERNAL = 0,\n\n /**\n * Indicates that the span covers server-side handling of an RPC or other\n * remote request.\n */\n SERVER = 1,\n\n /**\n * Indicates that the span covers the client-side wrapper around an RPC or\n * other remote request.\n */\n CLIENT = 2,\n\n /**\n * Indicates that the span describes producer sending a message to a\n * broker. Unlike client and server, there is no direct critical path latency\n * relationship between producer and consumer spans.\n */\n PRODUCER = 3,\n\n /**\n * Indicates that the span describes consumer receiving a message from a\n * broker. Unlike client and server, there is no direct critical path latency\n * relationship between producer and consumer spans.\n */\n CONSUMER = 4,\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport interface SpanStatus {\n /** The status code of this message. */\n code: SpanStatusCode;\n /** A developer-facing error message. */\n message?: string;\n}\n\n/**\n * An enumeration of status codes.\n */\nexport enum SpanStatusCode {\n /**\n * The default status.\n */\n UNSET = 0,\n /**\n * The operation has been validated by an Application developer or\n * Operator to have completed successfully.\n */\n OK = 1,\n /**\n * The operation contains an error.\n */\n ERROR = 2,\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Tracer } from './tracer';\nimport { TracerProvider } from './tracer_provider';\nimport { ProxyTracer } from './ProxyTracer';\nimport { NoopTracerProvider } from './NoopTracerProvider';\nimport { TracerOptions } from './tracer_options';\n\nconst NOOP_TRACER_PROVIDER = new NoopTracerProvider();\n\n/**\n * Tracer provider which provides {@link ProxyTracer}s.\n *\n * Before a delegate is set, tracers provided are NoOp.\n * When a delegate is set, traces are provided from the delegate.\n * When a delegate is set after tracers have already been provided,\n * all tracers already provided will use the provided delegate implementation.\n */\nexport class ProxyTracerProvider implements TracerProvider {\n private _delegate?: TracerProvider;\n\n /**\n * Get a {@link ProxyTracer}\n */\n getTracer(name: string, version?: string, options?: TracerOptions): Tracer {\n return (\n this.getDelegateTracer(name, version, options) ??\n new ProxyTracer(this, name, version, options)\n );\n }\n\n getDelegate(): TracerProvider {\n return this._delegate ?? NOOP_TRACER_PROVIDER;\n }\n\n /**\n * Set the delegate tracer provider\n */\n setDelegate(delegate: TracerProvider) {\n this._delegate = delegate;\n }\n\n getDelegateTracer(\n name: string,\n version?: string,\n options?: TracerOptions\n ): Tracer | undefined {\n return this._delegate?.getTracer(name, version, options);\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { NoopTracer } from './NoopTracer';\nimport { Tracer } from './tracer';\nimport { TracerOptions } from './tracer_options';\nimport { TracerProvider } from './tracer_provider';\n\n/**\n * An implementation of the {@link TracerProvider} which returns an impotent\n * Tracer for all calls to `getTracer`.\n *\n * All operations are no-op.\n */\nexport class NoopTracerProvider implements TracerProvider {\n getTracer(\n _name?: string,\n _version?: string,\n _options?: TracerOptions\n ): Tracer {\n return new NoopTracer();\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst VALID_KEY_CHAR_RANGE = '[_0-9a-z-*/]';\nconst VALID_KEY = `[a-z]${VALID_KEY_CHAR_RANGE}{0,255}`;\nconst VALID_VENDOR_KEY = `[a-z0-9]${VALID_KEY_CHAR_RANGE}{0,240}@[a-z]${VALID_KEY_CHAR_RANGE}{0,13}`;\nconst VALID_KEY_REGEX = new RegExp(`^(?:${VALID_KEY}|${VALID_VENDOR_KEY})$`);\nconst VALID_VALUE_BASE_REGEX = /^[ -~]{0,255}[!-~]$/;\nconst INVALID_VALUE_COMMA_EQUAL_REGEX = /,|=/;\n\n/**\n * Key is opaque string up to 256 characters printable. It MUST begin with a\n * lowercase letter, and can only contain lowercase letters a-z, digits 0-9,\n * underscores _, dashes -, asterisks *, and forward slashes /.\n * For multi-tenant vendor scenarios, an at sign (@) can be used to prefix the\n * vendor name. Vendors SHOULD set the tenant ID at the beginning of the key.\n * see https://www.w3.org/TR/trace-context/#key\n */\nexport function validateKey(key: string): boolean {\n return VALID_KEY_REGEX.test(key);\n}\n\n/**\n * Value is opaque string up to 256 characters printable ASCII RFC0020\n * characters (i.e., the range 0x20 to 0x7E) except comma , and =.\n */\nexport function validateValue(value: string): boolean {\n return (\n VALID_VALUE_BASE_REGEX.test(value) &&\n !INVALID_VALUE_COMMA_EQUAL_REGEX.test(value)\n );\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { TraceState } from '../trace_state';\nimport { validateKey, validateValue } from './tracestate-validators';\n\nconst MAX_TRACE_STATE_ITEMS = 32;\nconst MAX_TRACE_STATE_LEN = 512;\nconst LIST_MEMBERS_SEPARATOR = ',';\nconst LIST_MEMBER_KEY_VALUE_SPLITTER = '=';\n\n/**\n * TraceState must be a class and not a simple object type because of the spec\n * requirement (https://www.w3.org/TR/trace-context/#tracestate-field).\n *\n * Here is the list of allowed mutations:\n * - New key-value pair should be added into the beginning of the list\n * - The value of any key can be updated. Modified keys MUST be moved to the\n * beginning of the list.\n */\nexport class TraceStateImpl implements TraceState {\n private _internalState: Map = new Map();\n\n constructor(rawTraceState?: string) {\n if (rawTraceState) this._parse(rawTraceState);\n }\n\n set(key: string, value: string): TraceStateImpl {\n // TODO: Benchmark the different approaches(map vs list) and\n // use the faster one.\n const traceState = this._clone();\n if (traceState._internalState.has(key)) {\n traceState._internalState.delete(key);\n }\n traceState._internalState.set(key, value);\n return traceState;\n }\n\n unset(key: string): TraceStateImpl {\n const traceState = this._clone();\n traceState._internalState.delete(key);\n return traceState;\n }\n\n get(key: string): string | undefined {\n return this._internalState.get(key);\n }\n\n serialize(): string {\n return this._keys()\n .reduce((agg: string[], key) => {\n agg.push(key + LIST_MEMBER_KEY_VALUE_SPLITTER + this.get(key));\n return agg;\n }, [])\n .join(LIST_MEMBERS_SEPARATOR);\n }\n\n private _parse(rawTraceState: string) {\n if (rawTraceState.length > MAX_TRACE_STATE_LEN) return;\n this._internalState = rawTraceState\n .split(LIST_MEMBERS_SEPARATOR)\n .reverse() // Store in reverse so new keys (.set(...)) will be placed at the beginning\n .reduce((agg: Map, part: string) => {\n const listMember = part.trim(); // Optional Whitespace (OWS) handling\n const i = listMember.indexOf(LIST_MEMBER_KEY_VALUE_SPLITTER);\n if (i !== -1) {\n const key = listMember.slice(0, i);\n const value = listMember.slice(i + 1, part.length);\n if (validateKey(key) && validateValue(value)) {\n agg.set(key, value);\n } else {\n // TODO: Consider to add warning log\n }\n }\n return agg;\n }, new Map());\n\n // Because of the reverse() requirement, trunc must be done after map is created\n if (this._internalState.size > MAX_TRACE_STATE_ITEMS) {\n this._internalState = new Map(\n Array.from(this._internalState.entries())\n .reverse() // Use reverse same as original tracestate parse chain\n .slice(0, MAX_TRACE_STATE_ITEMS)\n );\n }\n }\n\n private _keys(): string[] {\n return Array.from(this._internalState.keys()).reverse();\n }\n\n private _clone(): TraceStateImpl {\n const traceState = new TraceStateImpl();\n traceState._internalState = new Map(this._internalState);\n return traceState;\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n getGlobal,\n registerGlobal,\n unregisterGlobal,\n} from '../internal/global-utils';\nimport { ProxyTracerProvider } from '../trace/ProxyTracerProvider';\nimport {\n isSpanContextValid,\n wrapSpanContext,\n} from '../trace/spancontext-utils';\nimport { Tracer } from '../trace/tracer';\nimport { TracerProvider } from '../trace/tracer_provider';\nimport {\n deleteSpan,\n getSpan,\n getSpanContext,\n setSpan,\n setSpanContext,\n} from '../trace/context-utils';\nimport { DiagAPI } from './diag';\n\nconst API_NAME = 'trace';\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Tracing API\n */\nexport class TraceAPI {\n private static _instance?: TraceAPI;\n\n private _proxyTracerProvider = new ProxyTracerProvider();\n\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n private constructor() {}\n\n /** Get the singleton instance of the Trace API */\n public static getInstance(): TraceAPI {\n if (!this._instance) {\n this._instance = new TraceAPI();\n }\n\n return this._instance;\n }\n\n /**\n * Set the current global tracer.\n *\n * @returns true if the tracer provider was successfully registered, else false\n */\n public setGlobalTracerProvider(provider: TracerProvider): boolean {\n const success = registerGlobal(\n API_NAME,\n this._proxyTracerProvider,\n DiagAPI.instance()\n );\n if (success) {\n this._proxyTracerProvider.setDelegate(provider);\n }\n return success;\n }\n\n /**\n * Returns the global tracer provider.\n */\n public getTracerProvider(): TracerProvider {\n return getGlobal(API_NAME) || this._proxyTracerProvider;\n }\n\n /**\n * Returns a tracer from the global tracer provider.\n */\n public getTracer(name: string, version?: string): Tracer {\n return this.getTracerProvider().getTracer(name, version);\n }\n\n /** Remove the global tracer provider */\n public disable() {\n unregisterGlobal(API_NAME, DiagAPI.instance());\n this._proxyTracerProvider = new ProxyTracerProvider();\n }\n\n public wrapSpanContext = wrapSpanContext;\n\n public isSpanContextValid = isSpanContextValid;\n\n public deleteSpan = deleteSpan;\n\n public getSpan = getSpan;\n\n public getSpanContext = getSpanContext;\n\n public setSpan = setSpan;\n\n public setSpanContext = setSpanContext;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from '../context/types';\nimport { TextMapPropagator } from './TextMapPropagator';\n\n/**\n * No-op implementations of {@link TextMapPropagator}.\n */\nexport class NoopTextMapPropagator implements TextMapPropagator {\n /** Noop inject function does nothing */\n inject(_context: Context, _carrier: unknown): void {}\n /** Noop extract function does nothing and returns the input context */\n extract(context: Context, _carrier: unknown): Context {\n return context;\n }\n fields(): string[] {\n return [];\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createContextKey } from '../context/context';\nimport { Context } from '../context/types';\nimport { Baggage } from './types';\n\n/**\n * Baggage key\n */\nconst BAGGAGE_KEY = createContextKey('OpenTelemetry Baggage Key');\n\n/**\n * Retrieve the current baggage from the given context\n *\n * @param {Context} Context that manage all context values\n * @returns {Baggage} Extracted baggage from the context\n */\nexport function getBaggage(context: Context): Baggage | undefined {\n return (context.getValue(BAGGAGE_KEY) as Baggage) || undefined;\n}\n\n/**\n * Store a baggage in the given context\n *\n * @param {Context} Context that manage all context values\n * @param {Baggage} baggage that will be set in the actual context\n */\nexport function setBaggage(context: Context, baggage: Baggage): Context {\n return context.setValue(BAGGAGE_KEY, baggage);\n}\n\n/**\n * Delete the baggage stored in the given context\n *\n * @param {Context} Context that manage all context values\n */\nexport function deleteBaggage(context: Context): Context {\n return context.deleteValue(BAGGAGE_KEY);\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from '../context/types';\nimport {\n getGlobal,\n registerGlobal,\n unregisterGlobal,\n} from '../internal/global-utils';\nimport { NoopTextMapPropagator } from '../propagation/NoopTextMapPropagator';\nimport {\n defaultTextMapGetter,\n defaultTextMapSetter,\n TextMapGetter,\n TextMapPropagator,\n TextMapSetter,\n} from '../propagation/TextMapPropagator';\nimport {\n getBaggage,\n setBaggage,\n deleteBaggage,\n} from '../baggage/context-helpers';\nimport { createBaggage } from '../baggage/utils';\nimport { DiagAPI } from './diag';\n\nconst API_NAME = 'propagation';\nconst NOOP_TEXT_MAP_PROPAGATOR = new NoopTextMapPropagator();\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Propagation API\n */\nexport class PropagationAPI {\n private static _instance?: PropagationAPI;\n\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n private constructor() {}\n\n /** Get the singleton instance of the Propagator API */\n public static getInstance(): PropagationAPI {\n if (!this._instance) {\n this._instance = new PropagationAPI();\n }\n\n return this._instance;\n }\n\n /**\n * Set the current propagator.\n *\n * @returns true if the propagator was successfully registered, else false\n */\n public setGlobalPropagator(propagator: TextMapPropagator): boolean {\n return registerGlobal(API_NAME, propagator, DiagAPI.instance());\n }\n\n /**\n * Inject context into a carrier to be propagated inter-process\n *\n * @param context Context carrying tracing data to inject\n * @param carrier carrier to inject context into\n * @param setter Function used to set values on the carrier\n */\n public inject(\n context: Context,\n carrier: Carrier,\n setter: TextMapSetter = defaultTextMapSetter\n ): void {\n return this._getGlobalPropagator().inject(context, carrier, setter);\n }\n\n /**\n * Extract context from a carrier\n *\n * @param context Context which the newly created context will inherit from\n * @param carrier Carrier to extract context from\n * @param getter Function used to extract keys from a carrier\n */\n public extract(\n context: Context,\n carrier: Carrier,\n getter: TextMapGetter = defaultTextMapGetter\n ): Context {\n return this._getGlobalPropagator().extract(context, carrier, getter);\n }\n\n /**\n * Return a list of all fields which may be used by the propagator.\n */\n public fields(): string[] {\n return this._getGlobalPropagator().fields();\n }\n\n /** Remove the global propagator */\n public disable() {\n unregisterGlobal(API_NAME, DiagAPI.instance());\n }\n\n public createBaggage = createBaggage;\n\n public getBaggage = getBaggage;\n\n public setBaggage = setBaggage;\n\n public deleteBaggage = deleteBaggage;\n\n private _getGlobalPropagator(): TextMapPropagator {\n return getGlobal(API_NAME) || NOOP_TEXT_MAP_PROPAGATOR;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport * from \"./models\";\nexport * from \"./getPagedAsyncIterator\";\n","import { getVirtualParent } from './getVirtualParent';\n/**\n * Gets the element which is the parent of a given element.\n * If `allowVirtuaParents` is `true`, this method prefers the virtual parent over\n * real DOM parent when present.\n *\n * @public\n */\nexport function getParent(child: HTMLElement, allowVirtualParents: boolean = true): HTMLElement | null {\n return (\n child &&\n ((allowVirtualParents && getVirtualParent(child)) || (child.parentNode && (child.parentNode as HTMLElement)))\n );\n}\n","import { isVirtualElement } from './isVirtualElement';\n/**\n * Gets the virtual parent given the child element, if it exists.\n *\n * @public\n */\nexport function getVirtualParent(child: HTMLElement): HTMLElement | undefined {\n let parent: HTMLElement | undefined;\n if (child && isVirtualElement(child)) {\n parent = child._virtual.parent;\n }\n return parent;\n}\n","import { IVirtualElement } from './IVirtualElement';\n/**\n * Determines whether or not an element has the virtual hierarchy extension.\n *\n * @public\n */\nexport function isVirtualElement(element: HTMLElement | IVirtualElement): element is IVirtualElement {\n return element && !!(element)._virtual;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { AbortError, AbortSignalLike } from \"@azure/abort-controller\";\nimport { isDefined } from \"./typeguards\";\n\nconst StandardAbortMessage = \"The operation was aborted.\";\n\n/**\n * A wrapper for setTimeout that resolves a promise after delayInMs milliseconds.\n * @param delayInMs - The number of milliseconds to be delayed.\n * @param value - The value to be resolved with after a timeout of t milliseconds.\n * @param options - The options for delay - currently abort options\n * @param abortSignal - The abortSignal associated with containing operation.\n * @param abortErrorMsg - The abort error message associated with containing operation.\n * @returns - Resolved promise\n */\nexport function delay(\n delayInMs: number,\n value?: T,\n options?: {\n abortSignal?: AbortSignalLike;\n abortErrorMsg?: string;\n }\n): Promise {\n return new Promise((resolve, reject) => {\n let timer: ReturnType | undefined = undefined;\n let onAborted: (() => void) | undefined = undefined;\n\n const rejectOnAbort = (): void => {\n return reject(\n new AbortError(options?.abortErrorMsg ? options?.abortErrorMsg : StandardAbortMessage)\n );\n };\n\n const removeListeners = (): void => {\n if (options?.abortSignal && onAborted) {\n options.abortSignal.removeEventListener(\"abort\", onAborted);\n }\n };\n\n onAborted = (): void => {\n if (isDefined(timer)) {\n clearTimeout(timer);\n }\n removeListeners();\n return rejectOnAbort();\n };\n\n if (options?.abortSignal && options.abortSignal.aborted) {\n return rejectOnAbort();\n }\n\n timer = setTimeout(() => {\n removeListeners();\n resolve(value);\n }, delayInMs);\n\n if (options?.abortSignal) {\n options.abortSignal.addEventListener(\"abort\", onAborted);\n }\n });\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * Helper TypeGuard that checks if the value is not null or undefined.\n * @param thing - Anything\n * @internal\n */\nexport function isDefined(thing: T | undefined | null): thing is T {\n return typeof thing !== \"undefined\" && thing !== null;\n}\n","import { IStyleOptions } from './IStyleOptions';\n\n/**\n * Sets the current RTL value.\n */\nexport function setRTL(isRTL: boolean): void {\n if (_rtl !== isRTL) {\n _rtl = isRTL;\n }\n}\n\n/**\n * Gets the current RTL value.\n */\nexport function getRTL(): boolean {\n if (_rtl === undefined) {\n _rtl =\n typeof document !== 'undefined' &&\n !!document.documentElement &&\n document.documentElement.getAttribute('dir') === 'rtl';\n }\n return _rtl;\n}\n\n// This has been split into 2 lines because it was working in Fabric due to the code being transpiled to es5, so this\n// was converted to var while not working in Fluent that uses babel to transpile the code to be es6-like. Splitting the\n// logic into two lines, however, allows it to work in both scenarios.\nlet _rtl: boolean;\n_rtl = getRTL();\n\nexport function getStyleOptions(): IStyleOptions {\n return {\n rtl: getRTL(),\n };\n}\n","import * as React from 'react';\n\n/**\n * Hook to initialize and return a constant value. Unlike `React.useMemo`, this is guaranteed to\n * always return the same value (and if the initializer is a function, only call it once).\n * This is similar to setting a private member in a class constructor.\n *\n * If the value should ever change based on dependencies, use `React.useMemo` instead.\n *\n * @param initialValue - Initial value, or function to get the initial value. Similar to `useState`,\n * only the value/function passed in the first time this is called is respected.\n * @returns The value. The identity of this value will always be the same.\n */\nexport function useConst(initialValue: T | (() => T)): T {\n // Use useRef to store the value because it's the least expensive built-in hook that works here\n // (we could also use `const [value] = React.useState(initialValue)` but that's more expensive\n // internally due to reducer handling which we don't need)\n const ref = React.useRef<{ value: T }>();\n if (ref.current === undefined) {\n // Box the value in an object so we can tell if it's initialized even if the initializer\n // returns/is undefined\n ref.current = {\n value: typeof initialValue === 'function' ? (initialValue as Function)() : initialValue,\n };\n }\n return ref.current.value;\n}\n","import { mergeStyleSets } from '../../Styling';\nimport type { IIconStyleProps, IIconStyles } from './Icon.types';\n\n/** Class names used in themeable and non-themeable Icon components */\nexport const classNames = mergeStyleSets({\n root: {\n display: 'inline-block',\n },\n placeholder: [\n 'ms-Icon-placeHolder',\n {\n width: '1em',\n },\n ],\n image: [\n 'ms-Icon-imageContainer',\n {\n overflow: 'hidden',\n },\n ],\n});\n/** Class name used only in non-themeable Icon components */\nexport const MS_ICON = 'ms-Icon';\n\nexport const getStyles = (props: IIconStyleProps): IIconStyles => {\n const { className, iconClassName, isPlaceholder, isImage, styles } = props;\n\n return {\n root: [\n isPlaceholder && classNames.placeholder,\n classNames.root,\n isImage && classNames.image,\n iconClassName,\n className,\n styles && styles.root,\n // eslint-disable-next-line deprecation/deprecation\n styles && styles.imageContainer,\n ],\n };\n};\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * A collection of HttpHeaders that can be sent with a HTTP request.\n */\nfunction getHeaderKey(headerName: string): string {\n return headerName.toLowerCase();\n}\n\n/**\n * An individual header within a HttpHeaders collection.\n */\nexport interface HttpHeader {\n /**\n * The name of the header.\n */\n name: string;\n\n /**\n * The value of the header.\n */\n value: string;\n}\n\n/**\n * A HttpHeaders collection represented as a simple JSON object.\n */\nexport type RawHttpHeaders = { [headerName: string]: string };\n\n/**\n * A collection of HTTP header key/value pairs.\n */\nexport interface HttpHeadersLike {\n /**\n * Set a header in this collection with the provided name and value. The name is\n * case-insensitive.\n * @param headerName - The name of the header to set. This value is case-insensitive.\n * @param headerValue - The value of the header to set.\n */\n set(headerName: string, headerValue: string | number): void;\n /**\n * Get the header value for the provided header name, or undefined if no header exists in this\n * collection with the provided name.\n * @param headerName - The name of the header.\n */\n get(headerName: string): string | undefined;\n /**\n * Get whether or not this header collection contains a header entry for the provided header name.\n */\n contains(headerName: string): boolean;\n /**\n * Remove the header with the provided headerName. Return whether or not the header existed and\n * was removed.\n * @param headerName - The name of the header to remove.\n */\n remove(headerName: string): boolean;\n /**\n * Get the headers that are contained this collection as an object.\n */\n rawHeaders(): RawHttpHeaders;\n /**\n * Get the headers that are contained in this collection as an array.\n */\n headersArray(): HttpHeader[];\n /**\n * Get the header names that are contained in this collection.\n */\n headerNames(): string[];\n /**\n * Get the header values that are contained in this collection.\n */\n headerValues(): string[];\n /**\n * Create a deep clone/copy of this HttpHeaders collection.\n */\n clone(): HttpHeadersLike;\n /**\n * Get the JSON object representation of this HTTP header collection.\n * The result is the same as `rawHeaders()`.\n */\n toJson(options?: { preserveCase?: boolean }): RawHttpHeaders;\n}\n\nexport function isHttpHeadersLike(object?: unknown): object is HttpHeadersLike {\n if (object && typeof object === \"object\") {\n const castObject = object as {\n rawHeaders: unknown;\n clone: unknown;\n get: unknown;\n set: unknown;\n contains: unknown;\n remove: unknown;\n headersArray: unknown;\n headerValues: unknown;\n headerNames: unknown;\n toJson: unknown;\n };\n if (\n typeof castObject.rawHeaders === \"function\" &&\n typeof castObject.clone === \"function\" &&\n typeof castObject.get === \"function\" &&\n typeof castObject.set === \"function\" &&\n typeof castObject.contains === \"function\" &&\n typeof castObject.remove === \"function\" &&\n typeof castObject.headersArray === \"function\" &&\n typeof castObject.headerValues === \"function\" &&\n typeof castObject.headerNames === \"function\" &&\n typeof castObject.toJson === \"function\"\n ) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * A collection of HTTP header key/value pairs.\n */\nexport class HttpHeaders implements HttpHeadersLike {\n private readonly _headersMap: { [headerKey: string]: HttpHeader };\n\n constructor(rawHeaders?: RawHttpHeaders) {\n this._headersMap = {};\n if (rawHeaders) {\n for (const headerName in rawHeaders) {\n this.set(headerName, rawHeaders[headerName]);\n }\n }\n }\n\n /**\n * Set a header in this collection with the provided name and value. The name is\n * case-insensitive.\n * @param headerName - The name of the header to set. This value is case-insensitive.\n * @param headerValue - The value of the header to set.\n */\n public set(headerName: string, headerValue: string | number): void {\n this._headersMap[getHeaderKey(headerName)] = {\n name: headerName,\n value: headerValue.toString(),\n };\n }\n\n /**\n * Get the header value for the provided header name, or undefined if no header exists in this\n * collection with the provided name.\n * @param headerName - The name of the header.\n */\n public get(headerName: string): string | undefined {\n const header: HttpHeader = this._headersMap[getHeaderKey(headerName)];\n return !header ? undefined : header.value;\n }\n\n /**\n * Get whether or not this header collection contains a header entry for the provided header name.\n */\n public contains(headerName: string): boolean {\n return !!this._headersMap[getHeaderKey(headerName)];\n }\n\n /**\n * Remove the header with the provided headerName. Return whether or not the header existed and\n * was removed.\n * @param headerName - The name of the header to remove.\n */\n public remove(headerName: string): boolean {\n const result: boolean = this.contains(headerName);\n delete this._headersMap[getHeaderKey(headerName)];\n return result;\n }\n\n /**\n * Get the headers that are contained this collection as an object.\n */\n public rawHeaders(): RawHttpHeaders {\n return this.toJson({ preserveCase: true });\n }\n\n /**\n * Get the headers that are contained in this collection as an array.\n */\n public headersArray(): HttpHeader[] {\n const headers: HttpHeader[] = [];\n for (const headerKey in this._headersMap) {\n headers.push(this._headersMap[headerKey]);\n }\n return headers;\n }\n\n /**\n * Get the header names that are contained in this collection.\n */\n public headerNames(): string[] {\n const headerNames: string[] = [];\n const headers: HttpHeader[] = this.headersArray();\n for (let i = 0; i < headers.length; ++i) {\n headerNames.push(headers[i].name);\n }\n return headerNames;\n }\n\n /**\n * Get the header values that are contained in this collection.\n */\n public headerValues(): string[] {\n const headerValues: string[] = [];\n const headers: HttpHeader[] = this.headersArray();\n for (let i = 0; i < headers.length; ++i) {\n headerValues.push(headers[i].value);\n }\n return headerValues;\n }\n\n /**\n * Get the JSON object representation of this HTTP header collection.\n */\n public toJson(options: { preserveCase?: boolean } = {}): RawHttpHeaders {\n const result: RawHttpHeaders = {};\n if (options.preserveCase) {\n for (const headerKey in this._headersMap) {\n const header: HttpHeader = this._headersMap[headerKey];\n result[header.name] = header.value;\n }\n } else {\n for (const headerKey in this._headersMap) {\n const header: HttpHeader = this._headersMap[headerKey];\n result[getHeaderKey(header.name)] = header.value;\n }\n }\n return result;\n }\n\n /**\n * Get the string representation of this HTTP header collection.\n */\n public toString(): string {\n return JSON.stringify(this.toJson({ preserveCase: true }));\n }\n\n /**\n * Create a deep clone/copy of this HttpHeaders collection.\n */\n public clone(): HttpHeaders {\n const resultPreservingCasing: RawHttpHeaders = {};\n for (const headerKey in this._headersMap) {\n const header: HttpHeader = this._headersMap[headerKey];\n resultPreservingCasing[header.name] = header.value;\n }\n return new HttpHeaders(resultPreservingCasing);\n }\n}\n","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import * as React from 'react';\nimport type { ITheme, IStyle } from '../../Styling';\nimport type { IRefObject, IStyleFunctionOrObject } from '../../Utilities';\n\n/**\n * {@docCategory Spinner}\n */\nexport interface ISpinner {}\n\n/**\n * Spinner component props.\n * {@docCategory Spinner}\n */\nexport interface ISpinnerProps extends React.HTMLAttributes {\n /**\n * Optional callback to access the ISpinner interface. Use this instead of ref for accessing\n * the public methods and properties of the component.\n */\n componentRef?: IRefObject;\n\n /**\n * @deprecated Use `size` instead. Will be removed at \\>= 2.0.0.\n */\n // eslint-disable-next-line deprecation/deprecation\n type?: SpinnerType;\n\n /**\n * The size of Spinner to render.\n * @defaultvalue SpinnerType.medium\n */\n size?: SpinnerSize;\n\n /**\n * The label to show next to the Spinner. Label updates will be announced to the screen readers.\n * Use ariaLive to control politeness level.\n */\n label?: string;\n\n /**\n * Additional CSS class(es) to apply to the Spinner.\n */\n className?: string;\n\n /**\n * Politeness setting for label update announcement.\n * @defaultvalue polite\n */\n ariaLive?: 'assertive' | 'polite' | 'off';\n\n /**\n * Alternative status label for screen reader\n */\n ariaLabel?: string;\n\n /**\n * Theme (provided through customization.)\n */\n theme?: ITheme;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: IStyleFunctionOrObject;\n\n /**\n * The position of the label in regards of the spinner animation.\n * @defaultvalue SpinnerLabelPosition.bottom\n */\n labelPosition?: SpinnerLabelPosition;\n}\n\n/**\n * Possible variations of the spinner circle size.\n * {@docCategory Spinner}\n */\nexport enum SpinnerSize {\n /**\n * 12px Spinner diameter\n */\n xSmall = 0,\n\n /**\n * 16px Spinner diameter\n */\n small = 1,\n\n /**\n * 20px Spinner diameter\n */\n medium = 2,\n\n /**\n * 28px Spinner diameter\n */\n large = 3,\n}\n\n/**\n * Possible locations of the label in regards to the spinner\n * {@docCategory Spinner}\n */\nexport type SpinnerLabelPosition = 'top' | 'right' | 'bottom' | 'left';\n\n/**\n * @deprecated Use `SpinnerSize` instead. Will be removed at \\>= 2.0.0.\n * {@docCategory Spinner}\n */\nexport enum SpinnerType {\n /**\n * @deprecated Use `SpinnerSize.medium` instead. Will be removed at \\>= 2.0.0.\n */\n normal = 0,\n\n /**\n * @deprecated Use `SpinnerSize.large` instead. Will be removed at \\>= 2.0.0.\n */\n large = 1,\n}\n\n/**\n * The props needed to construct styles.\n * This represents the simplified set of immutable things which control the class names.\n * {@docCategory Spinner}\n */\nexport interface ISpinnerStyleProps {\n /** Theme provided by High-Order Component. */\n theme: ITheme;\n\n /** Size of the spinner animation. */\n size?: SpinnerSize;\n\n /** CSS class name for the component attached to the root stylable area. */\n className?: string;\n\n /** Position of the label in regards to the spinner animation. */\n labelPosition?: SpinnerLabelPosition;\n}\n\n/**\n * Represents the stylable areas of the control.\n * {@docCategory Spinner}\n */\nexport interface ISpinnerStyles {\n /** Styles for the root element. Refers to the wrapper containing both the circle and the label. */\n root?: IStyle;\n\n /** Styles for the spinner circle animation. */\n circle?: IStyle;\n\n /** Styles for the label accompanying the circle. */\n label?: IStyle;\n\n /** Styles for the hidden helper element to aid with screen readers. */\n screenReaderText?: IStyle;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport { AbortSignalLike } from \"@azure/abort-controller\";\nimport {\n generateUuid,\n getDefaultProxySettings,\n HttpRequestBody,\n HttpResponse,\n isNode,\n isTokenCredential,\n TokenCredential,\n TransferProgressEvent,\n URLBuilder,\n} from \"@azure/core-http\";\nimport { PollerLike, PollOperationState } from \"@azure/core-lro\";\nimport { SpanStatusCode } from \"@azure/core-tracing\";\nimport { Readable } from \"stream\";\n\nimport { BlobDownloadResponse } from \"./BlobDownloadResponse\";\nimport { BlobQueryResponse } from \"./BlobQueryResponse\";\nimport { AnonymousCredential } from \"./credentials/AnonymousCredential\";\nimport { StorageSharedKeyCredential } from \"./credentials/StorageSharedKeyCredential\";\nimport { AppendBlob, Blob as StorageBlob, BlockBlob, PageBlob } from \"./generated/src/operations\";\nimport {\n AppendBlobAppendBlockFromUrlResponse,\n AppendBlobAppendBlockResponse,\n AppendBlobCreateResponse,\n BlobAbortCopyFromURLResponse,\n BlobCopyFromURLResponse,\n BlobCreateSnapshotResponse,\n BlobDeleteResponse,\n BlobDownloadOptionalParams,\n BlobDownloadResponseModel,\n BlobGetPropertiesResponseModel,\n BlobGetTagsHeaders,\n BlobSetHTTPHeadersResponse,\n BlobSetMetadataResponse,\n BlobSetTagsResponse,\n BlobSetTierResponse,\n BlobStartCopyFromURLResponse,\n BlobTags,\n BlobUndeleteResponse,\n BlockBlobCommitBlockListResponse,\n BlockBlobGetBlockListResponse,\n BlockBlobStageBlockFromURLResponse,\n BlockBlobStageBlockResponse,\n BlockBlobUploadHeaders,\n BlockBlobUploadResponse,\n BlockListType,\n CpkInfo,\n DeleteSnapshotsOptionType,\n LeaseAccessConditions,\n PageBlobClearPagesResponse,\n PageBlobCopyIncrementalResponse,\n PageBlobCreateResponse,\n PageBlobResizeResponse,\n PageBlobUpdateSequenceNumberResponse,\n PageBlobUploadPagesFromURLResponse,\n PageBlobUploadPagesResponse,\n RehydratePriority,\n SequenceNumberActionType,\n BlockBlobPutBlobFromUrlResponse,\n BlobHTTPHeaders,\n PageBlobGetPageRangesResponseModel,\n PageRangeInfo,\n PageBlobGetPageRangesDiffResponseModel,\n BlobCopySourceTags,\n} from \"./generatedModels\";\nimport {\n AppendBlobRequestConditions,\n BlobDownloadResponseParsed,\n BlobRequestConditions,\n BlockBlobTier,\n ensureCpkIfSpecified,\n Metadata,\n ObjectReplicationPolicy,\n PageBlobRequestConditions,\n PremiumPageBlobTier,\n Tags,\n toAccessTier,\n TagConditions,\n MatchConditions,\n ModificationConditions,\n ModifiedAccessConditions,\n BlobQueryArrowField,\n BlobImmutabilityPolicy,\n HttpAuthorization,\n} from \"./models\";\nimport {\n PageBlobGetPageRangesDiffResponse,\n PageBlobGetPageRangesResponse,\n rangeResponseFromModel,\n} from \"./PageBlobRangeResponse\";\nimport { newPipeline, PipelineLike, isPipelineLike, StoragePipelineOptions } from \"./Pipeline\";\nimport {\n BlobBeginCopyFromUrlPoller,\n BlobBeginCopyFromUrlPollState,\n CopyPollerBlobClient,\n} from \"./pollers/BlobStartCopyFromUrlPoller\";\nimport { Range, rangeToString } from \"./Range\";\nimport { CommonOptions, StorageClient } from \"./StorageClient\";\nimport { Batch } from \"./utils/Batch\";\nimport { BufferScheduler } from \"../../storage-common/src\";\nimport {\n BlobDoesNotUseCustomerSpecifiedEncryption,\n BlobUsesCustomerSpecifiedEncryptionMsg,\n BLOCK_BLOB_MAX_BLOCKS,\n BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES,\n BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES,\n DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES,\n DEFAULT_BLOCK_BUFFER_SIZE_BYTES,\n DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS,\n ETagAny,\n URLConstants,\n} from \"./utils/constants\";\nimport { createSpan, convertTracingToRequestOptionsBase } from \"./utils/tracing\";\nimport {\n appendToURLPath,\n appendToURLQuery,\n extractConnectionStringParts,\n ExtractPageRangeInfoItems,\n generateBlockID,\n getURLParameter,\n httpAuthorizationToString,\n isIpEndpointStyle,\n parseObjectReplicationRecord,\n setURLParameter,\n toBlobTags,\n toBlobTagsString,\n toQuerySerialization,\n toTags,\n} from \"./utils/utils.common\";\nimport {\n fsCreateReadStream,\n fsStat,\n readStreamToLocalFile,\n streamToBuffer,\n} from \"./utils/utils.node\";\nimport { SASProtocol } from \"./sas/SASQueryParameters\";\nimport { SasIPRange } from \"./sas/SasIPRange\";\nimport { generateBlobSASQueryParameters } from \"./sas/BlobSASSignatureValues\";\nimport { BlobSASPermissions } from \"./sas/BlobSASPermissions\";\nimport { BlobLeaseClient } from \"./BlobLeaseClient\";\nimport {\n BlobDeleteImmutabilityPolicyResponse,\n BlobSetImmutabilityPolicyResponse,\n BlobSetLegalHoldResponse,\n} from \"./generatedModels\";\nimport { PagedAsyncIterableIterator, PageSettings } from \"@azure/core-paging\";\n\n/**\n * Options to configure the {@link BlobClient.beginCopyFromURL} operation.\n */\nexport interface BlobBeginCopyFromURLOptions extends BlobStartCopyFromURLOptions {\n /**\n * The amount of time in milliseconds the poller should wait between\n * calls to the service to determine the status of the Blob copy.\n * Defaults to 15 seconds.\n */\n intervalInMs?: number;\n /**\n * Callback to receive the state of the copy progress.\n */\n onProgress?: (state: BlobBeginCopyFromUrlPollState) => void;\n /**\n * Serialized poller state that can be used to resume polling from.\n * This may be useful when starting a copy on one process or thread\n * and you wish to continue polling on another process or thread.\n *\n * To get serialized poller state, call `poller.toString()` on an existing\n * poller.\n */\n resumeFrom?: string;\n}\n\n/**\n * Contains response data for the {@link BlobClient.beginCopyFromURL} operation.\n */\nexport interface BlobBeginCopyFromURLResponse extends BlobStartCopyFromURLResponse {}\n\n/**\n * Options to configure the {@link BlobClient.download} operation.\n */\nexport interface BlobDownloadOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * An opaque DateTime string value that, when present, specifies the blob snapshot to retrieve.\n */\n snapshot?: string;\n /**\n * When this is set to true and download range of blob, the service returns the MD5 hash for the range,\n * as long as the range is less than or equal to 4 MB in size.\n *\n * rangeGetContentCrc64 and rangeGetContentMD5 cannot be set at same time.\n */\n rangeGetContentMD5?: boolean;\n /**\n * When this is set to true and download range of blob, the service returns the CRC64 hash for the range,\n * as long as the range is less than or equal to 4 MB in size.\n *\n * rangeGetContentCrc64 and rangeGetContentMD5 cannot be set at same time.\n */\n rangeGetContentCrc64?: boolean;\n /**\n * Conditions to meet when downloading blobs.\n */\n conditions?: BlobRequestConditions;\n /**\n * Call back to receive events on the progress of download operation.\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n\n /**\n * Optional. ONLY AVAILABLE IN NODE.JS.\n *\n * How many retries will perform when original body download stream unexpected ends.\n * Above kind of ends will not trigger retry policy defined in a pipeline,\n * because they doesn't emit network errors.\n *\n * With this option, every additional retry means an additional `FileClient.download()` request will be made\n * from the broken point, until the requested range has been successfully downloaded or maxRetryRequests is reached.\n *\n * Default value is 5, please set a larger value when loading large files in poor network.\n */\n maxRetryRequests?: number;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n}\n\n/**\n * Options to configure the {@link BlobClient.exists} operation.\n */\nexport interface BlobExistsOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Conditions to meet.\n */\n conditions?: BlobRequestConditions;\n}\n\n/**\n * Options to configure the {@link BlobClient.getProperties} operation.\n */\nexport interface BlobGetPropertiesOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when getting blob properties.\n */\n conditions?: BlobRequestConditions;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n}\n\n/**\n * Options to configure the {@link BlobClient.delete} operation.\n */\nexport interface BlobDeleteOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when deleting blobs.\n */\n conditions?: BlobRequestConditions;\n /**\n * Specifies options to delete blobs that have associated snapshots.\n * - `include`: Delete the base blob and all of its snapshots.\n * - `only`: Delete only the blob's snapshots and not the blob itself.\n */\n deleteSnapshots?: DeleteSnapshotsOptionType;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n}\n\n/**\n * Options to configure the {@link BlobClient.undelete} operation.\n */\nexport interface BlobUndeleteOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n}\n\n/**\n * Options to configure the {@link BlobClient.setHTTPHeaders} operation.\n */\nexport interface BlobSetHTTPHeadersOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when setting blob HTTP headers.\n */\n conditions?: BlobRequestConditions;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n}\n\n/**\n * Options to configure the {@link BlobClient.setMetadata} operation.\n */\nexport interface BlobSetMetadataOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when setting blob metadata.\n */\n conditions?: BlobRequestConditions;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n}\n\n/**\n * Options to configure the {@link BlobClient.setTags} operation.\n */\nexport interface BlobSetTagsOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet for the blob to perform this operation.\n */\n conditions?: TagConditions & LeaseAccessConditions;\n}\n\n/**\n * Options to configure the {@link BlobClient.getTags} operation.\n */\nexport interface BlobGetTagsOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet for the blob to perform this operation.\n */\n conditions?: TagConditions & LeaseAccessConditions;\n}\n\n/**\n * Contains response data for the {@link BlobClient.getTags} operation.\n */\nexport type BlobGetTagsResponse = { tags: Tags } & BlobGetTagsHeaders & {\n /**\n * The underlying HTTP response.\n */\n _response: HttpResponse & {\n /**\n * The parsed HTTP response headers.\n */\n parsedHeaders: BlobGetTagsHeaders;\n\n /**\n * The response body as text (string format)\n */\n bodyAsText: string;\n\n /**\n * The response body as parsed JSON or XML\n */\n parsedBody: BlobTags;\n };\n };\n\n/**\n * Options to configure Blob - Acquire Lease operation.\n */\nexport interface BlobAcquireLeaseOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when acquiring the lease of a blob.\n */\n conditions?: ModifiedAccessConditions;\n}\n\n/**\n * Options to configure Blob - Release Lease operation.\n */\nexport interface BlobReleaseLeaseOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when releasing the lease of a blob.\n */\n conditions?: ModifiedAccessConditions;\n}\n\n/**\n * Options to configure Blob - Renew Lease operation.\n */\nexport interface BlobRenewLeaseOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when renewing the lease of a blob.\n */\n conditions?: ModifiedAccessConditions;\n}\n\n/**\n * Options to configure Blob - Change Lease operation.\n */\nexport interface BlobChangeLeaseOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when changing the lease of a blob.\n */\n conditions?: ModifiedAccessConditions;\n}\n\n/**\n * Options to configure Blob - Break Lease operation.\n */\nexport interface BlobBreakLeaseOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when breaking the lease of a blob.\n */\n conditions?: ModifiedAccessConditions;\n}\n\n/**\n * Options to configure the {@link BlobClient.createSnapshot} operation.\n */\nexport interface BlobCreateSnapshotOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * A collection of key-value string pair to associate with the snapshot.\n */\n metadata?: Metadata;\n /**\n * Conditions to meet when creating blob snapshots.\n */\n conditions?: BlobRequestConditions;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n}\n\n/**\n * Options to configure the {@link BlobClient.beginCopyFromURL} operation.\n */\nexport interface BlobStartCopyFromURLOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * A collection of key-value string pair to associate with the blob that are being copied.\n */\n metadata?: Metadata;\n /**\n * Conditions to meet for the destination blob when copying from a URL to the blob.\n */\n conditions?: BlobRequestConditions;\n /**\n * Conditions to meet for the source Azure Blob/File when copying from a URL to the blob.\n */\n sourceConditions?: ModifiedAccessConditions;\n /**\n * Access tier.\n * More Details - https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers\n */\n tier?: BlockBlobTier | PremiumPageBlobTier | string;\n /**\n * Rehydrate Priority - possible values include 'High', 'Standard'.\n * More Details - https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-rehydration#rehydrate-an-archived-blob-to-an-online-tier\n */\n rehydratePriority?: RehydratePriority;\n /**\n * Optional. Specifies immutability policy for a blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n immutabilityPolicy?: BlobImmutabilityPolicy;\n /**\n * Optional. Indicates if a legal hold should be placed on the blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n legalHold?: boolean;\n /**\n * Blob tags.\n */\n tags?: Tags;\n /**\n * Overrides the sealed state of the destination blob. Default true.\n */\n sealBlob?: boolean;\n}\n\n/**\n * Options to configure the {@link BlobClient.abortCopyFromURL} operation.\n */\nexport interface BlobAbortCopyFromURLOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * If specified, contains the lease id that must be matched and lease with this id\n * must be active in order for the operation to succeed.\n */\n conditions?: LeaseAccessConditions;\n}\n\n/**\n * Options to configure the {@link BlobClient.syncCopyFromURL} operation.\n */\nexport interface BlobSyncCopyFromURLOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * A collection of key-value string pair to associate with the snapshot.\n */\n metadata?: Metadata;\n /**\n * Conditions to meet for the destination blob when copying from a URL to the blob.\n */\n conditions?: BlobRequestConditions;\n /**\n * Conditions to meet for the source Azure Blob/File when copying from a URL to the blob.\n */\n sourceConditions?: MatchConditions & ModificationConditions;\n /**\n * Specify the md5 calculated for the range of bytes that must be read from the copy source.\n */\n sourceContentMD5?: Uint8Array;\n /**\n * Optional. Specifies immutability policy for a blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n immutabilityPolicy?: BlobImmutabilityPolicy;\n /**\n * Optional. Indicates if a legal hold should be placed on the blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n legalHold?: boolean;\n /**\n * Blob tags.\n */\n tags?: Tags;\n /**\n * Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source.\n */\n sourceAuthorization?: HttpAuthorization;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to encrypt the data provided in the request. If not specified, encryption is performed with the default account encryption scope. For more information, see Encryption at Rest for Azure Storage Services.\n */\n encryptionScope?: string;\n /**\n * Optional. Default 'REPLACE'. Indicates if source tags should be copied or replaced with the tags specified by {@link tags}.\n */\n copySourceTags?: BlobCopySourceTags;\n}\n\n/**\n * Options to configure the {@link BlobClient.setAccessTier} operation.\n */\nexport interface BlobSetTierOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * If specified, contains the lease id that must be matched and lease with this id\n * must be active in order for the operation to succeed.\n */\n conditions?: LeaseAccessConditions & TagConditions;\n /**\n * Rehydrate Priority - possible values include 'High', 'Standard'.\n * More Details - https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-rehydration#rehydrate-an-archived-blob-to-an-online-tier\n */\n rehydratePriority?: RehydratePriority;\n}\n\n/**\n * Option interface for the {@link BlobClient.downloadToBuffer} operation.\n */\nexport interface BlobDownloadToBufferOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n\n /**\n * blockSize is the data every request trying to download.\n * Must be greater than or equal to 0.\n * If set to 0 or undefined, blockSize will automatically calculated according to the blob size.\n */\n blockSize?: number;\n\n /**\n * Optional. ONLY AVAILABLE IN NODE.JS.\n *\n * How many retries will perform when original block download stream unexpected ends.\n * Above kind of ends will not trigger retry policy defined in a pipeline,\n * because they doesn't emit network errors.\n *\n * With this option, every additional retry means an additional FileClient.download() request will be made\n * from the broken point, until the requested block has been successfully downloaded or\n * maxRetryRequestsPerBlock is reached.\n *\n * Default value is 5, please set a larger value when in poor network.\n */\n maxRetryRequestsPerBlock?: number;\n\n /**\n * Progress updater.\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n\n /**\n * Access conditions headers.\n */\n conditions?: BlobRequestConditions;\n\n /**\n * Concurrency of parallel download.\n */\n concurrency?: number;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n}\n\n/**\n * Contains response data for the {@link BlobClient.deleteIfExists} operation.\n */\nexport interface BlobDeleteIfExistsResponse extends BlobDeleteResponse {\n /**\n * Indicate whether the blob is successfully deleted. Is false if the blob does not exist in the first place.\n */\n succeeded: boolean;\n}\n\n/**\n * Contains response data for the {@link BlobClient.getProperties} operation.\n */\nexport interface BlobGetPropertiesResponse extends BlobGetPropertiesResponseModel {\n /**\n * Parsed Object Replication Policy Id, Rule Id(s) and status of the source blob.\n */\n objectReplicationSourceProperties?: ObjectReplicationPolicy[];\n\n /**\n * Object Replication Policy Id of the destination blob.\n */\n objectReplicationDestinationPolicyId?: string;\n}\n\n/**\n * Common options of {@link BlobGenerateSasUrlOptions} and {@link ContainerGenerateSasUrlOptions}.\n */\nexport interface CommonGenerateSasUrlOptions {\n /**\n * The version of the service this SAS will target. If not specified, it will default to the version targeted by the\n * library.\n */\n version?: string;\n\n /**\n * Optional. SAS protocols, HTTPS only or HTTPSandHTTP\n */\n protocol?: SASProtocol;\n\n /**\n * Optional. When the SAS will take effect.\n */\n startsOn?: Date;\n\n /**\n * Optional only when identifier is provided. The time after which the SAS will no longer work.\n */\n expiresOn?: Date;\n\n /**\n * Optional. IP ranges allowed in this SAS.\n */\n ipRange?: SasIPRange;\n\n /**\n * Optional. The name of the access policy on the container this SAS references if any.\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/establishing-a-stored-access-policy\n */\n identifier?: string;\n\n /**\n * Optional. Encryption scope to use when sending requests authorized with this SAS URI.\n */\n encryptionScope?: string;\n\n /**\n * Optional. The cache-control header for the SAS.\n */\n cacheControl?: string;\n\n /**\n * Optional. The content-disposition header for the SAS.\n */\n contentDisposition?: string;\n\n /**\n * Optional. The content-encoding header for the SAS.\n */\n contentEncoding?: string;\n\n /**\n * Optional. The content-language header for the SAS.\n */\n contentLanguage?: string;\n\n /**\n * Optional. The content-type header for the SAS.\n */\n contentType?: string;\n}\n\n/**\n * Options to configure {@link BlobClient.generateSasUrl} operation.\n */\nexport interface BlobGenerateSasUrlOptions extends CommonGenerateSasUrlOptions {\n /**\n * Optional only when identifier is provided. Specifies the list of permissions to be associated with the SAS.\n */\n permissions?: BlobSASPermissions;\n}\n\n/**\n * Options for deleting immutability policy {@link BlobClient.deleteImmutabilityPolicy} operation.\n */\nexport interface BlobDeleteImmutabilityPolicyOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Options for setting immutability policy {@link BlobClient.setImmutabilityPolicy} operation.\n */\nexport interface BlobSetImmutabilityPolicyOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n modifiedAccessCondition?: ModificationConditions;\n}\n\n/**\n * Options for setting legal hold {@link BlobClient.setLegalHold} operation.\n */\nexport interface BlobSetLegalHoldOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * A BlobClient represents a URL to an Azure Storage blob; the blob may be a block blob,\n * append blob, or page blob.\n */\nexport class BlobClient extends StorageClient {\n /**\n * blobContext provided by protocol layer.\n */\n private blobContext: StorageBlob;\n\n private _name: string;\n private _containerName: string;\n\n private _versionId?: string;\n private _snapshot?: string;\n\n /**\n * The name of the blob.\n */\n public get name(): string {\n return this._name;\n }\n\n /**\n * The name of the storage container the blob is associated with.\n */\n public get containerName(): string {\n return this._containerName;\n }\n\n /**\n *\n * Creates an instance of BlobClient from connection string.\n *\n * @param connectionString - Account connection string or a SAS connection string of an Azure storage account.\n * [ Note - Account connection string can only be used in NODE.JS runtime. ]\n * Account connection string example -\n * `DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=accountKey;EndpointSuffix=core.windows.net`\n * SAS connection string example -\n * `BlobEndpoint=https://myaccount.blob.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString`\n * @param containerName - Container name.\n * @param blobName - Blob name.\n * @param options - Optional. Options to configure the HTTP pipeline.\n */\n constructor(\n connectionString: string,\n containerName: string,\n blobName: string,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions\n );\n /**\n * Creates an instance of BlobClient.\n * This method accepts an encoded URL or non-encoded URL pointing to a blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * If a blob name includes ? or %, blob name must be encoded in the URL.\n *\n * @param url - A Client string pointing to Azure Storage blob service, such as\n * \"https://myaccount.blob.core.windows.net\". You can append a SAS\n * if using AnonymousCredential, such as \"https://myaccount.blob.core.windows.net?sasString\".\n * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param options - Optional. Options to configure the HTTP pipeline.\n */\n constructor(\n url: string,\n credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions\n );\n /**\n * Creates an instance of BlobClient.\n * This method accepts an encoded URL or non-encoded URL pointing to a blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * If a blob name includes ? or %, blob name must be encoded in the URL.\n *\n * @param url - A URL string pointing to Azure Storage blob, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/blob\".\n * You can append a SAS if using AnonymousCredential, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/blob?sasString\".\n * This method accepts an encoded URL or non-encoded URL pointing to a blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * However, if a blob name includes ? or %, blob name must be encoded in the URL.\n * Such as a blob named \"my?blob%\", the URL should be \"https://myaccount.blob.core.windows.net/mycontainer/my%3Fblob%25\".\n * @param pipeline - Call newPipeline() to create a default\n * pipeline, or provide a customized pipeline.\n */\n constructor(url: string, pipeline: PipelineLike);\n constructor(\n urlOrConnectionString: string,\n credentialOrPipelineOrContainerName?:\n | string\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | PipelineLike,\n blobNameOrOptions?: string | StoragePipelineOptions,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions\n ) {\n options = options || {};\n let pipeline: PipelineLike;\n let url: string;\n if (isPipelineLike(credentialOrPipelineOrContainerName)) {\n // (url: string, pipeline: Pipeline)\n url = urlOrConnectionString;\n pipeline = credentialOrPipelineOrContainerName;\n } else if (\n (isNode && credentialOrPipelineOrContainerName instanceof StorageSharedKeyCredential) ||\n credentialOrPipelineOrContainerName instanceof AnonymousCredential ||\n isTokenCredential(credentialOrPipelineOrContainerName)\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)\n url = urlOrConnectionString;\n options = blobNameOrOptions as StoragePipelineOptions;\n pipeline = newPipeline(credentialOrPipelineOrContainerName, options);\n } else if (\n !credentialOrPipelineOrContainerName &&\n typeof credentialOrPipelineOrContainerName !== \"string\"\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)\n // The second parameter is undefined. Use anonymous credential.\n url = urlOrConnectionString;\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else if (\n credentialOrPipelineOrContainerName &&\n typeof credentialOrPipelineOrContainerName === \"string\" &&\n blobNameOrOptions &&\n typeof blobNameOrOptions === \"string\"\n ) {\n // (connectionString: string, containerName: string, blobName: string, options?: StoragePipelineOptions)\n const containerName = credentialOrPipelineOrContainerName;\n const blobName = blobNameOrOptions;\n\n const extractedCreds = extractConnectionStringParts(urlOrConnectionString);\n if (extractedCreds.kind === \"AccountConnString\") {\n if (isNode) {\n const sharedKeyCredential = new StorageSharedKeyCredential(\n extractedCreds.accountName!,\n extractedCreds.accountKey\n );\n url = appendToURLPath(\n appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)),\n encodeURIComponent(blobName)\n );\n\n if (!options.proxyOptions) {\n options.proxyOptions = getDefaultProxySettings(extractedCreds.proxyUri);\n }\n\n pipeline = newPipeline(sharedKeyCredential, options);\n } else {\n throw new Error(\"Account connection string is only supported in Node.js environment\");\n }\n } else if (extractedCreds.kind === \"SASConnString\") {\n url =\n appendToURLPath(\n appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)),\n encodeURIComponent(blobName)\n ) +\n \"?\" +\n extractedCreds.accountSas;\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else {\n throw new Error(\n \"Connection string must be either an Account connection string or a SAS connection string\"\n );\n }\n } else {\n throw new Error(\"Expecting non-empty strings for containerName and blobName parameters\");\n }\n\n super(url, pipeline);\n ({ blobName: this._name, containerName: this._containerName } =\n this.getBlobAndContainerNamesFromUrl());\n this.blobContext = new StorageBlob(this.storageClientContext);\n\n this._snapshot = getURLParameter(this.url, URLConstants.Parameters.SNAPSHOT) as string;\n this._versionId = getURLParameter(this.url, URLConstants.Parameters.VERSIONID) as string;\n }\n\n /**\n * Creates a new BlobClient object identical to the source but with the specified snapshot timestamp.\n * Provide \"\" will remove the snapshot and return a Client to the base blob.\n *\n * @param snapshot - The snapshot timestamp.\n * @returns A new BlobClient object identical to the source but with the specified snapshot timestamp\n */\n public withSnapshot(snapshot: string): BlobClient {\n return new BlobClient(\n setURLParameter(\n this.url,\n URLConstants.Parameters.SNAPSHOT,\n snapshot.length === 0 ? undefined : snapshot\n ),\n this.pipeline\n );\n }\n\n /**\n * Creates a new BlobClient object pointing to a version of this blob.\n * Provide \"\" will remove the versionId and return a Client to the base blob.\n *\n * @param versionId - The versionId.\n * @returns A new BlobClient object pointing to the version of this blob.\n */\n public withVersion(versionId: string): BlobClient {\n return new BlobClient(\n setURLParameter(\n this.url,\n URLConstants.Parameters.VERSIONID,\n versionId.length === 0 ? undefined : versionId\n ),\n this.pipeline\n );\n }\n\n /**\n * Creates a AppendBlobClient object.\n *\n */\n public getAppendBlobClient(): AppendBlobClient {\n return new AppendBlobClient(this.url, this.pipeline);\n }\n\n /**\n * Creates a BlockBlobClient object.\n *\n */\n public getBlockBlobClient(): BlockBlobClient {\n return new BlockBlobClient(this.url, this.pipeline);\n }\n\n /**\n * Creates a PageBlobClient object.\n *\n */\n public getPageBlobClient(): PageBlobClient {\n return new PageBlobClient(this.url, this.pipeline);\n }\n\n /**\n * Reads or downloads a blob from the system, including its metadata and properties.\n * You can also call Get Blob to read a snapshot.\n *\n * * In Node.js, data returns in a Readable stream readableStreamBody\n * * In browsers, data returns in a promise blobBody\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob\n *\n * @param offset - From which position of the blob to download, greater than or equal to 0\n * @param count - How much data to be downloaded, greater than 0. Will download to the end when undefined\n * @param options - Optional options to Blob Download operation.\n *\n *\n * Example usage (Node.js):\n *\n * ```js\n * // Download and convert a blob to a string\n * const downloadBlockBlobResponse = await blobClient.download();\n * const downloaded = await streamToBuffer(downloadBlockBlobResponse.readableStreamBody);\n * console.log(\"Downloaded blob content:\", downloaded.toString());\n *\n * async function streamToBuffer(readableStream) {\n * return new Promise((resolve, reject) => {\n * const chunks = [];\n * readableStream.on(\"data\", (data) => {\n * chunks.push(data instanceof Buffer ? data : Buffer.from(data));\n * });\n * readableStream.on(\"end\", () => {\n * resolve(Buffer.concat(chunks));\n * });\n * readableStream.on(\"error\", reject);\n * });\n * }\n * ```\n *\n * Example usage (browser):\n *\n * ```js\n * // Download and convert a blob to a string\n * const downloadBlockBlobResponse = await blobClient.download();\n * const downloaded = await blobToString(await downloadBlockBlobResponse.blobBody);\n * console.log(\n * \"Downloaded blob content\",\n * downloaded\n * );\n *\n * async function blobToString(blob: Blob): Promise {\n * const fileReader = new FileReader();\n * return new Promise((resolve, reject) => {\n * fileReader.onloadend = (ev: any) => {\n * resolve(ev.target!.result);\n * };\n * fileReader.onerror = reject;\n * fileReader.readAsText(blob);\n * });\n * }\n * ```\n */\n public async download(\n offset: number = 0,\n count?: number,\n options: BlobDownloadOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n options.conditions = options.conditions || {};\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n\n const { span, updatedOptions } = createSpan(\"BlobClient-download\", options);\n\n try {\n const res = await this.blobContext.download({\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n requestOptions: {\n onDownloadProgress: isNode ? undefined : options.onProgress, // for Node.js, progress is reported by RetriableReadableStream\n },\n range: offset === 0 && !count ? undefined : rangeToString({ offset, count }),\n rangeGetContentMD5: options.rangeGetContentMD5,\n rangeGetContentCRC64: options.rangeGetContentCrc64,\n snapshot: options.snapshot,\n cpkInfo: options.customerProvidedKey,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n\n const wrappedRes = {\n ...res,\n _response: res._response, // _response is made non-enumerable\n objectReplicationDestinationPolicyId: res.objectReplicationPolicyId,\n objectReplicationSourceProperties: parseObjectReplicationRecord(res.objectReplicationRules),\n };\n // Return browser response immediately\n if (!isNode) {\n return wrappedRes;\n }\n\n // We support retrying when download stream unexpected ends in Node.js runtime\n // Following code shouldn't be bundled into browser build, however some\n // bundlers may try to bundle following code and \"FileReadResponse.ts\".\n // In this case, \"FileDownloadResponse.browser.ts\" will be used as a shim of \"FileDownloadResponse.ts\"\n // The config is in package.json \"browser\" field\n if (options.maxRetryRequests === undefined || options.maxRetryRequests < 0) {\n // TODO: Default value or make it a required parameter?\n options.maxRetryRequests = DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS;\n }\n\n if (res.contentLength === undefined) {\n throw new RangeError(`File download response doesn't contain valid content length header`);\n }\n\n if (!res.etag) {\n throw new RangeError(`File download response doesn't contain valid etag header`);\n }\n\n return new BlobDownloadResponse(\n wrappedRes,\n async (start: number): Promise => {\n const updatedDownloadOptions: BlobDownloadOptionalParams = {\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ifMatch: options.conditions!.ifMatch || res.etag,\n ifModifiedSince: options.conditions!.ifModifiedSince,\n ifNoneMatch: options.conditions!.ifNoneMatch,\n ifUnmodifiedSince: options.conditions!.ifUnmodifiedSince,\n ifTags: options.conditions?.tagConditions,\n },\n range: rangeToString({\n count: offset + res.contentLength! - start,\n offset: start,\n }),\n rangeGetContentMD5: options.rangeGetContentMD5,\n rangeGetContentCRC64: options.rangeGetContentCrc64,\n snapshot: options.snapshot,\n cpkInfo: options.customerProvidedKey,\n };\n\n // Debug purpose only\n // console.log(\n // `Read from internal stream, range: ${\n // updatedOptions.range\n // }, options: ${JSON.stringify(updatedOptions)}`\n // );\n\n return (\n await this.blobContext.download({\n abortSignal: options.abortSignal,\n ...updatedDownloadOptions,\n })\n ).readableStreamBody!;\n },\n offset,\n res.contentLength!,\n {\n maxRetryRequests: options.maxRetryRequests,\n onProgress: options.onProgress,\n }\n );\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Returns true if the Azure blob resource represented by this client exists; false otherwise.\n *\n * NOTE: use this function with care since an existing blob might be deleted by other clients or\n * applications. Vice versa new blobs might be added by other clients or applications after this\n * function completes.\n *\n * @param options - options to Exists operation.\n */\n public async exists(options: BlobExistsOptions = {}): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-exists\", options);\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n await this.getProperties({\n abortSignal: options.abortSignal,\n customerProvidedKey: options.customerProvidedKey,\n conditions: options.conditions,\n tracingOptions: updatedOptions.tracingOptions,\n });\n return true;\n } catch (e: any) {\n if (e.statusCode === 404) {\n // Expected exception when checking blob existence\n return false;\n } else if (\n e.statusCode === 409 &&\n (e.details.errorCode === BlobUsesCustomerSpecifiedEncryptionMsg ||\n e.details.errorCode === BlobDoesNotUseCustomerSpecifiedEncryption)\n ) {\n // Expected exception when checking blob existence\n return true;\n }\n\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Returns all user-defined metadata, standard HTTP properties, and system properties\n * for the blob. It does not return the content of the blob.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob-properties\n *\n * WARNING: The `metadata` object returned in the response will have its keys in lowercase, even if\n * they originally contained uppercase characters. This differs from the metadata keys returned by\n * the methods of {@link ContainerClient} that list blobs using the `includeMetadata` option, which\n * will retain their original casing.\n *\n * @param options - Optional options to Get Properties operation.\n */\n public async getProperties(\n options: BlobGetPropertiesOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-getProperties\", options);\n try {\n options.conditions = options.conditions || {};\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n const res = await this.blobContext.getProperties({\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n cpkInfo: options.customerProvidedKey,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n\n return {\n ...res,\n _response: res._response, // _response is made non-enumerable\n objectReplicationDestinationPolicyId: res.objectReplicationPolicyId,\n objectReplicationSourceProperties: parseObjectReplicationRecord(res.objectReplicationRules),\n };\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Marks the specified blob or snapshot for deletion. The blob is later deleted\n * during garbage collection. Note that in order to delete a blob, you must delete\n * all of its snapshots. You can delete both at the same time with the Delete\n * Blob operation.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/delete-blob\n *\n * @param options - Optional options to Blob Delete operation.\n */\n public async delete(options: BlobDeleteOptions = {}): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-delete\", options);\n options.conditions = options.conditions || {};\n try {\n return await this.blobContext.delete({\n abortSignal: options.abortSignal,\n deleteSnapshots: options.deleteSnapshots,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Marks the specified blob or snapshot for deletion if it exists. The blob is later deleted\n * during garbage collection. Note that in order to delete a blob, you must delete\n * all of its snapshots. You can delete both at the same time with the Delete\n * Blob operation.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/delete-blob\n *\n * @param options - Optional options to Blob Delete operation.\n */\n public async deleteIfExists(\n options: BlobDeleteOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-deleteIfExists\", options);\n try {\n const res = await this.delete(updatedOptions);\n return {\n succeeded: true,\n ...res,\n _response: res._response, // _response is made non-enumerable\n };\n } catch (e: any) {\n if (e.details?.errorCode === \"BlobNotFound\") {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: \"Expected exception when deleting a blob or snapshot only if it exists.\",\n });\n return {\n succeeded: false,\n ...e.response?.parsedHeaders,\n _response: e.response,\n };\n }\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Restores the contents and metadata of soft deleted blob and any associated\n * soft deleted snapshots. Undelete Blob is supported only on version 2017-07-29\n * or later.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/undelete-blob\n *\n * @param options - Optional options to Blob Undelete operation.\n */\n public async undelete(options: BlobUndeleteOptions = {}): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-undelete\", options);\n try {\n return await this.blobContext.undelete({\n abortSignal: options.abortSignal,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Sets system properties on the blob.\n *\n * If no value provided, or no value provided for the specified blob HTTP headers,\n * these blob HTTP headers without a value will be cleared.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-properties\n *\n * @param blobHTTPHeaders - If no value provided, or no value provided for\n * the specified blob HTTP headers, these blob HTTP\n * headers without a value will be cleared.\n * A common header to set is `blobContentType`\n * enabling the browser to provide functionality\n * based on file type.\n * @param options - Optional options to Blob Set HTTP Headers operation.\n */\n public async setHTTPHeaders(\n blobHTTPHeaders?: BlobHTTPHeaders,\n options: BlobSetHTTPHeadersOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-setHTTPHeaders\", options);\n options.conditions = options.conditions || {};\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.blobContext.setHttpHeaders({\n abortSignal: options.abortSignal,\n blobHttpHeaders: blobHTTPHeaders,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n // cpkInfo: options.customerProvidedKey, // CPK is not included in Swagger, should change this back when this issue is fixed in Swagger.\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Sets user-defined metadata for the specified blob as one or more name-value pairs.\n *\n * If no option provided, or no metadata defined in the parameter, the blob\n * metadata will be removed.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-metadata\n *\n * @param metadata - Replace existing metadata with this value.\n * If no value provided the existing metadata will be removed.\n * @param options - Optional options to Set Metadata operation.\n */\n public async setMetadata(\n metadata?: Metadata,\n options: BlobSetMetadataOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-setMetadata\", options);\n options.conditions = options.conditions || {};\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.blobContext.setMetadata({\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n metadata,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Sets tags on the underlying blob.\n * A blob can have up to 10 tags. Tag keys must be between 1 and 128 characters. Tag values must be between 0 and 256 characters.\n * Valid tag key and value characters include lower and upper case letters, digits (0-9),\n * space (' '), plus ('+'), minus ('-'), period ('.'), foward slash ('/'), colon (':'), equals ('='), and underscore ('_').\n *\n * @param tags -\n * @param options -\n */\n public async setTags(tags: Tags, options: BlobSetTagsOptions = {}): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-setTags\", options);\n try {\n return await this.blobContext.setTags({\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n ...convertTracingToRequestOptionsBase(updatedOptions),\n tags: toBlobTags(tags),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Gets the tags associated with the underlying blob.\n *\n * @param options -\n */\n public async getTags(options: BlobGetTagsOptions = {}): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-getTags\", options);\n try {\n const response = await this.blobContext.getTags({\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n const wrappedResponse: BlobGetTagsResponse = {\n ...response,\n _response: response._response, // _response is made non-enumerable\n tags: toTags({ blobTagSet: response.blobTagSet }) || {},\n };\n return wrappedResponse;\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Get a {@link BlobLeaseClient} that manages leases on the blob.\n *\n * @param proposeLeaseId - Initial proposed lease Id.\n * @returns A new BlobLeaseClient object for managing leases on the blob.\n */\n public getBlobLeaseClient(proposeLeaseId?: string): BlobLeaseClient {\n return new BlobLeaseClient(this, proposeLeaseId);\n }\n\n /**\n * Creates a read-only snapshot of a blob.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/snapshot-blob\n *\n * @param options - Optional options to the Blob Create Snapshot operation.\n */\n public async createSnapshot(\n options: BlobCreateSnapshotOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-createSnapshot\", options);\n options.conditions = options.conditions || {};\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.blobContext.createSnapshot({\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n metadata: options.metadata,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Asynchronously copies a blob to a destination within the storage account.\n * This method returns a long running operation poller that allows you to wait\n * indefinitely until the copy is completed.\n * You can also cancel a copy before it is completed by calling `cancelOperation` on the poller.\n * Note that the onProgress callback will not be invoked if the operation completes in the first\n * request, and attempting to cancel a completed copy will result in an error being thrown.\n *\n * In version 2012-02-12 and later, the source for a Copy Blob operation can be\n * a committed blob in any Azure storage account.\n * Beginning with version 2015-02-21, the source for a Copy Blob operation can be\n * an Azure file in any Azure storage account.\n * Only storage accounts created on or after June 7th, 2012 allow the Copy Blob\n * operation to copy from another storage account.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/copy-blob\n *\n * Example using automatic polling:\n *\n * ```js\n * const copyPoller = await blobClient.beginCopyFromURL('url');\n * const result = await copyPoller.pollUntilDone();\n * ```\n *\n * Example using manual polling:\n *\n * ```js\n * const copyPoller = await blobClient.beginCopyFromURL('url');\n * while (!poller.isDone()) {\n * await poller.poll();\n * }\n * const result = copyPoller.getResult();\n * ```\n *\n * Example using progress updates:\n *\n * ```js\n * const copyPoller = await blobClient.beginCopyFromURL('url', {\n * onProgress(state) {\n * console.log(`Progress: ${state.copyProgress}`);\n * }\n * });\n * const result = await copyPoller.pollUntilDone();\n * ```\n *\n * Example using a changing polling interval (default 15 seconds):\n *\n * ```js\n * const copyPoller = await blobClient.beginCopyFromURL('url', {\n * intervalInMs: 1000 // poll blob every 1 second for copy progress\n * });\n * const result = await copyPoller.pollUntilDone();\n * ```\n *\n * Example using copy cancellation:\n *\n * ```js\n * const copyPoller = await blobClient.beginCopyFromURL('url');\n * // cancel operation after starting it.\n * try {\n * await copyPoller.cancelOperation();\n * // calls to get the result now throw PollerCancelledError\n * await copyPoller.getResult();\n * } catch (err) {\n * if (err.name === 'PollerCancelledError') {\n * console.log('The copy was cancelled.');\n * }\n * }\n * ```\n *\n * @param copySource - url to the source Azure Blob/File.\n * @param options - Optional options to the Blob Start Copy From URL operation.\n */\n public async beginCopyFromURL(\n copySource: string,\n options: BlobBeginCopyFromURLOptions = {}\n ): Promise<\n PollerLike, BlobBeginCopyFromURLResponse>\n > {\n const client: CopyPollerBlobClient = {\n abortCopyFromURL: (...args) => this.abortCopyFromURL(...args),\n getProperties: (...args) => this.getProperties(...args),\n startCopyFromURL: (...args) => this.startCopyFromURL(...args),\n };\n const poller = new BlobBeginCopyFromUrlPoller({\n blobClient: client,\n copySource,\n intervalInMs: options.intervalInMs,\n onProgress: options.onProgress,\n resumeFrom: options.resumeFrom,\n startCopyFromURLOptions: options,\n });\n\n // Trigger the startCopyFromURL call by calling poll.\n // Any errors from this method should be surfaced to the user.\n await poller.poll();\n\n return poller;\n }\n\n /**\n * Aborts a pending asynchronous Copy Blob operation, and leaves a destination blob with zero\n * length and full metadata. Version 2012-02-12 and newer.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/abort-copy-blob\n *\n * @param copyId - Id of the Copy From URL operation.\n * @param options - Optional options to the Blob Abort Copy From URL operation.\n */\n public async abortCopyFromURL(\n copyId: string,\n options: BlobAbortCopyFromURLOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-abortCopyFromURL\", options);\n try {\n return await this.blobContext.abortCopyFromURL(copyId, {\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * The synchronous Copy From URL operation copies a blob or an internet resource to a new blob. It will not\n * return a response until the copy is complete.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/copy-blob-from-url\n *\n * @param copySource - The source URL to copy from, Shared Access Signature(SAS) maybe needed for authentication\n * @param options -\n */\n public async syncCopyFromURL(\n copySource: string,\n options: BlobSyncCopyFromURLOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-syncCopyFromURL\", options);\n options.conditions = options.conditions || {};\n options.sourceConditions = options.sourceConditions || {};\n\n try {\n return await this.blobContext.copyFromURL(copySource, {\n abortSignal: options.abortSignal,\n metadata: options.metadata,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n sourceModifiedAccessConditions: {\n sourceIfMatch: options.sourceConditions.ifMatch,\n sourceIfModifiedSince: options.sourceConditions.ifModifiedSince,\n sourceIfNoneMatch: options.sourceConditions.ifNoneMatch,\n sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince,\n },\n sourceContentMD5: options.sourceContentMD5,\n copySourceAuthorization: httpAuthorizationToString(options.sourceAuthorization),\n blobTagsString: toBlobTagsString(options.tags),\n immutabilityPolicyExpiry: options.immutabilityPolicy?.expiriesOn,\n immutabilityPolicyMode: options.immutabilityPolicy?.policyMode,\n legalHold: options.legalHold,\n encryptionScope: options.encryptionScope,\n copySourceTags: options.copySourceTags,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Sets the tier on a blob. The operation is allowed on a page blob in a premium\n * storage account and on a block blob in a blob storage account (locally redundant\n * storage only). A premium page blob's tier determines the allowed size, IOPS,\n * and bandwidth of the blob. A block blob's tier determines Hot/Cool/Archive\n * storage type. This operation does not update the blob's ETag.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-tier\n *\n * @param tier - The tier to be set on the blob. Valid values are Hot, Cool, or Archive.\n * @param options - Optional options to the Blob Set Tier operation.\n */\n public async setAccessTier(\n tier: BlockBlobTier | PremiumPageBlobTier | string,\n options: BlobSetTierOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-setAccessTier\", options);\n try {\n return await this.blobContext.setTier(toAccessTier(tier)!, {\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n rehydratePriority: options.rehydratePriority,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n // High level function\n\n /**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Downloads an Azure Blob in parallel to a buffer.\n * Offset and count are optional, downloads the entire blob if they are not provided.\n *\n * Warning: Buffers can only support files up to about one gigabyte on 32-bit systems or about two\n * gigabytes on 64-bit systems due to limitations of Node.js/V8. For blobs larger than this size,\n * consider {@link downloadToFile}.\n *\n * @param offset - From which position of the block blob to download(in bytes)\n * @param count - How much data(in bytes) to be downloaded. Will download to the end when passing undefined\n * @param options - BlobDownloadToBufferOptions\n */\n public async downloadToBuffer(\n offset?: number,\n count?: number,\n options?: BlobDownloadToBufferOptions\n ): Promise;\n\n /**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Downloads an Azure Blob in parallel to a buffer.\n * Offset and count are optional, downloads the entire blob if they are not provided.\n *\n * Warning: Buffers can only support files up to about one gigabyte on 32-bit systems or about two\n * gigabytes on 64-bit systems due to limitations of Node.js/V8. For blobs larger than this size,\n * consider {@link downloadToFile}.\n *\n * @param buffer - Buffer to be fill, must have length larger than count\n * @param offset - From which position of the block blob to download(in bytes)\n * @param count - How much data(in bytes) to be downloaded. Will download to the end when passing undefined\n * @param options - BlobDownloadToBufferOptions\n */\n public async downloadToBuffer(\n buffer: Buffer,\n offset?: number,\n count?: number,\n options?: BlobDownloadToBufferOptions\n ): Promise;\n\n public async downloadToBuffer(\n param1?: Buffer | number,\n param2?: number,\n param3?: BlobDownloadToBufferOptions | number,\n param4: BlobDownloadToBufferOptions = {}\n ): Promise {\n let buffer: Buffer | undefined;\n let offset = 0;\n let count = 0;\n let options = param4;\n if (param1 instanceof Buffer) {\n buffer = param1;\n offset = param2 || 0;\n count = typeof param3 === \"number\" ? param3 : 0;\n } else {\n offset = typeof param1 === \"number\" ? param1 : 0;\n count = typeof param2 === \"number\" ? param2 : 0;\n options = (param3 as BlobDownloadToBufferOptions) || {};\n }\n const { span, updatedOptions } = createSpan(\"BlobClient-downloadToBuffer\", options);\n\n try {\n if (!options.blockSize) {\n options.blockSize = 0;\n }\n if (options.blockSize < 0) {\n throw new RangeError(\"blockSize option must be >= 0\");\n }\n if (options.blockSize === 0) {\n options.blockSize = DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES;\n }\n\n if (offset < 0) {\n throw new RangeError(\"offset option must be >= 0\");\n }\n\n if (count && count <= 0) {\n throw new RangeError(\"count option must be greater than 0\");\n }\n\n if (!options.conditions) {\n options.conditions = {};\n }\n\n // Customer doesn't specify length, get it\n if (!count) {\n const response = await this.getProperties({\n ...options,\n tracingOptions: {\n ...options.tracingOptions,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n },\n });\n count = response.contentLength! - offset;\n if (count < 0) {\n throw new RangeError(\n `offset ${offset} shouldn't be larger than blob size ${response.contentLength!}`\n );\n }\n }\n\n // Allocate the buffer of size = count if the buffer is not provided\n if (!buffer) {\n try {\n buffer = Buffer.alloc(count);\n } catch (error: any) {\n throw new Error(\n `Unable to allocate the buffer of size: ${count}(in bytes). Please try passing your own buffer to the \"downloadToBuffer\" method or try using other methods like \"download\" or \"downloadToFile\".\\t ${error.message}`\n );\n }\n }\n\n if (buffer.length < count) {\n throw new RangeError(\n `The buffer's size should be equal to or larger than the request count of bytes: ${count}`\n );\n }\n\n let transferProgress: number = 0;\n const batch = new Batch(options.concurrency);\n for (let off = offset; off < offset + count; off = off + options.blockSize) {\n batch.addOperation(async () => {\n // Exclusive chunk end position\n let chunkEnd = offset + count!;\n if (off + options.blockSize! < chunkEnd) {\n chunkEnd = off + options.blockSize!;\n }\n const response = await this.download(off, chunkEnd - off, {\n abortSignal: options.abortSignal,\n conditions: options.conditions,\n maxRetryRequests: options.maxRetryRequestsPerBlock,\n customerProvidedKey: options.customerProvidedKey,\n tracingOptions: {\n ...options.tracingOptions,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n },\n });\n const stream = response.readableStreamBody!;\n await streamToBuffer(stream, buffer!, off - offset, chunkEnd - offset);\n // Update progress after block is downloaded, in case of block trying\n // Could provide finer grained progress updating inside HTTP requests,\n // only if convenience layer download try is enabled\n transferProgress += chunkEnd - off;\n if (options.onProgress) {\n options.onProgress({ loadedBytes: transferProgress });\n }\n });\n }\n await batch.do();\n return buffer;\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Downloads an Azure Blob to a local file.\n * Fails if the the given file path already exits.\n * Offset and count are optional, pass 0 and undefined respectively to download the entire blob.\n *\n * @param filePath -\n * @param offset - From which position of the block blob to download.\n * @param count - How much data to be downloaded. Will download to the end when passing undefined.\n * @param options - Options to Blob download options.\n * @returns The response data for blob download operation,\n * but with readableStreamBody set to undefined since its\n * content is already read and written into a local file\n * at the specified path.\n */\n public async downloadToFile(\n filePath: string,\n offset: number = 0,\n count?: number,\n options: BlobDownloadOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-downloadToFile\", options);\n try {\n const response = await this.download(offset, count, {\n ...options,\n tracingOptions: {\n ...options.tracingOptions,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n },\n });\n if (response.readableStreamBody) {\n await readStreamToLocalFile(response.readableStreamBody, filePath);\n }\n\n // The stream is no longer accessible so setting it to undefined.\n (response as any).blobDownloadStream = undefined;\n return response;\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n private getBlobAndContainerNamesFromUrl(): { blobName: string; containerName: string } {\n let containerName;\n let blobName;\n try {\n // URL may look like the following\n // \"https://myaccount.blob.core.windows.net/mycontainer/blob?sasString\";\n // \"https://myaccount.blob.core.windows.net/mycontainer/blob\";\n // \"https://myaccount.blob.core.windows.net/mycontainer/blob/a.txt?sasString\";\n // \"https://myaccount.blob.core.windows.net/mycontainer/blob/a.txt\";\n // IPv4/IPv6 address hosts, Endpoints - `http://127.0.0.1:10000/devstoreaccount1/containername/blob`\n // http://localhost:10001/devstoreaccount1/containername/blob\n\n const parsedUrl = URLBuilder.parse(this.url);\n\n if (parsedUrl.getHost()!.split(\".\")[1] === \"blob\") {\n // \"https://myaccount.blob.core.windows.net/containername/blob\".\n // .getPath() -> /containername/blob\n const pathComponents = parsedUrl.getPath()!.match(\"/([^/]*)(/(.*))?\");\n containerName = pathComponents![1];\n blobName = pathComponents![3];\n } else if (isIpEndpointStyle(parsedUrl)) {\n // IPv4/IPv6 address hosts... Example - http://192.0.0.10:10001/devstoreaccount1/containername/blob\n // Single word domain without a [dot] in the endpoint... Example - http://localhost:10001/devstoreaccount1/containername/blob\n // .getPath() -> /devstoreaccount1/containername/blob\n const pathComponents = parsedUrl.getPath()!.match(\"/([^/]*)/([^/]*)(/(.*))?\");\n containerName = pathComponents![2];\n blobName = pathComponents![4];\n } else {\n // \"https://customdomain.com/containername/blob\".\n // .getPath() -> /containername/blob\n const pathComponents = parsedUrl.getPath()!.match(\"/([^/]*)(/(.*))?\");\n containerName = pathComponents![1];\n blobName = pathComponents![3];\n }\n\n // decode the encoded blobName, containerName - to get all the special characters that might be present in them\n containerName = decodeURIComponent(containerName);\n blobName = decodeURIComponent(blobName);\n\n // Azure Storage Server will replace \"\\\" with \"/\" in the blob names\n // doing the same in the SDK side so that the user doesn't have to replace \"\\\" instances in the blobName\n blobName = blobName.replace(/\\\\/g, \"/\");\n\n if (!containerName) {\n throw new Error(\"Provided containerName is invalid.\");\n }\n\n return { blobName, containerName };\n } catch (error: any) {\n throw new Error(\"Unable to extract blobName and containerName with provided information.\");\n }\n }\n\n /**\n * Asynchronously copies a blob to a destination within the storage account.\n * In version 2012-02-12 and later, the source for a Copy Blob operation can be\n * a committed blob in any Azure storage account.\n * Beginning with version 2015-02-21, the source for a Copy Blob operation can be\n * an Azure file in any Azure storage account.\n * Only storage accounts created on or after June 7th, 2012 allow the Copy Blob\n * operation to copy from another storage account.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/copy-blob\n *\n * @param copySource - url to the source Azure Blob/File.\n * @param options - Optional options to the Blob Start Copy From URL operation.\n */\n private async startCopyFromURL(\n copySource: string,\n options: BlobStartCopyFromURLOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-startCopyFromURL\", options);\n options.conditions = options.conditions || {};\n options.sourceConditions = options.sourceConditions || {};\n\n try {\n return await this.blobContext.startCopyFromURL(copySource, {\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n metadata: options.metadata,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n sourceModifiedAccessConditions: {\n sourceIfMatch: options.sourceConditions.ifMatch,\n sourceIfModifiedSince: options.sourceConditions.ifModifiedSince,\n sourceIfNoneMatch: options.sourceConditions.ifNoneMatch,\n sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince,\n sourceIfTags: options.sourceConditions.tagConditions,\n },\n immutabilityPolicyExpiry: options.immutabilityPolicy?.expiriesOn,\n immutabilityPolicyMode: options.immutabilityPolicy?.policyMode,\n legalHold: options.legalHold,\n rehydratePriority: options.rehydratePriority,\n tier: toAccessTier(options.tier),\n blobTagsString: toBlobTagsString(options.tags),\n sealBlob: options.sealBlob,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Only available for BlobClient constructed with a shared key credential.\n *\n * Generates a Blob Service Shared Access Signature (SAS) URI based on the client properties\n * and parameters passed in. The SAS is signed by the shared key credential of the client.\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas\n *\n * @param options - Optional parameters.\n * @returns The SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token.\n */\n public generateSasUrl(options: BlobGenerateSasUrlOptions): Promise {\n return new Promise((resolve) => {\n if (!(this.credential instanceof StorageSharedKeyCredential)) {\n throw new RangeError(\n \"Can only generate the SAS when the client is initialized with a shared key credential\"\n );\n }\n\n const sas = generateBlobSASQueryParameters(\n {\n containerName: this._containerName,\n blobName: this._name,\n snapshotTime: this._snapshot,\n versionId: this._versionId,\n ...options,\n },\n this.credential\n ).toString();\n\n resolve(appendToURLQuery(this.url, sas));\n });\n }\n\n /**\n * Delete the immutablility policy on the blob.\n *\n * @param options - Optional options to delete immutability policy on the blob.\n */\n public async deleteImmutabilityPolicy(\n options?: BlobDeleteImmutabilityPolicyOptions\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-deleteImmutabilityPolicy\", options);\n try {\n return await this.blobContext.deleteImmutabilityPolicy({\n abortSignal: options?.abortSignal,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Set immutablility policy on the blob.\n *\n * @param options - Optional options to set immutability policy on the blob.\n */\n public async setImmutabilityPolicy(\n immutabilityPolicy: BlobImmutabilityPolicy,\n options?: BlobSetImmutabilityPolicyOptions\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-setImmutabilityPolicy\", options);\n try {\n return await this.blobContext.setImmutabilityPolicy({\n abortSignal: options?.abortSignal,\n immutabilityPolicyExpiry: immutabilityPolicy.expiriesOn,\n immutabilityPolicyMode: immutabilityPolicy.policyMode,\n modifiedAccessConditions: options?.modifiedAccessCondition,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Set legal hold on the blob.\n *\n * @param options - Optional options to set legal hold on the blob.\n */\n public async setLegalHold(\n legalHoldEnabled: boolean,\n options?: BlobSetLegalHoldOptions\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlobClient-setLegalHold\", options);\n try {\n return await this.blobContext.setLegalHold(legalHoldEnabled, {\n abortSignal: options?.abortSignal,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n}\n\n/**\n * Options to configure {@link AppendBlobClient.create} operation.\n */\nexport interface AppendBlobCreateOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n\n /**\n * Conditions to meet when creating append blobs.\n */\n conditions?: BlobRequestConditions;\n /**\n * HTTP headers to set when creating append blobs. A common header\n * to set is `blobContentType`, enabling the browser to provide functionality\n * based on file type.\n *\n */\n blobHTTPHeaders?: BlobHTTPHeaders;\n /**\n * A collection of key-value string pair to associate with the blob when creating append blobs.\n */\n metadata?: Metadata;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n /**\n * Optional. Specifies immutability policy for a blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n immutabilityPolicy?: BlobImmutabilityPolicy;\n /**\n * Optional. Indicates if a legal hold should be placed on the blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n legalHold?: boolean;\n /**\n * Blob tags.\n */\n tags?: Tags;\n}\n\n/**\n * Options to configure {@link AppendBlobClient.createIfNotExists} operation.\n */\nexport interface AppendBlobCreateIfNotExistsOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * HTTP headers to set when creating append blobs. A common header to set is\n * `blobContentType`, enabling the browser to provide functionality\n * based on file type.\n *\n */\n blobHTTPHeaders?: BlobHTTPHeaders;\n /**\n * A collection of key-value string pair to associate with the blob when creating append blobs.\n */\n metadata?: Metadata;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n /**\n * Optional. Specifies immutability policy for a blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n immutabilityPolicy?: BlobImmutabilityPolicy;\n /**\n * Optional. Indicates if a legal hold should be placed on the blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n legalHold?: boolean;\n}\n\n/**\n * Options to configure {@link AppendBlobClient.seal} operation.\n */\nexport interface AppendBlobSealOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet.\n */\n conditions?: AppendBlobRequestConditions;\n}\n\n/**\n * Options to configure the {@link AppendBlobClient.appendBlock} operation.\n */\nexport interface AppendBlobAppendBlockOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when appending append blob blocks.\n */\n conditions?: AppendBlobRequestConditions;\n /**\n * Callback to receive events on the progress of append block operation.\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n /**\n * An MD5 hash of the block content. This hash is used to verify the integrity of the block during transport.\n * When this is specified, the storage service compares the hash of the content that has arrived with this value.\n *\n * transactionalContentMD5 and transactionalContentCrc64 cannot be set at same time.\n */\n transactionalContentMD5?: Uint8Array;\n /**\n * A CRC64 hash of the append block content. This hash is used to verify the integrity of the append block during transport.\n * When this is specified, the storage service compares the hash of the content that has arrived with this value.\n *\n * transactionalContentMD5 and transactionalContentCrc64 cannot be set at same time.\n */\n transactionalContentCrc64?: Uint8Array;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n}\n\n/**\n * Options to configure the {@link AppendBlobClient.appendBlockFromURL} operation.\n */\nexport interface AppendBlobAppendBlockFromURLOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when appending append blob blocks.\n */\n conditions?: AppendBlobRequestConditions;\n /**\n * Conditions to meet for the source Azure Blob/File when copying from a URL to the blob.\n */\n sourceConditions?: MatchConditions & ModificationConditions;\n /**\n * An MD5 hash of the append block content from the URI.\n * This hash is used to verify the integrity of the append block during transport of the data from the URI.\n * When this is specified, the storage service compares the hash of the content that has arrived from the copy-source with this value.\n *\n * sourceContentMD5 and sourceContentCrc64 cannot be set at same time.\n */\n sourceContentMD5?: Uint8Array;\n /**\n * A CRC64 hash of the append block content from the URI.\n * This hash is used to verify the integrity of the append block during transport of the data from the URI.\n * When this is specified, the storage service compares the hash of the content that has arrived from the copy-source with this value.\n *\n * sourceContentMD5 and sourceContentCrc64 cannot be set at same time.\n */\n sourceContentCrc64?: Uint8Array;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n /**\n * Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source.\n */\n sourceAuthorization?: HttpAuthorization;\n}\n\n/**\n * Contains response data for the {@link appendBlobClient.createIfNotExists} operation.\n */\nexport interface AppendBlobCreateIfNotExistsResponse extends AppendBlobCreateResponse {\n /**\n * Indicate whether the blob is successfully created. Is false when the blob is not changed as it already exists.\n */\n succeeded: boolean;\n}\n\n/**\n * AppendBlobClient defines a set of operations applicable to append blobs.\n */\nexport class AppendBlobClient extends BlobClient {\n /**\n * appendBlobsContext provided by protocol layer.\n */\n private appendBlobContext: AppendBlob;\n\n /**\n *\n * Creates an instance of AppendBlobClient.\n *\n * @param connectionString - Account connection string or a SAS connection string of an Azure storage account.\n * [ Note - Account connection string can only be used in NODE.JS runtime. ]\n * Account connection string example -\n * `DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=accountKey;EndpointSuffix=core.windows.net`\n * SAS connection string example -\n * `BlobEndpoint=https://myaccount.blob.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString`\n * @param containerName - Container name.\n * @param blobName - Blob name.\n * @param options - Optional. Options to configure the HTTP pipeline.\n */\n constructor(\n connectionString: string,\n containerName: string,\n blobName: string,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions\n );\n /**\n * Creates an instance of AppendBlobClient.\n * This method accepts an encoded URL or non-encoded URL pointing to an append blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * If a blob name includes ? or %, blob name must be encoded in the URL.\n *\n * @param url - A URL string pointing to Azure Storage append blob, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/appendblob\". You can\n * append a SAS if using AnonymousCredential, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/appendblob?sasString\".\n * This method accepts an encoded URL or non-encoded URL pointing to a blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * However, if a blob name includes ? or %, blob name must be encoded in the URL.\n * Such as a blob named \"my?blob%\", the URL should be \"https://myaccount.blob.core.windows.net/mycontainer/my%3Fblob%25\".\n * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param options - Optional. Options to configure the HTTP pipeline.\n */\n constructor(\n url: string,\n credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions\n );\n /**\n * Creates an instance of AppendBlobClient.\n * This method accepts an encoded URL or non-encoded URL pointing to an append blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * If a blob name includes ? or %, blob name must be encoded in the URL.\n *\n * @param url - A URL string pointing to Azure Storage append blob, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/appendblob\". You can\n * append a SAS if using AnonymousCredential, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/appendblob?sasString\".\n * This method accepts an encoded URL or non-encoded URL pointing to a blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * However, if a blob name includes ? or %, blob name must be encoded in the URL.\n * Such as a blob named \"my?blob%\", the URL should be \"https://myaccount.blob.core.windows.net/mycontainer/my%3Fblob%25\".\n * @param pipeline - Call newPipeline() to create a default\n * pipeline, or provide a customized pipeline.\n */\n constructor(url: string, pipeline: PipelineLike);\n constructor(\n urlOrConnectionString: string,\n credentialOrPipelineOrContainerName:\n | string\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | PipelineLike,\n blobNameOrOptions?: string | StoragePipelineOptions,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions\n ) {\n // In TypeScript we cannot simply pass all parameters to super() like below so have to duplicate the code instead.\n // super(s, credentialOrPipelineOrContainerNameOrOptions, blobNameOrOptions, options);\n let pipeline: PipelineLike;\n let url: string;\n options = options || {};\n if (isPipelineLike(credentialOrPipelineOrContainerName)) {\n // (url: string, pipeline: Pipeline)\n url = urlOrConnectionString;\n pipeline = credentialOrPipelineOrContainerName;\n } else if (\n (isNode && credentialOrPipelineOrContainerName instanceof StorageSharedKeyCredential) ||\n credentialOrPipelineOrContainerName instanceof AnonymousCredential ||\n isTokenCredential(credentialOrPipelineOrContainerName)\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions) url = urlOrConnectionString;\n url = urlOrConnectionString;\n options = blobNameOrOptions as StoragePipelineOptions;\n pipeline = newPipeline(credentialOrPipelineOrContainerName, options);\n } else if (\n !credentialOrPipelineOrContainerName &&\n typeof credentialOrPipelineOrContainerName !== \"string\"\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)\n url = urlOrConnectionString;\n // The second parameter is undefined. Use anonymous credential.\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else if (\n credentialOrPipelineOrContainerName &&\n typeof credentialOrPipelineOrContainerName === \"string\" &&\n blobNameOrOptions &&\n typeof blobNameOrOptions === \"string\"\n ) {\n // (connectionString: string, containerName: string, blobName: string, options?: StoragePipelineOptions)\n const containerName = credentialOrPipelineOrContainerName;\n const blobName = blobNameOrOptions;\n\n const extractedCreds = extractConnectionStringParts(urlOrConnectionString);\n if (extractedCreds.kind === \"AccountConnString\") {\n if (isNode) {\n const sharedKeyCredential = new StorageSharedKeyCredential(\n extractedCreds.accountName!,\n extractedCreds.accountKey\n );\n url = appendToURLPath(\n appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)),\n encodeURIComponent(blobName)\n );\n\n if (!options.proxyOptions) {\n options.proxyOptions = getDefaultProxySettings(extractedCreds.proxyUri);\n }\n\n pipeline = newPipeline(sharedKeyCredential, options);\n } else {\n throw new Error(\"Account connection string is only supported in Node.js environment\");\n }\n } else if (extractedCreds.kind === \"SASConnString\") {\n url =\n appendToURLPath(\n appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)),\n encodeURIComponent(blobName)\n ) +\n \"?\" +\n extractedCreds.accountSas;\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else {\n throw new Error(\n \"Connection string must be either an Account connection string or a SAS connection string\"\n );\n }\n } else {\n throw new Error(\"Expecting non-empty strings for containerName and blobName parameters\");\n }\n super(url, pipeline);\n this.appendBlobContext = new AppendBlob(this.storageClientContext);\n }\n\n /**\n * Creates a new AppendBlobClient object identical to the source but with the\n * specified snapshot timestamp.\n * Provide \"\" will remove the snapshot and return a Client to the base blob.\n *\n * @param snapshot - The snapshot timestamp.\n * @returns A new AppendBlobClient object identical to the source but with the specified snapshot timestamp.\n */\n public withSnapshot(snapshot: string): AppendBlobClient {\n return new AppendBlobClient(\n setURLParameter(\n this.url,\n URLConstants.Parameters.SNAPSHOT,\n snapshot.length === 0 ? undefined : snapshot\n ),\n this.pipeline\n );\n }\n\n /**\n * Creates a 0-length append blob. Call AppendBlock to append data to an append blob.\n * @see https://docs.microsoft.com/rest/api/storageservices/put-blob\n *\n * @param options - Options to the Append Block Create operation.\n *\n *\n * Example usage:\n *\n * ```js\n * const appendBlobClient = containerClient.getAppendBlobClient(\"\");\n * await appendBlobClient.create();\n * ```\n */\n public async create(options: AppendBlobCreateOptions = {}): Promise {\n const { span, updatedOptions } = createSpan(\"AppendBlobClient-create\", options);\n options.conditions = options.conditions || {};\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n\n return await this.appendBlobContext.create(0, {\n abortSignal: options.abortSignal,\n blobHttpHeaders: options.blobHTTPHeaders,\n leaseAccessConditions: options.conditions,\n metadata: options.metadata,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n immutabilityPolicyExpiry: options.immutabilityPolicy?.expiriesOn,\n immutabilityPolicyMode: options.immutabilityPolicy?.policyMode,\n legalHold: options.legalHold,\n blobTagsString: toBlobTagsString(options.tags),\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Creates a 0-length append blob. Call AppendBlock to append data to an append blob.\n * If the blob with the same name already exists, the content of the existing blob will remain unchanged.\n * @see https://docs.microsoft.com/rest/api/storageservices/put-blob\n *\n * @param options -\n */\n public async createIfNotExists(\n options: AppendBlobCreateIfNotExistsOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"AppendBlobClient-createIfNotExists\", options);\n const conditions = { ifNoneMatch: ETagAny };\n try {\n const res = await this.create({\n ...updatedOptions,\n conditions,\n });\n return {\n succeeded: true,\n ...res,\n _response: res._response, // _response is made non-enumerable\n };\n } catch (e: any) {\n if (e.details?.errorCode === \"BlobAlreadyExists\") {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: \"Expected exception when creating a blob only if it does not already exist.\",\n });\n return {\n succeeded: false,\n ...e.response?.parsedHeaders,\n _response: e.response,\n };\n }\n\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Seals the append blob, making it read only.\n *\n * @param options -\n */\n public async seal(options: AppendBlobSealOptions = {}): Promise {\n const { span, updatedOptions } = createSpan(\"AppendBlobClient-seal\", options);\n options.conditions = options.conditions || {};\n try {\n return await this.appendBlobContext.seal({\n abortSignal: options.abortSignal,\n appendPositionAccessConditions: options.conditions,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Commits a new block of data to the end of the existing append blob.\n * @see https://docs.microsoft.com/rest/api/storageservices/append-block\n *\n * @param body - Data to be appended.\n * @param contentLength - Length of the body in bytes.\n * @param options - Options to the Append Block operation.\n *\n *\n * Example usage:\n *\n * ```js\n * const content = \"Hello World!\";\n *\n * // Create a new append blob and append data to the blob.\n * const newAppendBlobClient = containerClient.getAppendBlobClient(\"\");\n * await newAppendBlobClient.create();\n * await newAppendBlobClient.appendBlock(content, content.length);\n *\n * // Append data to an existing append blob.\n * const existingAppendBlobClient = containerClient.getAppendBlobClient(\"\");\n * await existingAppendBlobClient.appendBlock(content, content.length);\n * ```\n */\n public async appendBlock(\n body: HttpRequestBody,\n contentLength: number,\n options: AppendBlobAppendBlockOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"AppendBlobClient-appendBlock\", options);\n options.conditions = options.conditions || {};\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n\n return await this.appendBlobContext.appendBlock(contentLength, body, {\n abortSignal: options.abortSignal,\n appendPositionAccessConditions: options.conditions,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n requestOptions: {\n onUploadProgress: options.onProgress,\n },\n transactionalContentMD5: options.transactionalContentMD5,\n transactionalContentCrc64: options.transactionalContentCrc64,\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * The Append Block operation commits a new block of data to the end of an existing append blob\n * where the contents are read from a source url.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/append-block-from-url\n *\n * @param sourceURL -\n * The url to the blob that will be the source of the copy. A source blob in the same storage account can\n * be authenticated via Shared Key. However, if the source is a blob in another account, the source blob\n * must either be public or must be authenticated via a shared access signature. If the source blob is\n * public, no authentication is required to perform the operation.\n * @param sourceOffset - Offset in source to be appended\n * @param count - Number of bytes to be appended as a block\n * @param options -\n */\n public async appendBlockFromURL(\n sourceURL: string,\n sourceOffset: number,\n count: number,\n options: AppendBlobAppendBlockFromURLOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"AppendBlobClient-appendBlockFromURL\", options);\n options.conditions = options.conditions || {};\n options.sourceConditions = options.sourceConditions || {};\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n\n return await this.appendBlobContext.appendBlockFromUrl(sourceURL, 0, {\n abortSignal: options.abortSignal,\n sourceRange: rangeToString({ offset: sourceOffset, count }),\n sourceContentMD5: options.sourceContentMD5,\n sourceContentCrc64: options.sourceContentCrc64,\n leaseAccessConditions: options.conditions,\n appendPositionAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n sourceModifiedAccessConditions: {\n sourceIfMatch: options.sourceConditions.ifMatch,\n sourceIfModifiedSince: options.sourceConditions.ifModifiedSince,\n sourceIfNoneMatch: options.sourceConditions.ifNoneMatch,\n sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince,\n },\n copySourceAuthorization: httpAuthorizationToString(options.sourceAuthorization),\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n}\n\n/**\n * Options to configure {@link BlockBlobClient.upload} operation.\n */\nexport interface BlockBlobUploadOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when uploading to the block blob.\n */\n conditions?: BlobRequestConditions;\n /**\n * HTTP headers to set when uploading to a block blob. A common header to set is\n * `blobContentType`, enabling the browser to provide functionality\n * based on file type.\n *\n */\n blobHTTPHeaders?: BlobHTTPHeaders;\n /**\n * A collection of key-value string pair to associate with the blob when uploading to a block blob.\n */\n metadata?: Metadata;\n /**\n * Callback to receive events on the progress of upload operation.\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n /**\n * Access tier.\n * More Details - https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers\n */\n tier?: BlockBlobTier | string;\n /**\n * Optional. Specifies immutability policy for a blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n immutabilityPolicy?: BlobImmutabilityPolicy;\n /**\n * Optional. Indicates if a legal hold should be placed on the blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n legalHold?: boolean;\n /**\n * Blob tags.\n */\n tags?: Tags;\n}\n\n/**\n * Options to configure {@link BlockBlobClient.syncUploadFromURL} operation.\n */\nexport interface BlockBlobSyncUploadFromURLOptions extends CommonOptions {\n /**\n * Server timeout in seconds.\n * For more information, @see https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\n */\n timeoutInSeconds?: number;\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Optional. Specifies a user-defined name-value pair associated with the blob. If no name-value\n * pairs are specified, the operation will copy the metadata from the source blob or file to the\n * destination blob. If one or more name-value pairs are specified, the destination blob is\n * created with the specified metadata, and metadata is not copied from the source blob or file.\n * Note that beginning with version 2009-09-19, metadata names must adhere to the naming rules\n * for C# identifiers. See Naming and Referencing Containers, Blobs, and Metadata for more\n * information.\n */\n metadata?: Metadata;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n /**\n * Access tier.\n * More Details - https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers\n */\n tier?: BlockBlobTier | string;\n /**\n * Specify the md5 calculated for the range of bytes that must be read from the copy source.\n */\n sourceContentMD5?: Uint8Array;\n /**\n * Blob tags.\n */\n tags?: Tags;\n /**\n * Optional, default is true. Indicates if properties from the source blob should be copied.\n */\n copySourceBlobProperties?: boolean;\n /**\n * HTTP headers to set when uploading to a block blob.\n *\n * A common header to set is `blobContentType`, enabling the browser to provide functionality\n * based on file type.\n *\n */\n blobHTTPHeaders?: BlobHTTPHeaders;\n /**\n * Conditions to meet for the destination Azure Blob.\n */\n conditions?: BlobRequestConditions;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Conditions to meet for the source Azure Blob.\n */\n sourceConditions?: ModifiedAccessConditions;\n /**\n * Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source.\n */\n sourceAuthorization?: HttpAuthorization;\n /**\n * Optional, default 'replace'. Indicates if source tags should be copied or replaced with the tags specified by {@link tags}.\n */\n copySourceTags?: BlobCopySourceTags;\n}\n\n/**\n * Blob query error type.\n */\nexport interface BlobQueryError {\n /**\n * Whether error is fatal. Fatal error will stop query.\n */\n isFatal: boolean;\n /**\n * Error name.\n */\n name: string;\n /**\n * Position in bytes of the query.\n */\n position: number;\n /**\n * Error description.\n */\n description: string;\n}\n\n/**\n * Options to query blob with JSON format.\n */\nexport interface BlobQueryJsonTextConfiguration {\n /**\n * Record separator.\n */\n recordSeparator: string;\n /**\n * Query for a JSON format blob.\n */\n kind: \"json\";\n}\n\n/**\n * Options to query blob with CSV format.\n */\nexport interface BlobQueryCsvTextConfiguration {\n /**\n * Record separator.\n */\n recordSeparator: string;\n /**\n * Query for a CSV format blob.\n */\n kind: \"csv\";\n /**\n * Column separator. Default is \",\".\n */\n columnSeparator?: string;\n /**\n * Field quote.\n */\n fieldQuote?: string;\n /**\n * Escape character.\n */\n escapeCharacter?: string;\n /**\n * Has headers. Default is false.\n */\n hasHeaders?: boolean;\n}\n\n/**\n * Options to query blob with Apache Arrow format. Only valid for {@link BlockBlobQueryOptions.outputTextConfiguration}.\n */\nexport interface BlobQueryArrowConfiguration {\n /**\n * Kind.\n */\n kind: \"arrow\";\n\n /**\n * List of {@link BlobQueryArrowField} describing the schema of the data.\n */\n schema: BlobQueryArrowField[];\n}\n\n/**\n * Options to query blob with Parquet format. Only valid for {@link BlockBlobQueryOptions.inputTextConfiguration}.\n */\nexport interface BlobQueryParquetConfiguration {\n /**\n * Kind.\n */\n kind: \"parquet\";\n}\n\n/**\n * Options to configure {@link BlockBlobClient.query} operation.\n */\nexport interface BlockBlobQueryOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Configurations for the query input.\n */\n inputTextConfiguration?:\n | BlobQueryJsonTextConfiguration\n | BlobQueryCsvTextConfiguration\n | BlobQueryParquetConfiguration;\n /**\n * Configurations for the query output.\n */\n outputTextConfiguration?:\n | BlobQueryJsonTextConfiguration\n | BlobQueryCsvTextConfiguration\n | BlobQueryArrowConfiguration;\n /**\n * Callback to receive events on the progress of query operation.\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n /**\n * Callback to receive error events during the query operaiton.\n */\n onError?: (error: BlobQueryError) => void;\n /**\n * Conditions to meet when uploading to the block blob.\n */\n conditions?: BlobRequestConditions;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n}\n\n/**\n * Options to configure {@link BlockBlobClient.stageBlock} operation.\n */\nexport interface BlockBlobStageBlockOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * If specified, contains the lease id that must be matched and lease with this id\n * must be active in order for the operation to succeed.\n */\n conditions?: LeaseAccessConditions;\n /**\n * Callback to receive events on the progress of stage block operation.\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n /**\n * An MD5 hash of the block content. This hash is used to verify the integrity of the block during transport.\n * When this is specified, the storage service compares the hash of the content that has arrived with this value.\n *\n * transactionalContentMD5 and transactionalContentCrc64 cannot be set at same time.\n */\n transactionalContentMD5?: Uint8Array;\n\n /**\n * A CRC64 hash of the block content. This hash is used to verify the integrity of the block during transport.\n * When this is specified, the storage service compares the hash of the content that has arrived with this value.\n *\n * transactionalContentMD5 and transactionalContentCrc64 cannot be set at same time.\n */\n transactionalContentCrc64?: Uint8Array;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n}\n\n/**\n * Options to configure {@link BlockBlobClient.stageBlockFromURL} operation.\n */\nexport interface BlockBlobStageBlockFromURLOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Specifies the bytes of the source Blob/File to upload.\n * If not specified, the entire content is uploaded as a single block.\n */\n range?: Range;\n /**\n * If specified, contains the lease id that must be matched and lease with this id\n * must be active in order for the operation to succeed.\n */\n conditions?: LeaseAccessConditions;\n /**\n * An MD5 hash of the content from the URI.\n * This hash is used to verify the integrity of the content during transport of the data from the URI.\n * When this is specified, the storage service compares the hash of the content that has arrived from the copy-source with this value.\n *\n * sourceContentMD5 and sourceContentCrc64 cannot be set at same time.\n */\n sourceContentMD5?: Uint8Array;\n /**\n * A CRC64 hash of the content from the URI.\n * This hash is used to verify the integrity of the content during transport of the data from the URI.\n * When this is specified, the storage service compares the hash of the content that has arrived from the copy-source with this value.\n *\n * sourceContentMD5 and sourceContentCrc64 cannot be set at same time.\n */\n sourceContentCrc64?: Uint8Array;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n /**\n * Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source.\n */\n sourceAuthorization?: HttpAuthorization;\n}\n\n/**\n * Options to configure {@link BlockBlobClient.commitBlockList} operation.\n */\nexport interface BlockBlobCommitBlockListOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when committing the block list.\n */\n conditions?: BlobRequestConditions;\n /**\n * HTTP headers to set when committing block list.\n */\n blobHTTPHeaders?: BlobHTTPHeaders;\n /**\n * A collection of key-value string pair to associate with the blob when committing block list.\n */\n metadata?: Metadata;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n /**\n * Optional. Specifies immutability policy for a blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n immutabilityPolicy?: BlobImmutabilityPolicy;\n /**\n * Optional. Indicates if a legal hold should be placed on the blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n legalHold?: boolean;\n /**\n * Access tier.\n * More Details - https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers\n */\n tier?: BlockBlobTier | string;\n\n /**\n * Blob tags.\n */\n tags?: Tags;\n}\n\n/**\n * Options to configure {@link BlockBlobClient.getBlockList} operation.\n */\nexport interface BlockBlobGetBlockListOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * If specified, contains the lease id that must be matched and lease with this id\n * must be active in order for the operation to succeed.\n */\n conditions?: LeaseAccessConditions & TagConditions;\n}\n\n/**\n * Option interface for the {@link BlockBlobClient.uploadStream} operation.\n */\nexport interface BlockBlobUploadStreamOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n\n /**\n * Blob HTTP Headers.\n *\n * A common header to set is `blobContentType`, enabling the\n * browser to provide functionality based on file type.\n *\n */\n blobHTTPHeaders?: BlobHTTPHeaders;\n\n /**\n * Metadata of block blob.\n */\n metadata?: { [propertyName: string]: string };\n\n /**\n * Access conditions headers.\n */\n conditions?: BlobRequestConditions;\n\n /**\n * Progress updater.\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n\n /**\n * Blob tags.\n */\n tags?: Tags;\n\n /**\n * Access tier.\n * More Details - https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers\n */\n tier?: BlockBlobTier | string;\n}\n/**\n * Option interface for {@link BlockBlobClient.uploadFile} and {@link BlockBlobClient.uploadSeekableStream}.\n */\nexport interface BlockBlobParallelUploadOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n\n /**\n * Destination block blob size in bytes.\n */\n blockSize?: number;\n\n /**\n * Blob size threshold in bytes to start concurrency uploading.\n * Default value is 256MB, blob size less than this option will\n * be uploaded via one I/O operation without concurrency.\n * You can customize a value less equal than the default value.\n */\n maxSingleShotSize?: number;\n\n /**\n * Progress updater.\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n\n /**\n * Blob HTTP Headers. A common header to set is\n * `blobContentType`, enabling the browser to provide\n * functionality based on file type.\n *\n */\n blobHTTPHeaders?: BlobHTTPHeaders;\n\n /**\n * Metadata of block blob.\n */\n metadata?: { [propertyName: string]: string };\n\n /**\n * Access conditions headers.\n */\n conditions?: BlobRequestConditions;\n\n /**\n * Concurrency of parallel uploading. Must be greater than or equal to 0.\n */\n concurrency?: number;\n\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n\n /**\n * Blob tags.\n */\n tags?: Tags;\n\n /**\n * Access tier.\n * More Details - https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers\n */\n tier?: BlockBlobTier | string;\n}\n\n/**\n * Response type for {@link BlockBlobClient.uploadFile}, {@link BlockBlobClient.uploadStream}, and\n * {@link BlockBlobClient.uploadBrowserDate}.\n */\nexport type BlobUploadCommonResponse = BlockBlobUploadHeaders & {\n /**\n * The underlying HTTP response.\n */\n _response: HttpResponse;\n};\n\n/**\n * BlockBlobClient defines a set of operations applicable to block blobs.\n */\nexport class BlockBlobClient extends BlobClient {\n /**\n * blobContext provided by protocol layer.\n *\n * Note. Ideally BlobClient should set BlobClient.blobContext to protected. However, API\n * extractor has issue blocking that. Here we redecelare _blobContext in BlockBlobClient.\n */\n private _blobContext: StorageBlob;\n\n /**\n * blockBlobContext provided by protocol layer.\n */\n private blockBlobContext: BlockBlob;\n\n /**\n *\n * Creates an instance of BlockBlobClient.\n *\n * @param connectionString - Account connection string or a SAS connection string of an Azure storage account.\n * [ Note - Account connection string can only be used in NODE.JS runtime. ]\n * Account connection string example -\n * `DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=accountKey;EndpointSuffix=core.windows.net`\n * SAS connection string example -\n * `BlobEndpoint=https://myaccount.blob.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString`\n * @param containerName - Container name.\n * @param blobName - Blob name.\n * @param options - Optional. Options to configure the HTTP pipeline.\n */\n constructor(\n connectionString: string,\n containerName: string,\n blobName: string,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions\n );\n /**\n * Creates an instance of BlockBlobClient.\n * This method accepts an encoded URL or non-encoded URL pointing to a block blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * If a blob name includes ? or %, blob name must be encoded in the URL.\n *\n * @param url - A URL string pointing to Azure Storage block blob, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/blockblob\". You can\n * append a SAS if using AnonymousCredential, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/blockblob?sasString\".\n * This method accepts an encoded URL or non-encoded URL pointing to a blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * However, if a blob name includes ? or %, blob name must be encoded in the URL.\n * Such as a blob named \"my?blob%\", the URL should be \"https://myaccount.blob.core.windows.net/mycontainer/my%3Fblob%25\".\n * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param options - Optional. Options to configure the HTTP pipeline.\n */\n constructor(\n url: string,\n credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions\n );\n /**\n * Creates an instance of BlockBlobClient.\n * This method accepts an encoded URL or non-encoded URL pointing to a block blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * If a blob name includes ? or %, blob name must be encoded in the URL.\n *\n * @param url - A URL string pointing to Azure Storage block blob, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/blockblob\". You can\n * append a SAS if using AnonymousCredential, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/blockblob?sasString\".\n * This method accepts an encoded URL or non-encoded URL pointing to a blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * However, if a blob name includes ? or %, blob name must be encoded in the URL.\n * Such as a blob named \"my?blob%\", the URL should be \"https://myaccount.blob.core.windows.net/mycontainer/my%3Fblob%25\".\n * @param pipeline - Call newPipeline() to create a default\n * pipeline, or provide a customized pipeline.\n */\n constructor(url: string, pipeline: PipelineLike);\n constructor(\n urlOrConnectionString: string,\n credentialOrPipelineOrContainerName?:\n | string\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | PipelineLike,\n blobNameOrOptions?: string | StoragePipelineOptions,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions\n ) {\n // In TypeScript we cannot simply pass all parameters to super() like below so have to duplicate the code instead.\n // super(s, credentialOrPipelineOrContainerNameOrOptions, blobNameOrOptions, options);\n let pipeline: PipelineLike;\n let url: string;\n options = options || {};\n if (isPipelineLike(credentialOrPipelineOrContainerName)) {\n // (url: string, pipeline: Pipeline)\n url = urlOrConnectionString;\n pipeline = credentialOrPipelineOrContainerName;\n } else if (\n (isNode && credentialOrPipelineOrContainerName instanceof StorageSharedKeyCredential) ||\n credentialOrPipelineOrContainerName instanceof AnonymousCredential ||\n isTokenCredential(credentialOrPipelineOrContainerName)\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)\n url = urlOrConnectionString;\n options = blobNameOrOptions as StoragePipelineOptions;\n pipeline = newPipeline(credentialOrPipelineOrContainerName, options);\n } else if (\n !credentialOrPipelineOrContainerName &&\n typeof credentialOrPipelineOrContainerName !== \"string\"\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)\n // The second parameter is undefined. Use anonymous credential.\n url = urlOrConnectionString;\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else if (\n credentialOrPipelineOrContainerName &&\n typeof credentialOrPipelineOrContainerName === \"string\" &&\n blobNameOrOptions &&\n typeof blobNameOrOptions === \"string\"\n ) {\n // (connectionString: string, containerName: string, blobName: string, options?: StoragePipelineOptions)\n const containerName = credentialOrPipelineOrContainerName;\n const blobName = blobNameOrOptions;\n\n const extractedCreds = extractConnectionStringParts(urlOrConnectionString);\n if (extractedCreds.kind === \"AccountConnString\") {\n if (isNode) {\n const sharedKeyCredential = new StorageSharedKeyCredential(\n extractedCreds.accountName!,\n extractedCreds.accountKey\n );\n url = appendToURLPath(\n appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)),\n encodeURIComponent(blobName)\n );\n\n if (!options.proxyOptions) {\n options.proxyOptions = getDefaultProxySettings(extractedCreds.proxyUri);\n }\n\n pipeline = newPipeline(sharedKeyCredential, options);\n } else {\n throw new Error(\"Account connection string is only supported in Node.js environment\");\n }\n } else if (extractedCreds.kind === \"SASConnString\") {\n url =\n appendToURLPath(\n appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)),\n encodeURIComponent(blobName)\n ) +\n \"?\" +\n extractedCreds.accountSas;\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else {\n throw new Error(\n \"Connection string must be either an Account connection string or a SAS connection string\"\n );\n }\n } else {\n throw new Error(\"Expecting non-empty strings for containerName and blobName parameters\");\n }\n super(url, pipeline);\n this.blockBlobContext = new BlockBlob(this.storageClientContext);\n this._blobContext = new StorageBlob(this.storageClientContext);\n }\n\n /**\n * Creates a new BlockBlobClient object identical to the source but with the\n * specified snapshot timestamp.\n * Provide \"\" will remove the snapshot and return a URL to the base blob.\n *\n * @param snapshot - The snapshot timestamp.\n * @returns A new BlockBlobClient object identical to the source but with the specified snapshot timestamp.\n */\n public withSnapshot(snapshot: string): BlockBlobClient {\n return new BlockBlobClient(\n setURLParameter(\n this.url,\n URLConstants.Parameters.SNAPSHOT,\n snapshot.length === 0 ? undefined : snapshot\n ),\n this.pipeline\n );\n }\n\n /**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Quick query for a JSON or CSV formatted blob.\n *\n * Example usage (Node.js):\n *\n * ```js\n * // Query and convert a blob to a string\n * const queryBlockBlobResponse = await blockBlobClient.query(\"select * from BlobStorage\");\n * const downloaded = (await streamToBuffer(queryBlockBlobResponse.readableStreamBody)).toString();\n * console.log(\"Query blob content:\", downloaded);\n *\n * async function streamToBuffer(readableStream) {\n * return new Promise((resolve, reject) => {\n * const chunks = [];\n * readableStream.on(\"data\", (data) => {\n * chunks.push(data instanceof Buffer ? data : Buffer.from(data));\n * });\n * readableStream.on(\"end\", () => {\n * resolve(Buffer.concat(chunks));\n * });\n * readableStream.on(\"error\", reject);\n * });\n * }\n * ```\n *\n * @param query -\n * @param options -\n */\n public async query(\n query: string,\n options: BlockBlobQueryOptions = {}\n ): Promise {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n\n const { span, updatedOptions } = createSpan(\"BlockBlobClient-query\", options);\n\n try {\n if (!isNode) {\n throw new Error(\"This operation currently is only supported in Node.js.\");\n }\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n const response = await this._blobContext.query({\n abortSignal: options.abortSignal,\n queryRequest: {\n queryType: \"SQL\",\n expression: query,\n inputSerialization: toQuerySerialization(options.inputTextConfiguration),\n outputSerialization: toQuerySerialization(options.outputTextConfiguration),\n },\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n cpkInfo: options.customerProvidedKey,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n return new BlobQueryResponse(response, {\n abortSignal: options.abortSignal,\n onProgress: options.onProgress,\n onError: options.onError,\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Creates a new block blob, or updates the content of an existing block blob.\n * Updating an existing block blob overwrites any existing metadata on the blob.\n * Partial updates are not supported; the content of the existing blob is\n * overwritten with the new content. To perform a partial update of a block blob's,\n * use {@link stageBlock} and {@link commitBlockList}.\n *\n * This is a non-parallel uploading method, please use {@link uploadFile},\n * {@link uploadStream} or {@link uploadBrowserData} for better performance\n * with concurrency uploading.\n *\n * @see https://docs.microsoft.com/rest/api/storageservices/put-blob\n *\n * @param body - Blob, string, ArrayBuffer, ArrayBufferView or a function\n * which returns a new Readable stream whose offset is from data source beginning.\n * @param contentLength - Length of body in bytes. Use Buffer.byteLength() to calculate body length for a\n * string including non non-Base64/Hex-encoded characters.\n * @param options - Options to the Block Blob Upload operation.\n * @returns Response data for the Block Blob Upload operation.\n *\n * Example usage:\n *\n * ```js\n * const content = \"Hello world!\";\n * const uploadBlobResponse = await blockBlobClient.upload(content, content.length);\n * ```\n */\n public async upload(\n body: HttpRequestBody,\n contentLength: number,\n options: BlockBlobUploadOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, updatedOptions } = createSpan(\"BlockBlobClient-upload\", options);\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.blockBlobContext.upload(contentLength, body, {\n abortSignal: options.abortSignal,\n blobHttpHeaders: options.blobHTTPHeaders,\n leaseAccessConditions: options.conditions,\n metadata: options.metadata,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n requestOptions: {\n onUploadProgress: options.onProgress,\n },\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n immutabilityPolicyExpiry: options.immutabilityPolicy?.expiriesOn,\n immutabilityPolicyMode: options.immutabilityPolicy?.policyMode,\n legalHold: options.legalHold,\n tier: toAccessTier(options.tier),\n blobTagsString: toBlobTagsString(options.tags),\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Creates a new Block Blob where the contents of the blob are read from a given URL.\n * This API is supported beginning with the 2020-04-08 version. Partial updates\n * are not supported with Put Blob from URL; the content of an existing blob is overwritten with\n * the content of the new blob. To perform partial updates to a block blob’s contents using a\n * source URL, use {@link stageBlockFromURL} and {@link commitBlockList}.\n *\n * @param sourceURL - Specifies the URL of the blob. The value\n * may be a URL of up to 2 KB in length that specifies a blob.\n * The value should be URL-encoded as it would appear\n * in a request URI. The source blob must either be public\n * or must be authenticated via a shared access signature.\n * If the source blob is public, no authentication is required\n * to perform the operation. Here are some examples of source object URLs:\n * - https://myaccount.blob.core.windows.net/mycontainer/myblob\n * - https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=\n * @param options - Optional parameters.\n */\n\n public async syncUploadFromURL(\n sourceURL: string,\n options: BlockBlobSyncUploadFromURLOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, updatedOptions } = createSpan(\"BlockBlobClient-syncUploadFromURL\", options);\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.blockBlobContext.putBlobFromUrl(0, sourceURL, {\n ...options,\n blobHttpHeaders: options.blobHTTPHeaders,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions.tagConditions,\n },\n sourceModifiedAccessConditions: {\n sourceIfMatch: options.sourceConditions?.ifMatch,\n sourceIfModifiedSince: options.sourceConditions?.ifModifiedSince,\n sourceIfNoneMatch: options.sourceConditions?.ifNoneMatch,\n sourceIfUnmodifiedSince: options.sourceConditions?.ifUnmodifiedSince,\n sourceIfTags: options.sourceConditions?.tagConditions,\n },\n cpkInfo: options.customerProvidedKey,\n copySourceAuthorization: httpAuthorizationToString(options.sourceAuthorization),\n tier: toAccessTier(options.tier),\n blobTagsString: toBlobTagsString(options.tags),\n copySourceTags: options.copySourceTags,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Uploads the specified block to the block blob's \"staging area\" to be later\n * committed by a call to commitBlockList.\n * @see https://docs.microsoft.com/rest/api/storageservices/put-block\n *\n * @param blockId - A 64-byte value that is base64-encoded\n * @param body - Data to upload to the staging area.\n * @param contentLength - Number of bytes to upload.\n * @param options - Options to the Block Blob Stage Block operation.\n * @returns Response data for the Block Blob Stage Block operation.\n */\n public async stageBlock(\n blockId: string,\n body: HttpRequestBody,\n contentLength: number,\n options: BlockBlobStageBlockOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlockBlobClient-stageBlock\", options);\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.blockBlobContext.stageBlock(blockId, contentLength, body, {\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n requestOptions: {\n onUploadProgress: options.onProgress,\n },\n transactionalContentMD5: options.transactionalContentMD5,\n transactionalContentCrc64: options.transactionalContentCrc64,\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * The Stage Block From URL operation creates a new block to be committed as part\n * of a blob where the contents are read from a URL.\n * This API is available starting in version 2018-03-28.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/put-block-from-url\n *\n * @param blockId - A 64-byte value that is base64-encoded\n * @param sourceURL - Specifies the URL of the blob. The value\n * may be a URL of up to 2 KB in length that specifies a blob.\n * The value should be URL-encoded as it would appear\n * in a request URI. The source blob must either be public\n * or must be authenticated via a shared access signature.\n * If the source blob is public, no authentication is required\n * to perform the operation. Here are some examples of source object URLs:\n * - https://myaccount.blob.core.windows.net/mycontainer/myblob\n * - https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=\n * @param offset - From which position of the blob to download, greater than or equal to 0\n * @param count - How much data to be downloaded, greater than 0. Will download to the end when undefined\n * @param options - Options to the Block Blob Stage Block From URL operation.\n * @returns Response data for the Block Blob Stage Block From URL operation.\n */\n public async stageBlockFromURL(\n blockId: string,\n sourceURL: string,\n offset: number = 0,\n count?: number,\n options: BlockBlobStageBlockFromURLOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlockBlobClient-stageBlockFromURL\", options);\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.blockBlobContext.stageBlockFromURL(blockId, 0, sourceURL, {\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n sourceContentMD5: options.sourceContentMD5,\n sourceContentCrc64: options.sourceContentCrc64,\n sourceRange: offset === 0 && !count ? undefined : rangeToString({ offset, count }),\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n copySourceAuthorization: httpAuthorizationToString(options.sourceAuthorization),\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Writes a blob by specifying the list of block IDs that make up the blob.\n * In order to be written as part of a blob, a block must have been successfully written\n * to the server in a prior {@link stageBlock} operation. You can call {@link commitBlockList} to\n * update a blob by uploading only those blocks that have changed, then committing the new and existing\n * blocks together. Any blocks not specified in the block list and permanently deleted.\n * @see https://docs.microsoft.com/rest/api/storageservices/put-block-list\n *\n * @param blocks - Array of 64-byte value that is base64-encoded\n * @param options - Options to the Block Blob Commit Block List operation.\n * @returns Response data for the Block Blob Commit Block List operation.\n */\n public async commitBlockList(\n blocks: string[],\n options: BlockBlobCommitBlockListOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, updatedOptions } = createSpan(\"BlockBlobClient-commitBlockList\", options);\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.blockBlobContext.commitBlockList(\n { latest: blocks },\n {\n abortSignal: options.abortSignal,\n blobHttpHeaders: options.blobHTTPHeaders,\n leaseAccessConditions: options.conditions,\n metadata: options.metadata,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n immutabilityPolicyExpiry: options.immutabilityPolicy?.expiriesOn,\n immutabilityPolicyMode: options.immutabilityPolicy?.policyMode,\n legalHold: options.legalHold,\n tier: toAccessTier(options.tier),\n blobTagsString: toBlobTagsString(options.tags),\n ...convertTracingToRequestOptionsBase(updatedOptions),\n }\n );\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Returns the list of blocks that have been uploaded as part of a block blob\n * using the specified block list filter.\n * @see https://docs.microsoft.com/rest/api/storageservices/get-block-list\n *\n * @param listType - Specifies whether to return the list of committed blocks,\n * the list of uncommitted blocks, or both lists together.\n * @param options - Options to the Block Blob Get Block List operation.\n * @returns Response data for the Block Blob Get Block List operation.\n */\n public async getBlockList(\n listType: BlockListType,\n options: BlockBlobGetBlockListOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlockBlobClient-getBlockList\", options);\n try {\n const res = await this.blockBlobContext.getBlockList(listType, {\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n\n if (!res.committedBlocks) {\n res.committedBlocks = [];\n }\n\n if (!res.uncommittedBlocks) {\n res.uncommittedBlocks = [];\n }\n\n return res;\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n // High level functions\n\n /**\n * Uploads a Buffer(Node.js)/Blob(browsers)/ArrayBuffer/ArrayBufferView object to a BlockBlob.\n *\n * When data length is no more than the specifiled {@link BlockBlobParallelUploadOptions.maxSingleShotSize} (default is\n * {@link BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES}), this method will use 1 {@link upload} call to finish the upload.\n * Otherwise, this method will call {@link stageBlock} to upload blocks, and finally call {@link commitBlockList}\n * to commit the block list.\n *\n * A common {@link BlockBlobParallelUploadOptions.blobHTTPHeaders} option to set is\n * `blobContentType`, enabling the browser to provide\n * functionality based on file type.\n *\n * @param data - Buffer(Node.js), Blob, ArrayBuffer or ArrayBufferView\n * @param options -\n */\n public async uploadData(\n data: Buffer | Blob | ArrayBuffer | ArrayBufferView,\n options: BlockBlobParallelUploadOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlockBlobClient-uploadData\", options);\n try {\n if (isNode) {\n let buffer: Buffer;\n if (data instanceof Buffer) {\n buffer = data;\n } else if (data instanceof ArrayBuffer) {\n buffer = Buffer.from(data);\n } else {\n data = data as ArrayBufferView;\n buffer = Buffer.from(data.buffer, data.byteOffset, data.byteLength);\n }\n\n return this.uploadSeekableInternal(\n (offset: number, size: number): Buffer => buffer.slice(offset, offset + size),\n buffer.byteLength,\n updatedOptions\n );\n } else {\n const browserBlob = new Blob([data]);\n return this.uploadSeekableInternal(\n (offset: number, size: number): Blob => browserBlob.slice(offset, offset + size),\n browserBlob.size,\n updatedOptions\n );\n }\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * ONLY AVAILABLE IN BROWSERS.\n *\n * Uploads a browser Blob/File/ArrayBuffer/ArrayBufferView object to block blob.\n *\n * When buffer length lesser than or equal to 256MB, this method will use 1 upload call to finish the upload.\n * Otherwise, this method will call {@link stageBlock} to upload blocks, and finally call\n * {@link commitBlockList} to commit the block list.\n *\n * A common {@link BlockBlobParallelUploadOptions.blobHTTPHeaders} option to set is\n * `blobContentType`, enabling the browser to provide\n * functionality based on file type.\n *\n * @deprecated Use {@link uploadData} instead.\n *\n * @param browserData - Blob, File, ArrayBuffer or ArrayBufferView\n * @param options - Options to upload browser data.\n * @returns Response data for the Blob Upload operation.\n */\n public async uploadBrowserData(\n browserData: Blob | ArrayBuffer | ArrayBufferView,\n options: BlockBlobParallelUploadOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlockBlobClient-uploadBrowserData\", options);\n try {\n const browserBlob = new Blob([browserData]);\n return await this.uploadSeekableInternal(\n (offset: number, size: number): Blob => browserBlob.slice(offset, offset + size),\n browserBlob.size,\n updatedOptions\n );\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n *\n * Uploads data to block blob. Requires a bodyFactory as the data source,\n * which need to return a {@link HttpRequestBody} object with the offset and size provided.\n *\n * When data length is no more than the specified {@link BlockBlobParallelUploadOptions.maxSingleShotSize} (default is\n * {@link BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES}), this method will use 1 {@link upload} call to finish the upload.\n * Otherwise, this method will call {@link stageBlock} to upload blocks, and finally call {@link commitBlockList}\n * to commit the block list.\n *\n * @param bodyFactory -\n * @param size - size of the data to upload.\n * @param options - Options to Upload to Block Blob operation.\n * @returns Response data for the Blob Upload operation.\n */\n private async uploadSeekableInternal(\n bodyFactory: (offset: number, size: number) => HttpRequestBody,\n size: number,\n options: BlockBlobParallelUploadOptions = {}\n ): Promise {\n if (!options.blockSize) {\n options.blockSize = 0;\n }\n if (options.blockSize < 0 || options.blockSize > BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES) {\n throw new RangeError(\n `blockSize option must be >= 0 and <= ${BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES}`\n );\n }\n\n if (options.maxSingleShotSize !== 0 && !options.maxSingleShotSize) {\n options.maxSingleShotSize = BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES;\n }\n if (\n options.maxSingleShotSize < 0 ||\n options.maxSingleShotSize > BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES\n ) {\n throw new RangeError(\n `maxSingleShotSize option must be >= 0 and <= ${BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES}`\n );\n }\n\n if (options.blockSize === 0) {\n if (size > BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES * BLOCK_BLOB_MAX_BLOCKS) {\n throw new RangeError(`${size} is too larger to upload to a block blob.`);\n }\n if (size > options.maxSingleShotSize) {\n options.blockSize = Math.ceil(size / BLOCK_BLOB_MAX_BLOCKS);\n if (options.blockSize < DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES) {\n options.blockSize = DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES;\n }\n }\n }\n if (!options.blobHTTPHeaders) {\n options.blobHTTPHeaders = {};\n }\n if (!options.conditions) {\n options.conditions = {};\n }\n\n const { span, updatedOptions } = createSpan(\"BlockBlobClient-uploadSeekableInternal\", options);\n\n try {\n if (size <= options.maxSingleShotSize) {\n return await this.upload(bodyFactory(0, size), size, updatedOptions);\n }\n\n const numBlocks: number = Math.floor((size - 1) / options.blockSize) + 1;\n if (numBlocks > BLOCK_BLOB_MAX_BLOCKS) {\n throw new RangeError(\n `The buffer's size is too big or the BlockSize is too small;` +\n `the number of blocks must be <= ${BLOCK_BLOB_MAX_BLOCKS}`\n );\n }\n\n const blockList: string[] = [];\n const blockIDPrefix = generateUuid();\n let transferProgress: number = 0;\n\n const batch = new Batch(options.concurrency);\n for (let i = 0; i < numBlocks; i++) {\n batch.addOperation(async (): Promise => {\n const blockID = generateBlockID(blockIDPrefix, i);\n const start = options.blockSize! * i;\n const end = i === numBlocks - 1 ? size : start + options.blockSize!;\n const contentLength = end - start;\n blockList.push(blockID);\n await this.stageBlock(blockID, bodyFactory(start, contentLength), contentLength, {\n abortSignal: options.abortSignal,\n conditions: options.conditions,\n encryptionScope: options.encryptionScope,\n tracingOptions: updatedOptions.tracingOptions,\n });\n // Update progress after block is successfully uploaded to server, in case of block trying\n // TODO: Hook with convenience layer progress event in finer level\n transferProgress += contentLength;\n if (options.onProgress) {\n options.onProgress!({\n loadedBytes: transferProgress,\n });\n }\n });\n }\n await batch.do();\n\n return this.commitBlockList(blockList, updatedOptions);\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Uploads a local file in blocks to a block blob.\n *\n * When file size lesser than or equal to 256MB, this method will use 1 upload call to finish the upload.\n * Otherwise, this method will call stageBlock to upload blocks, and finally call commitBlockList\n * to commit the block list.\n *\n * @param filePath - Full path of local file\n * @param options - Options to Upload to Block Blob operation.\n * @returns Response data for the Blob Upload operation.\n */\n public async uploadFile(\n filePath: string,\n options: BlockBlobParallelUploadOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlockBlobClient-uploadFile\", options);\n try {\n const size = (await fsStat(filePath)).size;\n return await this.uploadSeekableInternal(\n (offset, count) => {\n return () =>\n fsCreateReadStream(filePath, {\n autoClose: true,\n end: count ? offset + count - 1 : Infinity,\n start: offset,\n });\n },\n size,\n {\n ...options,\n tracingOptions: {\n ...options!.tracingOptions,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n },\n }\n );\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Uploads a Node.js Readable stream into block blob.\n *\n * PERFORMANCE IMPROVEMENT TIPS:\n * * Input stream highWaterMark is better to set a same value with bufferSize\n * parameter, which will avoid Buffer.concat() operations.\n *\n * @param stream - Node.js Readable stream\n * @param bufferSize - Size of every buffer allocated, also the block size in the uploaded block blob. Default value is 8MB\n * @param maxConcurrency - Max concurrency indicates the max number of buffers that can be allocated,\n * positive correlation with max uploading concurrency. Default value is 5\n * @param options - Options to Upload Stream to Block Blob operation.\n * @returns Response data for the Blob Upload operation.\n */\n public async uploadStream(\n stream: Readable,\n bufferSize: number = DEFAULT_BLOCK_BUFFER_SIZE_BYTES,\n maxConcurrency: number = 5,\n options: BlockBlobUploadStreamOptions = {}\n ): Promise {\n if (!options.blobHTTPHeaders) {\n options.blobHTTPHeaders = {};\n }\n if (!options.conditions) {\n options.conditions = {};\n }\n\n const { span, updatedOptions } = createSpan(\"BlockBlobClient-uploadStream\", options);\n\n try {\n let blockNum = 0;\n const blockIDPrefix = generateUuid();\n let transferProgress: number = 0;\n const blockList: string[] = [];\n\n const scheduler = new BufferScheduler(\n stream,\n bufferSize,\n maxConcurrency,\n async (body, length) => {\n const blockID = generateBlockID(blockIDPrefix, blockNum);\n blockList.push(blockID);\n blockNum++;\n\n await this.stageBlock(blockID, body, length, {\n conditions: options.conditions,\n encryptionScope: options.encryptionScope,\n tracingOptions: updatedOptions.tracingOptions,\n });\n\n // Update progress after block is successfully uploaded to server, in case of block trying\n transferProgress += length;\n if (options.onProgress) {\n options.onProgress({ loadedBytes: transferProgress });\n }\n },\n // concurrency should set a smaller value than maxConcurrency, which is helpful to\n // reduce the possibility when a outgoing handler waits for stream data, in\n // this situation, outgoing handlers are blocked.\n // Outgoing queue shouldn't be empty.\n Math.ceil((maxConcurrency / 4) * 3)\n );\n await scheduler.do();\n\n return await this.commitBlockList(blockList, {\n ...options,\n tracingOptions: {\n ...options!.tracingOptions,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n },\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n}\n\n/**\n * Options to configure the {@link PageBlobClient.create} operation.\n */\nexport interface PageBlobCreateOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when creating a page blob.\n */\n conditions?: BlobRequestConditions;\n /**\n * A user-controlled value that can be used to track requests.\n * The value must be between 0 and 2^63 - 1. The default value is 0.\n */\n blobSequenceNumber?: number;\n /**\n * HTTP headers to set when creating a page blob.\n */\n blobHTTPHeaders?: BlobHTTPHeaders;\n /**\n * A collection of key-value string pair to associate with the blob when creating append blobs.\n */\n metadata?: Metadata;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n /**\n * Optional. Specifies immutability policy for a blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n immutabilityPolicy?: BlobImmutabilityPolicy;\n /**\n * Optional. Indicates if a legal hold should be placed on the blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n legalHold?: boolean;\n /**\n * Access tier.\n * More Details - https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers\n */\n tier?: PremiumPageBlobTier | string;\n /**\n * Blob tags.\n */\n tags?: Tags;\n}\n\n/**\n * Options to configure the {@link PageBlobClient.createIfNotExists} operation.\n */\nexport interface PageBlobCreateIfNotExistsOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * A user-controlled value that can be used to track requests.\n * The value must be between 0 and 2^63 - 1. The default value is 0.\n */\n blobSequenceNumber?: number;\n /**\n * HTTP headers to set when creating a page blob.\n */\n blobHTTPHeaders?: BlobHTTPHeaders;\n /**\n * A collection of key-value string pair to associate with the blob when creating append blobs.\n */\n metadata?: Metadata;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n /**\n * Optional. Specifies immutability policy for a blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n immutabilityPolicy?: BlobImmutabilityPolicy;\n /**\n * Optional. Indicates if a legal hold should be placed on the blob.\n * Note that is parameter is only applicable to a blob within a container that\n * has version level worm enabled.\n */\n legalHold?: boolean;\n /**\n * Access tier.\n * More Details - https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-storage-tiers\n */\n tier?: PremiumPageBlobTier | string;\n}\n\n/**\n * Options to configure the {@link PageBlobClient.uploadPages} operation.\n */\nexport interface PageBlobUploadPagesOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when uploading pages.\n */\n conditions?: PageBlobRequestConditions;\n /**\n * Callback to receive events on the progress of upload pages operation.\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n /**\n * An MD5 hash of the content. This hash is used to verify the integrity of the content during transport.\n * When this is specified, the storage service compares the hash of the content that has arrived with this value.\n *\n * transactionalContentMD5 and transactionalContentCrc64 cannot be set at same time.\n */\n transactionalContentMD5?: Uint8Array;\n /**\n * A CRC64 hash of the content. This hash is used to verify the integrity of the content during transport.\n * When this is specified, the storage service compares the hash of the content that has arrived with this value.\n *\n * transactionalContentMD5 and transactionalContentCrc64 cannot be set at same time.\n */\n transactionalContentCrc64?: Uint8Array;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n}\n\n/**\n * Options to configure the {@link PageBlobClient.clearPages} operation.\n */\nexport interface PageBlobClearPagesOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when clearing pages.\n */\n conditions?: PageBlobRequestConditions;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n}\n\n/**\n * Options to configure the {@link PageBlobClient.getPageRanges} operation.\n */\nexport interface PageBlobGetPageRangesOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when getting page ranges.\n */\n conditions?: BlobRequestConditions;\n}\n\n/**\n * Options to configure page blob - get page ranges segment operations.\n *\n * See:\n * - {@link PageBlobClient.listPageRangesSegment}\n * - {@link PageBlobClient.listPageRangeItemSegments}\n * - {@link PageBlobClient.listPageRangeItems}\n */\ninterface PageBlobListPageRangesSegmentOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when getting page ranges.\n */\n conditions?: BlobRequestConditions;\n /**\n * Specifies the maximum number of containers\n * to return. If the request does not specify maxPageSize, or specifies a\n * value greater than 5000, the server will return up to 5000 items. Note\n * that if the listing operation crosses a partition boundary, then the\n * service will return a continuation token for retrieving the remainder of\n * the results. For this reason, it is possible that the service will return\n * fewer results than specified by maxPageSize, or than the default of 5000.\n */\n maxPageSize?: number;\n}\n\n/**\n * Options to configure the {@link PageBlobClient.listPageRanges} operation.\n */\nexport interface PageBlobListPageRangesOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when getting page ranges.\n */\n conditions?: BlobRequestConditions;\n}\n\n/**\n * Options to configure the {@link PageBlobClient.getRangesDiff} operation.\n */\nexport interface PageBlobGetPageRangesDiffOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when getting page ranges diff.\n */\n conditions?: BlobRequestConditions;\n /**\n * (unused)\n */\n range?: string;\n}\n\n/**\n * Options to configure page blob - get page ranges diff segment operations.\n *\n * See:\n * - {@link PageBlobClient.listPageRangesDiffSegment}\n * - {@link PageBlobClient.listPageRangeDiffItemSegments}\n * - {@link PageBlobClient.listPageRangeDiffItems}\n */\ninterface PageBlobListPageRangesDiffSegmentOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when getting page ranges.\n */\n conditions?: BlobRequestConditions;\n /**\n * Specifies the maximum number of containers\n * to return. If the request does not specify maxPageSize, or specifies a\n * value greater than 5000, the server will return up to 5000 items. Note\n * that if the listing operation crosses a partition boundary, then the\n * service will return a continuation token for retrieving the remainder of\n * the results. For this reason, it is possible that the service will return\n * fewer results than specified by maxPageSize, or than the default of 5000.\n */\n maxPageSize?: number;\n}\n\n/**\n * Options to configure the {@link PageBlobClient.listPageRangesDiff} operation.\n */\nexport interface PageBlobListPageRangesDiffOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when getting page ranges diff.\n */\n conditions?: BlobRequestConditions;\n}\n\n/**\n * Options to configure {@link PageBlobClient.resize} operation.\n */\nexport interface PageBlobResizeOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when resizing a page blob.\n */\n conditions?: BlobRequestConditions;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n}\n\n/**\n * Options to configure {@link PageBlobClient.updateSequenceNumber} operation.\n */\nexport interface PageBlobUpdateSequenceNumberOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when updating sequence number.\n */\n conditions?: BlobRequestConditions;\n}\n\n/**\n * Options to configure {@link PageBlobClient.startCopyIncremental} operation.\n */\nexport interface PageBlobStartCopyIncrementalOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when starting a copy incremental operation.\n */\n conditions?: ModifiedAccessConditions;\n}\n\n/**\n * Options to configure {@link PageBlobClient.uploadPagesFromURL} operation.\n */\nexport interface PageBlobUploadPagesFromURLOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when updating sequence number.\n */\n conditions?: PageBlobRequestConditions;\n /**\n * Conditions to meet for the source Azure Blob/File when copying from a URL to the blob.\n */\n sourceConditions?: MatchConditions & ModificationConditions;\n /**\n * An MD5 hash of the content from the URI.\n * This hash is used to verify the integrity of the content during transport of the data from the URI.\n * When this is specified, the storage service compares the hash of the content that has arrived from the copy-source with this value.\n *\n * sourceContentMD5 and sourceContentCrc64 cannot be set at same time.\n */\n sourceContentMD5?: Uint8Array;\n /**\n * A CRC64 hash of the content from the URI.\n * This hash is used to verify the integrity of the content during transport of the data from the URI.\n * When this is specified, the storage service compares the hash of the content that has arrived from the copy-source with this value.\n *\n * sourceContentMD5 and sourceContentCrc64 cannot be set at same time.\n */\n sourceContentCrc64?: Uint8Array;\n /**\n * Customer Provided Key Info.\n */\n customerProvidedKey?: CpkInfo;\n /**\n * Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to\n * encrypt the data provided in the request. If not specified, encryption is performed with the\n * default account encryption scope. For more information, see Encryption at Rest for Azure\n * Storage Services.\n */\n encryptionScope?: string;\n /**\n * Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source.\n */\n sourceAuthorization?: HttpAuthorization;\n}\n\n/**\n * Contains response data for the {@link PageBlobClient.createIfNotExists} operation.\n */\nexport interface PageBlobCreateIfNotExistsResponse extends PageBlobCreateResponse {\n /**\n * Indicate whether the blob is successfully created. Is false when the blob is not changed as it already exists.\n */\n succeeded: boolean;\n}\n\n/**\n * PageBlobClient defines a set of operations applicable to page blobs.\n */\nexport class PageBlobClient extends BlobClient {\n /**\n * pageBlobsContext provided by protocol layer.\n */\n private pageBlobContext: PageBlob;\n\n /**\n *\n * Creates an instance of PageBlobClient.\n *\n * @param connectionString - Account connection string or a SAS connection string of an Azure storage account.\n * [ Note - Account connection string can only be used in NODE.JS runtime. ]\n * Account connection string example -\n * `DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=accountKey;EndpointSuffix=core.windows.net`\n * SAS connection string example -\n * `BlobEndpoint=https://myaccount.blob.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString`\n * @param containerName - Container name.\n * @param blobName - Blob name.\n * @param options - Optional. Options to configure the HTTP pipeline.\n */\n constructor(\n connectionString: string,\n containerName: string,\n blobName: string,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions\n );\n /**\n * Creates an instance of PageBlobClient.\n * This method accepts an encoded URL or non-encoded URL pointing to a blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * If a blob name includes ? or %, blob name must be encoded in the URL.\n *\n * @param url - A Client string pointing to Azure Storage page blob, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/pageblob\". You can append a SAS\n * if using AnonymousCredential, such as \"https://myaccount.blob.core.windows.net/mycontainer/pageblob?sasString\".\n * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param options - Optional. Options to configure the HTTP pipeline.\n */\n constructor(\n url: string,\n credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions\n );\n /**\n * Creates an instance of PageBlobClient.\n *\n * @param url - A URL string pointing to Azure Storage page blob, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/pageblob\".\n * You can append a SAS if using AnonymousCredential, such as\n * \"https://myaccount.blob.core.windows.net/mycontainer/pageblob?sasString\".\n * This method accepts an encoded URL or non-encoded URL pointing to a blob.\n * Encoded URL string will NOT be escaped twice, only special characters in URL path will be escaped.\n * However, if a blob name includes ? or %, blob name must be encoded in the URL.\n * Such as a blob named \"my?blob%\", the URL should be \"https://myaccount.blob.core.windows.net/mycontainer/my%3Fblob%25\".\n * @param pipeline - Call newPipeline() to create a default\n * pipeline, or provide a customized pipeline.\n */\n constructor(url: string, pipeline: PipelineLike);\n constructor(\n urlOrConnectionString: string,\n credentialOrPipelineOrContainerName:\n | string\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | PipelineLike,\n blobNameOrOptions?: string | StoragePipelineOptions,\n // Legacy, no fix for eslint error without breaking. Disable it for this interface.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n options?: StoragePipelineOptions\n ) {\n // In TypeScript we cannot simply pass all parameters to super() like below so have to duplicate the code instead.\n // super(s, credentialOrPipelineOrContainerNameOrOptions, blobNameOrOptions, options);\n let pipeline: PipelineLike;\n let url: string;\n options = options || {};\n if (isPipelineLike(credentialOrPipelineOrContainerName)) {\n // (url: string, pipeline: Pipeline)\n url = urlOrConnectionString;\n pipeline = credentialOrPipelineOrContainerName;\n } else if (\n (isNode && credentialOrPipelineOrContainerName instanceof StorageSharedKeyCredential) ||\n credentialOrPipelineOrContainerName instanceof AnonymousCredential ||\n isTokenCredential(credentialOrPipelineOrContainerName)\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)\n url = urlOrConnectionString;\n options = blobNameOrOptions as StoragePipelineOptions;\n pipeline = newPipeline(credentialOrPipelineOrContainerName, options);\n } else if (\n !credentialOrPipelineOrContainerName &&\n typeof credentialOrPipelineOrContainerName !== \"string\"\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)\n // The second parameter is undefined. Use anonymous credential.\n url = urlOrConnectionString;\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else if (\n credentialOrPipelineOrContainerName &&\n typeof credentialOrPipelineOrContainerName === \"string\" &&\n blobNameOrOptions &&\n typeof blobNameOrOptions === \"string\"\n ) {\n // (connectionString: string, containerName: string, blobName: string, options?: StoragePipelineOptions)\n const containerName = credentialOrPipelineOrContainerName;\n const blobName = blobNameOrOptions;\n\n const extractedCreds = extractConnectionStringParts(urlOrConnectionString);\n if (extractedCreds.kind === \"AccountConnString\") {\n if (isNode) {\n const sharedKeyCredential = new StorageSharedKeyCredential(\n extractedCreds.accountName!,\n extractedCreds.accountKey\n );\n url = appendToURLPath(\n appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)),\n encodeURIComponent(blobName)\n );\n\n if (!options.proxyOptions) {\n options.proxyOptions = getDefaultProxySettings(extractedCreds.proxyUri);\n }\n\n pipeline = newPipeline(sharedKeyCredential, options);\n } else {\n throw new Error(\"Account connection string is only supported in Node.js environment\");\n }\n } else if (extractedCreds.kind === \"SASConnString\") {\n url =\n appendToURLPath(\n appendToURLPath(extractedCreds.url, encodeURIComponent(containerName)),\n encodeURIComponent(blobName)\n ) +\n \"?\" +\n extractedCreds.accountSas;\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else {\n throw new Error(\n \"Connection string must be either an Account connection string or a SAS connection string\"\n );\n }\n } else {\n throw new Error(\"Expecting non-empty strings for containerName and blobName parameters\");\n }\n super(url, pipeline);\n this.pageBlobContext = new PageBlob(this.storageClientContext);\n }\n\n /**\n * Creates a new PageBlobClient object identical to the source but with the\n * specified snapshot timestamp.\n * Provide \"\" will remove the snapshot and return a Client to the base blob.\n *\n * @param snapshot - The snapshot timestamp.\n * @returns A new PageBlobClient object identical to the source but with the specified snapshot timestamp.\n */\n public withSnapshot(snapshot: string): PageBlobClient {\n return new PageBlobClient(\n setURLParameter(\n this.url,\n URLConstants.Parameters.SNAPSHOT,\n snapshot.length === 0 ? undefined : snapshot\n ),\n this.pipeline\n );\n }\n\n /**\n * Creates a page blob of the specified length. Call uploadPages to upload data\n * data to a page blob.\n * @see https://docs.microsoft.com/rest/api/storageservices/put-blob\n *\n * @param size - size of the page blob.\n * @param options - Options to the Page Blob Create operation.\n * @returns Response data for the Page Blob Create operation.\n */\n public async create(\n size: number,\n options: PageBlobCreateOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, updatedOptions } = createSpan(\"PageBlobClient-create\", options);\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.pageBlobContext.create(0, size, {\n abortSignal: options.abortSignal,\n blobHttpHeaders: options.blobHTTPHeaders,\n blobSequenceNumber: options.blobSequenceNumber,\n leaseAccessConditions: options.conditions,\n metadata: options.metadata,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n immutabilityPolicyExpiry: options.immutabilityPolicy?.expiriesOn,\n immutabilityPolicyMode: options.immutabilityPolicy?.policyMode,\n legalHold: options.legalHold,\n tier: toAccessTier(options.tier),\n blobTagsString: toBlobTagsString(options.tags),\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Creates a page blob of the specified length. Call uploadPages to upload data\n * data to a page blob. If the blob with the same name already exists, the content\n * of the existing blob will remain unchanged.\n * @see https://docs.microsoft.com/rest/api/storageservices/put-blob\n *\n * @param size - size of the page blob.\n * @param options -\n */\n public async createIfNotExists(\n size: number,\n options: PageBlobCreateIfNotExistsOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"PageBlobClient-createIfNotExists\", options);\n try {\n const conditions = { ifNoneMatch: ETagAny };\n const res = await this.create(size, {\n ...options,\n conditions,\n tracingOptions: updatedOptions.tracingOptions,\n });\n return {\n succeeded: true,\n ...res,\n _response: res._response, // _response is made non-enumerable\n };\n } catch (e: any) {\n if (e.details?.errorCode === \"BlobAlreadyExists\") {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: \"Expected exception when creating a blob only if it does not already exist.\",\n });\n return {\n succeeded: false,\n ...e.response?.parsedHeaders,\n _response: e.response,\n };\n }\n\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Writes 1 or more pages to the page blob. The start and end offsets must be a multiple of 512.\n * @see https://docs.microsoft.com/rest/api/storageservices/put-page\n *\n * @param body - Data to upload\n * @param offset - Offset of destination page blob\n * @param count - Content length of the body, also number of bytes to be uploaded\n * @param options - Options to the Page Blob Upload Pages operation.\n * @returns Response data for the Page Blob Upload Pages operation.\n */\n public async uploadPages(\n body: HttpRequestBody,\n offset: number,\n count: number,\n options: PageBlobUploadPagesOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, updatedOptions } = createSpan(\"PageBlobClient-uploadPages\", options);\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.pageBlobContext.uploadPages(count, body, {\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n requestOptions: {\n onUploadProgress: options.onProgress,\n },\n range: rangeToString({ offset, count }),\n sequenceNumberAccessConditions: options.conditions,\n transactionalContentMD5: options.transactionalContentMD5,\n transactionalContentCrc64: options.transactionalContentCrc64,\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * The Upload Pages operation writes a range of pages to a page blob where the\n * contents are read from a URL.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/put-page-from-url\n *\n * @param sourceURL - Specify a URL to the copy source, Shared Access Signature(SAS) maybe needed for authentication\n * @param sourceOffset - The source offset to copy from. Pass 0 to copy from the beginning of source page blob\n * @param destOffset - Offset of destination page blob\n * @param count - Number of bytes to be uploaded from source page blob\n * @param options -\n */\n public async uploadPagesFromURL(\n sourceURL: string,\n sourceOffset: number,\n destOffset: number,\n count: number,\n options: PageBlobUploadPagesFromURLOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n options.sourceConditions = options.sourceConditions || {};\n const { span, updatedOptions } = createSpan(\"PageBlobClient-uploadPagesFromURL\", options);\n try {\n ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);\n return await this.pageBlobContext.uploadPagesFromURL(\n sourceURL,\n rangeToString({ offset: sourceOffset, count }),\n 0,\n rangeToString({ offset: destOffset, count }),\n {\n abortSignal: options.abortSignal,\n sourceContentMD5: options.sourceContentMD5,\n sourceContentCrc64: options.sourceContentCrc64,\n leaseAccessConditions: options.conditions,\n sequenceNumberAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n sourceModifiedAccessConditions: {\n sourceIfMatch: options.sourceConditions.ifMatch,\n sourceIfModifiedSince: options.sourceConditions.ifModifiedSince,\n sourceIfNoneMatch: options.sourceConditions.ifNoneMatch,\n sourceIfUnmodifiedSince: options.sourceConditions.ifUnmodifiedSince,\n },\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n copySourceAuthorization: httpAuthorizationToString(options.sourceAuthorization),\n ...convertTracingToRequestOptionsBase(updatedOptions),\n }\n );\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Frees the specified pages from the page blob.\n * @see https://docs.microsoft.com/rest/api/storageservices/put-page\n *\n * @param offset - Starting byte position of the pages to clear.\n * @param count - Number of bytes to clear.\n * @param options - Options to the Page Blob Clear Pages operation.\n * @returns Response data for the Page Blob Clear Pages operation.\n */\n public async clearPages(\n offset: number = 0,\n count?: number,\n options: PageBlobClearPagesOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, updatedOptions } = createSpan(\"PageBlobClient-clearPages\", options);\n try {\n return await this.pageBlobContext.clearPages(0, {\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n range: rangeToString({ offset, count }),\n sequenceNumberAccessConditions: options.conditions,\n cpkInfo: options.customerProvidedKey,\n encryptionScope: options.encryptionScope,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Returns the list of valid page ranges for a page blob or snapshot of a page blob.\n * @see https://docs.microsoft.com/rest/api/storageservices/get-page-ranges\n *\n * @param offset - Starting byte position of the page ranges.\n * @param count - Number of bytes to get.\n * @param options - Options to the Page Blob Get Ranges operation.\n * @returns Response data for the Page Blob Get Ranges operation.\n */\n public async getPageRanges(\n offset: number = 0,\n count?: number,\n options: PageBlobGetPageRangesOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, updatedOptions } = createSpan(\"PageBlobClient-getPageRanges\", options);\n try {\n return await this.pageBlobContext\n .getPageRanges({\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n range: rangeToString({ offset, count }),\n ...convertTracingToRequestOptionsBase(updatedOptions),\n })\n .then(rangeResponseFromModel);\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * getPageRangesSegment returns a single segment of page ranges starting from the\n * specified Marker. Use an empty Marker to start enumeration from the beginning.\n * After getting a segment, process it, and then call getPageRangesSegment again\n * (passing the the previously-returned Marker) to get the next segment.\n * @see https://docs.microsoft.com/rest/api/storageservices/get-page-ranges\n *\n * @param offset - Starting byte position of the page ranges.\n * @param count - Number of bytes to get.\n * @param marker - A string value that identifies the portion of the list to be returned with the next list operation.\n * @param options - Options to PageBlob Get Page Ranges Segment operation.\n */\n private async listPageRangesSegment(\n offset: number = 0,\n count?: number,\n marker?: string,\n options: PageBlobListPageRangesSegmentOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"PageBlobClient-getPageRangesSegment\", options);\n try {\n return await this.pageBlobContext.getPageRanges({\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n range: rangeToString({ offset, count }),\n marker: marker,\n maxPageSize: options.maxPageSize,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n /**\n * Returns an AsyncIterableIterator for {@link PageBlobGetPageRangesResponseModel}\n *\n * @param offset - Starting byte position of the page ranges.\n * @param count - Number of bytes to get.\n * @param marker - A string value that identifies the portion of\n * the get of page ranges to be returned with the next getting operation. The\n * operation returns the ContinuationToken value within the response body if the\n * getting operation did not return all page ranges remaining within the current page.\n * The ContinuationToken value can be used as the value for\n * the marker parameter in a subsequent call to request the next page of get\n * items. The marker value is opaque to the client.\n * @param options - Options to List Page Ranges operation.\n */\n private async *listPageRangeItemSegments(\n offset: number = 0,\n count?: number,\n marker?: string,\n options: PageBlobListPageRangesSegmentOptions = {}\n ): AsyncIterableIterator {\n let getPageRangeItemSegmentsResponse;\n if (!!marker || marker === undefined) {\n do {\n getPageRangeItemSegmentsResponse = await this.listPageRangesSegment(\n offset,\n count,\n marker,\n options\n );\n marker = getPageRangeItemSegmentsResponse.continuationToken;\n yield await getPageRangeItemSegmentsResponse;\n } while (marker);\n }\n }\n\n /**\n * Returns an AsyncIterableIterator of {@link PageRangeInfo} objects\n *\n * @param offset - Starting byte position of the page ranges.\n * @param count - Number of bytes to get.\n * @param options - Options to List Page Ranges operation.\n */\n private async *listPageRangeItems(\n offset: number = 0,\n count?: number,\n options: PageBlobListPageRangesSegmentOptions = {}\n ): AsyncIterableIterator {\n let marker: string | undefined;\n for await (const getPageRangesSegment of this.listPageRangeItemSegments(\n offset,\n count,\n marker,\n options\n )) {\n yield* ExtractPageRangeInfoItems(getPageRangesSegment);\n }\n }\n\n /**\n * Returns an async iterable iterator to list of page ranges for a page blob.\n * @see https://docs.microsoft.com/rest/api/storageservices/get-page-ranges\n *\n * .byPage() returns an async iterable iterator to list of page ranges for a page blob.\n *\n * Example using `for await` syntax:\n *\n * ```js\n * // Get the pageBlobClient before you run these snippets,\n * // Can be obtained from `blobServiceClient.getContainerClient(\"\").getPageBlobClient(\"\");`\n * let i = 1;\n * for await (const pageRange of pageBlobClient.listPageRanges()) {\n * console.log(`Page range ${i++}: ${pageRange.start} - ${pageRange.end}`);\n * }\n * ```\n *\n * Example using `iter.next()`:\n *\n * ```js\n * let i = 1;\n * let iter = pageBlobClient.listPageRanges();\n * let pageRangeItem = await iter.next();\n * while (!pageRangeItem.done) {\n * console.log(`Page range ${i++}: ${pageRangeItem.value.start} - ${pageRangeItem.value.end}, IsClear: ${pageRangeItem.value.isClear}`);\n * pageRangeItem = await iter.next();\n * }\n * ```\n *\n * Example using `byPage()`:\n *\n * ```js\n * // passing optional maxPageSize in the page settings\n * let i = 1;\n * for await (const response of pageBlobClient.listPageRanges().byPage({ maxPageSize: 20 })) {\n * for (const pageRange of response) {\n * console.log(`Page range ${i++}: ${pageRange.start} - ${pageRange.end}`);\n * }\n * }\n * ```\n *\n * Example using paging with a marker:\n *\n * ```js\n * let i = 1;\n * let iterator = pageBlobClient.listPageRanges().byPage({ maxPageSize: 2 });\n * let response = (await iterator.next()).value;\n *\n * // Prints 2 page ranges\n * for (const pageRange of response) {\n * console.log(`Page range ${i++}: ${pageRange.start} - ${pageRange.end}`);\n * }\n *\n * // Gets next marker\n * let marker = response.continuationToken;\n *\n * // Passing next marker as continuationToken\n *\n * iterator = pageBlobClient.listPageRanges().byPage({ continuationToken: marker, maxPageSize: 10 });\n * response = (await iterator.next()).value;\n *\n * // Prints 10 page ranges\n * for (const blob of response) {\n * console.log(`Page range ${i++}: ${pageRange.start} - ${pageRange.end}`);\n * }\n * ```\n * @param offset - Starting byte position of the page ranges.\n * @param count - Number of bytes to get.\n * @param options - Options to the Page Blob Get Ranges operation.\n * @returns An asyncIterableIterator that supports paging.\n */\n public listPageRanges(\n offset: number = 0,\n count?: number,\n options: PageBlobListPageRangesOptions = {}\n ): PagedAsyncIterableIterator {\n options.conditions = options.conditions || {};\n // AsyncIterableIterator to iterate over blobs\n const iter = this.listPageRangeItems(offset, count, options);\n return {\n /**\n * The next method, part of the iteration protocol\n */\n next() {\n return iter.next();\n },\n /**\n * The connection to the async iterator, part of the iteration protocol\n */\n [Symbol.asyncIterator]() {\n return this;\n },\n /**\n * Return an AsyncIterableIterator that works a page at a time\n */\n byPage: (settings: PageSettings = {}) => {\n return this.listPageRangeItemSegments(offset, count, settings.continuationToken, {\n maxPageSize: settings.maxPageSize,\n ...options,\n });\n },\n };\n }\n\n /**\n * Gets the collection of page ranges that differ between a specified snapshot and this page blob.\n * @see https://docs.microsoft.com/rest/api/storageservices/get-page-ranges\n *\n * @param offset - Starting byte position of the page blob\n * @param count - Number of bytes to get ranges diff.\n * @param prevSnapshot - Timestamp of snapshot to retrieve the difference.\n * @param options - Options to the Page Blob Get Page Ranges Diff operation.\n * @returns Response data for the Page Blob Get Page Range Diff operation.\n */\n public async getPageRangesDiff(\n offset: number,\n count: number,\n prevSnapshot: string,\n options: PageBlobGetPageRangesDiffOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, updatedOptions } = createSpan(\"PageBlobClient-getPageRangesDiff\", options);\n\n try {\n return await this.pageBlobContext\n .getPageRangesDiff({\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n prevsnapshot: prevSnapshot,\n range: rangeToString({ offset, count }),\n ...convertTracingToRequestOptionsBase(updatedOptions),\n })\n .then(rangeResponseFromModel);\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * getPageRangesDiffSegment returns a single segment of page ranges starting from the\n * specified Marker for difference between previous snapshot and the target page blob.\n * Use an empty Marker to start enumeration from the beginning.\n * After getting a segment, process it, and then call getPageRangesDiffSegment again\n * (passing the the previously-returned Marker) to get the next segment.\n * @see https://docs.microsoft.com/rest/api/storageservices/get-page-ranges\n *\n * @param offset - Starting byte position of the page ranges.\n * @param count - Number of bytes to get.\n * @param prevSnapshotOrUrl - Timestamp of snapshot to retrieve the difference or URL of snapshot to retrieve the difference.\n * @param marker - A string value that identifies the portion of the get to be returned with the next get operation.\n * @param options - Options to the Page Blob Get Page Ranges Diff operation.\n */\n private async listPageRangesDiffSegment(\n offset: number,\n count: number,\n prevSnapshotOrUrl: string,\n marker?: string,\n options?: PageBlobListPageRangesDiffSegmentOptions\n ): Promise {\n const { span, updatedOptions } = createSpan(\"PageBlobClient-getPageRangesDiffSegment\", options);\n try {\n return await this.pageBlobContext.getPageRangesDiff({\n abortSignal: options?.abortSignal,\n leaseAccessConditions: options?.conditions,\n modifiedAccessConditions: {\n ...options?.conditions,\n ifTags: options?.conditions?.tagConditions,\n },\n prevsnapshot: prevSnapshotOrUrl,\n range: rangeToString({\n offset: offset,\n count: count,\n }),\n marker: marker,\n maxPageSize: options?.maxPageSize,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n /**\n * Returns an AsyncIterableIterator for {@link PageBlobGetPageRangesDiffResponseModel}\n *\n *\n * @param offset - Starting byte position of the page ranges.\n * @param count - Number of bytes to get.\n * @param prevSnapshotOrUrl - Timestamp of snapshot to retrieve the difference or URL of snapshot to retrieve the difference.\n * @param marker - A string value that identifies the portion of\n * the get of page ranges to be returned with the next getting operation. The\n * operation returns the ContinuationToken value within the response body if the\n * getting operation did not return all page ranges remaining within the current page.\n * The ContinuationToken value can be used as the value for\n * the marker parameter in a subsequent call to request the next page of get\n * items. The marker value is opaque to the client.\n * @param options - Options to the Page Blob Get Page Ranges Diff operation.\n */\n private async *listPageRangeDiffItemSegments(\n offset: number,\n count: number,\n prevSnapshotOrUrl: string,\n marker?: string,\n options?: PageBlobListPageRangesDiffSegmentOptions\n ): AsyncIterableIterator {\n let getPageRangeItemSegmentsResponse;\n if (!!marker || marker === undefined) {\n do {\n getPageRangeItemSegmentsResponse = await this.listPageRangesDiffSegment(\n offset,\n count,\n prevSnapshotOrUrl,\n marker,\n options\n );\n marker = getPageRangeItemSegmentsResponse.continuationToken;\n yield await getPageRangeItemSegmentsResponse;\n } while (marker);\n }\n }\n\n /**\n * Returns an AsyncIterableIterator of {@link PageRangeInfo} objects\n *\n * @param offset - Starting byte position of the page ranges.\n * @param count - Number of bytes to get.\n * @param prevSnapshotOrUrl - Timestamp of snapshot to retrieve the difference or URL of snapshot to retrieve the difference.\n * @param options - Options to the Page Blob Get Page Ranges Diff operation.\n */\n private async *listPageRangeDiffItems(\n offset: number,\n count: number,\n prevSnapshotOrUrl: string,\n options?: PageBlobListPageRangesDiffSegmentOptions\n ): AsyncIterableIterator {\n let marker: string | undefined;\n for await (const getPageRangesSegment of this.listPageRangeDiffItemSegments(\n offset,\n count,\n prevSnapshotOrUrl,\n marker,\n options\n )) {\n yield* ExtractPageRangeInfoItems(getPageRangesSegment);\n }\n }\n\n /**\n * Returns an async iterable iterator to list of page ranges that differ between a specified snapshot and this page blob.\n * @see https://docs.microsoft.com/rest/api/storageservices/get-page-ranges\n *\n * .byPage() returns an async iterable iterator to list of page ranges that differ between a specified snapshot and this page blob.\n *\n * Example using `for await` syntax:\n *\n * ```js\n * // Get the pageBlobClient before you run these snippets,\n * // Can be obtained from `blobServiceClient.getContainerClient(\"\").getPageBlobClient(\"\");`\n * let i = 1;\n * for await (const pageRange of pageBlobClient.listPageRangesDiff()) {\n * console.log(`Page range ${i++}: ${pageRange.start} - ${pageRange.end}`);\n * }\n * ```\n *\n * Example using `iter.next()`:\n *\n * ```js\n * let i = 1;\n * let iter = pageBlobClient.listPageRangesDiff();\n * let pageRangeItem = await iter.next();\n * while (!pageRangeItem.done) {\n * console.log(`Page range ${i++}: ${pageRangeItem.value.start} - ${pageRangeItem.value.end}, IsClear: ${pageRangeItem.value.isClear}`);\n * pageRangeItem = await iter.next();\n * }\n * ```\n *\n * Example using `byPage()`:\n *\n * ```js\n * // passing optional maxPageSize in the page settings\n * let i = 1;\n * for await (const response of pageBlobClient.listPageRangesDiff().byPage({ maxPageSize: 20 })) {\n * for (const pageRange of response) {\n * console.log(`Page range ${i++}: ${pageRange.start} - ${pageRange.end}`);\n * }\n * }\n * ```\n *\n * Example using paging with a marker:\n *\n * ```js\n * let i = 1;\n * let iterator = pageBlobClient.listPageRangesDiff().byPage({ maxPageSize: 2 });\n * let response = (await iterator.next()).value;\n *\n * // Prints 2 page ranges\n * for (const pageRange of response) {\n * console.log(`Page range ${i++}: ${pageRange.start} - ${pageRange.end}`);\n * }\n *\n * // Gets next marker\n * let marker = response.continuationToken;\n *\n * // Passing next marker as continuationToken\n *\n * iterator = pageBlobClient.listPageRangesDiff().byPage({ continuationToken: marker, maxPageSize: 10 });\n * response = (await iterator.next()).value;\n *\n * // Prints 10 page ranges\n * for (const blob of response) {\n * console.log(`Page range ${i++}: ${pageRange.start} - ${pageRange.end}`);\n * }\n * ```\n * @param offset - Starting byte position of the page ranges.\n * @param count - Number of bytes to get.\n * @param prevSnapshot - Timestamp of snapshot to retrieve the difference.\n * @param options - Options to the Page Blob Get Ranges operation.\n * @returns An asyncIterableIterator that supports paging.\n */\n public listPageRangesDiff(\n offset: number,\n count: number,\n prevSnapshot: string,\n options: PageBlobListPageRangesDiffOptions = {}\n ): PagedAsyncIterableIterator {\n options.conditions = options.conditions || {};\n\n // AsyncIterableIterator to iterate over blobs\n const iter = this.listPageRangeDiffItems(offset, count, prevSnapshot, {\n ...options,\n });\n return {\n /**\n * The next method, part of the iteration protocol\n */\n next() {\n return iter.next();\n },\n /**\n * The connection to the async iterator, part of the iteration protocol\n */\n [Symbol.asyncIterator]() {\n return this;\n },\n /**\n * Return an AsyncIterableIterator that works a page at a time\n */\n byPage: (settings: PageSettings = {}) => {\n return this.listPageRangeDiffItemSegments(\n offset,\n count,\n prevSnapshot,\n settings.continuationToken,\n {\n maxPageSize: settings.maxPageSize,\n ...options,\n }\n );\n },\n };\n }\n\n /**\n * Gets the collection of page ranges that differ between a specified snapshot and this page blob for managed disks.\n * @see https://docs.microsoft.com/rest/api/storageservices/get-page-ranges\n *\n * @param offset - Starting byte position of the page blob\n * @param count - Number of bytes to get ranges diff.\n * @param prevSnapshotUrl - URL of snapshot to retrieve the difference.\n * @param options - Options to the Page Blob Get Page Ranges Diff operation.\n * @returns Response data for the Page Blob Get Page Range Diff operation.\n */\n public async getPageRangesDiffForManagedDisks(\n offset: number,\n count: number,\n prevSnapshotUrl: string,\n options: PageBlobGetPageRangesDiffOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, updatedOptions } = createSpan(\n \"PageBlobClient-GetPageRangesDiffForManagedDisks\",\n options\n );\n\n try {\n return await this.pageBlobContext\n .getPageRangesDiff({\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n prevSnapshotUrl,\n range: rangeToString({ offset, count }),\n ...convertTracingToRequestOptionsBase(updatedOptions),\n })\n .then(rangeResponseFromModel);\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Resizes the page blob to the specified size (which must be a multiple of 512).\n * @see https://docs.microsoft.com/rest/api/storageservices/set-blob-properties\n *\n * @param size - Target size\n * @param options - Options to the Page Blob Resize operation.\n * @returns Response data for the Page Blob Resize operation.\n */\n public async resize(\n size: number,\n options: PageBlobResizeOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, updatedOptions } = createSpan(\"PageBlobClient-resize\", options);\n try {\n return await this.pageBlobContext.resize(size, {\n abortSignal: options.abortSignal,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n encryptionScope: options.encryptionScope,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Sets a page blob's sequence number.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-properties\n *\n * @param sequenceNumberAction - Indicates how the service should modify the blob's sequence number.\n * @param sequenceNumber - Required if sequenceNumberAction is max or update\n * @param options - Options to the Page Blob Update Sequence Number operation.\n * @returns Response data for the Page Blob Update Sequence Number operation.\n */\n public async updateSequenceNumber(\n sequenceNumberAction: SequenceNumberActionType,\n sequenceNumber?: number,\n options: PageBlobUpdateSequenceNumberOptions = {}\n ): Promise {\n options.conditions = options.conditions || {};\n const { span, updatedOptions } = createSpan(\"PageBlobClient-updateSequenceNumber\", options);\n try {\n return await this.pageBlobContext.updateSequenceNumber(sequenceNumberAction, {\n abortSignal: options.abortSignal,\n blobSequenceNumber: sequenceNumber,\n leaseAccessConditions: options.conditions,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Begins an operation to start an incremental copy from one page blob's snapshot to this page blob.\n * The snapshot is copied such that only the differential changes between the previously\n * copied snapshot are transferred to the destination.\n * The copied snapshots are complete copies of the original snapshot and can be read or copied from as usual.\n * @see https://docs.microsoft.com/rest/api/storageservices/incremental-copy-blob\n * @see https://docs.microsoft.com/en-us/azure/virtual-machines/windows/incremental-snapshots\n *\n * @param copySource - Specifies the name of the source page blob snapshot. For example,\n * https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=\n * @param options - Options to the Page Blob Copy Incremental operation.\n * @returns Response data for the Page Blob Copy Incremental operation.\n */\n public async startCopyIncremental(\n copySource: string,\n options: PageBlobStartCopyIncrementalOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"PageBlobClient-startCopyIncremental\", options);\n try {\n return await this.pageBlobContext.copyIncremental(copySource, {\n abortSignal: options.abortSignal,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { ObjCreate, strShimFunction, strShimObject, strShimPrototype, strShimUndefined } from \"./Constants\";\r\n\r\ndeclare var globalThis: Window;\r\ndeclare var global: Window;\r\n\r\nlet _cachedGlobal: Window = null;\r\n\r\n/**\r\n * Returns the current global scope object, for a normal web page this will be the current\r\n * window, for a Web Worker this will be current worker global scope via \"self\". The internal\r\n * implementation returns the first available instance object in the following order\r\n * - globalThis (New standard)\r\n * - self (Will return the current window instance for supported browsers)\r\n * - window (fallback for older browser implementations)\r\n * - global (NodeJS standard)\r\n * - (When all else fails)\r\n * While the return type is a Window for the normal case, not all environments will support all\r\n * of the properties or functions.\r\n */\r\n export function getGlobal(useCached: boolean = true): Window {\r\n if (!_cachedGlobal || !useCached) {\r\n\r\n if (typeof globalThis !== strShimUndefined && globalThis) {\r\n _cachedGlobal = globalThis;\r\n }\r\n\r\n if (typeof self !== strShimUndefined && self) {\r\n _cachedGlobal = self;\r\n }\r\n\r\n if (typeof window !== strShimUndefined && window) {\r\n _cachedGlobal = window;\r\n }\r\n\r\n if (typeof global !== strShimUndefined && global) {\r\n _cachedGlobal = global;\r\n }\r\n }\r\n\r\n return _cachedGlobal;\r\n}\r\n\r\nexport function throwTypeError(message: string): never {\r\n throw new TypeError(message);\r\n}\r\n\r\n/**\r\n * Creates an object that has the specified prototype, and that optionally contains specified properties. This helper exists to avoid adding a polyfil\r\n * for older browsers that do not define Object.create eg. ES3 only, IE8 just in case any page checks for presence/absence of the prototype implementation.\r\n * Note: For consistency this will not use the Object.create implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param obj Object to use as a prototype. May be null\r\n */\r\nexport function objCreateFn(obj: any): any {\r\n var func = ObjCreate;\r\n // Use build in Object.create\r\n if (func) {\r\n // Use Object create method if it exists\r\n return func(obj);\r\n }\r\n if (obj == null) {\r\n return {};\r\n }\r\n var type = typeof obj;\r\n if (type !== strShimObject && type !== strShimFunction) {\r\n throwTypeError(\"Object prototype may only be an Object:\" + obj);\r\n }\r\n\r\n function tmpFunc() {}\r\n tmpFunc[strShimPrototype] = obj;\r\n\r\n return new (tmpFunc as any)();\r\n}\r\n\r\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export interface IVendorSettings {\n isWebkit?: boolean;\n isMoz?: boolean;\n isMs?: boolean;\n isOpera?: boolean;\n}\n\nlet _vendorSettings: IVendorSettings | undefined;\n\nexport function getVendorSettings(): IVendorSettings {\n if (!_vendorSettings) {\n const doc = typeof document !== 'undefined' ? document : undefined;\n const nav = typeof navigator !== 'undefined' ? navigator : undefined;\n const userAgent = nav?.userAgent?.toLowerCase();\n\n if (!doc) {\n _vendorSettings = {\n isWebkit: true,\n isMoz: true,\n isOpera: true,\n isMs: true,\n };\n } else {\n _vendorSettings = {\n isWebkit: !!(doc && 'WebkitAppearance' in doc.documentElement.style),\n isMoz: !!(userAgent && userAgent.indexOf('firefox') > -1),\n isOpera: !!(userAgent && userAgent.indexOf('opera') > -1),\n isMs: !!(nav && (/rv:11.0/i.test(nav.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent))),\n };\n }\n }\n\n return _vendorSettings;\n}\n\n/**\n * Sets the vendor settings for prefixing and vendor specific operations.\n */\nexport function setVendorSettings(vendorSettings?: IVendorSettings): void {\n _vendorSettings = vendorSettings;\n}\n","const rules: { [key: string]: string } = {};\n\nexport function kebabRules(rulePairs: (string | number)[], index: number): void {\n const rule: string = rulePairs[index] as string;\n\n if (rule.charAt(0) !== '-') {\n rulePairs[index] = rules[rule] = rules[rule] || rule.replace(/([A-Z])/g, '-$1').toLowerCase();\n }\n}\n","import { getVendorSettings } from '../getVendorSettings';\n\nconst autoPrefixNames: { [key: string]: number } = {\n 'user-select': 1,\n};\n\nexport function prefixRules(rulePairs: (string | number)[], index: number): void {\n const vendorSettings = getVendorSettings();\n\n const name = rulePairs[index];\n\n if (autoPrefixNames[name]) {\n const value = rulePairs[index + 1];\n\n if (autoPrefixNames[name]) {\n if (vendorSettings.isWebkit) {\n rulePairs.push('-webkit-' + name, value);\n }\n if (vendorSettings.isMoz) {\n rulePairs.push('-moz-' + name, value);\n }\n if (vendorSettings.isMs) {\n rulePairs.push('-ms-' + name, value);\n }\n if (vendorSettings.isOpera) {\n rulePairs.push('-o-' + name, value);\n }\n }\n }\n}\n","const NON_PIXEL_NUMBER_PROPS = [\n 'column-count',\n 'font-weight',\n 'flex',\n 'flex-grow',\n 'flex-shrink',\n 'fill-opacity',\n 'opacity',\n 'order',\n 'z-index',\n 'zoom',\n];\n\nexport function provideUnits(rulePairs: (string | number)[], index: number): void {\n const name = rulePairs[index] as string;\n const value = rulePairs[index + 1];\n\n if (typeof value === 'number') {\n const isNonPixelProp = NON_PIXEL_NUMBER_PROPS.indexOf(name as string) > -1;\n const isVariableOrPrefixed = name.indexOf('--') > -1;\n const unit = isNonPixelProp || isVariableOrPrefixed ? '' : 'px';\n\n rulePairs[index + 1] = `${value}${unit}`;\n }\n}\n","import { IStyleOptions } from '../IStyleOptions';\n\nconst LEFT = 'left';\nconst RIGHT = 'right';\nconst NO_FLIP = '@noflip';\nconst NAME_REPLACEMENTS: { [key: string]: string } = {\n [LEFT]: RIGHT,\n [RIGHT]: LEFT,\n};\nconst VALUE_REPLACEMENTS: { [key: string]: string } = {\n 'w-resize': 'e-resize',\n 'sw-resize': 'se-resize',\n 'nw-resize': 'ne-resize',\n};\n\n/**\n * RTLifies the rulePair in the array at the current index. This mutates the array for performance\n * reasons.\n */\nexport function rtlifyRules(options: IStyleOptions, rulePairs: (string | number)[], index: number): void {\n if (options.rtl) {\n const name = rulePairs[index] as string;\n\n if (!name) {\n return;\n }\n\n const value = rulePairs[index + 1] as string;\n\n if (typeof value === 'string' && value.indexOf(NO_FLIP) >= 0) {\n rulePairs[index + 1] = value.replace(/\\s*(?:\\/\\*\\s*)?\\@noflip\\b(?:\\s*\\*\\/)?\\s*?/g, '');\n } else if (name.indexOf(LEFT) >= 0) {\n rulePairs[index] = name.replace(LEFT, RIGHT);\n } else if (name.indexOf(RIGHT) >= 0) {\n rulePairs[index] = name.replace(RIGHT, LEFT);\n } else if (String(value).indexOf(LEFT) >= 0) {\n rulePairs[index + 1] = value.replace(LEFT, RIGHT);\n } else if (String(value).indexOf(RIGHT) >= 0) {\n rulePairs[index + 1] = value.replace(RIGHT, LEFT);\n } else if (NAME_REPLACEMENTS[name]) {\n rulePairs[index] = NAME_REPLACEMENTS[name];\n } else if (VALUE_REPLACEMENTS[value]) {\n rulePairs[index + 1] = VALUE_REPLACEMENTS[value];\n } else {\n switch (name) {\n case 'margin':\n case 'padding':\n rulePairs[index + 1] = flipQuad(value);\n break;\n case 'box-shadow':\n rulePairs[index + 1] = negateNum(value, 0);\n break;\n }\n }\n }\n}\n\n/**\n * Given a string value in a space delimited format (e.g. \"1 2 3 4\"), negates a particular value.\n */\nfunction negateNum(value: string, partIndex: number): string {\n const parts = value.split(' ');\n const numberVal = parseInt(parts[partIndex], 10);\n\n parts[0] = parts[0].replace(String(numberVal), String(numberVal * -1));\n\n return parts.join(' ');\n}\n\n/**\n * Given a string quad, flips the left and right values.\n */\nfunction flipQuad(value: string): string {\n if (typeof value === 'string') {\n const parts = value.split(' ');\n\n if (parts.length === 4) {\n return `${parts[0]} ${parts[3]} ${parts[2]} ${parts[1]}`;\n }\n }\n\n return value;\n}\n","import { IStyle } from './IStyle';\nimport { IRawStyle } from './IRawStyle';\n\nimport { Stylesheet } from './Stylesheet';\nimport { kebabRules } from './transforms/kebabRules';\nimport { prefixRules } from './transforms/prefixRules';\nimport { provideUnits } from './transforms/provideUnits';\nimport { rtlifyRules } from './transforms/rtlifyRules';\nimport { IStyleOptions } from './IStyleOptions';\nimport { tokenizeWithParentheses } from './tokenizeWithParentheses';\n\nconst DISPLAY_NAME = 'displayName';\n\ntype IDictionary = { [key: string]: any };\n\ninterface IRuleSet {\n __order: string[];\n [key: string]: IDictionary;\n}\n\nfunction getDisplayName(rules?: { [key: string]: IRawStyle }): string | undefined {\n const rootStyle: IStyle = rules && rules['&'];\n\n return rootStyle ? (rootStyle as IRawStyle).displayName : undefined;\n}\n\nconst globalSelectorRegExp = /\\:global\\((.+?)\\)/g;\n\ntype ReplacementInfo = [number, number, string];\n\n/**\n * Finds comma separated selectors in a :global() e.g. \":global(.class1, .class2, .class3)\"\n * and wraps them each in their own global \":global(.class1), :global(.class2), :global(.class3)\"\n *\n * @param selectorWithGlobals The selector to process\n * @returns The updated selector\n */\nfunction expandCommaSeparatedGlobals(selectorWithGlobals: string): string {\n // We the selector does not have a :global() we can shortcut\n if (!globalSelectorRegExp.test(selectorWithGlobals)) {\n return selectorWithGlobals;\n }\n\n const replacementInfo: ReplacementInfo[] = [];\n\n const findGlobal = /\\:global\\((.+?)\\)/g;\n let match = null;\n // Create a result list for global selectors so we can replace them.\n while ((match = findGlobal.exec(selectorWithGlobals))) {\n // Only if the found selector is a comma separated list we'll process it.\n if (match[1].indexOf(',') > -1) {\n replacementInfo.push([\n match.index,\n match.index + match[0].length,\n // Wrap each of the found selectors in :global()\n match[1]\n .split(',')\n .map((v: string) => `:global(${v.trim()})`)\n .join(', '),\n ]);\n }\n }\n\n // Replace the found selectors with their wrapped variants in reverse order\n return replacementInfo\n .reverse()\n .reduce((selector: string, [matchIndex, matchEndIndex, replacement]: ReplacementInfo) => {\n const prefix = selector.slice(0, matchIndex);\n const suffix = selector.slice(matchEndIndex);\n\n return prefix + replacement + suffix;\n }, selectorWithGlobals);\n}\n\nfunction expandSelector(newSelector: string, currentSelector: string): string {\n if (newSelector.indexOf(':global(') >= 0) {\n return newSelector.replace(globalSelectorRegExp, '$1');\n } else if (newSelector.indexOf(':') === 0) {\n return currentSelector + newSelector;\n } else if (newSelector.indexOf('&') < 0) {\n return currentSelector + ' ' + newSelector;\n }\n\n return newSelector;\n}\n\nfunction extractSelector(currentSelector: string, rules: IRuleSet = { __order: [] }, selector: string, value: IStyle) {\n if (selector.indexOf('@') === 0) {\n selector = selector + '{' + currentSelector;\n extractRules([value], rules, selector);\n } else if (selector.indexOf(',') > -1) {\n expandCommaSeparatedGlobals(selector)\n .split(',')\n .map((s: string) => s.trim())\n .forEach((separatedSelector: string) =>\n extractRules([value], rules, expandSelector(separatedSelector, currentSelector)),\n );\n } else {\n extractRules([value], rules, expandSelector(selector, currentSelector));\n }\n}\n\nfunction extractRules(args: IStyle[], rules: IRuleSet = { __order: [] }, currentSelector: string = '&'): IRuleSet {\n const stylesheet = Stylesheet.getInstance();\n let currentRules: IDictionary | undefined = rules[currentSelector] as IDictionary;\n\n if (!currentRules) {\n currentRules = {};\n rules[currentSelector] = currentRules;\n rules.__order.push(currentSelector);\n }\n\n for (const arg of args) {\n // If the arg is a string, we need to look up the class map and merge.\n if (typeof arg === 'string') {\n const expandedRules = stylesheet.argsFromClassName(arg);\n\n if (expandedRules) {\n extractRules(expandedRules, rules, currentSelector);\n }\n // Else if the arg is an array, we need to recurse in.\n } else if (Array.isArray(arg)) {\n extractRules(arg, rules, currentSelector);\n } else {\n for (const prop in arg as any) {\n if ((arg as any).hasOwnProperty(prop)) {\n const propValue = (arg as any)[prop];\n\n if (prop === 'selectors') {\n // every child is a selector.\n const selectors: { [key: string]: IStyle } = (arg as any).selectors;\n\n for (const newSelector in selectors) {\n if (selectors.hasOwnProperty(newSelector)) {\n extractSelector(currentSelector, rules, newSelector, selectors[newSelector]);\n }\n }\n } else if (typeof propValue === 'object') {\n // prop is a selector.\n if (propValue !== null) {\n extractSelector(currentSelector, rules, prop, propValue);\n }\n } else {\n if (propValue !== undefined) {\n // Else, add the rule to the currentSelector.\n if (prop === 'margin' || prop === 'padding') {\n expandQuads(currentRules, prop, propValue);\n } else {\n (currentRules as any)[prop] = propValue;\n }\n }\n }\n }\n }\n }\n }\n\n return rules;\n}\n\nfunction expandQuads(currentRules: IDictionary, name: string, value: string): void {\n let parts = typeof value === 'string' ? tokenizeWithParentheses(value) : [value];\n\n if (parts.length === 0) {\n parts.push(value);\n }\n\n if (parts[parts.length - 1] === '!important') {\n // Remove !important from parts, and append it to each part individually\n parts = parts.slice(0, -1).map(p => p + ' !important');\n }\n\n currentRules[name + 'Top'] = parts[0];\n currentRules[name + 'Right'] = parts[1] || parts[0];\n currentRules[name + 'Bottom'] = parts[2] || parts[0];\n currentRules[name + 'Left'] = parts[3] || parts[1] || parts[0];\n}\n\nfunction getKeyForRules(options: IStyleOptions, rules: IRuleSet): string | undefined {\n const serialized: string[] = [options.rtl ? 'rtl' : 'ltr'];\n let hasProps = false;\n\n for (const selector of rules.__order) {\n serialized.push(selector);\n const rulesForSelector = rules[selector];\n\n for (const propName in rulesForSelector) {\n if (rulesForSelector.hasOwnProperty(propName) && rulesForSelector[propName] !== undefined) {\n hasProps = true;\n serialized.push(propName, rulesForSelector[propName]);\n }\n }\n }\n\n return hasProps ? serialized.join('') : undefined;\n}\n\nfunction repeatString(target: string, count: number): string {\n if (count <= 0) {\n return '';\n }\n\n if (count === 1) {\n return target;\n }\n\n return target + repeatString(target, count - 1);\n}\n\nexport function serializeRuleEntries(options: IStyleOptions, ruleEntries: { [key: string]: string | number }): string {\n if (!ruleEntries) {\n return '';\n }\n\n const allEntries: (string | number)[] = [];\n\n for (const entry in ruleEntries) {\n if (ruleEntries.hasOwnProperty(entry) && entry !== DISPLAY_NAME && ruleEntries[entry] !== undefined) {\n allEntries.push(entry, ruleEntries[entry]);\n }\n }\n\n // Apply transforms.\n for (let i = 0; i < allEntries.length; i += 2) {\n kebabRules(allEntries, i);\n provideUnits(allEntries, i);\n rtlifyRules(options, allEntries, i);\n prefixRules(allEntries, i);\n }\n\n // Apply punctuation.\n for (let i = 1; i < allEntries.length; i += 4) {\n allEntries.splice(i, 1, ':', allEntries[i], ';');\n }\n\n return allEntries.join('');\n}\n\nexport interface IRegistration {\n className: string;\n key: string;\n args: IStyle[];\n rulesToInsert: string[];\n}\n\nexport function styleToRegistration(options: IStyleOptions, ...args: IStyle[]): IRegistration | undefined {\n const rules: IRuleSet = extractRules(args);\n const key = getKeyForRules(options, rules);\n\n if (key) {\n const stylesheet = Stylesheet.getInstance();\n const registration: Partial = {\n className: stylesheet.classNameFromKey(key),\n key,\n args,\n };\n\n if (!registration.className) {\n registration.className = stylesheet.getClassName(getDisplayName(rules));\n const rulesToInsert: string[] = [];\n\n for (const selector of rules.__order) {\n rulesToInsert.push(selector, serializeRuleEntries(options, rules[selector]));\n }\n registration.rulesToInsert = rulesToInsert;\n }\n\n return registration as IRegistration;\n }\n\n return undefined;\n}\n\n/**\n * Insert style to stylesheet.\n * @param registration Style registration.\n * @param specificityMultiplier Number of times classname selector is repeated in the css rule.\n * This is to increase css specificity in case it's needed. Default to 1.\n */\nexport function applyRegistration(registration: IRegistration, specificityMultiplier: number = 1): void {\n const stylesheet = Stylesheet.getInstance();\n const { className, key, args, rulesToInsert } = registration;\n\n if (rulesToInsert) {\n // rulesToInsert is an ordered array of selector/rule pairs.\n for (let i = 0; i < rulesToInsert.length; i += 2) {\n const rules = rulesToInsert[i + 1];\n if (rules) {\n let selector = rulesToInsert[i];\n selector = selector.replace(/&/g, repeatString(`.${registration.className}`, specificityMultiplier));\n\n // Insert. Note if a media query, we must close the query with a final bracket.\n const processedRule = `${selector}{${rules}}${selector.indexOf('@') === 0 ? '}' : ''}`;\n stylesheet.insertRule(processedRule);\n }\n }\n stylesheet.cacheClassName(className!, key!, args!, rulesToInsert);\n }\n}\n\nexport function styleToClassName(options: IStyleOptions, ...args: IStyle[]): string {\n const registration = styleToRegistration(options, ...args);\n if (registration) {\n applyRegistration(registration, options.specificityMultiplier);\n\n return registration.className;\n }\n\n return '';\n}\n","/**\n * Split a string into tokens separated by whitespace, except all text within parentheses\n * is treated as a single token (whitespace is ignored within parentheses).\n *\n * Unlike String.split(' '), multiple consecutive space characters are collapsed and\n * removed from the returned array (including leading and trailing spaces).\n *\n * For example:\n * `tokenizeWithParentheses(\"3px calc(var(--x) / 2) 9px 0 \")`\n * => `[\"3px\", \"calc(var(--x) / 2)\", \"9px\", \"0\"]`\n *\n * @returns The array of tokens. Returns an empty array if the string was empty or contained only whitespace.\n */\nexport function tokenizeWithParentheses(value: string): string[] {\n const parts = [];\n let partStart = 0;\n let parens = 0;\n\n for (let i = 0; i < value.length; i++) {\n switch (value[i]) {\n case '(':\n parens++;\n break;\n case ')':\n if (parens) {\n parens--;\n }\n break;\n case '\\t':\n case ' ':\n if (!parens) {\n // Add the new part if it's not an empty string\n if (i > partStart) {\n parts.push(value.substring(partStart, i));\n }\n partStart = i + 1;\n }\n break;\n }\n }\n\n // Add the last part\n if (partStart < value.length) {\n parts.push(value.substring(partStart));\n }\n\n return parts;\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Authority types supported by MSAL.\n */\nexport enum AuthorityType {\n Default,\n Adfs\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { createEnumStyle } from \"@microsoft/applicationinsights-core-js\";\r\nexport var StorageType = createEnumStyle({\r\n LocalStorage: 0 /* eStorageType.LocalStorage */,\r\n SessionStorage: 1 /* eStorageType.SessionStorage */\r\n});\r\nexport var DistributedTracingModes = createEnumStyle({\r\n AI: 0 /* eDistributedTracingModes.AI */,\r\n AI_AND_W3C: 1 /* eDistributedTracingModes.AI_AND_W3C */,\r\n W3C: 2 /* eDistributedTracingModes.W3C */\r\n});\r\n//# sourceMappingURL=Enums.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { ObjDefineProperty } from \"@microsoft/applicationinsights-shims\";\r\nimport { _DYN_NODE_TYPE } from \"../__DynamicConstants\";\r\nimport { normalizeJsName } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nimport { newId } from \"./RandomHelper\";\r\nvar _objDefineProperty = ObjDefineProperty;\r\nvar version = '2.8.6';\r\nvar instanceName = \".\" + newId(6);\r\nvar _dataUid = 0;\r\nfunction _createAccessor(target, prop, value) {\r\n if (_objDefineProperty) {\r\n try {\r\n _objDefineProperty(target, prop, {\r\n value: value,\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return true;\r\n }\r\n catch (e) {\r\n // IE8 Defines a defineProperty on Object but it's only supported for DOM elements so it will throw\r\n // We will just ignore this here.\r\n }\r\n }\r\n return false;\r\n}\r\n// Accepts only:\r\n// - Node\r\n// - Node.ELEMENT_NODE\r\n// - Node.DOCUMENT_NODE\r\n// - Object\r\n// - Any\r\nfunction _canAcceptData(target) {\r\n return target[_DYN_NODE_TYPE /* @min:%2enodeType */] === 1 || target[_DYN_NODE_TYPE /* @min:%2enodeType */] === 9 || !(+target[_DYN_NODE_TYPE /* @min:%2enodeType */]);\r\n}\r\nfunction _getCache(data, target) {\r\n var theCache = target[data.id];\r\n if (!theCache) {\r\n theCache = {};\r\n try {\r\n if (_canAcceptData(target)) {\r\n if (!_createAccessor(target, data.id, theCache)) {\r\n // Environment doesn't support accessor, so just use direct assignment\r\n target[data.id] = theCache;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // Not all environments allow extending all objects, so just ignore the cache in those cases\r\n }\r\n }\r\n return theCache;\r\n}\r\nexport function createUniqueNamespace(name, includeVersion) {\r\n if (includeVersion === void 0) { includeVersion = false; }\r\n return normalizeJsName(name + (_dataUid++) + (includeVersion ? \".\" + version : STR_EMPTY) + instanceName);\r\n}\r\nexport function createElmNodeData(name) {\r\n var data = {\r\n id: createUniqueNamespace(\"_aiData-\" + (name || STR_EMPTY) + \".\" + version),\r\n accept: function (target) {\r\n return _canAcceptData(target);\r\n },\r\n get: function (target, name, defValue, addDefault) {\r\n var theCache = target[data.id];\r\n if (!theCache) {\r\n if (addDefault) {\r\n // Side effect is adds the cache\r\n theCache = _getCache(data, target);\r\n theCache[normalizeJsName(name)] = defValue;\r\n }\r\n return defValue;\r\n }\r\n return theCache[normalizeJsName(name)];\r\n },\r\n kill: function (target, name) {\r\n if (target && target[name]) {\r\n try {\r\n delete target[name];\r\n }\r\n catch (e) {\r\n // Just cleaning up, so if this fails -- ignore\r\n }\r\n }\r\n }\r\n };\r\n return data;\r\n}\r\n//# sourceMappingURL=DataCacheHelper.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _DYN_COMPLETE, _DYN_GET_CTX, _DYN_IS_ASYNC, _DYN_IS_CHILD_EVT, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SET_CTX, _DYN_TIME } from \"../__DynamicConstants\";\r\nimport { dateNow, isArray, isFunction, objDefineAccessors } from \"./HelperFuncs\";\r\nimport { STR_GET_PERF_MGR, STR_PERF_EVENT } from \"./InternalConstants\";\r\nvar strExecutionContextKey = \"ctx\";\r\nvar strParentContextKey = \"ParentContextKey\";\r\nvar strChildrenContextKey = \"ChildrenContextKey\";\r\nvar _defaultPerfManager = null;\r\nvar PerfEvent = /** @class */ (function () {\r\n function PerfEvent(name, payloadDetails, isAsync) {\r\n var _self = this;\r\n var accessorDefined = false;\r\n _self.start = dateNow();\r\n _self[_DYN_NAME /* @min:%2ename */] = name;\r\n _self[_DYN_IS_ASYNC /* @min:%2eisAsync */] = isAsync;\r\n _self[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */] = function () { return false; };\r\n if (isFunction(payloadDetails)) {\r\n // Create an accessor to minimize the potential performance impact of executing the payloadDetails callback\r\n var theDetails_1;\r\n accessorDefined = objDefineAccessors(_self, \"payload\", function () {\r\n // Delay the execution of the payloadDetails until needed\r\n if (!theDetails_1 && isFunction(payloadDetails)) {\r\n theDetails_1 = payloadDetails();\r\n // clear it out now so the referenced objects can be garbage collected\r\n payloadDetails = null;\r\n }\r\n return theDetails_1;\r\n });\r\n }\r\n _self[_DYN_GET_CTX /* @min:%2egetCtx */] = function (key) {\r\n if (key) {\r\n // The parent and child links are located directly on the object (for better viewing in the DebugPlugin)\r\n if (key === PerfEvent[strParentContextKey] || key === PerfEvent[strChildrenContextKey]) {\r\n return _self[key];\r\n }\r\n return (_self[strExecutionContextKey] || {})[key];\r\n }\r\n return null;\r\n };\r\n _self[_DYN_SET_CTX /* @min:%2esetCtx */] = function (key, value) {\r\n if (key) {\r\n // Put the parent and child links directly on the object (for better viewing in the DebugPlugin)\r\n if (key === PerfEvent[strParentContextKey]) {\r\n // Simple assumption, if we are setting a parent then we must be a child\r\n if (!_self[key]) {\r\n _self[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */] = function () { return true; };\r\n }\r\n _self[key] = value;\r\n }\r\n else if (key === PerfEvent[strChildrenContextKey]) {\r\n _self[key] = value;\r\n }\r\n else {\r\n var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n ctx[key] = value;\r\n }\r\n }\r\n };\r\n _self[_DYN_COMPLETE /* @min:%2ecomplete */] = function () {\r\n var childTime = 0;\r\n var childEvts = _self[_DYN_GET_CTX /* @min:%2egetCtx */](PerfEvent[strChildrenContextKey]);\r\n if (isArray(childEvts)) {\r\n for (var lp = 0; lp < childEvts[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var childEvt = childEvts[lp];\r\n if (childEvt) {\r\n childTime += childEvt[_DYN_TIME /* @min:%2etime */];\r\n }\r\n }\r\n }\r\n _self[_DYN_TIME /* @min:%2etime */] = dateNow() - _self.start;\r\n _self.exTime = _self[_DYN_TIME /* @min:%2etime */] - childTime;\r\n _self[_DYN_COMPLETE /* @min:%2ecomplete */] = function () { };\r\n if (!accessorDefined && isFunction(payloadDetails)) {\r\n // If we couldn't define the property set during complete -- to minimize the perf impact until after the time\r\n _self.payload = payloadDetails();\r\n }\r\n };\r\n }\r\n PerfEvent.ParentContextKey = \"parent\";\r\n PerfEvent.ChildrenContextKey = \"childEvts\";\r\n return PerfEvent;\r\n}());\r\nexport { PerfEvent };\r\nvar PerfManager = /** @class */ (function () {\r\n function PerfManager(manager) {\r\n /**\r\n * General bucket used for execution context set and retrieved via setCtx() and getCtx.\r\n * Defined as private so it can be visualized via the DebugPlugin\r\n */\r\n this.ctx = {};\r\n dynamicProto(PerfManager, this, function (_self) {\r\n _self.create = function (src, payloadDetails, isAsync) {\r\n // TODO (@MSNev): at some point we will want to add additional configuration to \"select\" which events to instrument\r\n // for now this is just a simple do everything.\r\n return new PerfEvent(src, payloadDetails, isAsync);\r\n };\r\n _self.fire = function (perfEvent) {\r\n if (perfEvent) {\r\n perfEvent[_DYN_COMPLETE /* @min:%2ecomplete */]();\r\n if (manager && isFunction(manager[STR_PERF_EVENT /* @min:%2eperfEvent */])) {\r\n manager[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent);\r\n }\r\n }\r\n };\r\n _self[_DYN_SET_CTX /* @min:%2esetCtx */] = function (key, value) {\r\n if (key) {\r\n var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n ctx[key] = value;\r\n }\r\n };\r\n _self[_DYN_GET_CTX /* @min:%2egetCtx */] = function (key) {\r\n return (_self[strExecutionContextKey] || {})[key];\r\n };\r\n });\r\n }\r\n /**\r\n * Create a new event and start timing, the manager may return null/undefined to indicate that it does not\r\n * want to monitor this source event.\r\n * @param src The source name of the event\r\n * @param payloadDetails - An optional callback function to fetch the payload details for the event.\r\n * @param isAsync - Is the event occurring from a async event\r\n */\r\n PerfManager.prototype.create = function (src, payload, isAsync) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Complete the perfEvent and fire any notifications.\r\n * @param perfEvent Fire the event which will also complete the passed event\r\n */\r\n PerfManager.prototype.fire = function (perfEvent) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Set an execution context value\r\n * @param key - The context key name\r\n * @param value - The value\r\n */\r\n PerfManager.prototype.setCtx = function (key, value) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Get the execution context value\r\n * @param key - The context key\r\n */\r\n PerfManager.prototype.getCtx = function (key) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return PerfManager;\r\n}());\r\nexport { PerfManager };\r\nvar doPerfActiveKey = \"CoreUtils.doPerf\";\r\n/**\r\n * Helper function to wrap a function with a perf event\r\n * @param mgrSource - The Performance Manager or a Performance provider source (may be null)\r\n * @param getSource - The callback to create the source name for the event (if perf monitoring is enabled)\r\n * @param func - The function to call and measure\r\n * @param details - A function to return the payload details\r\n * @param isAsync - Is the event / function being call asynchronously or synchronously\r\n */\r\nexport function doPerf(mgrSource, getSource, func, details, isAsync) {\r\n if (mgrSource) {\r\n var perfMgr = mgrSource;\r\n if (perfMgr[STR_GET_PERF_MGR]) {\r\n // Looks like a perf manager provider object\r\n perfMgr = perfMgr[STR_GET_PERF_MGR]();\r\n }\r\n if (perfMgr) {\r\n var perfEvt = void 0;\r\n var currentActive = perfMgr[_DYN_GET_CTX /* @min:%2egetCtx */](doPerfActiveKey);\r\n try {\r\n perfEvt = perfMgr.create(getSource(), details, isAsync);\r\n if (perfEvt) {\r\n if (currentActive && perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */](PerfEvent[strParentContextKey], currentActive);\r\n if (currentActive[_DYN_GET_CTX /* @min:%2egetCtx */] && currentActive[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n var children = currentActive[_DYN_GET_CTX /* @min:%2egetCtx */](PerfEvent[strChildrenContextKey]);\r\n if (!children) {\r\n children = [];\r\n currentActive[_DYN_SET_CTX /* @min:%2esetCtx */](PerfEvent[strChildrenContextKey], children);\r\n }\r\n children[_DYN_PUSH /* @min:%2epush */](perfEvt);\r\n }\r\n }\r\n // Set this event as the active event now\r\n perfMgr[_DYN_SET_CTX /* @min:%2esetCtx */](doPerfActiveKey, perfEvt);\r\n return func(perfEvt);\r\n }\r\n }\r\n catch (ex) {\r\n if (perfEvt && perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */](\"exception\", ex);\r\n }\r\n }\r\n finally {\r\n // fire the perf event\r\n if (perfEvt) {\r\n perfMgr.fire(perfEvt);\r\n }\r\n // Reset the active event to the previous value\r\n perfMgr[_DYN_SET_CTX /* @min:%2esetCtx */](doPerfActiveKey, currentActive);\r\n }\r\n }\r\n }\r\n return func();\r\n}\r\n/**\r\n * Set the global performance manager to use when there is no core instance or it has not been initialized yet.\r\n * @param perfManager - The IPerfManager instance to use when no performance manager is supplied.\r\n */\r\nexport function setGblPerfMgr(perfManager) {\r\n _defaultPerfManager = perfManager;\r\n}\r\n/**\r\n * Get the current global performance manager that will be used with no performance manager is supplied.\r\n * @returns - The current default manager\r\n */\r\nexport function getGblPerfMgr() {\r\n return _defaultPerfManager;\r\n}\r\n//# sourceMappingURL=PerfManager.js.map","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AuthError } from \"./AuthError\";\n\n/**\n * InteractionRequiredServerErrorMessage contains string constants used by error codes and messages returned by the server indicating interaction is required\n */\nexport const InteractionRequiredServerErrorMessage = [\n \"interaction_required\",\n \"consent_required\",\n \"login_required\"\n];\n\nexport const InteractionRequiredAuthSubErrorMessage = [\n \"message_only\",\n \"additional_action\",\n \"basic_action\",\n \"user_password_expired\",\n \"consent_required\"\n];\n\n/**\n * Interaction required errors defined by the SDK\n */\nexport const InteractionRequiredAuthErrorMessage = {\n noTokensFoundError: {\n code: \"no_tokens_found\",\n desc: \"No refresh token found in the cache. Please sign-in.\"\n },\n native_account_unavailable: {\n code: \"native_account_unavailable\",\n desc: \"The requested account is not available in the native broker. It may have been deleted or logged out. Please sign-in again using an interactive API.\"\n }\n};\n\n/**\n * Error thrown when user interaction is required.\n */\nexport class InteractionRequiredAuthError extends AuthError {\n\n constructor(errorCode?: string, errorMessage?: string, subError?: string) {\n super(errorCode, errorMessage, subError);\n this.name = \"InteractionRequiredAuthError\";\n\n Object.setPrototypeOf(this, InteractionRequiredAuthError.prototype);\n }\n\n /**\n * Helper function used to determine if an error thrown by the server requires interaction to resolve\n * @param errorCode \n * @param errorString \n * @param subError \n */\n static isInteractionRequiredError(errorCode?: string, errorString?: string, subError?: string) : boolean {\n const isInteractionRequiredErrorCode = !!errorCode && InteractionRequiredServerErrorMessage.indexOf(errorCode) > -1;\n const isInteractionRequiredSubError = !!subError && InteractionRequiredAuthSubErrorMessage.indexOf(subError) > -1;\n const isInteractionRequiredErrorDesc = !!errorString && InteractionRequiredServerErrorMessage.some((irErrorCode) => {\n return errorString.indexOf(irErrorCode) > -1;\n });\n\n return isInteractionRequiredErrorCode || isInteractionRequiredErrorDesc || isInteractionRequiredSubError;\n }\n\n /**\n * Creates an error thrown when the authorization code required for a token request is null or empty.\n */\n static createNoTokensFoundError(): InteractionRequiredAuthError {\n return new InteractionRequiredAuthError(InteractionRequiredAuthErrorMessage.noTokensFoundError.code, InteractionRequiredAuthErrorMessage.noTokensFoundError.desc);\n }\n\n /**\n * Creates an error thrown when the native broker returns ACCOUNT_UNAVAILABLE status, indicating that the account was removed and interactive sign-in is required\n * @returns \n */\n static createNativeAccountUnavailableError(): InteractionRequiredAuthError {\n return new InteractionRequiredAuthError(InteractionRequiredAuthErrorMessage.native_account_unavailable.code, InteractionRequiredAuthErrorMessage.native_account_unavailable.desc);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { SasIPRange, ipRangeToString } from \"./SasIPRange\";\nimport { truncatedISO8061Date } from \"../utils/utils.common\";\nimport { UserDelegationKey } from \"../BlobServiceClient\";\n\n/**\n * Protocols for generated SAS.\n */\nexport enum SASProtocol {\n /**\n * Protocol that allows HTTPS only\n */\n Https = \"https\",\n\n /**\n * Protocol that allows both HTTPS and HTTP\n */\n HttpsAndHttp = \"https,http\",\n}\n\n/**\n * Options to construct {@link SASQueryParameters}.\n */\nexport interface SASQueryParametersOptions {\n /**\n * Optional only when identifier is provided.\n * Please refer to {@link AccountSASPermissions}, {@link BlobSASPermissions}, or {@link ContainerSASPermissions} for\n * more details.\n */\n permissions?: string;\n /**\n * Optional. The storage services being accessed (only for Account SAS). Please refer to {@link AccountSASServices}\n * for more details.\n */\n services?: string;\n /**\n * Optional. The storage resource types being accessed (only for Account SAS). Please refer to\n * {@link AccountSASResourceTypes} for more details.\n */\n resourceTypes?: string;\n /**\n * Optional. The allowed HTTP protocol(s).\n */\n protocol?: SASProtocol;\n /**\n * Optional. The start time for this SAS token.\n */\n startsOn?: Date;\n /**\n * Optional only when identifier is provided. The expiry time for this SAS token.\n */\n expiresOn?: Date;\n /**\n * Optional. IP ranges allowed in this SAS.\n */\n ipRange?: SasIPRange;\n /**\n * Optional. The signed identifier (only for {@link BlobSASSignatureValues}).\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/establishing-a-stored-access-policy\n */\n identifier?: string;\n /**\n * Optional. Encryption scope to use when sending requests authorized with this SAS URI.\n */\n encryptionScope?: string;\n /**\n * Optional. Specifies which resources are accessible via the SAS (only for {@link BlobSASSignatureValues}).\n * @see https://docs.microsoft.com/rest/api/storageservices/create-service-sas#specifying-the-signed-resource-blob-service-only\n */\n resource?: string;\n /**\n * Value for cache-control header in Blob/File Service SAS.\n */\n cacheControl?: string;\n /**\n * Value for content-disposition header in Blob/File Service SAS.\n */\n contentDisposition?: string;\n /**\n * Value for content-encoding header in Blob/File Service SAS.\n */\n contentEncoding?: string;\n /**\n * Value for content-length header in Blob/File Service SAS.\n */\n contentLanguage?: string;\n /**\n * Value for content-type header in Blob/File Service SAS.\n */\n contentType?: string;\n /**\n * User delegation key properties.\n */\n userDelegationKey?: UserDelegationKey;\n /**\n * Authorized AAD Object ID in GUID format. The AAD Object ID of a user authorized by the owner of the User Delegation Key\n * to perform the action granted by the SAS. The Azure Storage service will ensure that the owner of the user delegation key\n * has the required permissions before granting access but no additional permission check for the user specified in\n * this value will be performed. This cannot be used in conjuction with {@link signedUnauthorizedUserObjectId}.\n * This is only used for User Delegation SAS.\n */\n preauthorizedAgentObjectId?: string;\n /**\n * A GUID value that will be logged in the storage diagnostic logs and can be used to correlate SAS generation with storage resource access.\n * This is only used for User Delegation SAS.\n */\n correlationId?: string;\n}\n\n/**\n * Represents the components that make up an Azure Storage SAS' query parameters. This type is not constructed directly\n * by the user; it is only generated by the {@link AccountSASSignatureValues} and {@link BlobSASSignatureValues}\n * types. Once generated, it can be encoded into a {@link String} and appended to a URL directly (though caution should\n * be taken here in case there are existing query parameters, which might affect the appropriate means of appending\n * these query parameters).\n *\n * NOTE: Instances of this class are immutable.\n */\nexport class SASQueryParameters {\n /**\n * The storage API version.\n */\n public readonly version: string;\n\n /**\n * Optional. The allowed HTTP protocol(s).\n */\n public readonly protocol?: SASProtocol;\n\n /**\n * Optional. The start time for this SAS token.\n */\n public readonly startsOn?: Date;\n\n /**\n * Optional only when identifier is provided. The expiry time for this SAS token.\n */\n public readonly expiresOn?: Date;\n\n /**\n * Optional only when identifier is provided.\n * Please refer to {@link AccountSASPermissions}, {@link BlobSASPermissions}, or {@link ContainerSASPermissions} for\n * more details.\n */\n public readonly permissions?: string;\n\n /**\n * Optional. The storage services being accessed (only for Account SAS). Please refer to {@link AccountSASServices}\n * for more details.\n */\n public readonly services?: string;\n\n /**\n * Optional. The storage resource types being accessed (only for Account SAS). Please refer to\n * {@link AccountSASResourceTypes} for more details.\n */\n public readonly resourceTypes?: string;\n\n /**\n * Optional. The signed identifier (only for {@link BlobSASSignatureValues}).\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/establishing-a-stored-access-policy\n */\n public readonly identifier?: string;\n\n /**\n * Optional. Encryption scope to use when sending requests authorized with this SAS URI.\n */\n public readonly encryptionScope?: string;\n\n /**\n * Optional. Specifies which resources are accessible via the SAS (only for {@link BlobSASSignatureValues}).\n * @see https://docs.microsoft.com/rest/api/storageservices/create-service-sas#specifying-the-signed-resource-blob-service-only\n */\n public readonly resource?: string;\n\n /**\n * The signature for the SAS token.\n */\n public readonly signature: string;\n\n /**\n * Value for cache-control header in Blob/File Service SAS.\n */\n public readonly cacheControl?: string;\n\n /**\n * Value for content-disposition header in Blob/File Service SAS.\n */\n public readonly contentDisposition?: string;\n\n /**\n * Value for content-encoding header in Blob/File Service SAS.\n */\n public readonly contentEncoding?: string;\n\n /**\n * Value for content-length header in Blob/File Service SAS.\n */\n public readonly contentLanguage?: string;\n\n /**\n * Value for content-type header in Blob/File Service SAS.\n */\n public readonly contentType?: string;\n\n /**\n * Inner value of getter ipRange.\n */\n private readonly ipRangeInner?: SasIPRange;\n\n /**\n * The Azure Active Directory object ID in GUID format.\n * Property of user delegation key.\n */\n private readonly signedOid?: string;\n\n /**\n * The Azure Active Directory tenant ID in GUID format.\n * Property of user delegation key.\n */\n private readonly signedTenantId?: string;\n\n /**\n * The date-time the key is active.\n * Property of user delegation key.\n */\n private readonly signedStartsOn?: Date;\n\n /**\n * The date-time the key expires.\n * Property of user delegation key.\n */\n private readonly signedExpiresOn?: Date;\n\n /**\n * Abbreviation of the Azure Storage service that accepts the user delegation key.\n * Property of user delegation key.\n */\n private readonly signedService?: string;\n\n /**\n * The service version that created the user delegation key.\n * Property of user delegation key.\n */\n private readonly signedVersion?: string;\n\n /**\n * Authorized AAD Object ID in GUID format. The AAD Object ID of a user authorized by the owner of the User Delegation Key\n * to perform the action granted by the SAS. The Azure Storage service will ensure that the owner of the user delegation key\n * has the required permissions before granting access but no additional permission check for the user specified in\n * this value will be performed. This is only used for User Delegation SAS.\n */\n public readonly preauthorizedAgentObjectId?: string;\n\n /**\n * A GUID value that will be logged in the storage diagnostic logs and can be used to correlate SAS generation with storage resource access.\n * This is only used for User Delegation SAS.\n */\n public readonly correlationId?: string;\n\n /**\n * Optional. IP range allowed for this SAS.\n *\n * @readonly\n */\n public get ipRange(): SasIPRange | undefined {\n if (this.ipRangeInner) {\n return {\n end: this.ipRangeInner.end,\n start: this.ipRangeInner.start,\n };\n }\n return undefined;\n }\n\n /**\n * Creates an instance of SASQueryParameters.\n *\n * @param version - Representing the storage version\n * @param signature - Representing the signature for the SAS token\n * @param permissions - Representing the storage permissions\n * @param services - Representing the storage services being accessed (only for Account SAS)\n * @param resourceTypes - Representing the storage resource types being accessed (only for Account SAS)\n * @param protocol - Representing the allowed HTTP protocol(s)\n * @param startsOn - Representing the start time for this SAS token\n * @param expiresOn - Representing the expiry time for this SAS token\n * @param ipRange - Representing the range of valid IP addresses for this SAS token\n * @param identifier - Representing the signed identifier (only for Service SAS)\n * @param resource - Representing the storage container or blob (only for Service SAS)\n * @param cacheControl - Representing the cache-control header (only for Blob/File Service SAS)\n * @param contentDisposition - Representing the content-disposition header (only for Blob/File Service SAS)\n * @param contentEncoding - Representing the content-encoding header (only for Blob/File Service SAS)\n * @param contentLanguage - Representing the content-language header (only for Blob/File Service SAS)\n * @param contentType - Representing the content-type header (only for Blob/File Service SAS)\n * @param userDelegationKey - Representing the user delegation key properties\n * @param preauthorizedAgentObjectId - Representing the authorized AAD Object ID (only for User Delegation SAS)\n * @param correlationId - Representing the correlation ID (only for User Delegation SAS)\n * @param encryptionScope -\n */\n constructor(\n version: string,\n signature: string,\n permissions?: string,\n services?: string,\n resourceTypes?: string,\n protocol?: SASProtocol,\n startsOn?: Date,\n expiresOn?: Date,\n ipRange?: SasIPRange,\n identifier?: string,\n resource?: string,\n cacheControl?: string,\n contentDisposition?: string,\n contentEncoding?: string,\n contentLanguage?: string,\n contentType?: string,\n userDelegationKey?: UserDelegationKey,\n preauthorizedAgentObjectId?: string,\n correlationId?: string,\n encryptionScope?: string\n );\n\n /**\n * Creates an instance of SASQueryParameters.\n *\n * @param version - Representing the storage version\n * @param signature - Representing the signature for the SAS token\n * @param options - Optional. Options to construct the SASQueryParameters.\n */\n constructor(version: string, signature: string, options?: SASQueryParametersOptions);\n\n constructor(\n version: string,\n signature: string,\n permissionsOrOptions?: string | SASQueryParametersOptions,\n services?: string,\n resourceTypes?: string,\n protocol?: SASProtocol,\n startsOn?: Date,\n expiresOn?: Date,\n ipRange?: SasIPRange,\n identifier?: string,\n resource?: string,\n cacheControl?: string,\n contentDisposition?: string,\n contentEncoding?: string,\n contentLanguage?: string,\n contentType?: string,\n userDelegationKey?: UserDelegationKey,\n preauthorizedAgentObjectId?: string,\n correlationId?: string,\n encryptionScope?: string\n ) {\n this.version = version;\n this.signature = signature;\n\n if (permissionsOrOptions !== undefined && typeof permissionsOrOptions !== \"string\") {\n // SASQueryParametersOptions\n this.permissions = permissionsOrOptions.permissions;\n this.services = permissionsOrOptions.services;\n this.resourceTypes = permissionsOrOptions.resourceTypes;\n this.protocol = permissionsOrOptions.protocol;\n this.startsOn = permissionsOrOptions.startsOn;\n this.expiresOn = permissionsOrOptions.expiresOn;\n this.ipRangeInner = permissionsOrOptions.ipRange;\n this.identifier = permissionsOrOptions.identifier;\n this.encryptionScope = permissionsOrOptions.encryptionScope;\n this.resource = permissionsOrOptions.resource;\n this.cacheControl = permissionsOrOptions.cacheControl;\n this.contentDisposition = permissionsOrOptions.contentDisposition;\n this.contentEncoding = permissionsOrOptions.contentEncoding;\n this.contentLanguage = permissionsOrOptions.contentLanguage;\n this.contentType = permissionsOrOptions.contentType;\n\n if (permissionsOrOptions.userDelegationKey) {\n this.signedOid = permissionsOrOptions.userDelegationKey.signedObjectId;\n this.signedTenantId = permissionsOrOptions.userDelegationKey.signedTenantId;\n this.signedStartsOn = permissionsOrOptions.userDelegationKey.signedStartsOn;\n this.signedExpiresOn = permissionsOrOptions.userDelegationKey.signedExpiresOn;\n this.signedService = permissionsOrOptions.userDelegationKey.signedService;\n this.signedVersion = permissionsOrOptions.userDelegationKey.signedVersion;\n\n this.preauthorizedAgentObjectId = permissionsOrOptions.preauthorizedAgentObjectId;\n this.correlationId = permissionsOrOptions.correlationId;\n }\n } else {\n this.services = services;\n this.resourceTypes = resourceTypes;\n this.expiresOn = expiresOn;\n this.permissions = permissionsOrOptions;\n this.protocol = protocol;\n this.startsOn = startsOn;\n this.ipRangeInner = ipRange;\n this.encryptionScope = encryptionScope;\n this.identifier = identifier;\n this.resource = resource;\n this.cacheControl = cacheControl;\n this.contentDisposition = contentDisposition;\n this.contentEncoding = contentEncoding;\n this.contentLanguage = contentLanguage;\n this.contentType = contentType;\n\n if (userDelegationKey) {\n this.signedOid = userDelegationKey.signedObjectId;\n this.signedTenantId = userDelegationKey.signedTenantId;\n this.signedStartsOn = userDelegationKey.signedStartsOn;\n this.signedExpiresOn = userDelegationKey.signedExpiresOn;\n this.signedService = userDelegationKey.signedService;\n this.signedVersion = userDelegationKey.signedVersion;\n\n this.preauthorizedAgentObjectId = preauthorizedAgentObjectId;\n this.correlationId = correlationId;\n }\n }\n }\n\n /**\n * Encodes all SAS query parameters into a string that can be appended to a URL.\n *\n */\n public toString(): string {\n const params: string[] = [\n \"sv\",\n \"ss\",\n \"srt\",\n \"spr\",\n \"st\",\n \"se\",\n \"sip\",\n \"si\",\n \"ses\",\n \"skoid\", // Signed object ID\n \"sktid\", // Signed tenant ID\n \"skt\", // Signed key start time\n \"ske\", // Signed key expiry time\n \"sks\", // Signed key service\n \"skv\", // Signed key version\n \"sr\",\n \"sp\",\n \"sig\",\n \"rscc\",\n \"rscd\",\n \"rsce\",\n \"rscl\",\n \"rsct\",\n \"saoid\",\n \"scid\",\n ];\n const queries: string[] = [];\n\n for (const param of params) {\n switch (param) {\n case \"sv\":\n this.tryAppendQueryParameter(queries, param, this.version);\n break;\n case \"ss\":\n this.tryAppendQueryParameter(queries, param, this.services);\n break;\n case \"srt\":\n this.tryAppendQueryParameter(queries, param, this.resourceTypes);\n break;\n case \"spr\":\n this.tryAppendQueryParameter(queries, param, this.protocol);\n break;\n case \"st\":\n this.tryAppendQueryParameter(\n queries,\n param,\n this.startsOn ? truncatedISO8061Date(this.startsOn, false) : undefined\n );\n break;\n case \"se\":\n this.tryAppendQueryParameter(\n queries,\n param,\n this.expiresOn ? truncatedISO8061Date(this.expiresOn, false) : undefined\n );\n break;\n case \"sip\":\n this.tryAppendQueryParameter(\n queries,\n param,\n this.ipRange ? ipRangeToString(this.ipRange) : undefined\n );\n break;\n case \"si\":\n this.tryAppendQueryParameter(queries, param, this.identifier);\n break;\n case \"ses\":\n this.tryAppendQueryParameter(queries, param, this.encryptionScope);\n break;\n case \"skoid\": // Signed object ID\n this.tryAppendQueryParameter(queries, param, this.signedOid);\n break;\n case \"sktid\": // Signed tenant ID\n this.tryAppendQueryParameter(queries, param, this.signedTenantId);\n break;\n case \"skt\": // Signed key start time\n this.tryAppendQueryParameter(\n queries,\n param,\n this.signedStartsOn ? truncatedISO8061Date(this.signedStartsOn, false) : undefined\n );\n break;\n case \"ske\": // Signed key expiry time\n this.tryAppendQueryParameter(\n queries,\n param,\n this.signedExpiresOn ? truncatedISO8061Date(this.signedExpiresOn, false) : undefined\n );\n break;\n case \"sks\": // Signed key service\n this.tryAppendQueryParameter(queries, param, this.signedService);\n break;\n case \"skv\": // Signed key version\n this.tryAppendQueryParameter(queries, param, this.signedVersion);\n break;\n case \"sr\":\n this.tryAppendQueryParameter(queries, param, this.resource);\n break;\n case \"sp\":\n this.tryAppendQueryParameter(queries, param, this.permissions);\n break;\n case \"sig\":\n this.tryAppendQueryParameter(queries, param, this.signature);\n break;\n case \"rscc\":\n this.tryAppendQueryParameter(queries, param, this.cacheControl);\n break;\n case \"rscd\":\n this.tryAppendQueryParameter(queries, param, this.contentDisposition);\n break;\n case \"rsce\":\n this.tryAppendQueryParameter(queries, param, this.contentEncoding);\n break;\n case \"rscl\":\n this.tryAppendQueryParameter(queries, param, this.contentLanguage);\n break;\n case \"rsct\":\n this.tryAppendQueryParameter(queries, param, this.contentType);\n break;\n case \"saoid\":\n this.tryAppendQueryParameter(queries, param, this.preauthorizedAgentObjectId);\n break;\n case \"scid\":\n this.tryAppendQueryParameter(queries, param, this.correlationId);\n break;\n }\n }\n return queries.join(\"&\");\n }\n\n /**\n * A private helper method used to filter and append query key/value pairs into an array.\n *\n * @param queries -\n * @param key -\n * @param value -\n */\n private tryAppendQueryParameter(queries: string[], key: string, value?: string): void {\n if (!value) {\n return;\n }\n\n key = encodeURIComponent(key);\n value = encodeURIComponent(value);\n if (key.length > 0 && value.length > 0) {\n queries.push(`${key}=${value}`);\n }\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { objCreateFn, strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { _DYN_LENGTH, _DYN_PUSH, _DYN_SET_ENABLED, _DYN_SUBSTR, _DYN_SUBSTRING } from \"../__DynamicConstants\";\r\nimport { _gblCookieMgr } from \"./CookieMgr\";\r\nimport { getPerformance, isIE } from \"./EnvUtils\";\r\nimport { addEventHandler, attachEvent, detachEvent } from \"./EventHelpers\";\r\nimport { arrForEach, arrIndexOf, arrMap, arrReduce, dateNow, hasOwnProperty, isArray, isBoolean, isDate, isError, isFunction, isNullOrUndefined, isNumber, isObject, isString, isTypeof, isUndefined, objDefineAccessors, objKeys, strTrim, toISOString } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nimport { mwcRandom32, mwcRandomSeed, newId, random32, randomValue } from \"./RandomHelper\";\r\nvar _cookieMgrs = null;\r\nvar _canUseCookies; // legacy supported config\r\n// Added to help with minfication\r\nexport var Undefined = strShimUndefined;\r\nexport function newGuid() {\r\n var uuid = generateW3CId();\r\n return uuid[_DYN_SUBSTRING /* @min:%2esubstring */](0, 8) + \"-\" + uuid[_DYN_SUBSTRING /* @min:%2esubstring */](8, 12) + \"-\" + uuid[_DYN_SUBSTRING /* @min:%2esubstring */](12, 16) + \"-\" + uuid[_DYN_SUBSTRING /* @min:%2esubstring */](16, 20) + \"-\" + uuid[_DYN_SUBSTRING /* @min:%2esubstring */](20);\r\n}\r\n/**\r\n * Return the current value of the Performance Api now() function (if available) and fallback to dateNow() if it is unavailable (IE9 or less)\r\n * https://caniuse.com/#search=performance.now\r\n */\r\nexport function perfNow() {\r\n var perf = getPerformance();\r\n if (perf && perf.now) {\r\n return perf.now();\r\n }\r\n return dateNow();\r\n}\r\n/**\r\n * The strEndsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param search - The characters to be searched for at the end of the value.\r\n * @returns true if the given search value is found at the end of the string, otherwise false.\r\n */\r\nexport function strEndsWith(value, search) {\r\n if (value && search) {\r\n var len = value[_DYN_LENGTH /* @min:%2elength */];\r\n var start = len - search[_DYN_LENGTH /* @min:%2elength */];\r\n return value[_DYN_SUBSTRING /* @min:%2esubstring */](start >= 0 ? start : 0, len) === search;\r\n }\r\n return false;\r\n}\r\n/**\r\n * generate W3C trace id\r\n */\r\nexport function generateW3CId() {\r\n var hexValues = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\r\n // rfc4122 version 4 UUID without dashes and with lowercase letters\r\n var oct = STR_EMPTY, tmp;\r\n for (var a = 0; a < 4; a++) {\r\n tmp = random32();\r\n oct +=\r\n hexValues[tmp & 0xF] +\r\n hexValues[tmp >> 4 & 0xF] +\r\n hexValues[tmp >> 8 & 0xF] +\r\n hexValues[tmp >> 12 & 0xF] +\r\n hexValues[tmp >> 16 & 0xF] +\r\n hexValues[tmp >> 20 & 0xF] +\r\n hexValues[tmp >> 24 & 0xF] +\r\n hexValues[tmp >> 28 & 0xF];\r\n }\r\n // \"Set the two most significant bits (bits 6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively\"\r\n var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];\r\n return oct[_DYN_SUBSTR /* @min:%2esubstr */](0, 8) + oct[_DYN_SUBSTR /* @min:%2esubstr */](9, 4) + \"4\" + oct[_DYN_SUBSTR /* @min:%2esubstr */](13, 3) + clockSequenceHi + oct[_DYN_SUBSTR /* @min:%2esubstr */](16, 3) + oct[_DYN_SUBSTR /* @min:%2esubstr */](19, 12);\r\n}\r\n/**\r\n * Provides a collection of utility functions, included for backward compatibility with previous releases.\r\n * @deprecated Marking this instance as deprecated in favor of direct usage of the helper functions\r\n * as direct usage provides better tree-shaking and minification by avoiding the inclusion of the unused items\r\n * in your resulting code.\r\n */\r\nexport var CoreUtils = {\r\n _canUseCookies: undefined,\r\n isTypeof: isTypeof,\r\n isUndefined: isUndefined,\r\n isNullOrUndefined: isNullOrUndefined,\r\n hasOwnProperty: hasOwnProperty,\r\n isFunction: isFunction,\r\n isObject: isObject,\r\n isDate: isDate,\r\n isArray: isArray,\r\n isError: isError,\r\n isString: isString,\r\n isNumber: isNumber,\r\n isBoolean: isBoolean,\r\n toISOString: toISOString,\r\n arrForEach: arrForEach,\r\n arrIndexOf: arrIndexOf,\r\n arrMap: arrMap,\r\n arrReduce: arrReduce,\r\n strTrim: strTrim,\r\n objCreate: objCreateFn,\r\n objKeys: objKeys,\r\n objDefineAccessors: objDefineAccessors,\r\n addEventHandler: addEventHandler,\r\n dateNow: dateNow,\r\n isIE: isIE,\r\n disableCookies: disableCookies,\r\n newGuid: newGuid,\r\n perfNow: perfNow,\r\n newId: newId,\r\n randomValue: randomValue,\r\n random32: random32,\r\n mwcRandomSeed: mwcRandomSeed,\r\n mwcRandom32: mwcRandom32,\r\n generateW3CId: generateW3CId\r\n};\r\nvar GuidRegex = /[xy]/g;\r\nexport var EventHelper = {\r\n Attach: attachEvent,\r\n AttachEvent: attachEvent,\r\n Detach: detachEvent,\r\n DetachEvent: detachEvent\r\n};\r\n/**\r\n * Helper to support backward compatibility for users that use the legacy cookie handling functions and the use the internal\r\n * CoreUtils._canUseCookies global flag to enable/disable cookies usage.\r\n * Note: This has the following deliberate side-effects\r\n * - Creates the global (legacy) cookie manager if it does not already exist\r\n * - Attempts to add \"listeners\" to the CoreUtils._canUseCookies property to support the legacy usage\r\n * @param config\r\n * @param logger\r\n * @returns\r\n */\r\nexport function _legacyCookieMgr(config, logger) {\r\n var cookieMgr = _gblCookieMgr(config, logger);\r\n var legacyCanUseCookies = CoreUtils._canUseCookies;\r\n if (_cookieMgrs === null) {\r\n _cookieMgrs = [];\r\n _canUseCookies = legacyCanUseCookies;\r\n // Dynamically create get/set property accessors for backward compatibility for enabling / disabling cookies\r\n // this WILL NOT work for ES3 browsers (< IE8)\r\n objDefineAccessors(CoreUtils, \"_canUseCookies\", function () {\r\n return _canUseCookies;\r\n }, function (value) {\r\n _canUseCookies = value;\r\n arrForEach(_cookieMgrs, function (mgr) {\r\n mgr[_DYN_SET_ENABLED /* @min:%2esetEnabled */](value);\r\n });\r\n });\r\n }\r\n if (arrIndexOf(_cookieMgrs, cookieMgr) === -1) {\r\n _cookieMgrs[_DYN_PUSH /* @min:%2epush */](cookieMgr);\r\n }\r\n if (isBoolean(legacyCanUseCookies)) {\r\n cookieMgr[_DYN_SET_ENABLED /* @min:%2esetEnabled */](legacyCanUseCookies);\r\n }\r\n if (isBoolean(_canUseCookies)) {\r\n cookieMgr[_DYN_SET_ENABLED /* @min:%2esetEnabled */](_canUseCookies);\r\n }\r\n return cookieMgr;\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().disable()\r\n * Force the SDK not to store and read any data from cookies.\r\n */\r\nexport function disableCookies() {\r\n _legacyCookieMgr()[_DYN_SET_ENABLED /* @min:%2esetEnabled */](false);\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().isEnabled()\r\n * Helper method to tell if document.cookie object is available and whether it can be used.\r\n */\r\nexport function canUseCookies(logger) {\r\n return _legacyCookieMgr(null, logger).isEnabled();\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().get()\r\n * helper method to access userId and sessionId cookie\r\n */\r\nexport function getCookie(logger, name) {\r\n return _legacyCookieMgr(null, logger).get(name);\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().set()\r\n * helper method to set userId and sessionId cookie\r\n */\r\nexport function setCookie(logger, name, value, domain) {\r\n _legacyCookieMgr(null, logger).set(name, value, null, domain);\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().del()\r\n * Deletes a cookie by setting it's expiration time in the past.\r\n * @param name - The name of the cookie to delete.\r\n */\r\nexport function deleteCookie(logger, name) {\r\n return _legacyCookieMgr(null, logger).del(name);\r\n}\r\n//# sourceMappingURL=CoreUtils.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * The format that will be used to join an array of values together for a query parameter value.\n */\nexport enum QueryCollectionFormat {\n /**\n * CSV: Each pair of segments joined by a single comma.\n */\n Csv = \",\",\n /**\n * SSV: Each pair of segments joined by a single space character.\n */\n Ssv = \" \",\n /**\n * TSV: Each pair of segments joined by a single tab character.\n */\n Tsv = \"\\t\",\n /**\n * Pipes: Each pair of segments joined by a single pipe character.\n */\n Pipes = \"|\",\n /**\n * Denotes this is an array of values that should be passed to the server in multiple key/value pairs, e.g. `?queryParam=value1&queryParam=value2`\n */\n Multi = \"Multi\",\n}\n","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import * as React from 'react';\nimport type { ICustomizations } from './Customizations';\n\nexport interface ICustomizerContext {\n customizations: ICustomizations;\n}\n\nexport const CustomizerContext = React.createContext({\n customizations: {\n inCustomizerContext: false,\n settings: {},\n scopedSettings: {},\n },\n});\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n Separators,\n CacheAccountType,\n CacheType,\n Constants,\n} from \"../../utils/Constants\";\nimport { Authority } from \"../../authority/Authority\";\nimport { AuthToken } from \"../../account/AuthToken\";\nimport { ICrypto } from \"../../crypto/ICrypto\";\nimport { buildClientInfo } from \"../../account/ClientInfo\";\nimport { StringUtils } from \"../../utils/StringUtils\";\nimport { AccountInfo } from \"../../account/AccountInfo\";\nimport { ClientAuthError } from \"../../error/ClientAuthError\";\nimport { AuthorityType } from \"../../authority/AuthorityType\";\nimport { Logger } from \"../../logger/Logger\";\nimport { TokenClaims } from \"../../account/TokenClaims\";\n\n/**\n * Type that defines required and optional parameters for an Account field (based on universal cache schema implemented by all MSALs).\n *\n * Key : Value Schema\n *\n * Key: --\n *\n * Value Schema:\n * {\n * homeAccountId: home account identifier for the auth scheme,\n * environment: entity that issued the token, represented as a full host\n * realm: Full tenant or organizational identifier that the account belongs to\n * localAccountId: Original tenant-specific accountID, usually used for legacy cases\n * username: primary username that represents the user, usually corresponds to preferred_username in the v2 endpt\n * authorityType: Accounts authority type as a string\n * name: Full name for the account, including given name and family name,\n * clientInfo: Full base64 encoded client info received from ESTS\n * lastModificationTime: last time this entity was modified in the cache\n * lastModificationApp:\n * idTokenClaims: Object containing claims parsed from ID token\n * nativeAccountId: Account identifier on the native device\n * }\n */\nexport class AccountEntity {\n homeAccountId: string;\n environment: string;\n realm: string;\n localAccountId: string;\n username: string;\n authorityType: string;\n name?: string;\n clientInfo?: string;\n lastModificationTime?: string;\n lastModificationApp?: string;\n cloudGraphHostName?: string;\n msGraphHost?: string;\n idTokenClaims?: TokenClaims;\n nativeAccountId?: string;\n\n /**\n * Generate Account Id key component as per the schema: -\n */\n generateAccountId(): string {\n const accountId: Array = [this.homeAccountId, this.environment];\n return accountId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\n }\n\n /**\n * Generate Account Cache Key as per the schema: --\n */\n generateAccountKey(): string {\n return AccountEntity.generateAccountCacheKey({\n homeAccountId: this.homeAccountId,\n environment: this.environment,\n tenantId: this.realm,\n username: this.username,\n localAccountId: this.localAccountId\n });\n }\n\n /**\n * returns the type of the cache (in this case account)\n */\n generateType(): number {\n switch (this.authorityType) {\n case CacheAccountType.ADFS_ACCOUNT_TYPE:\n return CacheType.ADFS;\n case CacheAccountType.MSAV1_ACCOUNT_TYPE:\n return CacheType.MSA;\n case CacheAccountType.MSSTS_ACCOUNT_TYPE:\n return CacheType.MSSTS;\n case CacheAccountType.GENERIC_ACCOUNT_TYPE:\n return CacheType.GENERIC;\n default: {\n throw ClientAuthError.createUnexpectedAccountTypeError();\n }\n }\n }\n\n /**\n * Returns the AccountInfo interface for this account.\n */\n getAccountInfo(): AccountInfo {\n return {\n homeAccountId: this.homeAccountId,\n environment: this.environment,\n tenantId: this.realm,\n username: this.username,\n localAccountId: this.localAccountId,\n name: this.name,\n idTokenClaims: this.idTokenClaims,\n nativeAccountId: this.nativeAccountId\n };\n }\n\n /**\n * Generates account key from interface\n * @param accountInterface\n */\n static generateAccountCacheKey(accountInterface: AccountInfo): string {\n const accountKey = [\n accountInterface.homeAccountId,\n accountInterface.environment || Constants.EMPTY_STRING,\n accountInterface.tenantId || Constants.EMPTY_STRING,\n ];\n\n return accountKey.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\n }\n\n /**\n * Build Account cache from IdToken, clientInfo and authority/policy. Associated with AAD.\n * @param clientInfo\n * @param authority\n * @param idToken\n * @param policy\n */\n static createAccount(\n clientInfo: string,\n homeAccountId: string,\n idToken: AuthToken,\n authority?: Authority,\n cloudGraphHostName?: string,\n msGraphHost?: string,\n environment?: string,\n nativeAccountId?: string\n ): AccountEntity {\n const account: AccountEntity = new AccountEntity();\n\n account.authorityType = CacheAccountType.MSSTS_ACCOUNT_TYPE;\n account.clientInfo = clientInfo;\n account.homeAccountId = homeAccountId;\n account.nativeAccountId = nativeAccountId;\n\n const env = environment || (authority && authority.getPreferredCache());\n\n if (!env) {\n throw ClientAuthError.createInvalidCacheEnvironmentError();\n }\n\n account.environment = env;\n // non AAD scenarios can have empty realm\n account.realm = idToken?.claims?.tid || Constants.EMPTY_STRING;\n\n if (idToken) {\n account.idTokenClaims = idToken.claims;\n\n // How do you account for MSA CID here?\n account.localAccountId = idToken?.claims?.oid || idToken?.claims?.sub || Constants.EMPTY_STRING;\n\n /*\n * In B2C scenarios the emails claim is used instead of preferred_username and it is an array. In most cases it will contain a single email.\n * This field should not be relied upon if a custom policy is configured to return more than 1 email.\n */\n account.username = idToken?.claims?.preferred_username || (idToken?.claims?.emails? idToken.claims.emails[0]: Constants.EMPTY_STRING);\n account.name = idToken?.claims?.name;\n }\n\n account.cloudGraphHostName = cloudGraphHostName;\n account.msGraphHost = msGraphHost;\n\n return account;\n }\n\n /**\n * Builds non-AAD/ADFS account.\n * @param authority\n * @param idToken\n */\n static createGenericAccount(\n homeAccountId: string,\n idToken: AuthToken,\n authority?: Authority,\n cloudGraphHostName?: string,\n msGraphHost?: string,\n environment?: string\n ): AccountEntity {\n const account: AccountEntity = new AccountEntity();\n\n account.authorityType = (authority && authority.authorityType === AuthorityType.Adfs) ? CacheAccountType.ADFS_ACCOUNT_TYPE : CacheAccountType.GENERIC_ACCOUNT_TYPE;\n account.homeAccountId = homeAccountId;\n // non AAD scenarios can have empty realm\n account.realm = Constants.EMPTY_STRING;\n\n const env = environment || authority && authority.getPreferredCache();\n\n if (!env) {\n throw ClientAuthError.createInvalidCacheEnvironmentError();\n }\n\n if (idToken) {\n // How do you account for MSA CID here?\n account.localAccountId = idToken?.claims?.oid || idToken?.claims?.sub || Constants.EMPTY_STRING;\n // upn claim for most ADFS scenarios\n account.username = idToken?.claims?.upn || Constants.EMPTY_STRING;\n account.name = idToken?.claims?.name || Constants.EMPTY_STRING;\n account.idTokenClaims = idToken?.claims;\n }\n\n account.environment = env;\n\n account.cloudGraphHostName = cloudGraphHostName;\n account.msGraphHost = msGraphHost;\n\n /*\n * add uniqueName to claims\n * account.name = idToken.claims.uniqueName;\n */\n\n return account;\n }\n\n /**\n * Generate HomeAccountId from server response\n * @param serverClientInfo\n * @param authType\n */\n static generateHomeAccountId(serverClientInfo: string, authType: AuthorityType, logger: Logger, cryptoObj: ICrypto, idToken?: AuthToken): string {\n\n const accountId = idToken?.claims?.sub ? idToken.claims.sub : Constants.EMPTY_STRING;\n\n // since ADFS does not have tid and does not set client_info\n if (authType === AuthorityType.Adfs) {\n return accountId;\n }\n\n // for cases where there is clientInfo\n if (serverClientInfo) {\n try {\n const clientInfo = buildClientInfo(serverClientInfo, cryptoObj);\n if (!StringUtils.isEmpty(clientInfo.uid) && !StringUtils.isEmpty(clientInfo.utid)) {\n return `${clientInfo.uid}${Separators.CLIENT_INFO_SEPARATOR}${clientInfo.utid}`;\n }\n } catch (e) {}\n }\n\n // default to \"sub\" claim\n logger.verbose(\"No client info in response\");\n return accountId;\n }\n\n /**\n * Validates an entity: checks for all expected params\n * @param entity\n */\n static isAccountEntity(entity: object): boolean {\n\n if (!entity) {\n return false;\n }\n\n return (\n entity.hasOwnProperty(\"homeAccountId\") &&\n entity.hasOwnProperty(\"environment\") &&\n entity.hasOwnProperty(\"realm\") &&\n entity.hasOwnProperty(\"localAccountId\") &&\n entity.hasOwnProperty(\"username\") &&\n entity.hasOwnProperty(\"authorityType\")\n );\n }\n\n /**\n * Helper function to determine whether 2 accountInfo objects represent the same account\n * @param accountA\n * @param accountB\n * @param compareClaims - If set to true idTokenClaims will also be compared to determine account equality\n */\n static accountInfoIsEqual(accountA: AccountInfo | null, accountB: AccountInfo | null, compareClaims?: boolean): boolean {\n if (!accountA || !accountB) {\n return false;\n }\n\n let claimsMatch = true; // default to true so as to not fail comparison below if compareClaims: false\n if (compareClaims) {\n const accountAClaims = (accountA.idTokenClaims || {}) as TokenClaims;\n const accountBClaims = (accountB.idTokenClaims || {}) as TokenClaims;\n\n // issued at timestamp and nonce are expected to change each time a new id token is acquired\n claimsMatch = (accountAClaims.iat === accountBClaims.iat) &&\n (accountAClaims.nonce === accountBClaims.nonce);\n }\n\n return (accountA.homeAccountId === accountB.homeAccountId) &&\n (accountA.localAccountId === accountB.localAccountId) &&\n (accountA.username === accountB.username) &&\n (accountA.tenantId === accountB.tenantId) &&\n (accountA.environment === accountB.environment) &&\n (accountA.nativeAccountId === accountB.nativeAccountId) &&\n claimsMatch;\n }\n}\n","import { KeyCodes } from './KeyCodes';\nimport { getDocument } from './dom/getDocument';\nimport { getItem, setItem } from './sessionStorage';\nimport { setRTL as mergeStylesSetRTL } from '@fluentui/merge-styles';\n\nconst RTL_LOCAL_STORAGE_KEY = 'isRTL';\n\n// Default to undefined so that we initialize on first read.\nlet _isRTL: boolean | undefined;\n\n/**\n * Gets the rtl state of the page (returns true if in rtl.)\n */\nexport function getRTL(theme: { rtl?: boolean } = {}): boolean {\n if (theme.rtl !== undefined) {\n return theme.rtl;\n }\n if (_isRTL === undefined) {\n // Fabric supports persisting the RTL setting between page refreshes via session storage\n let savedRTL = getItem(RTL_LOCAL_STORAGE_KEY);\n if (savedRTL !== null) {\n _isRTL = savedRTL === '1';\n setRTL(_isRTL);\n }\n\n let doc = getDocument();\n if (_isRTL === undefined && doc) {\n _isRTL = ((doc.body && doc.body.getAttribute('dir')) || doc.documentElement.getAttribute('dir')) === 'rtl';\n mergeStylesSetRTL(_isRTL);\n }\n }\n\n return !!_isRTL;\n}\n\n/**\n * Sets the rtl state of the page (by adjusting the dir attribute of the html element.)\n */\nexport function setRTL(isRTL: boolean, persistSetting: boolean = false): void {\n let doc = getDocument();\n if (doc) {\n doc.documentElement.setAttribute('dir', isRTL ? 'rtl' : 'ltr');\n }\n\n if (persistSetting) {\n setItem(RTL_LOCAL_STORAGE_KEY, isRTL ? '1' : '0');\n }\n\n _isRTL = isRTL;\n mergeStylesSetRTL(_isRTL);\n}\n\n/**\n * Returns the given key, but flips right/left arrows if necessary.\n */\nexport function getRTLSafeKeyCode(key: number, theme: { rtl?: boolean } = {}): number {\n if (getRTL(theme)) {\n if (key === KeyCodes.left) {\n key = KeyCodes.right;\n } else if (key === KeyCodes.right) {\n key = KeyCodes.left;\n }\n }\n\n return key;\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","import * as React from 'react';\nimport { DialogContentBase } from './DialogContent.base';\nimport { ResponsiveMode } from '../../ResponsiveMode';\nimport type { IButtonProps } from '../../Button';\nimport type { IStyle, ITheme } from '../../Styling';\nimport type { IRefObject, IStyleFunctionOrObject } from '../../Utilities';\n\n/**\n * {@docCategory Dialog}\n */\nexport interface IDialogContent {}\n\n/**\n * {@docCategory Dialog}\n */\nexport interface IDialogContentProps extends React.ClassAttributes {\n children?: React.ReactNode;\n\n /**\n * Optional callback to access the IDialogContent interface. Use this instead of ref for accessing\n * the public methods and properties of the component.\n */\n componentRef?: IRefObject;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules\n */\n styles?: IStyleFunctionOrObject;\n\n /**\n * Theme provided by HOC.\n */\n theme?: ITheme;\n\n /**\n * Is inside a multiline wrapper\n */\n isMultiline?: boolean;\n\n /**\n * Show an 'x' close button in the upper-right corner\n */\n showCloseButton?: boolean;\n\n /**\n * Other top buttons that will show up next to the close button\n */\n topButtonsProps?: IButtonProps[];\n\n /**\n * Optional override class name\n */\n className?: string;\n\n /**\n * Callback for when the Dialog is dismissed from the close button or light dismiss, before the animation completes.\n */\n onDismiss?: (ev?: React.MouseEvent) => any;\n\n /**\n * The Id for subText container\n */\n subTextId?: string;\n\n /**\n * The subtext to display in the dialog\n */\n subText?: string;\n\n /**\n * The Id for title container\n *\n * @deprecated use the `id` attribute in `titleProps` instead.\n */\n titleId?: string;\n\n /**\n * The title text to display at the top of the dialog.\n */\n title?: string | JSX.Element;\n\n /**\n * The props for title container.\n */\n titleProps?: React.HTMLAttributes;\n\n /**\n * Responsive mode passed in from decorator.\n */\n responsiveMode?: ResponsiveMode;\n\n /**\n * Label to be passed to to aria-label of close button\n * @defaultvalue Close\n */\n closeButtonAriaLabel?: string;\n\n /**\n * The type of Dialog to display.\n * @defaultvalue DialogType.normal\n */\n type?: DialogType;\n\n /**\n * The classname for when the header is draggable\n */\n draggableHeaderClassName?: string;\n}\n\n/**\n * {@docCategory Dialog}\n */\nexport enum DialogType {\n /** Standard dialog */\n normal = 0,\n /** Dialog with large header banner */\n largeHeader = 1,\n /** Dialog with an 'x' close button in the upper-right corner */\n close = 2,\n}\n\n/**\n * {@docCategory Dialog}\n */\nexport interface IDialogContentStyleProps {\n /**\n * Accept theme prop.\n */\n theme: ITheme;\n\n /**\n * Accept custom classNames\n */\n className?: string;\n\n isLargeHeader?: boolean;\n isClose?: boolean;\n hidden?: boolean;\n\n /**\n * Is inside a multiline wrapper\n */\n isMultiline?: boolean;\n\n /**\n * The classname for when the header is draggable\n */\n draggableHeaderClassName?: string;\n}\n\n/**\n * {@docCategory Dialog}\n */\nexport interface IDialogContentStyles {\n /**\n * Style for the content element.\n */\n content: IStyle;\n subText: IStyle;\n header: IStyle;\n button: IStyle;\n inner: IStyle;\n innerContent: IStyle;\n title: IStyle;\n topButton: IStyle;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * Convert a Browser Blob object into ArrayBuffer.\n *\n * @param blob -\n */\nexport async function blobToArrayBuffer(blob: Blob): Promise {\n const fileReader = new FileReader();\n return new Promise((resolve, reject) => {\n fileReader.onloadend = (ev: any) => {\n resolve(ev.target!.result);\n };\n fileReader.onerror = reject;\n fileReader.readAsArrayBuffer(blob);\n });\n}\n\n/**\n * Convert a Browser Blob object into string.\n *\n * @param blob -\n */\nexport async function blobToString(blob: Blob): Promise {\n const fileReader = new FileReader();\n return new Promise((resolve, reject) => {\n fileReader.onloadend = (ev: any) => {\n resolve(ev.target!.result);\n };\n fileReader.onerror = reject;\n fileReader.readAsText(blob);\n });\n}\n\nexport function streamToBuffer(): void {\n /* empty */\n}\n\nexport function streamToBuffer2(): void {\n /* empty */\n}\n\nexport function readStreamToLocalFile(): void {\n /* empty */\n}\n\nexport const fsStat = function stat(): void {\n /* empty */\n};\n\nexport const fsCreateReadStream = function createReadStream(): void {\n /* empty */\n};\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { objForEachKey, deepFreeze } from \"../JavaScriptSDK/HelperFuncs\";\r\n/**\r\n * Create an enum style object which has both the key => value and value => key mappings\r\n * @param values - The values to populate on the new object\r\n * @returns\r\n */\r\nexport function createEnumStyle(values) {\r\n var enumClass = {};\r\n objForEachKey(values, function (field, value) {\r\n enumClass[field] = value;\r\n enumClass[value] = field;\r\n });\r\n return deepFreeze(enumClass);\r\n}\r\n/**\r\n * Create a 2 index map that maps an enum's key as both the key and value, X[\"key\"] => \"key\" and X[0] => \"keyof 0\".\r\n * @param values - The values to populate on the new object\r\n * @returns\r\n */\r\nexport function createEnumMap(values) {\r\n var mapClass = {};\r\n objForEachKey(values, function (field, value) {\r\n mapClass[field] = field;\r\n mapClass[value] = field;\r\n });\r\n return deepFreeze(mapClass);\r\n}\r\n/**\r\n * Create a 2 index map that maps an enum's key and value to the defined map value, X[\"key\"] => mapValue and X[0] => mapValue.\r\n * Generic values\r\n * - E = the const enum type (typeof eRequestHeaders);\r\n * - V = Identifies the valid values for the keys, this should include both the enum numeric and string key of the type. The\r\n * resulting \"Value\" of each entry identifies the valid values withing the assignments.\r\n * @param values - The values to populate on the new object\r\n * @returns\r\n */\r\nexport function createValueMap(values) {\r\n var mapClass = {};\r\n objForEachKey(values, function (field, value) {\r\n mapClass[field] = value[1];\r\n mapClass[value[0]] = value[1];\r\n });\r\n return deepFreeze(mapClass);\r\n}\r\n//# sourceMappingURL=EnumHelperFuncs.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { log } from \"./log\";\n\n/**\n * A simple mechanism for enabling logging.\n * Intended to mimic the publicly available `debug` package.\n */\nexport interface Debug {\n /**\n * Creates a new logger with the given namespace.\n */\n (namespace: string): Debugger;\n /**\n * The default log method (defaults to console)\n */\n log: (...args: any[]) => void;\n /**\n * Enables a particular set of namespaces.\n * To enable multiple separate them with commas, e.g. \"info,debug\".\n * Supports wildcards, e.g. \"azure:*\"\n * Supports skip syntax, e.g. \"azure:*,-azure:storage:*\" will enable\n * everything under azure except for things under azure:storage.\n */\n enable: (namespaces: string) => void;\n /**\n * Checks if a particular namespace is enabled.\n */\n enabled: (namespace: string) => boolean;\n /**\n * Disables all logging, returns what was previously enabled.\n */\n disable: () => string;\n}\n\n/**\n * A log function that can be dynamically enabled and redirected.\n */\nexport interface Debugger {\n /**\n * Logs the given arguments to the `log` method.\n */\n (...args: any[]): void;\n /**\n * True if this logger is active and logging.\n */\n enabled: boolean;\n /**\n * Used to cleanup/remove this logger.\n */\n destroy: () => boolean;\n /**\n * The current log method. Can be overridden to redirect output.\n */\n log: (...args: any[]) => void;\n /**\n * The namespace of this logger.\n */\n namespace: string;\n /**\n * Extends this logger with a child namespace.\n * Namespaces are separated with a ':' character.\n */\n extend: (namespace: string) => Debugger;\n}\n\nconst debugEnvVariable =\n (typeof process !== \"undefined\" && process.env && process.env.DEBUG) || undefined;\n\nlet enabledString: string | undefined;\nlet enabledNamespaces: RegExp[] = [];\nlet skippedNamespaces: RegExp[] = [];\nconst debuggers: Debugger[] = [];\n\nif (debugEnvVariable) {\n enable(debugEnvVariable);\n}\n\nconst debugObj: Debug = Object.assign(\n (namespace: string): Debugger => {\n return createDebugger(namespace);\n },\n {\n enable,\n enabled,\n disable,\n log\n }\n);\n\nfunction enable(namespaces: string): void {\n enabledString = namespaces;\n enabledNamespaces = [];\n skippedNamespaces = [];\n const wildcard = /\\*/g;\n const namespaceList = namespaces.split(\",\").map((ns) => ns.trim().replace(wildcard, \".*?\"));\n for (const ns of namespaceList) {\n if (ns.startsWith(\"-\")) {\n skippedNamespaces.push(new RegExp(`^${ns.substr(1)}$`));\n } else {\n enabledNamespaces.push(new RegExp(`^${ns}$`));\n }\n }\n for (const instance of debuggers) {\n instance.enabled = enabled(instance.namespace);\n }\n}\n\nfunction enabled(namespace: string): boolean {\n if (namespace.endsWith(\"*\")) {\n return true;\n }\n\n for (const skipped of skippedNamespaces) {\n if (skipped.test(namespace)) {\n return false;\n }\n }\n for (const enabledNamespace of enabledNamespaces) {\n if (enabledNamespace.test(namespace)) {\n return true;\n }\n }\n return false;\n}\n\nfunction disable(): string {\n const result = enabledString || \"\";\n enable(\"\");\n return result;\n}\n\nfunction createDebugger(namespace: string): Debugger {\n const newDebugger: Debugger = Object.assign(debug, {\n enabled: enabled(namespace),\n destroy,\n log: debugObj.log,\n namespace,\n extend\n });\n\n function debug(...args: any[]): void {\n if (!newDebugger.enabled) {\n return;\n }\n if (args.length > 0) {\n args[0] = `${namespace} ${args[0]}`;\n }\n newDebugger.log(...args);\n }\n\n debuggers.push(newDebugger);\n\n return newDebugger;\n}\n\nfunction destroy(this: Debugger): boolean {\n const index = debuggers.indexOf(this);\n if (index >= 0) {\n debuggers.splice(index, 1);\n return true;\n }\n return false;\n}\n\nfunction extend(this: Debugger, namespace: string): Debugger {\n const newDebugger = createDebugger(`${this.namespace}:${namespace}`);\n newDebugger.log = this.log;\n return newDebugger;\n}\n\nexport default debugObj;\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions,\n} from \"./requestPolicy\";\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { ProxySettings } from \"../serviceClient\";\nimport { WebResourceLike } from \"../webResource\";\n\nconst proxyNotSupportedInBrowser = new Error(\"ProxyPolicy is not supported in browser environment\");\n\nexport function getDefaultProxySettings(_proxyUrl?: string): ProxySettings | undefined {\n return undefined;\n}\n\nexport function proxyPolicy(_proxySettings?: ProxySettings): RequestPolicyFactory {\n return {\n create: (_nextPolicy: RequestPolicy, _options: RequestPolicyOptions) => {\n throw proxyNotSupportedInBrowser;\n },\n };\n}\n\nexport class ProxyPolicy extends BaseRequestPolicy {\n constructor(nextPolicy: RequestPolicy, options: RequestPolicyOptions) {\n super(nextPolicy, options);\n throw proxyNotSupportedInBrowser;\n }\n\n public sendRequest(_request: WebResourceLike): Promise {\n throw proxyNotSupportedInBrowser;\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport {\r\n ObjAssign, ObjClass, ObjCreate, ObjDefineProperty, ObjHasOwnProperty, ObjProto,\r\n strDefault, strShimFunction, strShimHasOwnProperty, strShimPrototype\r\n} from \"./Constants\";\r\nimport { getGlobal, objCreateFn, throwTypeError } from \"./Helpers\";\r\n\r\n// Most of these functions have been directly shamelessly \"lifted\" from the https://github.com/@microsoft/tslib and\r\n// modified to be ES3 compatible and applying several minification and tree-shaking techniques so that Application Insights\r\n// can successfully use TypeScript \"importHelpers\" which imports tslib during compilation but it will use these at runtime\r\n// Which is also why all of the functions have not been included as Application Insights currently doesn't use or require\r\n// them.\r\n\r\nexport const SymbolObj = (getGlobal()||{})[\"Symbol\"];\r\nexport const ReflectObj = (getGlobal()||{})[\"Reflect\"];\r\nexport const __hasSymbol = !!SymbolObj;\r\nexport const __hasReflect = !!ReflectObj;\r\n\r\nconst strDecorate = \"decorate\";\r\nconst strMetadata = \"metadata\";\r\nconst strGetOwnPropertySymbols = \"getOwnPropertySymbols\";\r\nconst strIterator = \"iterator\";\r\n\r\nexport declare type ObjAssignFunc = (t: any, ...sources:any[]) => any;\r\n\r\nexport var __objAssignFnImpl: ObjAssignFunc = function(t: any): any {\r\n // tslint:disable-next-line: ban-comma-operator\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) {\r\n if (ObjProto[strShimHasOwnProperty].call(s, p)) {\r\n (t as any)[p] = s[p];\r\n }\r\n }\r\n }\r\n return t;\r\n};\r\n\r\nexport var __assignFn: ObjAssignFunc = ObjAssign || __objAssignFnImpl;\r\n\r\n// tslint:disable-next-line: only-arrow-functions\r\nvar extendStaticsFn = function(d: any, b: any): any {\r\n extendStaticsFn = ObjClass[\"setPrototypeOf\"] ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n ({ __proto__: [] } instanceof Array && function (d: any, b: any) { d.__proto__ = b; }) ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n function (d: any, b: any) {\r\n for (var p in b) {\r\n if (b[strShimHasOwnProperty](p)) {\r\n d[p] = b[p];\r\n }\r\n }\r\n };\r\n return extendStaticsFn(d, b);\r\n};\r\n\r\nexport function __extendsFn(d: any, b: any) {\r\n if (typeof b !== strShimFunction && b !== null) {\r\n throwTypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n }\r\n extendStaticsFn(d, b);\r\n function __() { this.constructor = d; }\r\n // tslint:disable-next-line: ban-comma-operator\r\n d[strShimPrototype] = b === null ? objCreateFn(b) : (__[strShimPrototype] = b[strShimPrototype], new (__ as any)());\r\n}\r\n\r\nexport function __restFn(s: any, e: any) {\r\n var t = {};\r\n for (var k in s) {\r\n if (ObjHasOwnProperty.call(s, k) && e.indexOf(k) < 0) {\r\n t[k] = s[k];\r\n }\r\n }\r\n if (s != null && typeof ObjClass[strGetOwnPropertySymbols] === strShimFunction) {\r\n for (var i = 0, p = ObjClass[strGetOwnPropertySymbols](s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && ObjProto[\"propertyIsEnumerable\"].call(s, p[i])) {\r\n t[p[i]] = s[p[i]];\r\n }\r\n }\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorateFn(decorators: any, target: any, key: any, desc: any) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = ObjClass[\"getOwnPropertyDescriptor\"](target, key) : desc, d;\r\n if (__hasReflect && typeof ReflectObj[strDecorate] === strShimFunction) {\r\n r = ReflectObj[strDecorate](decorators, target, key, desc);\r\n } else {\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n // eslint-disable-next-line no-cond-assign\r\n if (d = decorators[i]) {\r\n r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n }\r\n }\r\n }\r\n\r\n // tslint:disable-next-line:ban-comma-operator\r\n return c > 3 && r && ObjDefineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __paramFn(paramIndex: number, decorator: Function) {\r\n return function (target: any, key: any) {\r\n decorator(target, key, paramIndex);\r\n }\r\n}\r\n\r\nexport function __metadataFn(metadataKey: any, metadataValue: any) {\r\n if (__hasReflect && ReflectObj[strMetadata] === strShimFunction) {\r\n return ReflectObj[strMetadata](metadataKey, metadataValue);\r\n }\r\n}\r\n\r\nexport function __exportStarFn(m: any, o: any) {\r\n for (var p in m) {\r\n if (p !== strDefault && !ObjHasOwnProperty.call(o, p)) {\r\n __createBindingFn(o, m, p);\r\n }\r\n }\r\n}\r\n\r\nexport function __createBindingFn(o: any, m: any, k: any, k2?: any) {\r\n if (k2 === undefined) {\r\n k2 = k;\r\n }\r\n \r\n if (ObjCreate) {\r\n ObjDefineProperty(o, k2, {\r\n enumerable: true,\r\n get() {\r\n return m[k];\r\n }\r\n });\r\n } else {\r\n o[k2] = m[k];\r\n }\r\n}\r\n\r\nexport function __valuesFn(o: any) {\r\n var s = typeof SymbolObj === strShimFunction && SymbolObj[strIterator], m = s && o[s], i = 0;\r\n if (m) {\r\n return m.call(o);\r\n }\r\n\r\n if (o && typeof o.length === \"number\") {\r\n return {\r\n next () {\r\n if (o && i >= o.length) {\r\n o = void 0;\r\n }\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n }\r\n\r\n throwTypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __readFn(o: any, n: any) {\r\n var m = typeof SymbolObj === strShimFunction && o[SymbolObj[strIterator]];\r\n if (!m) {\r\n return o;\r\n }\r\n\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\r\n ar.push(r.value);\r\n }\r\n } catch (error) {\r\n e = {\r\n error\r\n };\r\n } finally {\r\n try {\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if (r && !r.done && (m = i[\"return\"])) {\r\n m.call(i);\r\n }\r\n } finally {\r\n if (e) {\r\n // eslint-disable-next-line no-unsafe-finally\r\n throw e.error;\r\n }\r\n }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArraysFn() {\r\n var theArgs = arguments;\r\n // Calculate new total size\r\n for (var s = 0, i = 0, il = theArgs.length; i < il; i++) {\r\n s += theArgs[i].length;\r\n }\r\n\r\n // Create new full array\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\r\n for (var a = theArgs[i], j = 0, jl = a.length; j < jl; j++, k++) {\r\n r[k] = a[j];\r\n }\r\n }\r\n\r\n return r;\r\n}\r\n\r\nexport function __spreadArrayFn(to: any, from: any) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) {\r\n to[j] = from[i];\r\n }\r\n\r\n return to;\r\n}\r\n\r\nexport function __makeTemplateObjectFn(cooked: any, raw: any) {\r\n if (ObjDefineProperty) {\r\n ObjDefineProperty(cooked, \"raw\", { value: raw });\r\n } else {\r\n cooked.raw = raw;\r\n }\r\n\r\n return cooked;\r\n}\r\n\r\nexport function __importStarFn(mod: any) {\r\n if (mod && mod.__esModule) {\r\n return mod;\r\n }\r\n\r\n var result = {};\r\n if (mod != null) {\r\n for (var k in mod) {\r\n if (k !== strDefault && Object.prototype.hasOwnProperty.call(mod, k)) {\r\n __createBindingFn(result, mod, k);\r\n }\r\n }\r\n }\r\n\r\n // Set default module\r\n if (ObjCreate) {\r\n ObjDefineProperty( result, strDefault, { enumerable: true, value: mod });\r\n } else {\r\n result[strDefault] = mod;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport function __importDefaultFn(mod:any) {\r\n return (mod && mod.__esModule) ? mod : { strDefault: mod };\r\n}\r\n","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","module.exports = require('./lib/axios');","/**\n * Verifies if an application can use DOM.\n */\nexport function canUseDOM(): boolean {\n return (\n typeof window !== 'undefined' &&\n !!(\n window.document &&\n // eslint-disable-next-line deprecation/deprecation\n window.document.createElement\n )\n );\n}\n","import { memoizeFunction } from '../../Utilities';\nimport { HighContrastSelector, getFocusStyle, hiddenContentStyle } from '../../Styling';\nimport type { IButtonStyles } from './Button.types';\nimport type { ITheme, IRawStyle } from '../../Styling';\n\nconst noOutline: IRawStyle = {\n outline: 0,\n};\n\nconst iconStyle = (fontSize?: string | number): IRawStyle => {\n return {\n fontSize: fontSize,\n margin: '0 4px',\n height: '16px',\n lineHeight: '16px',\n textAlign: 'center',\n flexShrink: 0,\n };\n};\n\n/**\n * Gets the base button styles. Note: because it is a base class to be used with the `mergeRules`\n * helper, it should have values for all class names in the interface. This let `mergeRules` optimize\n * mixing class names together.\n */\nexport const getStyles = memoizeFunction(\n (theme: ITheme): IButtonStyles => {\n const { semanticColors, effects, fonts } = theme;\n\n const border = semanticColors.buttonBorder;\n const disabledBackground = semanticColors.disabledBackground;\n const disabledText = semanticColors.disabledText;\n const buttonHighContrastFocus = {\n left: -2,\n top: -2,\n bottom: -2,\n right: -2,\n outlineColor: 'ButtonText',\n };\n\n return {\n root: [\n getFocusStyle(theme, { inset: 1, highContrastStyle: buttonHighContrastFocus, borderColor: 'transparent' }),\n theme.fonts.medium,\n {\n boxSizing: 'border-box',\n border: '1px solid ' + border,\n userSelect: 'none',\n display: 'inline-block',\n textDecoration: 'none',\n textAlign: 'center',\n cursor: 'pointer',\n padding: '0 16px',\n borderRadius: effects.roundedCorner2,\n\n selectors: {\n // IE11 workaround for preventing shift of child elements of a button when active.\n ':active > span': {\n position: 'relative',\n left: 0,\n top: 0,\n },\n },\n },\n ],\n\n rootDisabled: [\n getFocusStyle(theme, { inset: 1, highContrastStyle: buttonHighContrastFocus, borderColor: 'transparent' }),\n {\n backgroundColor: disabledBackground,\n borderColor: disabledBackground,\n color: disabledText,\n cursor: 'default',\n selectors: {\n ':hover': noOutline,\n ':focus': noOutline,\n },\n },\n ],\n\n iconDisabled: {\n color: disabledText,\n selectors: {\n [HighContrastSelector]: {\n color: 'GrayText',\n },\n },\n },\n\n menuIconDisabled: {\n color: disabledText,\n selectors: {\n [HighContrastSelector]: {\n color: 'GrayText',\n },\n },\n },\n\n flexContainer: {\n display: 'flex',\n height: '100%',\n flexWrap: 'nowrap',\n justifyContent: 'center',\n alignItems: 'center',\n },\n description: {\n display: 'block',\n },\n\n textContainer: {\n flexGrow: 1,\n display: 'block',\n },\n\n icon: iconStyle(fonts.mediumPlus.fontSize),\n\n menuIcon: iconStyle(fonts.small.fontSize),\n\n label: {\n margin: '0 4px',\n lineHeight: '100%',\n display: 'block',\n },\n\n screenReaderText: hiddenContentStyle,\n };\n },\n);\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { StorageClientContext } from \"./generated/src/storageClientContext\";\nimport { PipelineLike } from \"./Pipeline\";\nimport { escapeURLPath, getURLScheme, iEqual, getAccountNameFromUrl } from \"./utils/utils.common\";\nimport { AnonymousCredential } from \"./credentials/AnonymousCredential\";\nimport { StorageSharedKeyCredential } from \"./credentials/StorageSharedKeyCredential\";\nimport { TokenCredential, isTokenCredential, isNode } from \"@azure/core-http\";\nimport { OperationTracingOptions } from \"@azure/core-tracing\";\n\n/**\n * An interface for options common to every remote operation.\n */\nexport interface CommonOptions {\n /**\n * Options to configure spans created when tracing is enabled.\n */\n tracingOptions?: OperationTracingOptions;\n}\n\n/**\n * A StorageClient represents a based URL class for {@link BlobServiceClient}, {@link ContainerClient}\n * and etc.\n */\nexport abstract class StorageClient {\n /**\n * Encoded URL string value.\n */\n public readonly url: string;\n public readonly accountName: string;\n /**\n * Request policy pipeline.\n *\n * @internal\n */\n protected readonly pipeline: PipelineLike;\n /**\n * Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n */\n public readonly credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential;\n /**\n * StorageClient is a reference to protocol layer operations entry, which is\n * generated by AutoRest generator.\n */\n protected readonly storageClientContext: StorageClientContext;\n /**\n */\n protected readonly isHttps: boolean;\n\n /**\n * Creates an instance of StorageClient.\n * @param url - url to resource\n * @param pipeline - request policy pipeline.\n */\n protected constructor(url: string, pipeline: PipelineLike) {\n // URL should be encoded and only once, protocol layer shouldn't encode URL again\n this.url = escapeURLPath(url);\n this.accountName = getAccountNameFromUrl(url);\n this.pipeline = pipeline;\n this.storageClientContext = new StorageClientContext(\n this.url,\n pipeline.toServiceClientOptions()\n );\n\n this.isHttps = iEqual(getURLScheme(this.url) || \"\", \"https\");\n\n this.credential = new AnonymousCredential();\n for (const factory of this.pipeline.factories) {\n if (\n (isNode && factory instanceof StorageSharedKeyCredential) ||\n factory instanceof AnonymousCredential\n ) {\n this.credential = factory;\n } else if (isTokenCredential((factory as any).credential)) {\n // Only works if the factory has been attached a \"credential\" property.\n // We do that in newPipeline() when using TokenCredential.\n this.credential = (factory as any).credential;\n }\n }\n\n // Override protocol layer's default content-type\n const storageClientContext = this.storageClientContext as any;\n storageClientContext.requestContentType = undefined;\n }\n}\n","/**\n * ARIA helper to concatenate attributes, returning undefined if all attributes\n * are undefined. (Empty strings are not a valid ARIA attribute value.)\n *\n * @param ariaAttributes - ARIA attributes to merge\n */\nexport function mergeAriaAttributeValues(...ariaAttributes: (string | undefined | false)[]): string | undefined {\n const mergedAttribute = ariaAttributes\n .filter((arg: string | undefined | false) => arg)\n .join(' ')\n .trim();\n return mergedAttribute === '' ? undefined : mergedAttribute;\n}\n","import * as React from 'react';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport type { IFocusZoneProps } from '../../FocusZone';\nimport type { IIconProps } from '../../Icon';\nimport type { ICalloutProps, ICalloutContentStyleProps } from '../../Callout';\nimport type { ITheme, IStyle } from '../../Styling';\nimport type { IButtonStyles } from '../../Button';\nimport type { IRefObject, IBaseProps, IRectangle, IRenderFunction, IStyleFunctionOrObject } from '../../Utilities';\nimport type { IWithResponsiveModeState } from '../../ResponsiveMode';\nimport type { IContextualMenuClassNames, IMenuItemClassNames } from './ContextualMenu.classNames';\nimport type { IVerticalDividerClassNames } from '../Divider/VerticalDivider.types';\nimport type {\n IContextualMenuItemProps,\n IContextualMenuRenderItem,\n IContextualMenuItemStyleProps,\n IContextualMenuItemRenderFunctions,\n} from './ContextualMenuItem.types';\nimport type { IKeytipProps } from '../../Keytip';\nimport type { Target } from '@fluentui/react-hooks';\nimport type { IPopupRestoreFocusParams } from '../../Popup';\n\nexport { DirectionalHint } from '../../common/DirectionalHint';\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport enum ContextualMenuItemType {\n Normal = 0,\n Divider = 1,\n Header = 2,\n Section = 3,\n}\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport interface IContextualMenu {}\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport interface IContextualMenuProps\n extends IBaseProps,\n React.RefAttributes,\n // eslint-disable-next-line deprecation/deprecation\n IWithResponsiveModeState {\n /**\n * Optional callback to access the IContextualMenu interface. Use this instead of ref for accessing\n * the public methods and properties of the component.\n */\n componentRef?: IRefObject;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: IStyleFunctionOrObject;\n\n /**\n * Theme provided by higher-order component.\n */\n theme?: ITheme;\n\n /**\n * Additional CSS class to apply to the ContextualMenu.\n */\n className?: string;\n\n /**\n * The target that the ContextualMenu should try to position itself based on.\n * It can be either an element, a query selector string resolving to a valid element,\n * or a MouseEvent. If a MouseEvent is given, the origin point of the event will be used.\n */\n target?: Target;\n\n /**\n * How the menu should be positioned\n * @defaultvalue DirectionalHint.bottomAutoEdge\n */\n directionalHint?: DirectionalHint;\n\n /**\n * How the menu should be positioned in RTL layouts.\n * If not specified, a mirror of `directionalHint` will be used.\n */\n directionalHintForRTL?: DirectionalHint;\n\n /**\n * The gap between the ContextualMenu and the target\n * @defaultvalue 0\n */\n gapSpace?: number;\n\n /**\n * The width of the beak.\n * @defaultvalue 16\n */\n beakWidth?: number;\n\n /**\n * If true the context menu will render as the same width as the target element\n * @defaultvalue false\n */\n useTargetWidth?: boolean;\n\n /**\n * If true the context menu will have a minimum width equal to the width of the target element\n * @defaultvalue false\n */\n useTargetAsMinWidth?: boolean;\n\n /**\n * The bounding rectangle (or callback that returns a rectangle) which the contextual menu can appear in.\n */\n bounds?: IRectangle | ((target?: Target, targetWindow?: Window) => IRectangle | undefined);\n\n /**\n * If true then the beak is visible. If false it will not be shown.\n */\n isBeakVisible?: boolean;\n\n /**\n * If true, the menu will be positioned to cover the target.\n * If false, it will be positioned next to the target.\n * @defaultvalue false\n */\n coverTarget?: boolean;\n\n /**\n * If true the positioning logic will prefer to flip edges rather than to nudge the rectangle to fit within bounds,\n * thus making sure the element aligns perfectly with target's alignment edge\n */\n alignTargetEdge?: boolean;\n\n /**\n * Menu items to display.\n */\n items: IContextualMenuItem[];\n\n /**\n * Used as `aria-labelledby` for the menu element inside the callout.\n */\n labelElementId?: string;\n\n /**\n * Whether to focus on the menu when mounted.\n * @defaultvalue true\n */\n shouldFocusOnMount?: boolean;\n\n /**\n * Whether to focus on the contextual menu container (as opposed to the first menu item).\n *\n * Avoid using as it breaks the default focus behaviour when using assistive technologies.\n */\n shouldFocusOnContainer?: boolean;\n\n /**\n * Callback when the ContextualMenu tries to close. If `dismissAll` is true then all\n * submenus will be dismissed.\n */\n onDismiss?: (ev?: Event | React.MouseEvent | React.KeyboardEvent, dismissAll?: boolean) => void;\n\n /**\n * Click handler which is invoked if `onClick` is not passed for individual contextual\n * menu item.\n * Returning true will dismiss the menu even if `ev.preventDefault()` was called.\n */\n onItemClick?: (\n ev?: React.MouseEvent | React.KeyboardEvent,\n item?: IContextualMenuItem,\n ) => boolean | void;\n\n /**\n * Whether this menu is a submenu of another menu.\n */\n isSubMenu?: boolean;\n\n /**\n * ID for the ContextualMenu's root element (inside the callout).\n * Should be used for `aria-owns` and other such uses, rather than direct reference for programmatic purposes.\n */\n id?: string;\n\n /**\n * Accessible label for the ContextualMenu's root element (inside the callout).\n */\n ariaLabel?: string;\n\n /**\n * If true do not render on a new layer. If false render on a new layer.\n * @defaultvalue false\n */\n doNotLayer?: boolean;\n\n /**\n * If true the position will not change sides in an attempt to fit the ContextualMenu within bounds.\n * It will still attempt to align it to whatever bounds are given.\n * @defaultvalue false\n */\n directionalHintFixed?: boolean;\n\n /**\n * Callback for when the menu has been opened.\n */\n onMenuOpened?: (contextualMenu?: IContextualMenuProps) => void;\n\n /**\n * Callback for when the menu is being closed (removing from the DOM).\n */\n onMenuDismissed?: (contextualMenu?: IContextualMenuProps) => void;\n\n /**\n * Additional custom props for the Callout.\n */\n calloutProps?: ICalloutProps;\n\n /**\n * Title to be displayed at the top of the menu, above the items.\n */\n title?: string;\n\n /**\n * Method to provide the classnames to style the contextual menu.\n * @deprecated Use `styles` instead to leverage mergeStyles API.\n */\n // eslint-disable-next-line deprecation/deprecation\n getMenuClassNames?: (theme: ITheme, className?: string) => IContextualMenuClassNames;\n\n /** Custom render function for a submenu. */\n onRenderSubMenu?: IRenderFunction;\n\n /**\n * Method to override the render of the list of menu items.\n */\n onRenderMenuList?: IRenderFunction;\n\n /**\n * Method to wrap menu items. Gives the ability to wrap a custom\n * tooltip to each menu item button.\n */\n onRenderContextualMenuItem?: IRenderFunction;\n\n /**\n * Delay (in milliseconds) to wait before expanding / dismissing a submenu on mouseEnter or mouseLeave\n */\n subMenuHoverDelay?: number;\n\n /**\n * Custom component to use for rendering individual menu items.\n * @defaultvalue ContextualMenuItem\n */\n contextualMenuItemAs?:\n | React.ComponentClass\n | React.FunctionComponent;\n\n /**\n * Props to pass down to the FocusZone.\n * NOTE: the default FocusZoneDirection will be used unless a direction\n * is specified in the focusZoneProps (even if other focusZoneProps are defined)\n * @defaultvalue \\{ direction: FocusZoneDirection.vertical \\}\n */\n focusZoneProps?: IFocusZoneProps;\n\n /**\n * Custom component to use for rendering the focus zone (the root).\n * @defaultValue FocusZone\n */\n focusZoneAs?: React.ComponentClass | React.FunctionComponent;\n\n /**\n * If true, renders the ContextualMenu in a hidden state.\n * Use this flag, rather than rendering a ContextualMenu conditionally based on visibility,\n * to improve rendering performance when it becomes visible.\n * Note: When ContextualMenu is hidden its content will not be rendered. It will only render\n * once the ContextualMenu is visible.\n */\n hidden?: boolean;\n\n /**\n * If true, the menu will be updated even when `hidden=true`. Note that this will consume\n * resources to update even when nothing is being shown to the user. This might be helpful if\n * your updates are small and you want the menu to display quickly when `hidden` is set to false.\n */\n shouldUpdateWhenHidden?: boolean;\n\n /**\n * If true, the contextual menu will not be updated until focus enters the menu via other means.\n * This will only result in different behavior when `shouldFocusOnMount = false`.\n */\n delayUpdateFocusOnHover?: boolean;\n\n /**\n * Called when the component is unmounting, and focus needs to be restored. If this is provided,\n * focus will not be restored automatically, and you'll need to call `params.originalElement.focus()`.\n */\n onRestoreFocus?: (params: IPopupRestoreFocusParams) => void;\n}\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport interface IContextualMenuItemRenderProps extends IContextualMenuItem {\n index: number;\n focusableElementIndex: number;\n totalItemCount: number;\n hasCheckmarks: boolean;\n hasIcons: boolean;\n}\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport interface IContextualMenuListProps {\n items: IContextualMenuItem[];\n totalItemCount: number;\n hasCheckmarks: boolean;\n hasIcons: boolean;\n defaultMenuItemRenderer: (item: IContextualMenuItemRenderProps) => React.ReactNode;\n ariaLabel?: string;\n labelElementId?: string;\n role?: string;\n}\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport interface IContextualMenuItem {\n /**\n * Optional callback to access the IContextualMenuRenderItem interface.\n * This will get passed down to ContextualMenuItem.\n */\n componentRef?: IRefObject;\n\n /**\n * Unique id to identify the item\n */\n key: string;\n\n /**\n * Text of the menu item.\n * If a standard hyphen (-) is passed in, then the item will be rendered as a divider.\n * If a dash must appear as text, use an emdash (—), figuredash (‒), or minus symbol (−) instead.\n */\n text?: string;\n\n /**\n * Secondary description for the menu item to display\n */\n secondaryText?: string;\n\n itemType?: ContextualMenuItemType;\n\n /**\n * Props for an icon to display next to the item.\n */\n iconProps?: IIconProps;\n\n /**\n * Custom render function for the menu item icon.\n * iconProps must be present on at least one item for onRenderIcon to be called.\n */\n onRenderIcon?: IRenderFunction;\n\n /**\n * Props for the Icon used for the chevron.\n */\n submenuIconProps?: IIconProps;\n\n /**\n * Whether the menu item is disabled\n * @defaultvalue false\n */\n disabled?: boolean;\n\n /**\n * If the menu item is a split button, this prop disables purely the primary action of the button.\n * @defaultvalue false\n */\n primaryDisabled?: boolean;\n\n /**\n * @deprecated Not used\n */\n shortCut?: string;\n\n /**\n * Whether or not this menu item can be checked\n * @defaultvalue false\n */\n canCheck?: boolean;\n\n /**\n * Whether or not this menu item is currently checked.\n * @defaultvalue false\n */\n checked?: boolean;\n\n /**\n * Whether or not this menu item is a splitButton.\n * @defaultvalue false\n */\n split?: boolean;\n\n /**\n * Any custom data the developer wishes to associate with the menu item.\n */\n data?: any;\n\n /**\n * Callback for when the menu item is invoked. If `ev.preventDefault()` is called in `onClick`,\n * the click will not close the menu.\n *\n * Only for ContextualMenu items, returning true will dismiss the menu even if `ev.preventDefault()`\n * was called (does not apply for button or CommandBar sub-menu items).\n */\n onClick?: (\n ev?: React.MouseEvent | React.KeyboardEvent,\n item?: IContextualMenuItem,\n ) => boolean | void;\n\n /**\n * Navigate to this URL when the menu item is clicked.\n */\n href?: string;\n\n /**\n * Target window when using `href`.\n */\n target?: string;\n\n /**\n * Link relation setting when using `href`.\n * If `target` is `_blank`, `rel` is defaulted to a value to prevent clickjacking.\n */\n rel?: string;\n\n /**\n * Properties to apply to a submenu to this item.\n *\n * The ContextualMenu will provide default values for `target`, `onDismiss`, `isSubMenu`,\n * `id`, `shouldFocusOnMount`, `directionalHint`, `className`, and `gapSpace`, all of which\n * can be overridden.\n */\n subMenuProps?: IContextualMenuProps;\n\n /**\n * Method to provide the classnames to style the individual items inside a menu.\n * @deprecated Use `styles` prop of `IContextualMenuItemProps` to leverage mergeStyles API.\n */\n getItemClassNames?: (\n theme: ITheme,\n disabled: boolean,\n expanded: boolean,\n checked: boolean,\n isAnchorLink: boolean,\n knownIcon: boolean,\n itemClassName?: string,\n dividerClassName?: string,\n iconClassName?: string,\n subMenuClassName?: string,\n primaryDisabled?: boolean,\n ) => // eslint-disable-next-line deprecation/deprecation\n IMenuItemClassNames;\n\n /**\n * Optional IContextualMenuItemProps overrides to customize behaviors such as item styling via `styles`.\n */\n itemProps?: Partial;\n\n /**\n * Method to provide the classnames to style the Vertical Divider of a split button inside a menu.\n * Default value is the `getSplitButtonVerticalDividerClassNames` func defined in `ContextualMenu.classnames.ts`.\n * @defaultvalue getSplitButtonVerticalDividerClassNames\n */\n // eslint-disable-next-line deprecation/deprecation\n getSplitButtonVerticalDividerClassNames?: (theme: ITheme) => IVerticalDividerClassNames;\n\n /**\n * Properties to apply to render this item as a section.\n * This prop is mutually exclusive with `subMenuProps`.\n */\n sectionProps?: IContextualMenuSection;\n\n /**\n * Additional CSS class to apply to the menu item.\n */\n className?: string;\n\n /**\n * Additional styles to apply to the menu item\n * @deprecated Use `styles` instead to leverage mergeStyles API.\n */\n style?: React.CSSProperties;\n\n /**\n * Custom accessible label for the element.\n * If no override is specified, the `aria-label` attribute will contain the item name.\n */\n ariaLabel?: string;\n\n /**\n * Title (tooltip) text displayed when hovering over an item.\n */\n title?: string;\n\n /**\n * Method to custom render this menu item.\n * For keyboard accessibility, the top-level rendered item should be a focusable element\n * (like an anchor or a button) or have the `data-is-focusable` property set to true.\n *\n * @param item - Item to render. Will typically be of type `IContextualMenuItem`.\n * (When rendering a command bar item, will be `ICommandBarItemProps`.)\n * @param dismissMenu - Function to dismiss the menu. Can be used to ensure that a custom menu\n * item click dismisses the menu. (Will be undefined if rendering a command bar item.)\n */\n onRender?: (item: any, dismissMenu: (ev?: any, dismissAll?: boolean) => void) => React.ReactNode;\n\n /**\n * Method to customize sub-components rendering of this menu item.\n *\n * @param props - Props used to pass into render functions\n * @param defaultRenders - Default render functions that renders default sub-components\n */\n onRenderContent?: (\n props: IContextualMenuItemProps,\n defaultRenders: IContextualMenuItemRenderFunctions,\n ) => React.ReactNode;\n\n /**\n * A function to be executed on mouse down. This is executed before an `onClick` event and can\n * be used to interrupt native on click events as well. The click event should still handle\n * the commands. This should only be used in special cases when react and non-react are mixed.\n */\n onMouseDown?: (item: IContextualMenuItem, event: React.MouseEvent) => void;\n\n /**\n * Optional override for the menu button's role.\n * @default `menuitem` or `menuitemcheckbox`\n */\n role?: string;\n\n /**\n * When rendering a custom menu component that is passed in, the component might also be a list of\n * elements. We want to keep track of the correct index our menu is using based off of\n * the length of the custom list. It is up to the user to increment the count for their list.\n */\n customOnRenderListLength?: number;\n\n /**\n * Keytip for this contextual menu item\n */\n keytipProps?: IKeytipProps;\n\n /**\n * @deprecated Use subMenuProps.items instead.\n */\n items?: IContextualMenuItem[];\n\n /**\n * Any additional properties to use when custom rendering menu items.\n */\n [propertyName: string]: any;\n\n /**\n * Detailed description of the menu item for the benefit of screen readers.\n */\n ariaDescription?: string;\n\n /**\n * ID of the element that contains additional detailed descriptive information for screen readers\n */\n ariaDescribedBy?: string;\n\n /**\n * @deprecated No longer used. All contextual menu items are now focusable when disabled.\n */\n inactive?: boolean;\n\n /**\n * Text of the menu item.\n * @deprecated Use `text` instead.\n */\n name?: string;\n\n /**\n * Flag which indicates that, when the item is clicked, the 'target' for the click event should be\n * overridden to reflect the launch target from the root menu.\n * This avoids a situation where the 'target' of the event may wind up detached from the DOM\n * when the menu is dismissed in response to the click.\n */\n preferMenuTargetAsEventTarget?: boolean;\n}\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport interface IContextualMenuSection extends React.ClassAttributes {\n /**\n * The items to include inside the section.\n */\n items: IContextualMenuItem[];\n\n /**\n * The optional section title.\n */\n title?: string | IContextualMenuItem;\n\n /**\n * If set to true, the section will display a divider at the top of the section.\n */\n topDivider?: boolean;\n\n /**\n * If set to true, the section will display a divider at the bottom of the section.\n */\n bottomDivider?: boolean;\n}\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport interface IMenuItemStyles extends IButtonStyles {\n /**\n * Styles for a menu item that is an anchor link.\n */\n item?: IStyle;\n\n /**\n * Styles for the content inside the button/link of the menuItem.\n */\n linkContent?: IStyle;\n\n /**\n * Styles for a menu item that is an anchor link.\n */\n anchorLink?: IStyle;\n\n /**\n * Default icon color style for known icons.\n */\n iconColor?: IStyle;\n\n /**\n * Default style for checkmark icons.\n */\n checkmarkIcon?: IStyle;\n\n /**\n * Styles for the submenu icon of a menu item.\n */\n subMenuIcon?: IStyle;\n\n /**\n * Styles for a divider item of a ContextualMenu.\n */\n divider?: IStyle;\n}\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport interface IContextualMenuStyleProps {\n theme: ITheme;\n\n className?: string;\n\n // Insert ContextualMenu style props below\n}\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport interface IContextualMenuStyles {\n /**\n * Style override for the contextual menu title.\n */\n title: IStyle;\n\n /**\n * Style for the container which parents all menu items.\n */\n container: IStyle;\n\n /**\n * Base styles for the root element of all ContextualMenus.\n */\n root: IStyle;\n\n /**\n * Styles for the header item of a ContextualMenu\n */\n header: IStyle;\n\n /**\n * Styles for the list that contains all menuItems.\n */\n list: IStyle;\n\n /**\n * SubComponent styles.\n */\n subComponentStyles: IContextualMenuSubComponentStyles;\n}\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport interface IContextualMenuSubComponentStyles {\n /** Styles for the callout that hosts the ContextualMenu options. */\n callout: IStyleFunctionOrObject;\n\n /** Styles for each menu item. */\n menuItem: IStyleFunctionOrObject;\n}\n","import * as React from 'react';\nimport { Image } from '../Image/Image';\nimport { css, getNativeProps, htmlElementProperties } from '../../Utilities';\nimport { classNames, MS_ICON } from './Icon.styles';\nimport type { IImageIconProps } from './Icon.types';\n\n/**\n * Fast icon component which only supports images (not font glyphs) and can't be targeted by customizations.\n * To style the icon, use `className` or reference `ms-Icon` in CSS.\n * {@docCategory Icon}\n */\nexport const ImageIcon: React.FunctionComponent = props => {\n const { className, imageProps } = props;\n\n const nativeProps = getNativeProps>(props, htmlElementProperties, [\n 'aria-label',\n 'aria-labelledby',\n 'title',\n 'aria-describedby',\n ]);\n const altText = imageProps.alt || props['aria-label'];\n const hasName =\n altText ||\n props['aria-labelledby'] ||\n props.title ||\n imageProps['aria-label'] ||\n imageProps['aria-labelledby'] ||\n imageProps.title;\n\n // move naming or describing attributes from the container (where they are invalid) to the image\n const imageNameProps = {\n 'aria-labelledby': props['aria-labelledby'],\n 'aria-describedby': props['aria-describedby'],\n title: props.title,\n };\n\n const containerProps = hasName\n ? {}\n : {\n 'aria-hidden': true,\n };\n\n return (\n
\n {hasName\n
\n );\n};\n","import { getWindow } from './dom/getWindow';\n\nlet isMacResult: boolean | undefined;\n\n/**\n * Returns true if the user is on a Mac. Caches the result value.\n * @param reset - Reset the cached result value (mainly for testing).\n */\nexport function isMac(reset?: boolean): boolean {\n if (typeof isMacResult === 'undefined' || reset) {\n const win = getWindow();\n // In certain SSR frameworks, `window` will be defined even on the server but `navigator` will be undefined\n const userAgent = win?.navigator?.userAgent;\n isMacResult = !!userAgent && userAgent.indexOf('Macintosh') !== -1;\n }\n return !!isMacResult;\n}\n","/**\n * Returns true if and only if the user is on a iOS device.\n * Used to determine whether iOS-specific behavior should be applied.\n */\nexport const isIOS = (): boolean => {\n if (!window || !window.navigator || !window.navigator.userAgent) {\n return false;\n }\n return /iPad|iPhone|iPod/i.test(window.navigator.userAgent);\n};\n","import type { IContextualMenuItem } from '../../index';\n\n/**\n * Determines the effective checked state of a menu item.\n *\n * @param item {IContextualMenuItem} to get the check state of.\n * @returns {true} if the item is checked.\n * @returns {false} if the item is unchecked.\n * @returns {null} if the item is not checkable.\n */\nexport function getIsChecked(item: IContextualMenuItem): boolean | null {\n if (item.canCheck) {\n return !!(item.isChecked || item.checked);\n }\n\n if (typeof item.isChecked === 'boolean') {\n return item.isChecked;\n }\n\n if (typeof item.checked === 'boolean') {\n return item.checked;\n }\n\n // Item is not checkable.\n return null;\n}\n\nexport function hasSubmenu(item: IContextualMenuItem): boolean {\n // eslint-disable-next-line deprecation/deprecation\n return !!(item.subMenuProps || item.items);\n}\n\nexport function isItemDisabled(item: IContextualMenuItem): boolean {\n return !!(item.isDisabled || item.disabled);\n}\n\nexport function getMenuItemAriaRole(item: IContextualMenuItem): string {\n const isChecked = getIsChecked(item);\n const canCheck: boolean = isChecked !== null;\n return canCheck ? 'menuitemcheckbox' : 'menuitem';\n}\n","import { DirectionalHint } from '../../common/DirectionalHint';\nimport type { IRectangle, Point } from '../../Utilities';\n\nexport enum RectangleEdge {\n top = 1,\n bottom = -1,\n left = 2,\n right = -2,\n}\n\nexport enum Position {\n top = 0,\n bottom = 1,\n start = 2,\n end = 3,\n}\n\n/**\n * Window with typings for experimental features regarding Dual Screen devices.\n */\nexport interface IWindowWithSegments extends Window {\n getWindowSegments?: () => DOMRect[];\n}\n\nexport interface IPositionProps {\n target?: Element | MouseEvent | Point;\n /** how the element should be positioned */\n directionalHint?: DirectionalHint;\n /**\n * How the element should be positioned in RTL layouts.\n * If not specified, a mirror of `directionalHint` will be used instead\n */\n directionalHintForRTL?: DirectionalHint;\n /** The gap between the callout and the target */\n gapSpace?: number;\n /**\n * The bounding rectangle for which the contextual menu can appear in.\n */\n bounds?: IRectangle;\n /**\n * If true the position returned will have the menu element cover the target.\n * If false then it will position next to the target;\n */\n coverTarget?: boolean;\n /**\n * If true the position will not change edges in an attempt to fit the rectangle within bounds.\n * It will still attempt to align it to whatever bounds are given.\n * @defaultvalue false\n */\n directionalHintFixed?: boolean;\n\n /**\n * If true the positioning logic will prefer flipping edges over nudging the rectangle to fit within bounds,\n * thus making sure the element align perfectly with target.\n */\n alignTargetEdge?: boolean;\n}\n\nexport interface ICalloutPositionProps extends IPositionProps {\n /**\n * The width of the beak.\n */\n beakWidth?: number;\n\n /**\n * Whether or not the beak is visible\n */\n isBeakVisible?: boolean;\n}\n\nexport interface IPositionedData {\n /**\n * The new position of the element.\n */\n elementPosition: IPosition;\n /**\n * The finalized target edge that element is aligning to. For instance RectangleEdge.bottom would mean\n * that the bottom edge of the target is being aligned to by the RectangleEdge.top of the element\n * that is being positioned.\n */\n targetEdge: RectangleEdge;\n /**\n * The finalized alignment edge that the element is aligning too. For instance, RectangleEdge.left means\n * that the left edge of the target should be in line with the left edge of the element being positioned.\n */\n alignmentEdge?: RectangleEdge;\n}\n\nexport interface ICalloutPositionedInfo extends IPositionedData {\n beakPosition: ICalloutBeakPositionedInfo;\n}\n\nexport interface ICalloutBeakPositionedInfo extends IPositionedData {\n closestEdge: RectangleEdge;\n hideBeak?: boolean;\n}\n\n/**\n * Gives the position of some element on the page. Only a pair of vertical and horizontal edges need to be\n * given. So top/left or bottom/left is sufficient.\n * The number given is the distance in pixels from whatever host was given..\n * So bottom: 100 would be 100px up from the bottom of the host while top: 100px from the top.\n */\nexport interface IPosition {\n top?: number;\n left?: number;\n bottom?: number;\n right?: number;\n [key: string]: number | undefined;\n}\n\nexport interface IPositionDirectionalHintData {\n targetEdge: RectangleEdge;\n alignmentEdge?: RectangleEdge;\n isAuto?: boolean;\n alignTargetEdge?: boolean;\n}\n\nexport interface IRelativePositions {\n calloutPosition: IPosition;\n beakPosition: { position: IPosition | undefined; display: 'block' };\n directionalClassName: string;\n submenuDirection: DirectionalHint;\n}\n\n// eslint-disable-next-line deprecation/deprecation\nexport type { Point, IPoint } from '../../Utilities';\n","/**\n * Rectangle helper class.\n *\n * @public\n * {@docCategory Rectangle}\n */\nexport class Rectangle {\n public top: number;\n public bottom: number;\n public left: number;\n public right: number;\n\n constructor(left: number = 0, right: number = 0, top: number = 0, bottom: number = 0) {\n this.top = top;\n this.bottom = bottom;\n this.left = left;\n this.right = right;\n }\n\n /**\n * Calculated automatically by subtracting the right from left\n */\n public get width(): number {\n return this.right - this.left;\n }\n\n /**\n * Calculated automatically by subtracting the bottom from top.\n */\n public get height(): number {\n return this.bottom - this.top;\n }\n\n /**\n * Tests if another rect is approximately equal to this rect (within 4 decimal places.)\n */\n public equals(rect: Rectangle): boolean {\n // Fixing to 4 decimal places because it allows enough precision and will handle cases when something\n // should be rounded, like .999999 should round to 1.\n return (\n parseFloat(this.top.toFixed(4)) === parseFloat(rect.top.toFixed(4)) &&\n parseFloat(this.bottom.toFixed(4)) === parseFloat(rect.bottom.toFixed(4)) &&\n parseFloat(this.left.toFixed(4)) === parseFloat(rect.left.toFixed(4)) &&\n parseFloat(this.right.toFixed(4)) === parseFloat(rect.right.toFixed(4))\n );\n }\n}\n","import { DirectionalHint } from '../../common/DirectionalHint';\nimport { getScrollbarWidth, getRTL } from '../../Utilities';\nimport { RectangleEdge } from './positioning.types';\nimport { Rectangle } from '../../Utilities';\nimport type { IRectangle, Point } from '../../Utilities';\nimport type {\n IPositionDirectionalHintData,\n IPositionedData,\n ICalloutPositionedInfo,\n ICalloutBeakPositionedInfo,\n IPositionProps,\n ICalloutPositionProps,\n IWindowWithSegments,\n} from './positioning.types';\n\nfunction _createPositionData(\n targetEdge: RectangleEdge,\n alignmentEdge?: RectangleEdge,\n isAuto?: boolean,\n): IPositionDirectionalHintData {\n return {\n targetEdge: targetEdge,\n alignmentEdge: alignmentEdge,\n isAuto: isAuto,\n };\n}\n\n// Currently the beakPercent is set to 50 for all positions meaning that it should tend to the center of the target\nconst DirectionalDictionary: { [key: number]: IPositionDirectionalHintData } = {\n [DirectionalHint.topLeftEdge]: _createPositionData(RectangleEdge.top, RectangleEdge.left),\n [DirectionalHint.topCenter]: _createPositionData(RectangleEdge.top),\n [DirectionalHint.topRightEdge]: _createPositionData(RectangleEdge.top, RectangleEdge.right),\n [DirectionalHint.topAutoEdge]: _createPositionData(RectangleEdge.top, undefined, true),\n [DirectionalHint.bottomLeftEdge]: _createPositionData(RectangleEdge.bottom, RectangleEdge.left),\n [DirectionalHint.bottomCenter]: _createPositionData(RectangleEdge.bottom),\n [DirectionalHint.bottomRightEdge]: _createPositionData(RectangleEdge.bottom, RectangleEdge.right),\n [DirectionalHint.bottomAutoEdge]: _createPositionData(RectangleEdge.bottom, undefined, true),\n [DirectionalHint.leftTopEdge]: _createPositionData(RectangleEdge.left, RectangleEdge.top),\n [DirectionalHint.leftCenter]: _createPositionData(RectangleEdge.left),\n [DirectionalHint.leftBottomEdge]: _createPositionData(RectangleEdge.left, RectangleEdge.bottom),\n [DirectionalHint.rightTopEdge]: _createPositionData(RectangleEdge.right, RectangleEdge.top),\n [DirectionalHint.rightCenter]: _createPositionData(RectangleEdge.right),\n [DirectionalHint.rightBottomEdge]: _createPositionData(RectangleEdge.right, RectangleEdge.bottom),\n};\n\n/**\n * Do not call methods from this directly, use either positionCallout or positionElement or make another function that\n * utilizes them.\n * START Private functions and interfaces\n */\n\nexport interface IElementPosition {\n elementRectangle: Rectangle;\n targetEdge: RectangleEdge;\n alignmentEdge: RectangleEdge | undefined;\n forcedInBounds?: boolean;\n}\n\nexport interface IElementPositionInfo extends IElementPosition {\n targetRectangle: Rectangle;\n}\n\ntype PartialIRectangle = Partial;\n\ninterface IPartialIRectangle extends PartialIRectangle {\n [key: string]: number | undefined;\n}\n\nfunction _isRectangleWithinBounds(rect: Rectangle, boundingRect: Rectangle): boolean {\n if (rect.top < boundingRect.top) {\n return false;\n }\n if (rect.bottom > boundingRect.bottom) {\n return false;\n }\n if (rect.left < boundingRect.left) {\n return false;\n }\n if (rect.right > boundingRect.right) {\n return false;\n }\n\n return true;\n}\n\n/**\n * Gets all of the edges of a rectangle that are outside of the given bounds.\n * If there are no out of bounds edges it returns an empty array.\n */\nfunction _getOutOfBoundsEdges(rect: Rectangle, boundingRect: Rectangle): RectangleEdge[] {\n const outOfBounds: RectangleEdge[] = [];\n\n if (rect.top < boundingRect.top) {\n outOfBounds.push(RectangleEdge.top);\n }\n if (rect.bottom > boundingRect.bottom) {\n outOfBounds.push(RectangleEdge.bottom);\n }\n if (rect.left < boundingRect.left) {\n outOfBounds.push(RectangleEdge.left);\n }\n if (rect.right > boundingRect.right) {\n outOfBounds.push(RectangleEdge.right);\n }\n\n return outOfBounds;\n}\n\nfunction _getEdgeValue(rect: Rectangle, edge: RectangleEdge): number {\n return (rect as any)[RectangleEdge[edge]] as number;\n}\n\nfunction _setEdgeValue(rect: Rectangle, edge: RectangleEdge, value: number) {\n (rect as any)[RectangleEdge[edge]] = value;\n return rect;\n}\n\n/**\n * Returns the middle value of an edge. Only returns 1 value rather than xy coordinates as\n * the itself already contains the other coordinate.\n * For instance, a bottom edge's current value is it's y coordinate, so the number returned is the x.\n */\nfunction _getCenterValue(rect: Rectangle, edge: RectangleEdge): number {\n const edges = _getFlankingEdges(edge);\n return (_getEdgeValue(rect, edges.positiveEdge) + _getEdgeValue(rect, edges.negativeEdge)) / 2;\n}\n\n/**\n * Flips the value depending on the edge.\n * If the edge is a \"positive\" edge, Top or Left, then the value should stay as it is.\n * If the edge is a \"negative\" edge, Bottom or Right, then the value should be flipped.\n * This is to account for the fact that the coordinates are effectively reserved in certain cases for the\n * \"negative\" edges.\n *\n * For example, when testing to see if a bottom edge 1 is within the bounds of another bottom edge 2:\n * If edge 1 is greater than edge 2 then it is out of bounds. This is reversed for top edge 1 and top edge 2.\n * If top edge 1 is less than edge 2 then it is out of bounds.\n */\nfunction _getRelativeEdgeValue(edge: RectangleEdge, value: number): number {\n if (edge > 0) {\n return value;\n } else {\n return value * -1;\n }\n}\n\nfunction _getRelativeRectEdgeValue(edge: RectangleEdge, rect: Rectangle): number {\n return _getRelativeEdgeValue(edge, _getEdgeValue(rect, edge));\n}\n\nfunction _getRelativeEdgeDifference(rect: Rectangle, hostRect: Rectangle, edge: RectangleEdge): number {\n const edgeDifference = _getEdgeValue(rect, edge) - _getEdgeValue(hostRect, edge);\n return _getRelativeEdgeValue(edge, edgeDifference);\n}\n\n/**\n * Moves the edge of a rectangle to the value given. It only moves the edge in a linear direction based on that edge.\n * For example, if it's a bottom edge it will only change y coordinates.\n * if maintainSize is set to false, it will only adjust the specified edge value\n */\nfunction _moveEdge(rect: Rectangle, edge: RectangleEdge, newValue: number, maintainSize = true): Rectangle {\n const difference = _getEdgeValue(rect, edge) - newValue;\n let returnRect = _setEdgeValue(rect, edge, newValue);\n if (maintainSize) {\n returnRect = _setEdgeValue(rect, edge * -1, _getEdgeValue(rect, edge * -1) - difference);\n }\n return returnRect;\n}\n\n/**\n * Aligns the edge on the passed in rect to the target. If there is a gap then it will have that space between the two.\n */\nfunction _alignEdges(rect: Rectangle, target: Rectangle, edge: RectangleEdge, gap: number = 0): Rectangle {\n return _moveEdge(rect, edge, _getEdgeValue(target, edge) + _getRelativeEdgeValue(edge, gap));\n}\n\n/**\n * Aligns the targetEdge on the passed in target to the rects corresponding opposite edge.\n * For instance if targetEdge is bottom, then the rects top will be moved to match it.\n */\nfunction _alignOppositeEdges(\n rect: Rectangle,\n target: Rectangle,\n targetEdge: RectangleEdge,\n gap: number = 0,\n): Rectangle {\n const oppositeEdge = targetEdge * -1;\n const adjustedGap = _getRelativeEdgeValue(oppositeEdge, gap);\n return _moveEdge(rect, targetEdge * -1, _getEdgeValue(target, targetEdge) + adjustedGap);\n}\n\n/**\n * Tests to see if the given edge is within the bounds of the given rectangle.\n */\nfunction _isEdgeInBounds(rect: Rectangle, bounds: Rectangle, edge: RectangleEdge): boolean {\n const adjustedRectValue = _getRelativeRectEdgeValue(edge, rect);\n return adjustedRectValue > _getRelativeRectEdgeValue(edge, bounds);\n}\n\n/**\n * Returns a measure of how much a rectangle is out of bounds for a given alignment;\n * this can be used to compare which rectangle is more or less out of bounds.\n * A value of 0 means the rectangle is entirely in bounds\n */\nfunction _getOutOfBoundsDegree(rect: Rectangle, bounds: Rectangle) {\n const breakingEdges = _getOutOfBoundsEdges(rect, bounds);\n let total = 0;\n for (const edge of breakingEdges) {\n total += _getRelativeEdgeDifference(rect, bounds, edge) ** 2;\n }\n\n return total;\n}\n\n/**\n * Attempts to move the rectangle through various sides of the target to find a place to fit.\n * If no fit is found, the least bad option should be returned.\n */\nfunction _flipToFit(\n rect: Rectangle,\n target: Rectangle,\n bounding: Rectangle,\n positionData: IPositionDirectionalHintData,\n gap: number = 0,\n): IElementPosition {\n const directions: RectangleEdge[] = [\n RectangleEdge.left,\n RectangleEdge.right,\n RectangleEdge.bottom,\n RectangleEdge.top,\n ];\n // In RTL page, RectangleEdge.right has a higher priority than RectangleEdge.left, so the order should be updated.\n if (getRTL()) {\n directions[0] *= -1;\n directions[1] *= -1;\n }\n let currentEstimate = rect;\n let currentEdge = positionData.targetEdge;\n let currentAlignment = positionData.alignmentEdge;\n\n // keep track of least bad option, in case no sides fit\n let oobDegree;\n let bestEdge = currentEdge;\n let bestAlignment = currentAlignment;\n\n // Keep switching sides until one is found with enough space.\n // If all sides don't fit then return the unmodified element.\n for (let i = 0; i < 4; i++) {\n if (!_isEdgeInBounds(currentEstimate, bounding, currentEdge)) {\n // update least-bad edges\n const currentOOBDegree = _getOutOfBoundsDegree(currentEstimate, bounding);\n if (!oobDegree || currentOOBDegree < oobDegree) {\n oobDegree = currentOOBDegree;\n bestEdge = currentEdge;\n bestAlignment = currentAlignment;\n }\n\n directions.splice(directions.indexOf(currentEdge), 1);\n if (directions.length > 0) {\n if (directions.indexOf(currentEdge * -1) > -1) {\n currentEdge = currentEdge * -1;\n } else {\n currentAlignment = currentEdge;\n currentEdge = directions.slice(-1)[0];\n }\n currentEstimate = _estimatePosition(\n rect,\n target,\n { targetEdge: currentEdge, alignmentEdge: currentAlignment },\n gap,\n );\n }\n } else {\n return {\n elementRectangle: currentEstimate,\n targetEdge: currentEdge,\n alignmentEdge: currentAlignment,\n };\n }\n }\n\n // nothing fits, use least-bad option\n currentEstimate = _estimatePosition(rect, target, { targetEdge: bestEdge, alignmentEdge: bestAlignment }, gap);\n return {\n elementRectangle: currentEstimate,\n targetEdge: bestEdge,\n alignmentEdge: bestAlignment,\n };\n}\n\n/**\n * Flips only the alignment edge of an element rectangle. This is used instead of nudging the alignment edges\n * into position, when `alignTargetEdge` is specified.\n */\nfunction _flipAlignmentEdge(\n elementEstimate: IElementPosition,\n target: Rectangle,\n gap: number,\n coverTarget?: boolean,\n): IElementPosition {\n const { alignmentEdge, targetEdge, elementRectangle } = elementEstimate;\n const oppositeEdge = alignmentEdge! * -1;\n const newEstimate = _estimatePosition(\n elementRectangle,\n target,\n { targetEdge: targetEdge, alignmentEdge: oppositeEdge },\n gap,\n coverTarget,\n );\n\n return {\n elementRectangle: newEstimate,\n targetEdge: targetEdge,\n alignmentEdge: oppositeEdge,\n };\n}\n\n/**\n * Adjusts a element rectangle to fit within the bounds given. If directionalHintFixed or covertarget is passed in\n * then the element will not flip sides on the target. They will, however, be nudged to fit within the bounds given.\n */\nfunction _adjustFitWithinBounds(\n element: Rectangle,\n target: Rectangle,\n bounding: Rectangle,\n positionData: IPositionDirectionalHintData,\n gap: number = 0,\n directionalHintFixed?: boolean,\n coverTarget?: boolean,\n): IElementPosition {\n const { alignmentEdge, alignTargetEdge } = positionData;\n let elementEstimate: IElementPosition = {\n elementRectangle: element,\n targetEdge: positionData.targetEdge,\n alignmentEdge: alignmentEdge,\n };\n\n if (!directionalHintFixed && !coverTarget) {\n elementEstimate = _flipToFit(element, target, bounding, positionData, gap);\n }\n const outOfBounds = _getOutOfBoundsEdges(elementEstimate.elementRectangle, bounding);\n // if directionalHintFixed is specified, we need to force the target edge to not change\n // we need *-1 because targetEdge refers to the target's edge; the callout edge is the opposite\n const fixedEdge = directionalHintFixed ? -elementEstimate.targetEdge : undefined;\n\n if (outOfBounds.length > 0) {\n if (alignTargetEdge) {\n // The edge opposite to the alignment edge might be out of bounds.\n // Flip alignment to see if we can get it within bounds.\n if (elementEstimate.alignmentEdge && outOfBounds.indexOf(elementEstimate.alignmentEdge * -1) > -1) {\n const flippedElementEstimate = _flipAlignmentEdge(elementEstimate, target, gap, coverTarget);\n if (_isRectangleWithinBounds(flippedElementEstimate.elementRectangle, bounding)) {\n return flippedElementEstimate;\n } else {\n // If the flipped elements edges are still out of bounds, try nudging it.\n elementEstimate = _alignOutOfBoundsEdges(\n _getOutOfBoundsEdges(flippedElementEstimate.elementRectangle, bounding),\n elementEstimate,\n bounding,\n fixedEdge,\n );\n }\n } else {\n elementEstimate = _alignOutOfBoundsEdges(outOfBounds, elementEstimate, bounding, fixedEdge);\n }\n } else {\n elementEstimate = _alignOutOfBoundsEdges(outOfBounds, elementEstimate, bounding, fixedEdge);\n }\n }\n\n return elementEstimate;\n}\n\n/**\n * Iterates through a list of out of bounds edges and tries to nudge and align them.\n * @param outOfBoundsEdges - Array of edges that are out of bounds\n * @param elementEstimate - The current element positioning estimate\n * @param bounding - The current bounds\n * @param preserveEdge - Specify an edge that should not be modified\n */\nfunction _alignOutOfBoundsEdges(\n outOfBoundsEdges: RectangleEdge[],\n elementEstimate: IElementPosition,\n bounding: Rectangle,\n preserveEdge?: RectangleEdge,\n) {\n for (const direction of outOfBoundsEdges) {\n let edgeAttempt;\n\n // if preserveEdge is specified, do not call _alignEdges, skip directly to _moveEdge\n // this is because _alignEdges will move the opposite edge\n if (preserveEdge && preserveEdge === direction * -1) {\n edgeAttempt = _moveEdge(elementEstimate.elementRectangle, direction, _getEdgeValue(bounding, direction), false);\n elementEstimate.forcedInBounds = true;\n } else {\n edgeAttempt = _alignEdges(elementEstimate.elementRectangle, bounding, direction);\n const inBounds = _isEdgeInBounds(edgeAttempt, bounding, direction * -1);\n // only update estimate if the attempt didn't break out of the opposite bounding edge\n if (!inBounds) {\n edgeAttempt = _moveEdge(edgeAttempt, direction * -1, _getEdgeValue(bounding, direction * -1), false);\n elementEstimate.forcedInBounds = true;\n }\n }\n\n elementEstimate.elementRectangle = edgeAttempt;\n }\n\n return elementEstimate;\n}\n\n/**\n * Moves the middle point on an edge to the point given.\n * Only moves in one direction. For instance if a bottom edge is passed in, then\n * the bottom edge will be moved in the x axis to match the point.\n */\nfunction _centerEdgeToPoint(rect: Rectangle, edge: RectangleEdge, point: number): Rectangle {\n const { positiveEdge } = _getFlankingEdges(edge);\n const elementMiddle = _getCenterValue(rect, edge);\n const distanceToMiddle = elementMiddle - _getEdgeValue(rect, positiveEdge);\n return _moveEdge(rect, positiveEdge, point - distanceToMiddle);\n}\n\n/**\n * Moves the element rectangle to be appropriately positioned relative to a given target.\n * Does not flip or adjust the element.\n */\nfunction _estimatePosition(\n elementToPosition: Rectangle,\n target: Rectangle,\n positionData: IPositionDirectionalHintData,\n gap: number = 0,\n coverTarget?: boolean,\n): Rectangle {\n let estimatedElementPosition = new Rectangle(\n elementToPosition.left,\n elementToPosition.right,\n elementToPosition.top,\n elementToPosition.bottom,\n );\n const { alignmentEdge, targetEdge } = positionData;\n const elementEdge = coverTarget ? targetEdge : targetEdge * -1;\n estimatedElementPosition = coverTarget\n ? _alignEdges(estimatedElementPosition, target, targetEdge, gap)\n : _alignOppositeEdges(estimatedElementPosition, target, targetEdge, gap);\n // if no alignment edge is provided it's supposed to be centered.\n if (!alignmentEdge) {\n const targetMiddlePoint = _getCenterValue(target, targetEdge);\n estimatedElementPosition = _centerEdgeToPoint(estimatedElementPosition, elementEdge, targetMiddlePoint);\n } else {\n estimatedElementPosition = _alignEdges(estimatedElementPosition, target, alignmentEdge);\n }\n\n return estimatedElementPosition;\n}\n\n/**\n * Returns the non-opposite edges of the target edge.\n * For instance if bottom is passed in then left and right will be returned.\n */\nfunction _getFlankingEdges(edge: RectangleEdge): { positiveEdge: RectangleEdge; negativeEdge: RectangleEdge } {\n if (edge === RectangleEdge.top || edge === RectangleEdge.bottom) {\n return {\n positiveEdge: RectangleEdge.left,\n negativeEdge: RectangleEdge.right,\n };\n } else {\n return {\n positiveEdge: RectangleEdge.top,\n negativeEdge: RectangleEdge.bottom,\n };\n }\n}\n\n/**\n * Retrieve the final value for the return edge of `elementRectangle`. If the `elementRectangle` is closer to one side\n * of the bounds versus the other, the return edge is flipped to grow inward.\n */\nfunction _finalizeReturnEdge(\n elementRectangle: Rectangle,\n returnEdge: RectangleEdge,\n bounds?: Rectangle,\n): RectangleEdge {\n if (\n bounds &&\n Math.abs(_getRelativeEdgeDifference(elementRectangle, bounds, returnEdge)) >\n Math.abs(_getRelativeEdgeDifference(elementRectangle, bounds, returnEdge * -1))\n ) {\n return returnEdge * -1;\n }\n\n return returnEdge;\n}\n\n/**\n * Whether or not the considered edge of the elementRectangle is lying on the edge of the bounds\n * @param elementRectangle The rectangle whose edge we are considering\n * @param bounds The rectangle marking the bounds\n * @param edge The target edge we're considering\n * @returns If the target edge of the elementRectangle is in the same location as that edge of the bounds\n */\nfunction _isEdgeOnBounds(elementRectangle: Rectangle, edge: RectangleEdge, bounds?: Rectangle): boolean {\n return bounds !== undefined && _getEdgeValue(elementRectangle, edge) === _getEdgeValue(bounds, edge);\n}\n\n/**\n * Finalizes the element position based on the hostElement. Only returns the\n * rectangle values to position such that they are anchored to the target.\n * This helps prevent resizing from looking very strange.\n * For instance, if the target edge is top and aligned with the left side then\n * the bottom and left values are returned so as the Callout shrinks it shrinks towards that corner.\n */\nfunction _finalizeElementPosition(\n elementRectangle: Rectangle,\n hostElement: HTMLElement,\n targetEdge: RectangleEdge,\n bounds?: Rectangle,\n alignmentEdge?: RectangleEdge,\n coverTarget?: boolean,\n doNotFinalizeReturnEdge?: boolean,\n forceWithinBounds?: boolean,\n): IPartialIRectangle {\n const returnValue: IPartialIRectangle = {};\n\n const hostRect: Rectangle = _getRectangleFromElement(hostElement);\n const elementEdge = coverTarget ? targetEdge : targetEdge * -1;\n let returnEdge = alignmentEdge ? alignmentEdge : _getFlankingEdges(targetEdge).positiveEdge;\n\n // If we are finalizing the return edge, choose the edge such that we grow away from the bounds\n // If we are not finalizing the return edge but the opposite edge is flush against the bounds,\n // choose that as the anchor edge so the element rect can grow away from the bounds' edge\n // In this case there will not be a visual difference because there is no more room for the elementRectangle to grow\n // in the usual direction\n if (!doNotFinalizeReturnEdge || _isEdgeOnBounds(elementRectangle, getOppositeEdge(returnEdge), bounds)) {\n returnEdge = _finalizeReturnEdge(elementRectangle, returnEdge, bounds);\n }\n\n returnValue[RectangleEdge[elementEdge]] = _getRelativeEdgeDifference(elementRectangle, hostRect, elementEdge);\n returnValue[RectangleEdge[returnEdge]] = _getRelativeEdgeDifference(elementRectangle, hostRect, returnEdge);\n\n // if the positioned element will still overflow, return all four edges with in-bounds values\n if (forceWithinBounds) {\n returnValue[RectangleEdge[elementEdge * -1]] = _getRelativeEdgeDifference(\n elementRectangle,\n hostRect,\n elementEdge * -1,\n );\n returnValue[RectangleEdge[returnEdge * -1]] = _getRelativeEdgeDifference(\n elementRectangle,\n hostRect,\n returnEdge * -1,\n );\n }\n\n return returnValue;\n}\n\n// Since the beak is rotated 45 degrees the actual height/width is the length of the diagonal.\n// We still want to position the beak based on it's midpoint which does not change. It will\n// be at (beakwidth / 2, beakwidth / 2)\nfunction _calculateActualBeakWidthInPixels(beakWidth: number): number {\n return Math.sqrt(beakWidth * beakWidth * 2);\n}\n\n/**\n * Returns the appropriate IPositionData based on the props altered for RTL.\n * If directionalHintForRTL is passed in that is used if the page is RTL.\n * If directionalHint is specified, no directionalHintForRTL is available, and the page is RTL, the hint will be\n * flipped (e.g. bottomLeftEdge would become bottomRightEdge).\n *\n * If there is no directionalHint passed in, bottomAutoEdge is chosen automatically.\n */\nfunction _getPositionData(\n directionalHint: DirectionalHint = DirectionalHint.bottomAutoEdge,\n directionalHintForRTL?: DirectionalHint,\n previousPositions?: IPositionDirectionalHintData,\n): IPositionDirectionalHintData {\n if (previousPositions) {\n return {\n alignmentEdge: previousPositions.alignmentEdge,\n isAuto: previousPositions.isAuto,\n targetEdge: previousPositions.targetEdge,\n };\n }\n const positionInformation: IPositionDirectionalHintData = { ...DirectionalDictionary[directionalHint] };\n if (getRTL()) {\n // If alignment edge exists and that alignment edge is -2 or 2, right or left, then flip it.\n if (positionInformation.alignmentEdge && positionInformation.alignmentEdge % 2 === 0) {\n positionInformation.alignmentEdge = positionInformation.alignmentEdge * -1;\n }\n\n return directionalHintForRTL !== undefined ? DirectionalDictionary[directionalHintForRTL] : positionInformation;\n }\n return positionInformation;\n}\n\n/**\n * Gets the alignment data for the given information. This only really matters if the positioning is Auto.\n * If it is auto then the alignmentEdge should be chosen based on the target edge's position relative to\n * the center of the page.\n */\nfunction _getAlignmentData(\n positionData: IPositionDirectionalHintData,\n target: Rectangle,\n boundingRect: Rectangle,\n coverTarget?: boolean,\n alignTargetEdge?: boolean,\n): IPositionDirectionalHintData {\n if (positionData.isAuto) {\n positionData.alignmentEdge = getClosestEdge(positionData.targetEdge, target, boundingRect);\n }\n\n positionData.alignTargetEdge = alignTargetEdge;\n return positionData;\n}\n\nfunction getClosestEdge(targetEdge: RectangleEdge, target: Rectangle, boundingRect: Rectangle): RectangleEdge {\n const targetCenter: number = _getCenterValue(target, targetEdge);\n const boundingCenter: number = _getCenterValue(boundingRect, targetEdge);\n const { positiveEdge, negativeEdge } = _getFlankingEdges(targetEdge);\n if (targetCenter <= boundingCenter) {\n return positiveEdge;\n } else {\n return negativeEdge;\n }\n}\n\nfunction _positionElementWithinBounds(\n elementToPosition: Rectangle,\n target: Rectangle,\n bounding: Rectangle,\n positionData: IPositionDirectionalHintData,\n gap: number,\n directionalHintFixed?: boolean,\n coverTarget?: boolean,\n): IElementPosition {\n const estimatedElementPosition: Rectangle = _estimatePosition(\n elementToPosition,\n target,\n positionData,\n gap,\n coverTarget,\n );\n if (_isRectangleWithinBounds(estimatedElementPosition, bounding)) {\n return {\n elementRectangle: estimatedElementPosition,\n targetEdge: positionData.targetEdge,\n alignmentEdge: positionData.alignmentEdge,\n };\n } else {\n return _adjustFitWithinBounds(\n estimatedElementPosition,\n target,\n bounding,\n positionData,\n gap,\n directionalHintFixed,\n coverTarget,\n );\n }\n}\n\nfunction _finalizeBeakPosition(\n elementPosition: IElementPositionInfo,\n positionedBeak: Rectangle,\n bounds?: Rectangle,\n): ICalloutBeakPositionedInfo {\n const targetEdge = elementPosition.targetEdge * -1;\n // The \"host\" element that we will use to help position the beak.\n const actualElement = new Rectangle(\n 0,\n elementPosition.elementRectangle.width,\n 0,\n elementPosition.elementRectangle.height,\n );\n const returnValue: IPartialIRectangle = {};\n const returnEdge = _finalizeReturnEdge(\n elementPosition.elementRectangle,\n elementPosition.alignmentEdge ? elementPosition.alignmentEdge : _getFlankingEdges(targetEdge).positiveEdge,\n bounds,\n );\n\n // only show the beak if the callout is not fully covering the target\n const beakEdgeDifference = _getRelativeEdgeDifference(\n elementPosition.elementRectangle,\n elementPosition.targetRectangle,\n targetEdge,\n );\n const showBeak = beakEdgeDifference > Math.abs(_getEdgeValue(positionedBeak, targetEdge));\n\n returnValue[RectangleEdge[targetEdge]] = _getEdgeValue(positionedBeak, targetEdge);\n returnValue[RectangleEdge[returnEdge]] = _getRelativeEdgeDifference(positionedBeak, actualElement, returnEdge);\n\n return {\n elementPosition: { ...returnValue },\n closestEdge: getClosestEdge(elementPosition.targetEdge, positionedBeak, actualElement),\n targetEdge: targetEdge,\n hideBeak: !showBeak,\n };\n}\n\nfunction _positionBeak(beakWidth: number, elementPosition: IElementPositionInfo): Rectangle {\n const target = elementPosition.targetRectangle;\n /**\n * Note about beak positioning: The actual beak width only matters for getting the gap between the callout and\n * target, it does not impact the beak placement within the callout. For example example, if the beakWidth is 8,\n * then the actual beakWidth is sqrroot(8^2 + 8^2) = 11.31x11.31. So the callout will need to be an extra 3 pixels\n * away from its target. While the beak is being positioned in the callout it still acts as though it were 8x8.\n */\n const { positiveEdge, negativeEdge } = _getFlankingEdges(elementPosition.targetEdge);\n const beakTargetPoint = _getCenterValue(target, elementPosition.targetEdge);\n const elementBounds = new Rectangle(\n beakWidth / 2,\n elementPosition.elementRectangle.width - beakWidth / 2,\n beakWidth / 2,\n elementPosition.elementRectangle.height - beakWidth / 2,\n );\n\n let beakPosition: Rectangle = new Rectangle(0, beakWidth, 0, beakWidth);\n\n beakPosition = _moveEdge(beakPosition, elementPosition.targetEdge * -1, -beakWidth / 2);\n\n beakPosition = _centerEdgeToPoint(\n beakPosition,\n elementPosition.targetEdge * -1,\n beakTargetPoint - _getRelativeRectEdgeValue(positiveEdge, elementPosition.elementRectangle),\n );\n\n if (!_isEdgeInBounds(beakPosition, elementBounds, positiveEdge)) {\n beakPosition = _alignEdges(beakPosition, elementBounds, positiveEdge);\n } else if (!_isEdgeInBounds(beakPosition, elementBounds, negativeEdge)) {\n beakPosition = _alignEdges(beakPosition, elementBounds, negativeEdge);\n }\n\n return beakPosition;\n}\n\nfunction _getRectangleFromElement(element: Element): Rectangle {\n const clientRect: ClientRect = element.getBoundingClientRect();\n\n return new Rectangle(clientRect.left, clientRect.right, clientRect.top, clientRect.bottom);\n}\n\nfunction _getRectangleFromIRect(rect: IRectangle): Rectangle {\n return new Rectangle(rect.left, rect.right, rect.top, rect.bottom);\n}\n\nfunction _getTargetRect(bounds: Rectangle, target: Element | MouseEvent | Point | Rectangle | undefined): Rectangle {\n let targetRectangle: Rectangle;\n if (target) {\n // eslint-disable-next-line no-extra-boolean-cast\n if (!!(target as MouseEvent).preventDefault) {\n const ev = target as MouseEvent;\n targetRectangle = new Rectangle(ev.clientX, ev.clientX, ev.clientY, ev.clientY);\n // eslint-disable-next-line no-extra-boolean-cast\n } else if (!!(target as Element).getBoundingClientRect) {\n targetRectangle = _getRectangleFromElement(target as Element);\n // HTMLImgElements can have x and y values. The check for it being a point must go last.\n } else {\n const rectOrPoint: Point & Rectangle = target as Point & Rectangle;\n // eslint-disable-next-line deprecation/deprecation\n const left = rectOrPoint.left || rectOrPoint.x;\n // eslint-disable-next-line deprecation/deprecation\n const top = rectOrPoint.top || rectOrPoint.y;\n const right = rectOrPoint.right || left;\n const bottom = rectOrPoint.bottom || top;\n targetRectangle = new Rectangle(left, right, top, bottom);\n }\n\n if (!_isRectangleWithinBounds(targetRectangle, bounds)) {\n const outOfBounds: RectangleEdge[] = _getOutOfBoundsEdges(targetRectangle, bounds);\n\n for (const direction of outOfBounds) {\n (targetRectangle as any)[RectangleEdge[direction]] = (bounds as any)[RectangleEdge[direction]];\n }\n }\n } else {\n targetRectangle = new Rectangle(0, 0, 0, 0);\n }\n\n return targetRectangle;\n}\n\n/**\n * If max height is less than zero it returns the bounds height instead.\n */\nfunction _getMaxHeightFromTargetRectangle(\n targetRectangle: Rectangle,\n targetEdge: DirectionalHint,\n gapSpace: number,\n bounds: Rectangle,\n coverTarget?: boolean,\n) {\n let maxHeight = 0;\n const directionalHint = DirectionalDictionary[targetEdge];\n\n // If cover target is set, then the max height should be calculated using the opposite of the target edge since\n // that's the direction that the callout will expand in.\n // For instance, if the directionalhint is bottomLeftEdge then the callout will position so it's bottom edge\n // is aligned with the bottom of the target and expand up towards the top of the screen and the calculated max height\n // is (bottom of target) - (top of screen) - gapSpace.\n const target = coverTarget ? directionalHint.targetEdge * -1 : directionalHint.targetEdge;\n\n if (target === RectangleEdge.top) {\n maxHeight = _getEdgeValue(targetRectangle, directionalHint.targetEdge) - bounds.top - gapSpace;\n } else if (target === RectangleEdge.bottom) {\n maxHeight = bounds.bottom - _getEdgeValue(targetRectangle, directionalHint.targetEdge) - gapSpace;\n } else {\n maxHeight = bounds.bottom - targetRectangle.top - gapSpace;\n }\n\n return maxHeight > 0 ? maxHeight : bounds.height;\n}\n\nfunction _positionElementRelative(\n props: IPositionProps,\n elementToPosition: HTMLElement,\n boundingRect: Rectangle,\n previousPositions?: IPositionedData,\n): IElementPositionInfo {\n const gap: number = props.gapSpace ? props.gapSpace : 0;\n const targetRect: Rectangle = _getTargetRect(boundingRect, props.target);\n const positionData: IPositionDirectionalHintData = _getAlignmentData(\n _getPositionData(props.directionalHint, props.directionalHintForRTL, previousPositions)!,\n targetRect,\n boundingRect,\n props.coverTarget,\n props.alignTargetEdge,\n );\n const positionedElement: IElementPosition = _positionElementWithinBounds(\n _getRectangleFromElement(elementToPosition),\n targetRect,\n boundingRect,\n positionData,\n gap,\n props.directionalHintFixed,\n props.coverTarget,\n );\n return { ...positionedElement, targetRectangle: targetRect };\n}\n\nfunction _finalizePositionData(\n positionedElement: IElementPosition,\n hostElement: HTMLElement,\n bounds?: Rectangle,\n coverTarget?: boolean,\n doNotFinalizeReturnEdge?: boolean,\n): IPositionedData {\n const finalizedElement: IPartialIRectangle = _finalizeElementPosition(\n positionedElement.elementRectangle,\n hostElement,\n positionedElement.targetEdge,\n bounds,\n positionedElement.alignmentEdge,\n coverTarget,\n doNotFinalizeReturnEdge,\n positionedElement.forcedInBounds,\n );\n return {\n elementPosition: finalizedElement,\n targetEdge: positionedElement.targetEdge,\n alignmentEdge: positionedElement.alignmentEdge,\n };\n}\n\nfunction _positionElement(\n props: IPositionProps,\n hostElement: HTMLElement,\n elementToPosition: HTMLElement,\n previousPositions?: IPositionedData,\n): IPositionedData {\n const boundingRect: Rectangle = props.bounds\n ? _getRectangleFromIRect(props.bounds)\n : new Rectangle(0, window.innerWidth - getScrollbarWidth(), 0, window.innerHeight);\n const positionedElement: IElementPosition = _positionElementRelative(\n props,\n elementToPosition,\n boundingRect,\n previousPositions,\n );\n return _finalizePositionData(positionedElement, hostElement, boundingRect, props.coverTarget);\n}\n\nfunction _positionCallout(\n props: ICalloutPositionProps,\n hostElement: HTMLElement,\n callout: HTMLElement,\n previousPositions?: ICalloutPositionedInfo,\n doNotFinalizeReturnEdge?: boolean,\n): ICalloutPositionedInfo {\n const beakWidth: number = props.isBeakVisible ? props.beakWidth || 0 : 0;\n const gap: number = _calculateActualBeakWidthInPixels(beakWidth) / 2 + (props.gapSpace ? props.gapSpace : 0);\n const positionProps: IPositionProps = props;\n positionProps.gapSpace = gap;\n const boundingRect: Rectangle = props.bounds\n ? _getRectangleFromIRect(props.bounds)\n : new Rectangle(0, window.innerWidth - getScrollbarWidth(), 0, window.innerHeight);\n const positionedElement: IElementPositionInfo = _positionElementRelative(\n positionProps,\n callout,\n boundingRect,\n previousPositions,\n );\n\n const beakPositioned: Rectangle = _positionBeak(beakWidth, positionedElement);\n const finalizedBeakPosition: ICalloutBeakPositionedInfo = _finalizeBeakPosition(\n positionedElement,\n beakPositioned,\n boundingRect,\n );\n\n return {\n ..._finalizePositionData(positionedElement, hostElement, boundingRect, props.coverTarget, doNotFinalizeReturnEdge),\n beakPosition: finalizedBeakPosition,\n };\n}\n\nfunction _positionCard(\n props: ICalloutPositionProps,\n hostElement: HTMLElement,\n callout: HTMLElement,\n previousPositions?: ICalloutPositionedInfo,\n): ICalloutPositionedInfo {\n return _positionCallout(props, hostElement, callout, previousPositions, true);\n}\n// END PRIVATE FUNCTIONS\n\nexport const __positioningTestPackage = {\n _finalizePositionData,\n _finalizeBeakPosition,\n _calculateActualBeakWidthInPixels,\n _positionElementWithinBounds,\n _positionBeak,\n _getPositionData,\n _getMaxHeightFromTargetRectangle,\n};\n\n/**\n * Used to position an element relative to the given positioning props.\n * If positioning has been completed before, previousPositions can be passed to ensure that the positioning element\n * repositions based on its previous targets rather than starting with directionalhint.\n */\nexport function positionElement(\n props: IPositionProps,\n hostElement: HTMLElement,\n elementToPosition: HTMLElement,\n previousPositions?: IPositionedData,\n): IPositionedData {\n return _positionElement(props, hostElement, elementToPosition, previousPositions);\n}\n\nexport function positionCallout(\n props: IPositionProps,\n hostElement: HTMLElement,\n elementToPosition: HTMLElement,\n previousPositions?: ICalloutPositionedInfo,\n): ICalloutPositionedInfo {\n return _positionCallout(props, hostElement, elementToPosition, previousPositions);\n}\n\nexport function positionCard(\n props: IPositionProps,\n hostElement: HTMLElement,\n elementToPosition: HTMLElement,\n previousPositions?: ICalloutPositionedInfo,\n): ICalloutPositionedInfo {\n return _positionCard(props, hostElement, elementToPosition, previousPositions);\n}\n\n/**\n * Gets the maximum height that a rectangle can have in order to fit below or above a target.\n * If the directional hint specifies a left or right edge (i.e. leftCenter) it will limit the height to the topBorder\n * of the target given.\n * If no bounds are provided then the window is treated as the bounds.\n */\nexport function getMaxHeight(\n target: Element | MouseEvent | Point | Rectangle,\n targetEdge: DirectionalHint,\n gapSpace: number = 0,\n bounds?: IRectangle,\n coverTarget?: boolean,\n): number {\n const mouseTarget: MouseEvent = target as MouseEvent;\n const elementTarget: Element = target as Element;\n const rectOrPointTarget: Point & Rectangle = target as Point & Rectangle;\n let targetRect: Rectangle;\n const boundingRectangle = bounds\n ? _getRectangleFromIRect(bounds)\n : new Rectangle(0, window.innerWidth - getScrollbarWidth(), 0, window.innerHeight);\n\n // eslint-disable-next-line deprecation/deprecation\n const left = rectOrPointTarget.left || rectOrPointTarget.x;\n // eslint-disable-next-line deprecation/deprecation\n const top = rectOrPointTarget.top || rectOrPointTarget.y;\n const right = rectOrPointTarget.right || left;\n const bottom = rectOrPointTarget.bottom || top;\n\n // eslint-disable-next-line no-extra-boolean-cast -- may not actually be a MouseEvent\n if (!!mouseTarget.stopPropagation) {\n targetRect = new Rectangle(mouseTarget.clientX, mouseTarget.clientX, mouseTarget.clientY, mouseTarget.clientY);\n } else if (left !== undefined && top !== undefined) {\n targetRect = new Rectangle(left, right, top, bottom);\n } else {\n targetRect = _getRectangleFromElement(elementTarget);\n }\n\n return _getMaxHeightFromTargetRectangle(targetRect, targetEdge, gapSpace, boundingRectangle, coverTarget);\n}\n\n/**\n * Returns the opposite edge of the given RectangleEdge.\n */\nexport function getOppositeEdge(edge: RectangleEdge): RectangleEdge {\n return edge * -1;\n}\n\nfunction _getBoundsFromTargetWindow(\n target: Element | MouseEvent | Point | Rectangle | null,\n targetWindow: IWindowWithSegments,\n): IRectangle {\n let segments = undefined;\n if (targetWindow.getWindowSegments) {\n segments = targetWindow.getWindowSegments();\n }\n\n // Identify if we're dealing with single screen scenarios.\n if (segments === undefined || segments.length <= 1) {\n return {\n top: 0,\n left: 0,\n right: targetWindow.innerWidth,\n bottom: targetWindow.innerHeight,\n width: targetWindow.innerWidth,\n height: targetWindow.innerHeight,\n };\n }\n\n // Logic for determining dual screen scenarios.\n let x: number | undefined = 0;\n let y: number | undefined = 0;\n\n // If the target is an Element get coordinates for its center.\n if (target !== null && !!(target as Element).getBoundingClientRect) {\n const clientRect = (target as Element).getBoundingClientRect();\n x = (clientRect.left + clientRect.right) / 2;\n y = (clientRect.top + clientRect.bottom) / 2;\n }\n // If the target is not null get x-axis and y-axis coordinates directly.\n else if (target !== null) {\n // eslint-disable-next-line deprecation/deprecation\n x = (target as Point).left || (target as MouseEvent | Point).x;\n // eslint-disable-next-line deprecation/deprecation\n y = (target as Point).top || (target as MouseEvent | Point).y;\n }\n\n let bounds = { top: 0, left: 0, right: 0, bottom: 0, width: 0, height: 0 };\n\n // Define which window segment are the coordinates in and calculate bounds based on that.\n for (const segment of segments) {\n if (x && segment.left <= x && segment.right >= x && y && segment.top <= y && segment.bottom >= y) {\n bounds = {\n top: segment.top,\n left: segment.left,\n right: segment.right,\n bottom: segment.bottom,\n width: segment.width,\n height: segment.height,\n };\n }\n }\n\n return bounds;\n}\n\nexport function getBoundsFromTargetWindow(\n target: Element | MouseEvent | Point | Rectangle | null,\n targetWindow: IWindowWithSegments,\n): IRectangle {\n return _getBoundsFromTargetWindow(target, targetWindow);\n}\n","import * as React from 'react';\n\n/**\n * Props for the WindowProvider component.\n */\nexport type WindowProviderProps = {\n /**\n * Provide the active window.\n */\n window: Window | undefined;\n};\n\n/**\n * Context for providing the window.\n */\n// eslint-disable-next-line @fluentui/no-context-default-value\nexport const WindowContext = React.createContext({\n window: typeof window === 'object' ? window : undefined,\n});\n\n/**\n * Hook to access the window object. This can be overridden contextually using the `WindowProvider`.\n */\nexport const useWindow = (): Window | undefined => React.useContext(WindowContext).window;\n\n/**\n * Hook to access the document object. This can be overridden contextually using the `WindowProvider`.\n */\nexport const useDocument = (): Document | undefined => React.useContext(WindowContext).window?.document;\n\n/**\n * Component to provide the window object contextually. This is useful when rendering content to an element\n * contained within a child window or iframe element, where event handlers and styling must be projected\n * to an alternative window or document.\n */\nexport const WindowProvider: React.FunctionComponent = props => {\n return {props.children};\n};\n","import { getDocument, Rectangle } from '@fluentui/utilities';\nimport * as React from 'react';\nimport { useWindow } from '@fluentui/react-window-provider';\nimport type { Point } from '@fluentui/utilities';\n\nexport type Target = Element | string | MouseEvent | Point | Rectangle | null | React.RefObject;\n\n/**\n * Hook to calculate and cache the target element specified by the given target attribute,\n * as well as the target element's (or host element's) parent window\n * @param target- Target selector passed to the component as a property, describing the element that\n * the callout should target\n * @param hostElement- The callout's host element, used for determining the parent window.\n */\nexport function useTarget(\n target: Target | undefined,\n hostElement?: React.RefObject,\n): Readonly<[React.RefObject, Window | undefined]> {\n const previousTargetProp = React.useRef<\n Element | string | MouseEvent | Point | Rectangle | React.RefObject | null | undefined\n >();\n\n const targetRef = React.useRef(null);\n /**\n * Stores an instance of Window, used to check\n * for server side rendering and if focus was lost.\n */\n const targetWindow = useWindow();\n\n // If the target element changed, find the new one. If we are tracking\n // target with class name, always find element because we do not know if\n // fabric has rendered a new element and disposed the old element.\n if (!target || target !== previousTargetProp.current || typeof target === 'string') {\n const currentElement = hostElement?.current;\n if (target) {\n if (typeof target === 'string') {\n const currentDoc: Document = getDocument(currentElement)!;\n targetRef.current = currentDoc ? currentDoc.querySelector(target) : null;\n } else if ('stopPropagation' in target) {\n targetRef.current = target;\n } else if ('getBoundingClientRect' in target) {\n targetRef.current = target;\n } else if ('current' in target) {\n targetRef.current = target.current;\n } else {\n targetRef.current = target;\n }\n }\n previousTargetProp.current = target;\n }\n\n return [targetRef, targetWindow] as const;\n}\n","import * as React from 'react';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport {\n css,\n divProperties,\n elementContains,\n focusFirstChild,\n getNativeProps,\n on,\n shallowCompare,\n getPropsWithDefaults,\n Async,\n} from '../../Utilities';\nimport { positionCallout, RectangleEdge, positionCard, getBoundsFromTargetWindow } from '../../Positioning';\nimport { Popup } from '../../Popup';\nimport { classNamesFunction } from '../../Utilities';\nimport { AnimationClassNames } from '../../Styling';\nimport { useMergedRefs, useAsync, useConst, useTarget, useOnEvent } from '@fluentui/react-hooks';\nimport type { ICalloutProps, ICalloutContentStyleProps, ICalloutContentStyles } from './Callout.types';\nimport type { Point, IRectangle } from '../../Utilities';\nimport type { ICalloutPositionedInfo, IPositionProps, IPosition } from '../../Positioning';\nimport type { Target } from '@fluentui/react-hooks';\n\nconst COMPONENT_NAME = 'CalloutContentBase';\n\nconst ANIMATIONS: { [key: number]: string | undefined } = {\n [RectangleEdge.top]: AnimationClassNames.slideUpIn10,\n [RectangleEdge.bottom]: AnimationClassNames.slideDownIn10,\n [RectangleEdge.left]: AnimationClassNames.slideLeftIn10,\n [RectangleEdge.right]: AnimationClassNames.slideRightIn10,\n};\n\nconst BEAK_ORIGIN_POSITION = { top: 0, left: 0 };\n// Microsoft Edge will overwrite inline styles if there is an animation pertaining to that style.\n// To help ensure that edge will respect the offscreen style opacity\n// filter needs to be added as an additional way to set opacity.\n// Also set pointer-events: none so that the callout will not occlude the element it is\n// going to be positioned against\nconst OFF_SCREEN_STYLE: React.CSSProperties = {\n opacity: 0,\n filter: 'opacity(0)',\n pointerEvents: 'none',\n};\n// role and role description go hand-in-hand. Both would be included by spreading getNativeProps for a basic element\n// This constant array can be used to filter these out of native props spread on callout root and apply them together on\n// calloutMain (the Popup component within the callout)\nconst ARIA_ROLE_ATTRIBUTES = ['role', 'aria-roledescription'];\n\nconst DEFAULT_PROPS = {\n preventDismissOnLostFocus: false,\n preventDismissOnScroll: false,\n preventDismissOnResize: false,\n isBeakVisible: true,\n beakWidth: 16,\n gapSpace: 0,\n minPagePadding: 8,\n directionalHint: DirectionalHint.bottomAutoEdge,\n} as const;\n\nconst getClassNames = classNamesFunction({\n disableCaching: true, // disabling caching because stylesProp.position mutates often\n});\n\n/**\n * (Hook) to return a function to lazily fetch the bounds of the target element for the callout.\n */\nfunction useBounds(\n { bounds, minPagePadding = DEFAULT_PROPS.minPagePadding, target }: ICalloutProps,\n targetRef: React.RefObject,\n targetWindow: Window | undefined,\n) {\n const [targetWindowResized, setTargetWindowResized] = React.useState(false);\n const cachedBounds = React.useRef();\n\n const getBounds = React.useCallback((): IRectangle | undefined => {\n if (!cachedBounds.current || targetWindowResized) {\n let currentBounds =\n typeof bounds === 'function' ? (targetWindow ? bounds(target, targetWindow) : undefined) : bounds;\n\n if (!currentBounds && targetWindow) {\n currentBounds = getBoundsFromTargetWindow(targetRef.current, targetWindow);\n currentBounds = {\n top: currentBounds.top + minPagePadding,\n left: currentBounds.left + minPagePadding,\n right: currentBounds.right! - minPagePadding,\n bottom: currentBounds.bottom! - minPagePadding,\n width: currentBounds.width - minPagePadding * 2,\n height: currentBounds.height - minPagePadding * 2,\n };\n }\n cachedBounds.current = currentBounds;\n targetWindowResized && setTargetWindowResized(false);\n }\n\n return cachedBounds.current;\n }, [bounds, minPagePadding, target, targetRef, targetWindow, targetWindowResized]);\n\n const async: Async = useAsync();\n useOnEvent(\n targetWindow,\n 'resize',\n async.debounce(\n () => {\n setTargetWindowResized(true);\n },\n 500,\n { leading: true },\n ),\n );\n\n return getBounds;\n}\n\n/**\n * (Hook) to return the maximum available height for the Callout to render into.\n */\nfunction useMaxHeight(\n { calloutMaxHeight, finalHeight, directionalHint, directionalHintFixed, hidden }: ICalloutProps,\n getBounds: () => IRectangle | undefined,\n positions?: ICalloutPositionedInfo,\n) {\n const [maxHeight, setMaxHeight] = React.useState();\n const { top, bottom } = positions?.elementPosition ?? {};\n\n React.useEffect(() => {\n const { top: topBounds, bottom: bottomBounds } = getBounds() ?? {};\n\n if (!calloutMaxHeight && !hidden) {\n if (typeof top === 'number' && bottomBounds) {\n setMaxHeight(bottomBounds - top);\n } else if (typeof bottom === 'number' && typeof topBounds === 'number' && bottomBounds) {\n setMaxHeight(bottomBounds - topBounds - bottom);\n }\n } else if (calloutMaxHeight) {\n setMaxHeight(calloutMaxHeight);\n } else {\n setMaxHeight(undefined);\n }\n }, [bottom, calloutMaxHeight, finalHeight, directionalHint, directionalHintFixed, getBounds, hidden, positions, top]);\n\n return maxHeight;\n}\n\n/**\n * (Hook) to find the current position of Callout. If Callout is resized then a new position is calculated.\n */\nfunction usePositions(\n props: ICalloutProps,\n hostElement: React.RefObject,\n calloutElement: HTMLDivElement | null,\n targetRef: React.RefObject,\n getBounds: () => IRectangle | undefined,\n) {\n const [positions, setPositions] = React.useState();\n const positionAttempts = React.useRef(0);\n const previousTarget = React.useRef();\n const async = useAsync();\n const { hidden, target, finalHeight, calloutMaxHeight, onPositioned, directionalHint } = props;\n\n React.useEffect(() => {\n if (!hidden) {\n const timerId = async.requestAnimationFrame(() => {\n if (hostElement.current && calloutElement) {\n const currentProps: IPositionProps = {\n ...props,\n target: targetRef.current!,\n bounds: getBounds(),\n };\n\n // duplicate calloutElement & remove useMaxHeight's maxHeight for position calc\n const dupeCalloutElement = calloutElement.cloneNode(true) as HTMLElement;\n dupeCalloutElement.style.maxHeight = calloutMaxHeight ? `${calloutMaxHeight}` : '';\n dupeCalloutElement.style.visibility = 'hidden';\n calloutElement.parentElement?.appendChild(dupeCalloutElement);\n\n const previousPositions = previousTarget.current === target ? positions : undefined;\n\n // If there is a finalHeight given then we assume that the user knows and will handle\n // additional positioning adjustments so we should call positionCard\n const newPositions: ICalloutPositionedInfo = finalHeight\n ? positionCard(currentProps, hostElement.current, dupeCalloutElement, previousPositions)\n : positionCallout(currentProps, hostElement.current, dupeCalloutElement, previousPositions);\n\n // clean up duplicate calloutElement\n calloutElement.parentElement?.removeChild(dupeCalloutElement);\n\n // Set the new position only when the positions do not exist or one of the new callout positions\n // is different. The position should not change if the position is within 2 decimal places.\n if (\n (!positions && newPositions) ||\n (positions && newPositions && !arePositionsEqual(positions, newPositions) && positionAttempts.current < 5)\n ) {\n // We should not reposition the callout more than a few times, if it is then the content is likely resizing\n // and we should stop trying to reposition to prevent a stack overflow.\n positionAttempts.current++;\n setPositions(newPositions);\n } else if (positionAttempts.current > 0) {\n // Only call the onPositioned callback if the callout has been re-positioned at least once.\n positionAttempts.current = 0;\n onPositioned?.(positions);\n }\n }\n }, calloutElement);\n\n previousTarget.current = target;\n\n return () => {\n async.cancelAnimationFrame(timerId);\n previousTarget.current = undefined;\n };\n } else {\n // When the callout is hidden, clear position state so that it is not accidentally used next render.\n setPositions(undefined);\n positionAttempts.current = 0;\n }\n }, [\n hidden,\n directionalHint,\n async,\n calloutElement,\n calloutMaxHeight,\n hostElement,\n targetRef,\n finalHeight,\n getBounds,\n onPositioned,\n positions,\n props,\n target,\n ]);\n\n return positions;\n}\n\n/**\n * (Hook) to set up behavior to automatically focus the callout when it appears, if indicated by props.\n */\nfunction useAutoFocus(\n { hidden, setInitialFocus }: ICalloutProps,\n positions: ICalloutPositionedInfo | undefined,\n calloutElement: HTMLDivElement | null,\n) {\n const async = useAsync();\n const hasPositions = !!positions;\n React.useEffect(() => {\n if (!hidden && setInitialFocus && hasPositions && calloutElement) {\n const timerId = async.requestAnimationFrame(() => focusFirstChild(calloutElement), calloutElement);\n\n return () => async.cancelAnimationFrame(timerId);\n }\n }, [hidden, hasPositions, async, calloutElement, setInitialFocus]);\n}\n\n/**\n * (Hook) to set up various handlers to dismiss the popup when it loses focus or the window scrolls or similar cases.\n */\nfunction useDismissHandlers(\n {\n hidden,\n onDismiss,\n // eslint-disable-next-line deprecation/deprecation\n preventDismissOnScroll,\n // eslint-disable-next-line deprecation/deprecation\n preventDismissOnResize,\n // eslint-disable-next-line deprecation/deprecation\n preventDismissOnLostFocus,\n dismissOnTargetClick,\n shouldDismissOnWindowFocus,\n preventDismissOnEvent,\n }: ICalloutProps,\n positions: ICalloutPositionedInfo | undefined,\n hostElement: React.RefObject,\n targetRef: React.RefObject,\n targetWindow: Window | undefined,\n) {\n const isMouseDownOnPopup = React.useRef(false);\n const async = useAsync();\n\n const mouseDownHandlers = useConst([\n () => {\n isMouseDownOnPopup.current = true;\n },\n () => {\n isMouseDownOnPopup.current = false;\n },\n ] as const);\n\n const positionsExists = !!positions;\n\n React.useEffect(() => {\n const dismissOnScroll = (ev: Event) => {\n if (positionsExists && !preventDismissOnScroll) {\n dismissOnClickOrScroll(ev);\n }\n };\n\n const dismissOnResize = (ev: Event) => {\n if (!preventDismissOnResize && !(preventDismissOnEvent && preventDismissOnEvent(ev))) {\n onDismiss?.(ev);\n }\n };\n\n const dismissOnLostFocus = (ev: Event) => {\n if (!preventDismissOnLostFocus) {\n dismissOnClickOrScroll(ev);\n }\n };\n\n const dismissOnClickOrScroll = (ev: Event) => {\n const eventPaths: Array = ev.composedPath ? ev.composedPath() : [];\n const target = eventPaths.length > 0 ? (eventPaths[0] as HTMLElement) : (ev.target as HTMLElement);\n const isEventTargetOutsideCallout = hostElement.current && !elementContains(hostElement.current, target);\n\n // If mouse is pressed down on callout but moved outside then released, don't dismiss the callout.\n if (isEventTargetOutsideCallout && isMouseDownOnPopup.current) {\n isMouseDownOnPopup.current = false;\n return;\n }\n\n if (\n (!targetRef.current && isEventTargetOutsideCallout) ||\n (ev.target !== targetWindow &&\n isEventTargetOutsideCallout &&\n (!targetRef.current ||\n 'stopPropagation' in targetRef.current ||\n dismissOnTargetClick ||\n (target !== targetRef.current && !elementContains(targetRef.current as HTMLElement, target))))\n ) {\n if (preventDismissOnEvent && preventDismissOnEvent(ev)) {\n return;\n }\n onDismiss?.(ev);\n }\n };\n\n const dismissOnTargetWindowBlur = (ev: FocusEvent) => {\n // Do nothing\n if (!shouldDismissOnWindowFocus) {\n return;\n }\n\n if (\n ((preventDismissOnEvent && !preventDismissOnEvent(ev)) ||\n (!preventDismissOnEvent && !preventDismissOnLostFocus)) &&\n !targetWindow?.document.hasFocus() &&\n ev.relatedTarget === null\n ) {\n onDismiss?.(ev);\n }\n };\n\n // This is added so the callout will dismiss when the window is scrolled\n // but not when something inside the callout is scrolled. The delay seems\n // to be required to avoid React firing an async focus event in IE from\n // the target changing focus quickly prior to rendering the callout.\n const disposablesPromise = new Promise<() => void>(resolve => {\n async.setTimeout(() => {\n if (!hidden && targetWindow) {\n const disposables = [\n on(targetWindow, 'scroll', dismissOnScroll, true),\n on(targetWindow, 'resize', dismissOnResize, true),\n on(targetWindow.document.documentElement, 'focus', dismissOnLostFocus, true),\n on(targetWindow.document.documentElement, 'click', dismissOnLostFocus, true),\n on(targetWindow, 'blur', dismissOnTargetWindowBlur, true),\n ];\n\n resolve(() => {\n disposables.forEach(dispose => dispose());\n });\n }\n }, 0);\n });\n\n return () => {\n disposablesPromise.then(dispose => dispose());\n };\n }, [\n hidden,\n async,\n hostElement,\n targetRef,\n targetWindow,\n onDismiss,\n shouldDismissOnWindowFocus,\n dismissOnTargetClick,\n preventDismissOnLostFocus,\n preventDismissOnResize,\n preventDismissOnScroll,\n positionsExists,\n preventDismissOnEvent,\n ]);\n\n return mouseDownHandlers;\n}\n\nexport const CalloutContentBase: React.FunctionComponent = React.memo(\n React.forwardRef((propsWithoutDefaults, forwardedRef) => {\n const props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n\n const {\n styles,\n style,\n ariaLabel,\n ariaDescribedBy,\n ariaLabelledBy,\n className,\n isBeakVisible,\n children,\n beakWidth,\n calloutWidth,\n calloutMaxWidth,\n calloutMinWidth,\n doNotLayer,\n finalHeight,\n hideOverflow = !!finalHeight,\n backgroundColor,\n calloutMaxHeight,\n onScroll,\n // eslint-disable-next-line deprecation/deprecation\n shouldRestoreFocus = true,\n target,\n hidden,\n onLayerMounted,\n popupProps,\n } = props;\n\n const hostElement = React.useRef(null);\n const [calloutElement, setCalloutElement] = React.useState(null);\n const calloutCallback = React.useCallback((calloutEl: any) => {\n setCalloutElement(calloutEl);\n }, []);\n const rootRef = useMergedRefs(hostElement, forwardedRef);\n\n const [targetRef, targetWindow] = useTarget(props.target, {\n current: calloutElement,\n });\n const getBounds = useBounds(props, targetRef, targetWindow);\n const positions = usePositions(props, hostElement, calloutElement, targetRef, getBounds);\n const maxHeight = useMaxHeight(props, getBounds, positions);\n const [mouseDownOnPopup, mouseUpOnPopup] = useDismissHandlers(\n props,\n positions,\n hostElement,\n targetRef,\n targetWindow,\n );\n\n // do not set both top and bottom css props from positions\n // instead, use maxHeight\n const isForcedInBounds = positions?.elementPosition.top && positions?.elementPosition.bottom;\n const cssPositions = {\n ...positions?.elementPosition,\n maxHeight,\n };\n if (isForcedInBounds) {\n cssPositions.bottom = undefined;\n }\n\n useAutoFocus(props, positions, calloutElement);\n\n React.useEffect(() => {\n if (!hidden) {\n onLayerMounted?.();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run if hidden changes\n }, [hidden]);\n\n // If there is no target window then we are likely in server side rendering and we should not render anything.\n if (!targetWindow) {\n return null;\n }\n\n const overflowYHidden = hideOverflow;\n\n const beakVisible = isBeakVisible && !!target;\n const classNames = getClassNames(styles!, {\n theme: props.theme!,\n className,\n overflowYHidden: overflowYHidden,\n calloutWidth,\n positions,\n beakWidth,\n backgroundColor,\n calloutMaxWidth,\n calloutMinWidth,\n doNotLayer,\n });\n\n const overflowStyle: React.CSSProperties = {\n maxHeight: calloutMaxHeight ? calloutMaxHeight : '100%',\n ...style,\n ...(overflowYHidden && { overflowY: 'hidden' }),\n };\n\n const visibilityStyle: React.CSSProperties | undefined = props.hidden ? { visibility: 'hidden' } : undefined;\n // React.CSSProperties does not understand IRawStyle, so the inline animations will need to be cast as any for now.\n return (\n
\n \n {beakVisible &&
}\n {beakVisible &&
}\n \n {children}\n \n
\n
\n );\n }),\n (previousProps: ICalloutProps, nextProps: ICalloutProps) => {\n if (!nextProps.shouldUpdateWhenHidden && previousProps.hidden && nextProps.hidden) {\n // Do not update when hidden.\n return true;\n }\n return shallowCompare(previousProps, nextProps);\n },\n);\n\n/**\n * (Utility) to find and return the current `Callout` Beak position.\n *\n * @param positions\n */\nfunction getBeakPosition(positions?: ICalloutPositionedInfo): React.CSSProperties {\n const beakPositionStyle: React.CSSProperties = {\n ...positions?.beakPosition?.elementPosition,\n display: positions?.beakPosition?.hideBeak ? 'none' : undefined,\n };\n\n if (!beakPositionStyle.top && !beakPositionStyle.bottom && !beakPositionStyle.left && !beakPositionStyle.right) {\n beakPositionStyle.left = BEAK_ORIGIN_POSITION.left;\n beakPositionStyle.top = BEAK_ORIGIN_POSITION.top;\n }\n\n return beakPositionStyle;\n}\n\n/**\n * (Utility) used to compare two different elementPositions to determine whether they are equal.\n *\n * @param prevElementPositions\n * @param newElementPosition\n */\nfunction arePositionsEqual(\n prevElementPositions: ICalloutPositionedInfo,\n newElementPosition: ICalloutPositionedInfo,\n): boolean {\n return (\n comparePositions(prevElementPositions.elementPosition, newElementPosition.elementPosition) &&\n comparePositions(prevElementPositions.beakPosition.elementPosition, newElementPosition.beakPosition.elementPosition)\n );\n}\n\n/**\n * (Utility) used in **arePositionsEqual** to compare two different elementPositions.\n *\n * @param prevElementPositions\n * @param newElementPositions\n */\nfunction comparePositions(prevElementPositions: IPosition, newElementPositions: IPosition): boolean {\n for (const key in newElementPositions) {\n if (newElementPositions.hasOwnProperty(key)) {\n const oldPositionEdge = prevElementPositions[key];\n const newPositionEdge = newElementPositions[key];\n if (oldPositionEdge !== undefined && newPositionEdge !== undefined) {\n if (oldPositionEdge.toFixed(2) !== newPositionEdge.toFixed(2)) {\n return false;\n }\n } else {\n return false;\n }\n }\n }\n return true;\n}\n\nCalloutContentBase.displayName = COMPONENT_NAME;\n","import { HighContrastSelector, focusClear, getGlobalClassNames, ZIndexes } from '../../Styling';\nimport type { IRawStyle } from '../../Styling';\nimport type { ICalloutContentStyleProps, ICalloutContentStyles } from './Callout.types';\n\nfunction getBeakStyle(beakWidth?: number): IRawStyle {\n return {\n height: beakWidth,\n width: beakWidth,\n };\n}\n\nconst GlobalClassNames = {\n container: 'ms-Callout-container',\n root: 'ms-Callout',\n beak: 'ms-Callout-beak',\n beakCurtain: 'ms-Callout-beakCurtain',\n calloutMain: 'ms-Callout-main',\n};\n\nexport const getStyles = (props: ICalloutContentStyleProps): ICalloutContentStyles => {\n const {\n theme,\n className,\n overflowYHidden,\n calloutWidth,\n beakWidth,\n backgroundColor,\n calloutMaxWidth,\n calloutMinWidth,\n doNotLayer,\n } = props;\n\n const classNames = getGlobalClassNames(GlobalClassNames, theme);\n\n const { semanticColors, effects } = theme;\n\n return {\n container: [\n classNames.container,\n {\n position: 'relative',\n },\n ],\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n position: 'absolute',\n display: 'flex',\n zIndex: doNotLayer ? ZIndexes.Layer : undefined,\n boxSizing: 'border-box',\n borderRadius: effects.roundedCorner2,\n boxShadow: effects.elevation16,\n selectors: {\n [HighContrastSelector]: {\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: 'WindowText',\n },\n },\n },\n focusClear(),\n className,\n !!calloutWidth && { width: calloutWidth },\n !!calloutMaxWidth && { maxWidth: calloutMaxWidth },\n !!calloutMinWidth && { minWidth: calloutMinWidth },\n ],\n beak: [\n classNames.beak,\n {\n position: 'absolute',\n backgroundColor: semanticColors.menuBackground,\n boxShadow: 'inherit',\n border: 'inherit',\n boxSizing: 'border-box',\n transform: 'rotate(45deg)',\n },\n getBeakStyle(beakWidth),\n backgroundColor && {\n backgroundColor: backgroundColor,\n },\n ],\n beakCurtain: [\n classNames.beakCurtain,\n {\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n backgroundColor: semanticColors.menuBackground,\n borderRadius: effects.roundedCorner2,\n },\n ],\n calloutMain: [\n classNames.calloutMain,\n {\n backgroundColor: semanticColors.menuBackground,\n overflowX: 'hidden',\n overflowY: 'auto',\n position: 'relative',\n width: '100%',\n borderRadius: effects.roundedCorner2,\n },\n overflowYHidden && {\n overflowY: 'hidden',\n },\n backgroundColor && {\n backgroundColor: backgroundColor,\n },\n ],\n };\n};\n","import * as React from 'react';\nimport { styled } from '../../Utilities';\nimport { CalloutContentBase } from './CalloutContent.base';\nimport { getStyles } from './CalloutContent.styles';\nimport type { ICalloutProps } from './Callout.types';\n\nexport const CalloutContent: React.FunctionComponent = styled(CalloutContentBase, getStyles, undefined, {\n scope: 'CalloutContent',\n});\n","import * as React from 'react';\nimport { CalloutContent } from './CalloutContent';\nimport { Layer } from '../../Layer';\nimport type { ICalloutProps } from './Callout.types';\n\nexport const Callout: React.FunctionComponent = React.forwardRef(\n ({ layerProps, doNotLayer, ...rest }, forwardedRef) => {\n const content = ;\n return doNotLayer ? content : {content};\n },\n);\nCallout.displayName = 'Callout';\n","import * as React from 'react';\nimport { hasSubmenu, getIsChecked } from '../../utilities/contextualMenu/index';\nimport { getRTL, initializeComponentRef } from '../../Utilities';\nimport { Icon } from '../../Icon';\nimport type { IContextualMenuItemProps, IContextualMenuItemRenderFunctions } from './ContextualMenuItem.types';\n\nconst defaultIconRenderer = (props: IContextualMenuItemProps) => {\n const { item, classNames } = props;\n const { iconProps } = item;\n return ;\n};\n\nconst renderItemIcon = (props: IContextualMenuItemProps) => {\n const { item, hasIcons } = props;\n if (!hasIcons) {\n return null;\n }\n\n if (item.onRenderIcon) {\n return item.onRenderIcon(props, defaultIconRenderer);\n }\n\n return defaultIconRenderer(props);\n};\n\nconst renderCheckMarkIcon = ({ onCheckmarkClick, item, classNames }: IContextualMenuItemProps) => {\n const isItemChecked = getIsChecked(item);\n if (onCheckmarkClick) {\n // Ensures that the item is passed as the first argument to the checkmark click callback.\n const onClick = (e: React.MouseEvent) => onCheckmarkClick(item, e);\n\n return (\n \n );\n }\n return null;\n};\n\nconst renderItemName = ({ item, classNames }: IContextualMenuItemProps) => {\n /* eslint-disable deprecation/deprecation */\n if (item.text || item.name) {\n return {item.text || item.name};\n }\n /* eslint-enable deprecation/deprecation */\n return null;\n};\n\nconst renderSecondaryText = ({ item, classNames }: IContextualMenuItemProps) => {\n if (item.secondaryText) {\n return {item.secondaryText};\n }\n return null;\n};\n\nconst renderSubMenuIcon = ({ item, classNames, theme }: IContextualMenuItemProps) => {\n if (hasSubmenu(item)) {\n return (\n \n );\n }\n return null;\n};\n\nexport class ContextualMenuItemBase extends React.Component {\n constructor(props: IContextualMenuItemProps) {\n super(props);\n\n initializeComponentRef(this);\n }\n\n public render() {\n const { item, classNames } = this.props;\n const renderContent = item.onRenderContent || this._renderLayout;\n\n return (\n
\n {renderContent(this.props, {\n renderCheckMarkIcon,\n renderItemIcon,\n renderItemName,\n renderSecondaryText,\n renderSubMenuIcon,\n })}\n
\n );\n }\n\n public openSubMenu = (): void => {\n const { item, openSubMenu, getSubmenuTarget } = this.props;\n if (getSubmenuTarget) {\n const submenuTarget = getSubmenuTarget();\n if (hasSubmenu(item) && openSubMenu && submenuTarget) {\n openSubMenu(item, submenuTarget);\n }\n }\n };\n\n public dismissSubMenu = (): void => {\n const { item, dismissSubMenu } = this.props;\n if (hasSubmenu(item) && dismissSubMenu) {\n dismissSubMenu();\n }\n };\n\n public dismissMenu = (dismissAll?: boolean): void => {\n const { dismissMenu } = this.props;\n if (dismissMenu) {\n dismissMenu(undefined /* ev */, dismissAll);\n }\n };\n\n private _renderLayout(props: IContextualMenuItemProps, defaultRenders: IContextualMenuItemRenderFunctions) {\n return (\n <>\n {defaultRenders.renderCheckMarkIcon(props)}\n {defaultRenders.renderItemIcon(props)}\n {defaultRenders.renderItemName(props)}\n {defaultRenders.renderSecondaryText(props)}\n {defaultRenders.renderSubMenuIcon(props)}\n \n );\n }\n}\n","export const KTP_PREFIX = 'ktp';\nexport const KTP_SEPARATOR = '-';\nexport const KTP_FULL_PREFIX = KTP_PREFIX + KTP_SEPARATOR;\nexport const DATAKTP_TARGET = 'data-ktp-target';\nexport const DATAKTP_EXECUTE_TARGET = 'data-ktp-execute-target';\nexport const DATAKTP_ARIA_TARGET = 'data-ktp-aria-target';\nexport const KTP_LAYER_ID = 'ktp-layer-id';\nexport const KTP_ARIA_SEPARATOR = ', ';\n\n// Events\nexport namespace KeytipEvents {\n export const KEYTIP_ADDED = 'keytipAdded';\n export const KEYTIP_REMOVED = 'keytipRemoved';\n export const KEYTIP_UPDATED = 'keytipUpdated';\n export const PERSISTED_KEYTIP_ADDED = 'persistedKeytipAdded';\n export const PERSISTED_KEYTIP_REMOVED = 'persistedKeytipRemoved';\n export const PERSISTED_KEYTIP_EXECUTE = 'persistedKeytipExecute';\n export const ENTER_KEYTIP_MODE = 'enterKeytipMode';\n export const EXIT_KEYTIP_MODE = 'exitKeytipMode';\n}\n","import { memoizeFunction } from '../../Utilities';\nimport { mergeStyleSets } from '../../Styling';\nimport type { ITheme } from '../../Styling';\nimport type { IVerticalDividerClassNames } from './VerticalDivider.types';\n\n/**\n * @deprecated use getStyles exported from VerticalDivider.styles.ts\n */\nexport const getDividerClassNames = memoizeFunction(\n // eslint-disable-next-line deprecation/deprecation\n (theme: ITheme): IVerticalDividerClassNames => {\n return mergeStyleSets({\n wrapper: {\n display: 'inline-flex',\n height: '100%',\n alignItems: 'center',\n },\n divider: {\n width: 1,\n height: '100%',\n backgroundColor: theme.palette.neutralTertiaryAlt,\n },\n });\n },\n);\n","import {\n concatStyleSets,\n getFocusStyle,\n HighContrastSelector,\n getScreenSelector,\n ScreenWidthMaxMedium,\n IconFontSizes,\n getHighContrastNoAdjustStyle,\n} from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nimport type { ITheme } from '../../Styling';\nimport type { IMenuItemStyles } from './ContextualMenu.types';\n\nexport const CONTEXTUAL_MENU_ITEM_HEIGHT = 36;\n\nconst MediumScreenSelector = getScreenSelector(0, ScreenWidthMaxMedium);\n\nexport const getMenuItemStyles = memoizeFunction(\n (theme: ITheme): IMenuItemStyles => {\n const { semanticColors, fonts, palette } = theme;\n const ContextualMenuItemBackgroundHoverColor = semanticColors.menuItemBackgroundHovered;\n const ContextualMenuItemTextHoverColor = semanticColors.menuItemTextHovered;\n const ContextualMenuItemBackgroundSelectedColor = semanticColors.menuItemBackgroundPressed;\n const ContextualMenuItemDividerColor = semanticColors.bodyDivider;\n\n const menuItemStyles: IMenuItemStyles = {\n item: [\n fonts.medium,\n {\n color: semanticColors.bodyText,\n position: 'relative',\n boxSizing: 'border-box',\n },\n ],\n divider: {\n display: 'block',\n height: '1px',\n backgroundColor: ContextualMenuItemDividerColor,\n position: 'relative',\n },\n root: [\n getFocusStyle(theme),\n fonts.medium,\n {\n color: semanticColors.bodyText,\n backgroundColor: 'transparent',\n border: 'none',\n width: '100%',\n height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n display: 'block',\n cursor: 'pointer',\n padding: '0px 8px 0 4px', // inner elements have a margin of 4px (4 + 4 = 8px as on right side)\n textAlign: 'left',\n },\n ],\n rootDisabled: {\n color: semanticColors.disabledBodyText,\n cursor: 'default',\n pointerEvents: 'none',\n selectors: {\n [HighContrastSelector]: {\n // ensure disabled text looks different than enabled\n color: 'GrayText',\n opacity: 1,\n },\n },\n },\n rootHovered: {\n backgroundColor: ContextualMenuItemBackgroundHoverColor,\n color: ContextualMenuItemTextHoverColor,\n selectors: {\n '.ms-ContextualMenu-icon': {\n color: palette.themeDarkAlt,\n },\n '.ms-ContextualMenu-submenuIcon': {\n color: palette.neutralPrimary,\n },\n },\n },\n rootFocused: {\n backgroundColor: palette.white,\n },\n rootChecked: {\n selectors: {\n '.ms-ContextualMenu-checkmarkIcon': {\n color: palette.neutralPrimary,\n },\n },\n },\n rootPressed: {\n backgroundColor: ContextualMenuItemBackgroundSelectedColor,\n selectors: {\n '.ms-ContextualMenu-icon': {\n color: palette.themeDark,\n },\n '.ms-ContextualMenu-submenuIcon': {\n color: palette.neutralPrimary,\n },\n },\n },\n rootExpanded: {\n backgroundColor: ContextualMenuItemBackgroundSelectedColor,\n color: semanticColors.bodyTextChecked,\n selectors: {\n '.ms-ContextualMenu-submenuIcon': {\n [HighContrastSelector]: {\n // icons inside of anchor tags are not properly inheriting color in high contrast\n color: 'inherit',\n },\n },\n [HighContrastSelector]: {\n // allow change in background/text to be visible\n ...getHighContrastNoAdjustStyle(),\n },\n },\n },\n linkContent: {\n whiteSpace: 'nowrap',\n height: 'inherit',\n display: 'flex',\n alignItems: 'center',\n maxWidth: '100%',\n },\n anchorLink: {\n padding: '0px 8px 0 4px', // inner elements have a margin of 4px (4 + 4 = 8px as on right side)\n textRendering: 'auto',\n color: 'inherit',\n letterSpacing: 'normal',\n wordSpacing: 'normal',\n textTransform: 'none',\n textIndent: '0px',\n textShadow: 'none',\n textDecoration: 'none',\n boxSizing: 'border-box',\n },\n label: {\n margin: '0 4px',\n verticalAlign: 'middle',\n display: 'inline-block',\n flexGrow: '1',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n secondaryText: {\n color: theme.palette.neutralSecondary,\n paddingLeft: '20px',\n textAlign: 'right',\n },\n icon: {\n display: 'inline-block',\n minHeight: '1px',\n maxHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n fontSize: IconFontSizes.medium,\n width: IconFontSizes.medium,\n margin: '0 4px',\n verticalAlign: 'middle',\n flexShrink: '0',\n selectors: {\n [MediumScreenSelector]: {\n fontSize: IconFontSizes.large,\n width: IconFontSizes.large,\n },\n },\n },\n iconColor: {\n color: semanticColors.menuIcon,\n },\n iconDisabled: {\n color: semanticColors.disabledBodyText,\n },\n checkmarkIcon: {\n color: semanticColors.bodySubtext,\n },\n subMenuIcon: {\n height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n color: palette.neutralSecondary,\n textAlign: 'center',\n display: 'inline-block',\n verticalAlign: 'middle',\n flexShrink: '0',\n fontSize: IconFontSizes.small, // 12px\n selectors: {\n ':hover': {\n color: palette.neutralPrimary,\n },\n ':active': {\n color: palette.neutralPrimary,\n },\n [MediumScreenSelector]: {\n fontSize: IconFontSizes.medium, // 16px\n },\n },\n },\n splitButtonFlexContainer: [\n getFocusStyle(theme),\n {\n display: 'flex',\n height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n flexWrap: 'nowrap',\n justifyContent: 'center',\n alignItems: 'flex-start',\n },\n ],\n };\n\n return concatStyleSets(menuItemStyles);\n },\n);\n","import { getDividerClassNames } from '../Divider/VerticalDivider.classNames';\nimport { getMenuItemStyles } from './ContextualMenu.cnstyles';\nimport {\n mergeStyleSets,\n getGlobalClassNames,\n getScreenSelector,\n ScreenWidthMaxMedium,\n hiddenContentStyle,\n} from '../../Styling';\nimport { memoizeFunction, IsFocusVisibleClassName } from '../../Utilities';\nimport type { ITheme } from '../../Styling';\nimport type { IVerticalDividerClassNames } from '../Divider/VerticalDivider.types';\nimport type { IContextualMenuItemStyles, IContextualMenuItemStyleProps } from './ContextualMenuItem.types';\nimport type { IContextualMenuSubComponentStyles } from './ContextualMenu.types';\n\n/**\n * @deprecated Deprecated in favor of mergeStyles API.\n */\nexport interface IContextualMenuClassNames {\n container?: string;\n root?: string;\n list?: string;\n header?: string;\n title?: string;\n subComponentStyles?: IContextualMenuSubComponentStyles;\n}\n\n/**\n * @deprecated Deprecated in favor of mergeStyles API.\n */\nexport interface IMenuItemClassNames {\n item?: string;\n divider?: string;\n root?: string;\n linkContent?: string;\n icon?: string;\n checkmarkIcon?: string;\n subMenuIcon?: string;\n label?: string;\n secondaryText?: string;\n splitContainer?: string;\n splitPrimary?: string;\n splitMenu?: string;\n linkContentMenu?: string;\n screenReaderText?: string;\n}\n\nconst CONTEXTUAL_SPLIT_MENU_MINWIDTH = '28px';\n\nconst MediumScreenSelector = getScreenSelector(0, ScreenWidthMaxMedium);\n\nexport const getSplitButtonVerticalDividerClassNames = memoizeFunction(\n /* eslint-disable deprecation/deprecation */\n (theme: ITheme): IVerticalDividerClassNames => {\n return mergeStyleSets(getDividerClassNames(theme), {\n /* eslint-enable deprecation/deprecation */\n wrapper: {\n position: 'absolute',\n right: 28, // width of the splitMenu based on the padding plus icon fontSize\n selectors: {\n [MediumScreenSelector]: {\n right: 32, // fontSize of the icon increased from 12px to 16px\n },\n },\n },\n divider: {\n height: 16,\n width: 1,\n },\n });\n },\n);\n\nconst GlobalClassNames = {\n item: 'ms-ContextualMenu-item',\n divider: 'ms-ContextualMenu-divider',\n root: 'ms-ContextualMenu-link',\n isChecked: 'is-checked',\n isExpanded: 'is-expanded',\n isDisabled: 'is-disabled',\n linkContent: 'ms-ContextualMenu-linkContent',\n linkContentMenu: 'ms-ContextualMenu-linkContent',\n icon: 'ms-ContextualMenu-icon',\n iconColor: 'ms-ContextualMenu-iconColor',\n checkmarkIcon: 'ms-ContextualMenu-checkmarkIcon',\n subMenuIcon: 'ms-ContextualMenu-submenuIcon',\n label: 'ms-ContextualMenu-itemText',\n secondaryText: 'ms-ContextualMenu-secondaryText',\n splitMenu: 'ms-ContextualMenu-splitMenu',\n screenReaderText: 'ms-ContextualMenu-screenReaderText',\n};\n\n/**\n * @deprecated Will be removed in \\>= 7.0.\n * This is a package-internal method that has been depended on.\n * It is being kept in this form for backwards compatibility.\n * @internal\n */\n// TODO: Audit perf. impact of and potentially remove memoizeFunction.\n// https://github.com/microsoft/fluentui/issues/5534\nexport const getItemClassNames = memoizeFunction(\n (\n theme: ITheme,\n disabled: boolean,\n expanded: boolean,\n checked: boolean,\n isAnchorLink: boolean,\n knownIcon: boolean,\n itemClassName?: string,\n dividerClassName?: string,\n iconClassName?: string,\n subMenuClassName?: string,\n primaryDisabled?: boolean,\n className?: string,\n ): IContextualMenuItemStyles => {\n const styles = getMenuItemStyles(theme);\n const classNames = getGlobalClassNames(GlobalClassNames, theme);\n\n return mergeStyleSets({\n item: [classNames.item, styles.item, itemClassName],\n divider: [classNames.divider, styles.divider, dividerClassName],\n root: [\n classNames.root,\n styles.root,\n checked && [classNames.isChecked, styles.rootChecked],\n isAnchorLink && styles.anchorLink,\n expanded && [classNames.isExpanded, styles.rootExpanded],\n disabled && [classNames.isDisabled, styles.rootDisabled],\n !disabled &&\n !expanded && [\n {\n selectors: {\n ':hover': styles.rootHovered,\n ':active': styles.rootPressed,\n [`.${IsFocusVisibleClassName} &:focus, .${IsFocusVisibleClassName} &:focus:hover`]: styles.rootFocused,\n [`.${IsFocusVisibleClassName} &:hover`]: { background: 'inherit;' },\n },\n },\n ],\n className,\n ],\n splitPrimary: [\n styles.root,\n {\n width: `calc(100% - ${CONTEXTUAL_SPLIT_MENU_MINWIDTH})`,\n },\n checked && ['is-checked', styles.rootChecked],\n (disabled || primaryDisabled) && ['is-disabled', styles.rootDisabled],\n !(disabled || primaryDisabled) &&\n !checked && [\n {\n selectors: {\n ':hover': styles.rootHovered,\n // when hovering over the splitPrimary also affect the splitMenu\n [`:hover ~ .${classNames.splitMenu}`]: styles.rootHovered,\n ':active': styles.rootPressed,\n [`.${IsFocusVisibleClassName} &:focus, .${IsFocusVisibleClassName} &:focus:hover`]: styles.rootFocused,\n [`.${IsFocusVisibleClassName} &:hover`]: { background: 'inherit;' },\n },\n },\n ],\n ],\n splitMenu: [\n classNames.splitMenu,\n styles.root,\n {\n flexBasis: '0',\n padding: '0 8px',\n minWidth: CONTEXTUAL_SPLIT_MENU_MINWIDTH,\n },\n expanded && ['is-expanded', styles.rootExpanded],\n disabled && ['is-disabled', styles.rootDisabled],\n !disabled &&\n !expanded && [\n {\n selectors: {\n ':hover': styles.rootHovered,\n ':active': styles.rootPressed,\n [`.${IsFocusVisibleClassName} &:focus, .${IsFocusVisibleClassName} &:focus:hover`]: styles.rootFocused,\n [`.${IsFocusVisibleClassName} &:hover`]: { background: 'inherit;' },\n },\n },\n ],\n ],\n anchorLink: styles.anchorLink,\n linkContent: [classNames.linkContent, styles.linkContent],\n linkContentMenu: [\n classNames.linkContentMenu,\n styles.linkContent,\n {\n justifyContent: 'center',\n },\n ],\n icon: [\n classNames.icon,\n knownIcon && styles.iconColor,\n styles.icon,\n iconClassName,\n disabled && [classNames.isDisabled, styles.iconDisabled],\n ],\n iconColor: styles.iconColor,\n checkmarkIcon: [classNames.checkmarkIcon, knownIcon && styles.checkmarkIcon, styles.icon, iconClassName],\n subMenuIcon: [\n classNames.subMenuIcon,\n styles.subMenuIcon,\n subMenuClassName,\n expanded && { color: theme.palette.neutralPrimary },\n disabled && [styles.iconDisabled],\n ],\n label: [classNames.label, styles.label],\n secondaryText: [classNames.secondaryText, styles.secondaryText],\n splitContainer: [\n styles.splitButtonFlexContainer,\n !disabled &&\n !checked && [\n {\n selectors: {\n [`.${IsFocusVisibleClassName} &:focus, .${IsFocusVisibleClassName} &:focus:hover`]: styles.rootFocused,\n },\n },\n ],\n ],\n screenReaderText: [\n classNames.screenReaderText,\n styles.screenReaderText,\n hiddenContentStyle,\n { visibility: 'hidden' },\n ],\n });\n },\n);\n\n/**\n * Wrapper function for generating ContextualMenuItem classNames which adheres to\n * the getStyles API, but invokes memoized className generator function with\n * primitive values.\n *\n * @param props the ContextualMenuItem style props used to generate its styles.\n */\nexport const getItemStyles = (props: IContextualMenuItemStyleProps): IContextualMenuItemStyles => {\n const {\n theme,\n disabled,\n expanded,\n checked,\n isAnchorLink,\n knownIcon,\n itemClassName,\n dividerClassName,\n iconClassName,\n subMenuClassName,\n primaryDisabled,\n className,\n } = props;\n\n // eslint-disable-next-line deprecation/deprecation\n return getItemClassNames(\n theme,\n disabled,\n expanded,\n checked,\n isAnchorLink,\n knownIcon,\n itemClassName,\n dividerClassName,\n iconClassName,\n subMenuClassName,\n primaryDisabled,\n className,\n );\n};\n","import * as React from 'react';\nimport { styled } from '../../Utilities';\nimport { ContextualMenuItemBase } from './ContextualMenuItem.base';\nimport { getItemStyles } from './ContextualMenu.classNames';\nimport type {\n IContextualMenuItemProps,\n IContextualMenuItemStyleProps,\n IContextualMenuItemStyles,\n} from './ContextualMenuItem.types';\n\n/**\n * ContextualMenuItem description\n */\nexport const ContextualMenuItem: React.FunctionComponent = styled<\n IContextualMenuItemProps,\n IContextualMenuItemStyleProps,\n IContextualMenuItemStyles\n>(ContextualMenuItemBase, getItemStyles, undefined, { scope: 'ContextualMenuItem' });\n","import * as React from 'react';\nimport { initializeComponentRef, shallowCompare } from '../../../Utilities';\nimport type { IContextualMenuItemWrapperProps } from './ContextualMenuItemWrapper.types';\n\nexport class ContextualMenuItemWrapper extends React.Component {\n constructor(props: IContextualMenuItemWrapperProps) {\n super(props);\n initializeComponentRef(this);\n }\n\n public shouldComponentUpdate(newProps: IContextualMenuItemWrapperProps): boolean {\n return !shallowCompare(newProps, this.props);\n }\n\n protected _onItemMouseEnter = (ev: React.MouseEvent): void => {\n const { item, onItemMouseEnter } = this.props;\n if (onItemMouseEnter) {\n onItemMouseEnter(item, ev, ev.currentTarget as HTMLElement);\n }\n };\n\n protected _onItemClick = (ev: React.MouseEvent): void => {\n const { item, onItemClickBase } = this.props;\n if (onItemClickBase) {\n onItemClickBase(item, ev, ev.currentTarget as HTMLElement);\n }\n };\n\n protected _onItemMouseLeave = (ev: React.MouseEvent): void => {\n const { item, onItemMouseLeave } = this.props;\n if (onItemMouseLeave) {\n onItemMouseLeave(item, ev);\n }\n };\n\n protected _onItemKeyDown = (ev: React.KeyboardEvent): void => {\n const { item, onItemKeyDown } = this.props;\n if (onItemKeyDown) {\n onItemKeyDown(item, ev);\n }\n };\n\n protected _onItemMouseMove = (ev: React.MouseEvent): void => {\n const { item, onItemMouseMove } = this.props;\n if (onItemMouseMove) {\n onItemMouseMove(item, ev, ev.currentTarget as HTMLElement);\n }\n };\n\n protected _getSubmenuTarget = (): HTMLElement | undefined => {\n return undefined;\n };\n}\n","import { EventGroup, getId } from '../../Utilities';\nimport { KeytipEvents } from '../../utilities/keytips/KeytipConstants';\nimport type { IKeytipProps } from '../../Keytip';\n\nexport interface IUniqueKeytip {\n uniqueID: string;\n keytip: IKeytipProps;\n}\n\n/**\n * This class is responsible for handling registering, updating, and unregistering of keytips\n */\nexport class KeytipManager {\n private static _instance: KeytipManager = new KeytipManager();\n\n public keytips: { [key: string]: IUniqueKeytip } = {};\n public persistedKeytips: { [key: string]: IUniqueKeytip } = {};\n public sequenceMapping: { [key: string]: IKeytipProps } = {};\n\n // This is (and should be) updated and kept in sync\n // with the inKeytipMode in KeytipLayer.\n public inKeytipMode = false;\n\n // Boolean that gets checked before entering keytip mode by the KeytipLayer\n // Used for an override in special cases (e.g. Disable entering keytip mode when a modal is shown)\n public shouldEnterKeytipMode = true;\n\n // Boolean to indicate whether to delay firing an event to update subscribers of\n // keytip data changed.\n public delayUpdatingKeytipChange = false;\n\n /**\n * Static function to get singleton KeytipManager instance\n *\n * @returns Singleton KeytipManager instance\n */\n public static getInstance(): KeytipManager {\n return this._instance;\n }\n\n /**\n * Initialization code to set set parameters to define\n * how the KeytipManager handles keytip data.\n *\n * @param delayUpdatingKeytipChange - T/F if we should delay notifiying keytip subscribers\n * of keytip changes\n */\n public init(delayUpdatingKeytipChange: boolean) {\n this.delayUpdatingKeytipChange = delayUpdatingKeytipChange;\n }\n\n /**\n * Registers a keytip\n *\n * @param keytipProps - Keytip to register\n * @param persisted - T/F if this keytip should be persisted, default is false\n * @returns Unique ID for this keytip\n */\n public register(keytipProps: IKeytipProps, persisted: boolean = false): string {\n let props: IKeytipProps = keytipProps;\n if (!persisted) {\n // Add the overflowSetSequence if necessary\n props = this.addParentOverflow(keytipProps);\n this.sequenceMapping[props.keySequences.toString()] = props;\n }\n // Create a unique keytip\n const uniqueKeytip: IUniqueKeytip = this._getUniqueKtp(props);\n // Add to dictionary\n persisted\n ? (this.persistedKeytips[uniqueKeytip.uniqueID] = uniqueKeytip)\n : (this.keytips[uniqueKeytip.uniqueID] = uniqueKeytip);\n\n // We only want to add something new if we are currently showing keytip mode\n if (this.inKeytipMode || !this.delayUpdatingKeytipChange) {\n const event = persisted ? KeytipEvents.PERSISTED_KEYTIP_ADDED : KeytipEvents.KEYTIP_ADDED;\n EventGroup.raise(this, event, {\n keytip: props,\n uniqueID: uniqueKeytip.uniqueID,\n });\n }\n\n return uniqueKeytip.uniqueID;\n }\n\n /**\n * Update a keytip\n *\n * @param keytipProps - Keytip to update\n * @param uniqueID - Unique ID of this keytip\n */\n public update(keytipProps: IKeytipProps, uniqueID: string): void {\n const newKeytipProps = this.addParentOverflow(keytipProps);\n const uniqueKeytip = this._getUniqueKtp(newKeytipProps, uniqueID);\n const oldKeyTip = this.keytips[uniqueID];\n if (oldKeyTip) {\n // Update everything except 'visible'\n uniqueKeytip.keytip.visible = oldKeyTip.keytip.visible;\n // Update keytip in this.keytips\n this.keytips[uniqueID] = uniqueKeytip;\n\n // Update the sequence to be up to date\n delete this.sequenceMapping[oldKeyTip.keytip.keySequences.toString()];\n this.sequenceMapping[uniqueKeytip.keytip.keySequences.toString()] = uniqueKeytip.keytip;\n\n // Raise event only if we are currently in keytip mode\n if (this.inKeytipMode || !this.delayUpdatingKeytipChange) {\n EventGroup.raise(this, KeytipEvents.KEYTIP_UPDATED, {\n keytip: uniqueKeytip.keytip,\n uniqueID: uniqueKeytip.uniqueID,\n });\n }\n }\n }\n\n /**\n * Unregisters a keytip\n *\n * @param keytipToRemove - IKeytipProps of the keytip to remove\n * @param uniqueID - Unique ID of this keytip\n * @param persisted - T/F if this keytip should be persisted, default is false\n */\n public unregister(keytipToRemove: IKeytipProps, uniqueID: string, persisted: boolean = false): void {\n persisted ? delete this.persistedKeytips[uniqueID] : delete this.keytips[uniqueID];\n !persisted && delete this.sequenceMapping[keytipToRemove.keySequences.toString()];\n\n const event = persisted ? KeytipEvents.PERSISTED_KEYTIP_REMOVED : KeytipEvents.KEYTIP_REMOVED;\n // Update keytips only if we're in keytip mode\n if (this.inKeytipMode || !this.delayUpdatingKeytipChange) {\n EventGroup.raise(this, event, {\n keytip: keytipToRemove,\n uniqueID: uniqueID,\n });\n }\n }\n\n /**\n * Manual call to enter keytip mode\n */\n public enterKeytipMode(): void {\n EventGroup.raise(this, KeytipEvents.ENTER_KEYTIP_MODE);\n }\n\n /**\n * Manual call to exit keytip mode\n */\n public exitKeytipMode(): void {\n EventGroup.raise(this, KeytipEvents.EXIT_KEYTIP_MODE);\n }\n\n /**\n * Gets all IKeytipProps from this.keytips\n *\n * @returns All keytips stored in the manager\n */\n public getKeytips(): IKeytipProps[] {\n return Object.keys(this.keytips).map(key => this.keytips[key].keytip);\n }\n\n /**\n * Adds the overflowSetSequence to the keytipProps if its parent keytip also has it\n *\n * @param keytipProps - Keytip props to add overflowSetSequence to if necessary\n * @returns - Modified keytip props, if needed to be modified\n */\n public addParentOverflow(keytipProps: IKeytipProps): IKeytipProps {\n const fullSequence = [...keytipProps.keySequences];\n fullSequence.pop();\n if (fullSequence.length !== 0) {\n const parentKeytip = this.sequenceMapping[fullSequence.toString()];\n if (parentKeytip && parentKeytip.overflowSetSequence) {\n return {\n ...keytipProps,\n overflowSetSequence: parentKeytip.overflowSetSequence,\n };\n }\n }\n return keytipProps;\n }\n\n /**\n * Public function to bind for overflow items that have a submenu\n */\n public menuExecute(overflowButtonSequences: string[], keytipSequences: string[]) {\n EventGroup.raise(this, KeytipEvents.PERSISTED_KEYTIP_EXECUTE, {\n overflowButtonSequences,\n keytipSequences,\n });\n }\n\n /**\n * Creates an IUniqueKeytip object\n *\n * @param keytipProps - IKeytipProps\n * @param uniqueID - Unique ID, will default to the next unique ID if not passed\n * @returns IUniqueKeytip object\n */\n private _getUniqueKtp(keytipProps: IKeytipProps, uniqueID: string = getId()): IUniqueKeytip {\n return { keytip: { ...keytipProps }, uniqueID };\n }\n}\n","import { KTP_SEPARATOR, KTP_PREFIX, DATAKTP_TARGET, DATAKTP_EXECUTE_TARGET, KTP_LAYER_ID } from './KeytipConstants';\nimport { addElementAtIndex } from '../../Utilities';\n\n/**\n * Converts a whole set of KeySequences into one keytip ID, which will be the ID for the last keytip sequence specified\n * keySequences should not include the initial keytip 'start' sequence.\n *\n * @param keySequences - Full path of IKeySequences for one keytip.\n * @returns String to use for the keytip ID.\n */\nexport function sequencesToID(keySequences: string[]): string {\n return keySequences.reduce((prevValue: string, keySequence: string): string => {\n return prevValue + KTP_SEPARATOR + keySequence.split('').join(KTP_SEPARATOR);\n }, KTP_PREFIX);\n}\n\n/**\n * Merges an overflow sequence with a key sequence.\n *\n * @param keySequences - Full sequence for one keytip.\n * @param overflowKeySequences - Full overflow keytip sequence.\n * @returns Sequence that will be used by the keytip when in the overflow.\n */\nexport function mergeOverflows(keySequences: string[], overflowKeySequences: string[]): string[] {\n const overflowSequenceLen = overflowKeySequences.length;\n const overflowSequence = [...overflowKeySequences].pop();\n const newKeySequences = [...keySequences];\n return addElementAtIndex(newKeySequences, overflowSequenceLen - 1, overflowSequence!);\n}\n\n/**\n * Constructs the data-ktp-target attribute selector from a full key sequence.\n *\n * @param keySequences - Full string[] for a Keytip.\n * @returns String selector to use to query for the keytip target.\n */\nexport function ktpTargetFromSequences(keySequences: string[]): string {\n return '[' + DATAKTP_TARGET + '=\"' + sequencesToID(keySequences) + '\"]';\n}\n\n/**\n * Constructs the data-ktp-execute-target attribute selector from a keytip ID.\n *\n * @param keytipId - ID of the Keytip.\n * @returns String selector to use to query for the keytip execute target.\n */\nexport function ktpTargetFromId(keytipId: string): string {\n return '[' + DATAKTP_EXECUTE_TARGET + '=\"' + keytipId + '\"]';\n}\n\n/**\n * Gets the aria-describedby value to put on the component with this keytip.\n *\n * @param keySequences - KeySequences of the keytip.\n * @returns The aria-describedby value to set on the component with this keytip.\n */\nexport function getAriaDescribedBy(keySequences: string[]): string {\n const describedby = ' ' + KTP_LAYER_ID;\n if (!keySequences.length) {\n // Return just the layer ID\n return describedby;\n }\n\n return describedby + ' ' + sequencesToID(keySequences);\n}\n","import * as React from 'react';\nimport { useConst, useIsomorphicLayoutEffect, usePrevious } from '@fluentui/react-hooks';\nimport { mergeAriaAttributeValues } from '../../Utilities';\nimport { KeytipManager, mergeOverflows, sequencesToID, getAriaDescribedBy } from '../../utilities/keytips/index';\nimport type { KeytipDataOptions } from './KeytipData.types';\nimport type { IKeytipProps } from '../../Keytip';\n\nexport interface IKeytipData {\n ariaDescribedBy: string | undefined;\n keytipId: string | undefined;\n}\n\n/**\n * Hook that creates attributes for components which are enabled with Keytip.\n */\nexport function useKeytipData(options: KeytipDataOptions): IKeytipData {\n const uniqueId = React.useRef();\n const keytipProps: IKeytipProps | undefined = options.keytipProps\n ? {\n disabled: options.disabled,\n ...options.keytipProps,\n }\n : undefined;\n\n const keytipManager = useConst(KeytipManager.getInstance());\n const prevOptions = usePrevious(options);\n\n // useLayoutEffect used to strictly emulate didUpdate/didMount behavior\n useIsomorphicLayoutEffect(() => {\n if (\n uniqueId.current &&\n keytipProps &&\n (prevOptions?.keytipProps !== options.keytipProps || prevOptions?.disabled !== options.disabled)\n ) {\n keytipManager.update(keytipProps, uniqueId.current);\n }\n });\n\n useIsomorphicLayoutEffect(() => {\n // Register Keytip in KeytipManager\n if (keytipProps) {\n uniqueId.current = keytipManager.register(keytipProps);\n }\n\n return () => {\n // Unregister Keytip in KeytipManager\n keytipProps && keytipManager.unregister(keytipProps, uniqueId.current!);\n };\n // this is meant to run only at mount, and updates are handled separately\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let nativeKeytipProps: IKeytipData = {\n ariaDescribedBy: undefined,\n keytipId: undefined,\n };\n\n if (keytipProps) {\n nativeKeytipProps = getKeytipData(keytipManager, keytipProps, options.ariaDescribedBy);\n }\n\n return nativeKeytipProps;\n}\n\n/**\n * Gets the aria- and data- attributes to attach to the component\n * @param keytipProps - options for Keytip\n * @param describedByPrepend - ariaDescribedBy value to prepend\n */\nfunction getKeytipData(\n keytipManager: KeytipManager,\n keytipProps: IKeytipProps,\n describedByPrepend?: string,\n): IKeytipData {\n // Add the parent overflow sequence if necessary\n const newKeytipProps = keytipManager.addParentOverflow(keytipProps);\n\n // Construct aria-describedby and data-ktp-id attributes\n const ariaDescribedBy = mergeAriaAttributeValues(\n describedByPrepend,\n getAriaDescribedBy(newKeytipProps.keySequences),\n )!;\n\n let keySequences = [...newKeytipProps.keySequences];\n if (newKeytipProps.overflowSetSequence) {\n keySequences = mergeOverflows(keySequences, newKeytipProps.overflowSetSequence);\n }\n const keytipId = sequencesToID(keySequences);\n\n return {\n ariaDescribedBy,\n keytipId,\n };\n}\n","import * as React from 'react';\nimport { DATAKTP_TARGET, DATAKTP_EXECUTE_TARGET } from '../../utilities/keytips/index';\nimport { useKeytipData } from './useKeytipData';\nimport type { IRenderComponent } from '../../Utilities';\nimport type { IKeytipDataProps } from './KeytipData.types';\n\n/**\n * A small element to help the target component correctly read out its aria-describedby for its Keytip\n * {@docCategory Keytips}\n */\nexport const KeytipData: React.FunctionComponent> = props => {\n const { children, ...keytipDataProps } = props;\n const { keytipId, ariaDescribedBy } = useKeytipData(keytipDataProps);\n\n return children({\n [DATAKTP_TARGET]: keytipId,\n [DATAKTP_EXECUTE_TARGET]: keytipId,\n 'aria-describedby': ariaDescribedBy,\n });\n};\n","import * as React from 'react';\nimport { anchorProperties, getNativeProps, memoizeFunction, getId, mergeAriaAttributeValues } from '../../../Utilities';\nimport { ContextualMenuItemWrapper } from './ContextualMenuItemWrapper';\nimport { KeytipData } from '../../../KeytipData';\nimport { isItemDisabled, hasSubmenu } from '../../../utilities/contextualMenu/index';\nimport { ContextualMenuItem } from '../ContextualMenuItem';\nimport type { IKeytipDataProps } from '../../../KeytipData';\nimport type { IKeytipProps } from '../../../Keytip';\n\nexport class ContextualMenuAnchor extends ContextualMenuItemWrapper {\n private _anchor = React.createRef();\n private _ariaDescriptionId: string;\n\n private _getMemoizedMenuButtonKeytipProps = memoizeFunction((keytipProps: IKeytipProps) => {\n return {\n ...keytipProps,\n hasMenu: true,\n };\n });\n\n public render() {\n const {\n item,\n classNames,\n index,\n focusableElementIndex,\n totalItemCount,\n hasCheckmarks,\n hasIcons,\n contextualMenuItemAs: ChildrenRenderer = ContextualMenuItem,\n expandedMenuItemKey,\n onItemClick,\n openSubMenu,\n dismissSubMenu,\n dismissMenu,\n } = this.props;\n\n let anchorRel = item.rel;\n if (item.target && item.target.toLowerCase() === '_blank') {\n anchorRel = anchorRel ? anchorRel : 'nofollow noopener noreferrer'; // Safe default to prevent tabjacking\n }\n\n const itemHasSubmenu = hasSubmenu(item);\n const nativeProps = getNativeProps>(item, anchorProperties);\n const disabled = isItemDisabled(item);\n const { itemProps, ariaDescription } = item;\n\n let { keytipProps } = item;\n if (keytipProps && itemHasSubmenu) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n\n // Check for ariaDescription to set the _ariaDescriptionId and render a hidden span with\n // the description in it to be added to ariaDescribedBy\n if (ariaDescription) {\n this._ariaDescriptionId = getId();\n }\n const ariaDescribedByIds = mergeAriaAttributeValues(\n item.ariaDescribedBy,\n ariaDescription ? this._ariaDescriptionId : undefined,\n nativeProps['aria-describedby'],\n );\n\n const additionalItemProperties = {\n 'aria-describedby': ariaDescribedByIds,\n };\n\n return (\n
\n );\n }\n\n protected _getSubmenuTarget = (): HTMLElement | undefined => {\n return this._anchor.current ? this._anchor.current : undefined;\n };\n\n protected _onItemClick = (ev: React.MouseEvent): void => {\n const { item, onItemClick } = this.props;\n if (onItemClick) {\n onItemClick(item, ev);\n }\n };\n\n protected _renderAriaDescription = (ariaDescription?: string, className?: string) => {\n // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan\n return ariaDescription ? (\n \n {ariaDescription}\n \n ) : null;\n };\n}\n","import * as React from 'react';\nimport { classNamesFunction } from '../../Utilities';\nimport type {\n IVerticalDividerProps,\n IVerticalDividerPropsStyles,\n IVerticalDividerStyles,\n} from './VerticalDivider.types';\n\nconst getClassNames = classNamesFunction();\n\nexport const VerticalDividerBase: React.FunctionComponent = React.forwardRef<\n HTMLDivElement,\n IVerticalDividerProps\n>((props, ref) => {\n // eslint-disable-next-line deprecation/deprecation\n const { styles, theme, getClassNames: deprecatedGetClassNames, className } = props;\n const classNames = getClassNames(styles, { theme: theme, getClassNames: deprecatedGetClassNames, className });\n return (\n \n \n \n );\n});\nVerticalDividerBase.displayName = 'VerticalDividerBase';\n","import * as React from 'react';\nimport { getStyles } from './VerticalDivider.styles';\nimport { VerticalDividerBase } from './VerticalDivider.base';\nimport { styled } from '../../Utilities';\nimport type {\n IVerticalDividerProps,\n IVerticalDividerStyles,\n IVerticalDividerPropsStyles,\n} from './VerticalDivider.types';\n\nexport const VerticalDivider: React.FunctionComponent = styled<\n IVerticalDividerProps,\n IVerticalDividerPropsStyles,\n IVerticalDividerStyles\n>(VerticalDividerBase, getStyles, undefined, {\n scope: 'VerticalDivider',\n});\n","import type { IVerticalDividerPropsStyles, IVerticalDividerStyles } from './VerticalDivider.types';\nimport type { IStyleFunction } from '../../Utilities';\n\nexport const getStyles: IStyleFunction = (\n props: IVerticalDividerPropsStyles,\n): IVerticalDividerStyles => {\n // eslint-disable-next-line deprecation/deprecation\n const { theme, getClassNames, className } = props;\n\n if (!theme) {\n throw new Error('Theme is undefined or null.');\n }\n\n if (getClassNames) {\n const names = getClassNames(theme);\n return {\n wrapper: [names.wrapper],\n divider: [names.divider],\n };\n }\n\n return {\n wrapper: [\n {\n display: 'inline-flex',\n height: '100%',\n alignItems: 'center',\n },\n className,\n ],\n divider: [\n {\n width: 1,\n height: '100%',\n backgroundColor: theme.palette.neutralTertiaryAlt,\n },\n ],\n };\n};\n","import * as React from 'react';\nimport {\n buttonProperties,\n getNativeProps,\n KeyCodes,\n mergeAriaAttributeValues,\n memoizeFunction,\n Async,\n EventGroup,\n getId,\n} from '../../../Utilities';\nimport { ContextualMenuItem } from '../ContextualMenuItem';\nimport { getSplitButtonVerticalDividerClassNames } from '../ContextualMenu.classNames';\nimport { KeytipData } from '../../../KeytipData';\nimport { isItemDisabled, hasSubmenu, getMenuItemAriaRole } from '../../../utilities/contextualMenu/index';\nimport { VerticalDivider } from '../../../Divider';\nimport { ContextualMenuItemWrapper } from './ContextualMenuItemWrapper';\nimport type { IContextualMenuItem } from '../ContextualMenu.types';\nimport type { IMenuItemClassNames } from '../ContextualMenu.classNames';\nimport type { IKeytipProps } from '../../../Keytip';\nimport type { IContextualMenuItemWrapperProps } from './ContextualMenuItemWrapper.types';\n\nexport interface IContextualMenuSplitButtonState {}\n\nconst TouchIdleDelay = 500; /* ms */\n\nexport class ContextualMenuSplitButton extends ContextualMenuItemWrapper {\n private _splitButton: HTMLDivElement;\n private _lastTouchTimeoutId: number | undefined;\n private _processingTouch: boolean;\n private _ariaDescriptionId: string;\n\n private _async: Async;\n private _events: EventGroup;\n\n private _getMemoizedMenuButtonKeytipProps = memoizeFunction((keytipProps: IKeytipProps) => {\n return {\n ...keytipProps,\n hasMenu: true,\n };\n });\n\n constructor(props: IContextualMenuItemWrapperProps) {\n super(props);\n\n this._async = new Async(this);\n this._events = new EventGroup(this);\n }\n\n public componentDidMount() {\n if (this._splitButton && 'onpointerdown' in this._splitButton) {\n this._events.on(this._splitButton, 'pointerdown', this._onPointerDown, true);\n }\n }\n\n public componentWillUnmount(): void {\n this._async.dispose();\n this._events.dispose();\n }\n\n public render(): JSX.Element | null {\n const {\n item,\n classNames,\n index,\n focusableElementIndex,\n totalItemCount,\n hasCheckmarks,\n hasIcons,\n onItemMouseLeave,\n expandedMenuItemKey,\n } = this.props;\n\n const itemHasSubmenu = hasSubmenu(item);\n\n let { keytipProps } = item;\n if (keytipProps) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n\n // Check for ariaDescription to set the _ariaDescriptionId and render a hidden span with\n // the description in it to be added to ariaDescribedBy\n const { ariaDescription } = item;\n if (ariaDescription) {\n this._ariaDescriptionId = getId();\n }\n\n return (\n \n {(keytipAttributes: any): JSX.Element => (\n (this._splitButton = splitButton)}\n role={getMenuItemAriaRole(item)}\n aria-label={item.ariaLabel}\n className={classNames.splitContainer}\n aria-disabled={isItemDisabled(item)}\n aria-expanded={itemHasSubmenu ? item.key === expandedMenuItemKey : undefined}\n aria-haspopup={true}\n aria-describedby={mergeAriaAttributeValues(\n item.ariaDescribedBy,\n ariaDescription ? this._ariaDescriptionId : undefined,\n keytipAttributes['aria-describedby'],\n )}\n aria-checked={item.isChecked || item.checked}\n aria-posinset={focusableElementIndex + 1}\n aria-setsize={totalItemCount}\n onMouseEnter={this._onItemMouseEnterPrimary}\n onMouseLeave={\n onItemMouseLeave ? onItemMouseLeave.bind(this, { ...item, subMenuProps: null, items: null }) : undefined\n }\n onMouseMove={this._onItemMouseMovePrimary}\n onKeyDown={this._onItemKeyDown}\n onClick={this._executeItemClick}\n onTouchStart={this._onTouchStart}\n tabIndex={0}\n data-is-focusable={true}\n aria-roledescription={item['aria-roledescription']}\n >\n {this._renderSplitPrimaryButton(item, classNames, index, hasCheckmarks!, hasIcons!)}\n {this._renderSplitDivider(item)}\n {this._renderSplitIconButton(item, classNames, index, keytipAttributes)}\n {this._renderAriaDescription(ariaDescription, classNames.screenReaderText)}\n
\n )}\n \n );\n }\n\n protected _onItemKeyDown = (ev: React.KeyboardEvent): void => {\n const { item, onItemKeyDown } = this.props;\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter) {\n this._executeItemClick(ev);\n ev.preventDefault();\n ev.stopPropagation();\n } else if (onItemKeyDown) {\n onItemKeyDown(item, ev);\n }\n };\n\n protected _getSubmenuTarget = (): HTMLElement | undefined => {\n return this._splitButton;\n };\n\n protected _renderAriaDescription = (ariaDescription?: string, className?: string) => {\n // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan\n return ariaDescription ? (\n \n {ariaDescription}\n \n ) : null;\n };\n\n private _renderSplitPrimaryButton(\n item: IContextualMenuItem,\n // eslint-disable-next-line deprecation/deprecation\n classNames: IMenuItemClassNames,\n index: number,\n hasCheckmarks: boolean,\n hasIcons: boolean,\n ) {\n const { contextualMenuItemAs: ChildrenRenderer = ContextualMenuItem, onItemClick } = this.props;\n\n const itemProps: IContextualMenuItem = {\n key: item.key,\n disabled: isItemDisabled(item) || item.primaryDisabled,\n /* eslint-disable deprecation/deprecation */\n name: item.name,\n text: item.text || item.name,\n secondaryText: item.secondaryText,\n /* eslint-enable deprecation/deprecation */\n className: classNames.splitPrimary,\n canCheck: item.canCheck,\n isChecked: item.isChecked,\n checked: item.checked,\n iconProps: item.iconProps,\n onRenderIcon: item.onRenderIcon,\n data: item.data,\n 'data-is-focusable': false,\n };\n\n const { itemProps: itemComponentProps } = item;\n\n return (\n \n );\n }\n\n private _renderSplitDivider(item: IContextualMenuItem) {\n const getDividerClassNames =\n item.getSplitButtonVerticalDividerClassNames || getSplitButtonVerticalDividerClassNames;\n return ;\n }\n\n private _renderSplitIconButton(\n item: IContextualMenuItem,\n classNames: IMenuItemClassNames, // eslint-disable-line deprecation/deprecation\n index: number,\n keytipAttributes: any,\n ) {\n const {\n contextualMenuItemAs: ChildrenRenderer = ContextualMenuItem,\n onItemMouseLeave,\n onItemMouseDown,\n openSubMenu,\n dismissSubMenu,\n dismissMenu,\n } = this.props;\n\n const itemProps: IContextualMenuItem = {\n onClick: this._onIconItemClick,\n disabled: isItemDisabled(item),\n className: classNames.splitMenu,\n subMenuProps: item.subMenuProps,\n submenuIconProps: item.submenuIconProps,\n split: true,\n key: item.key,\n };\n\n const buttonProps = {\n ...getNativeProps>(itemProps, buttonProperties),\n ...{\n onMouseEnter: this._onItemMouseEnterIcon,\n onMouseLeave: onItemMouseLeave ? onItemMouseLeave.bind(this, item) : undefined,\n onMouseDown: (ev: React.MouseEvent) =>\n onItemMouseDown ? onItemMouseDown(item, ev) : undefined,\n onMouseMove: this._onItemMouseMoveIcon,\n 'data-is-focusable': false,\n 'data-ktp-execute-target': keytipAttributes['data-ktp-execute-target'],\n 'aria-hidden': true,\n },\n };\n\n const { itemProps: itemComponentProps } = item;\n\n return (\n \n );\n }\n\n private _onItemMouseEnterPrimary = (ev: React.MouseEvent): void => {\n const { item, onItemMouseEnter } = this.props;\n if (onItemMouseEnter) {\n onItemMouseEnter({ ...item, subMenuProps: undefined, items: undefined }, ev, this._splitButton);\n }\n };\n\n private _onItemMouseEnterIcon = (ev: React.MouseEvent): void => {\n const { item, onItemMouseEnter } = this.props;\n if (onItemMouseEnter) {\n onItemMouseEnter(item, ev, this._splitButton);\n }\n };\n\n private _onItemMouseMovePrimary = (ev: React.MouseEvent): void => {\n const { item, onItemMouseMove } = this.props;\n if (onItemMouseMove) {\n onItemMouseMove({ ...item, subMenuProps: undefined, items: undefined }, ev, this._splitButton);\n }\n };\n\n private _onItemMouseMoveIcon = (ev: React.MouseEvent): void => {\n const { item, onItemMouseMove } = this.props;\n if (onItemMouseMove) {\n onItemMouseMove(item, ev, this._splitButton);\n }\n };\n\n private _onIconItemClick = (ev: React.MouseEvent): void => {\n const { item, onItemClickBase } = this.props;\n if (onItemClickBase) {\n onItemClickBase(item, ev, (this._splitButton ? this._splitButton : ev.currentTarget) as HTMLElement);\n }\n };\n\n private _executeItemClick = (ev: React.MouseEvent | React.KeyboardEvent): void => {\n const { item, executeItemClick, onItemClick } = this.props;\n\n if (item.disabled || item.isDisabled) {\n return;\n }\n\n if (this._processingTouch && onItemClick) {\n return onItemClick(item, ev);\n }\n\n if (executeItemClick) {\n executeItemClick(item, ev);\n }\n };\n\n private _onTouchStart = (ev: React.TouchEvent): void => {\n if (this._splitButton && !('onpointerdown' in this._splitButton)) {\n this._handleTouchAndPointerEvent(ev);\n }\n };\n\n private _onPointerDown = (ev: PointerEvent): void => {\n if (ev.pointerType === 'touch') {\n this._handleTouchAndPointerEvent(ev);\n ev.preventDefault();\n ev.stopImmediatePropagation();\n }\n };\n\n private _handleTouchAndPointerEvent(ev: React.TouchEvent | PointerEvent) {\n const { onTap } = this.props;\n\n if (onTap) {\n onTap(ev);\n }\n // If we already have an existing timeout from a previous touch/pointer event\n // cancel that timeout so we can set a new one.\n if (this._lastTouchTimeoutId) {\n this._async.clearTimeout(this._lastTouchTimeoutId);\n this._lastTouchTimeoutId = undefined;\n }\n this._processingTouch = true;\n this._lastTouchTimeoutId = this._async.setTimeout(() => {\n this._processingTouch = false;\n this._lastTouchTimeoutId = undefined;\n }, TouchIdleDelay);\n }\n}\n","import * as React from 'react';\nimport { buttonProperties, getNativeProps, memoizeFunction, getId, mergeAriaAttributeValues } from '../../../Utilities';\nimport { ContextualMenuItemWrapper } from './ContextualMenuItemWrapper';\nimport { KeytipData } from '../../../KeytipData';\nimport { getIsChecked, isItemDisabled, hasSubmenu, getMenuItemAriaRole } from '../../../utilities/contextualMenu/index';\nimport { ContextualMenuItem } from '../ContextualMenuItem';\nimport type { IKeytipDataProps } from '../../../KeytipData';\nimport type { IKeytipProps } from '../../../Keytip';\n\nexport class ContextualMenuButton extends ContextualMenuItemWrapper {\n private _btn = React.createRef();\n private _ariaDescriptionId: string;\n\n private _getMemoizedMenuButtonKeytipProps = memoizeFunction((keytipProps: IKeytipProps) => {\n return {\n ...keytipProps,\n hasMenu: true,\n };\n });\n\n public render() {\n const {\n item,\n classNames,\n index,\n focusableElementIndex,\n totalItemCount,\n hasCheckmarks,\n hasIcons,\n contextualMenuItemAs: ChildrenRenderer = ContextualMenuItem,\n expandedMenuItemKey,\n onItemMouseDown,\n onItemClick,\n openSubMenu,\n dismissSubMenu,\n dismissMenu,\n } = this.props;\n\n const isChecked: boolean | null | undefined = getIsChecked(item);\n const canCheck: boolean = isChecked !== null;\n const defaultRole = getMenuItemAriaRole(item);\n const itemHasSubmenu = hasSubmenu(item);\n const { itemProps, ariaLabel, ariaDescription } = item;\n\n const buttonNativeProperties = getNativeProps>(\n item,\n buttonProperties,\n );\n // Do not add the disabled attribute to the button so that it is focusable\n delete buttonNativeProperties.disabled;\n\n const itemRole = item.role || defaultRole;\n\n // Check for ariaDescription to set the _ariaDescriptionId and render a hidden span with\n // the description in it to be added to ariaDescribedBy\n if (ariaDescription) {\n this._ariaDescriptionId = getId();\n }\n const ariaDescribedByIds = mergeAriaAttributeValues(\n item.ariaDescribedBy,\n ariaDescription ? this._ariaDescriptionId : undefined,\n buttonNativeProperties['aria-describedby'],\n );\n\n const itemButtonProperties = {\n className: classNames.root,\n onClick: this._onItemClick,\n onKeyDown: itemHasSubmenu ? this._onItemKeyDown : undefined,\n onMouseEnter: this._onItemMouseEnter,\n onMouseLeave: this._onItemMouseLeave,\n onMouseDown: (ev: React.MouseEvent) =>\n onItemMouseDown ? onItemMouseDown(item, ev) : undefined,\n onMouseMove: this._onItemMouseMove,\n href: item.href,\n title: item.title,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedByIds,\n 'aria-haspopup': itemHasSubmenu || undefined,\n 'aria-expanded': itemHasSubmenu ? item.key === expandedMenuItemKey : undefined,\n 'aria-posinset': focusableElementIndex + 1,\n 'aria-setsize': totalItemCount,\n 'aria-disabled': isItemDisabled(item),\n 'aria-checked':\n (itemRole === 'menuitemcheckbox' || itemRole === 'menuitemradio') && canCheck ? !!isChecked : undefined,\n 'aria-selected': itemRole === 'menuitem' && canCheck ? !!isChecked : undefined,\n role: itemRole,\n // eslint-disable-next-line deprecation/deprecation\n style: item.style,\n };\n\n let { keytipProps } = item;\n if (keytipProps && itemHasSubmenu) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n\n return (\n \n {(keytipAttributes: IKeytipDataProps): JSX.Element => (\n \n )}\n \n );\n }\n\n protected _renderAriaDescription = (ariaDescription?: string, className?: string) => {\n // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan\n return ariaDescription ? (\n \n {ariaDescription}\n \n ) : null;\n };\n\n protected _getSubmenuTarget = (): HTMLElement | undefined => {\n return this._btn.current ? this._btn.current : undefined;\n };\n}\n","import * as React from 'react';\nimport type { MinimalMenuProps } from './types';\n\nexport const MenuContext = React.createContext({});\n\nexport const useMenuContext = () => {\n return React.useContext(MenuContext);\n};\n","import * as React from 'react';\nimport { ContextualMenuItemType } from './ContextualMenu.types';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { FocusZone, FocusZoneDirection, FocusZoneTabbableElements } from '../../FocusZone';\nimport {\n divProperties,\n getNativeProps,\n shallowCompare,\n Async,\n assign,\n classNamesFunction,\n css,\n getFirstFocusable,\n getLastFocusable,\n getRTL,\n KeyCodes,\n shouldWrapFocus,\n isIOS,\n isMac,\n memoizeFunction,\n getPropsWithDefaults,\n getDocument,\n FocusRects,\n} from '../../Utilities';\nimport { hasSubmenu, getIsChecked, isItemDisabled } from '../../utilities/contextualMenu/index';\nimport { Callout } from '../../Callout';\nimport { ContextualMenuItem } from './ContextualMenuItem';\nimport {\n ContextualMenuSplitButton,\n ContextualMenuButton,\n ContextualMenuAnchor,\n} from './ContextualMenuItemWrapper/index';\nimport { concatStyleSetsWithProps } from '../../Styling';\nimport { getItemStyles } from './ContextualMenu.classNames';\nimport {\n useTarget,\n usePrevious,\n useAsync,\n useWarnings,\n useId,\n Target,\n useIsomorphicLayoutEffect,\n} from '@fluentui/react-hooks';\nimport { useResponsiveMode, ResponsiveMode } from '../../ResponsiveMode';\nimport { MenuContext } from '../../utilities/MenuContext/index';\nimport type {\n IContextualMenuProps,\n IContextualMenuItem,\n IContextualMenuListProps,\n IContextualMenuStyleProps,\n IContextualMenuStyles,\n IContextualMenuItemRenderProps,\n} from './ContextualMenu.types';\nimport type { IFocusZoneProps } from '../../FocusZone';\nimport type { IMenuItemClassNames, IContextualMenuClassNames } from './ContextualMenu.classNames';\nimport type { IRenderFunction, IStyleFunctionOrObject } from '../../Utilities';\nimport type { ICalloutContentStyleProps, ICalloutContentStyles } from '../../Callout';\nimport type { IProcessedStyleSet } from '../../Styling';\nimport type { IContextualMenuItemStyleProps, IContextualMenuItemStyles } from './ContextualMenuItem.types';\nimport type { IPopupRestoreFocusParams } from '../../Popup';\n\nconst getClassNames = classNamesFunction();\nconst getContextualMenuItemClassNames = classNamesFunction();\n\n// The default ContextualMenu properties have no items and beak, the default submenu direction is right and top.\nconst DEFAULT_PROPS: Partial = {\n items: [],\n shouldFocusOnMount: true,\n gapSpace: 0,\n directionalHint: DirectionalHint.bottomAutoEdge,\n beakWidth: 16,\n};\n\nexport function getSubmenuItems(\n item: IContextualMenuItem,\n options?: {\n target?: Target;\n },\n): IContextualMenuItem[] | undefined {\n const target = options?.target;\n\n // eslint-disable-next-line deprecation/deprecation\n const items = item.subMenuProps ? item.subMenuProps.items : item.items;\n\n if (items) {\n const overrideItems: typeof items = [];\n\n for (const subItem of items) {\n if (subItem.preferMenuTargetAsEventTarget) {\n // For sub-items which need an overridden target, intercept `onClick`\n const { onClick, ...contextItem } = subItem;\n\n overrideItems.push({\n ...contextItem,\n onClick: getOnClickWithOverrideTarget(onClick, target),\n });\n } else {\n overrideItems.push(subItem);\n }\n }\n\n return overrideItems;\n }\n}\n\n/**\n * Returns true if a list of menu items can contain a checkbox\n */\nexport function canAnyMenuItemsCheck(items: IContextualMenuItem[]): boolean {\n return items.some(item => {\n if (item.canCheck) {\n return true;\n }\n\n // If the item is a section, check if any of the items in the section can check.\n if (item.sectionProps && item.sectionProps.items.some(submenuItem => submenuItem.canCheck === true)) {\n return true;\n }\n\n return false;\n });\n}\n\nconst NavigationIdleDelay = 250; /* ms */\n\nconst COMPONENT_NAME = 'ContextualMenu';\n\nconst _getMenuItemStylesFunction = memoizeFunction(\n (\n ...styles: (IStyleFunctionOrObject | undefined)[]\n ): IStyleFunctionOrObject => {\n return (styleProps: IContextualMenuItemStyleProps) =>\n concatStyleSetsWithProps(styleProps, getItemStyles, ...styles);\n },\n);\n\n//#region Custom hooks\nfunction useVisibility(props: IContextualMenuProps, targetWindow: Window | undefined) {\n const { hidden = false, onMenuDismissed, onMenuOpened } = props;\n const previousHidden = usePrevious(hidden);\n\n const onMenuOpenedRef = React.useRef(onMenuOpened);\n const onMenuClosedRef = React.useRef(onMenuDismissed);\n const propsRef = React.useRef(props);\n\n onMenuOpenedRef.current = onMenuOpened;\n onMenuClosedRef.current = onMenuDismissed;\n propsRef.current = props;\n\n React.useEffect(() => {\n // Don't issue dismissed callbacks on initial mount\n if (hidden && previousHidden === false) {\n onMenuClosedRef.current?.(propsRef.current);\n } else if (!hidden && previousHidden !== false) {\n onMenuOpenedRef.current?.(propsRef.current);\n }\n }, [hidden, previousHidden]);\n\n // Issue onDismissedCallback on unmount\n React.useEffect(() => () => onMenuClosedRef.current?.(propsRef.current), []);\n}\n\nfunction useSubMenuState(\n { hidden, items, theme, className, id, target: menuTarget }: IContextualMenuProps,\n dismiss: () => void,\n) {\n const [expandedMenuItemKey, setExpandedMenuItemKey] = React.useState();\n const [submenuTarget, setSubmenuTarget] = React.useState();\n /** True if the menu was expanded by mouse click OR hover (as opposed to by keyboard) */\n const [shouldFocusOnContainer, setShouldFocusOnContainer] = React.useState();\n const subMenuId = useId(COMPONENT_NAME, id);\n\n const closeSubMenu = React.useCallback(() => {\n setShouldFocusOnContainer(undefined);\n setExpandedMenuItemKey(undefined);\n setSubmenuTarget(undefined);\n }, []);\n\n const openSubMenu = React.useCallback(\n ({ key: submenuItemKey }: IContextualMenuItem, target: HTMLElement, focusContainer?: boolean) => {\n if (expandedMenuItemKey === submenuItemKey) {\n return;\n }\n\n target.focus();\n\n setShouldFocusOnContainer(focusContainer);\n setExpandedMenuItemKey(submenuItemKey);\n setSubmenuTarget(target);\n },\n [expandedMenuItemKey],\n );\n\n React.useEffect(() => {\n if (hidden) {\n closeSubMenu();\n }\n }, [hidden, closeSubMenu]);\n\n const onSubMenuDismiss = useOnSubmenuDismiss(dismiss, closeSubMenu);\n\n const getSubmenuProps = (): IContextualMenuProps | null => {\n const item = findItemByKeyFromItems(expandedMenuItemKey!, items);\n let submenuProps: IContextualMenuProps | null = null;\n\n if (item) {\n submenuProps = {\n items: getSubmenuItems(item, { target: menuTarget })!,\n target: submenuTarget,\n onDismiss: onSubMenuDismiss,\n isSubMenu: true,\n id: subMenuId,\n shouldFocusOnMount: true,\n shouldFocusOnContainer,\n directionalHint: getRTL(theme) ? DirectionalHint.leftTopEdge : DirectionalHint.rightTopEdge,\n className,\n gapSpace: 0,\n isBeakVisible: false,\n };\n\n if (item.subMenuProps) {\n assign(submenuProps, item.subMenuProps);\n }\n\n if (item.preferMenuTargetAsEventTarget) {\n const { onItemClick } = item;\n\n submenuProps.onItemClick = getOnClickWithOverrideTarget(onItemClick, menuTarget);\n }\n }\n return submenuProps;\n };\n\n return [expandedMenuItemKey, openSubMenu, getSubmenuProps, onSubMenuDismiss] as const;\n}\n\nfunction useShouldUpdateFocusOnMouseMove({ delayUpdateFocusOnHover, hidden }: IContextualMenuProps) {\n const shouldUpdateFocusOnMouseEvent = React.useRef(!delayUpdateFocusOnHover);\n const gotMouseMove = React.useRef(false);\n\n React.useEffect(() => {\n shouldUpdateFocusOnMouseEvent.current = !delayUpdateFocusOnHover;\n gotMouseMove.current = hidden ? false : !delayUpdateFocusOnHover && gotMouseMove.current;\n }, [delayUpdateFocusOnHover, hidden]);\n\n const onMenuFocusCapture = React.useCallback(() => {\n if (delayUpdateFocusOnHover) {\n shouldUpdateFocusOnMouseEvent.current = false;\n }\n }, [delayUpdateFocusOnHover]);\n\n return [shouldUpdateFocusOnMouseEvent, gotMouseMove, onMenuFocusCapture] as const;\n}\n\nfunction usePreviousActiveElement({ hidden, onRestoreFocus }: IContextualMenuProps, targetWindow: Window | undefined) {\n const previousElementsQueue = React.useRef([]);\n\n const tryFocusPreviousActiveElement = React.useCallback(\n (options: IPopupRestoreFocusParams) => {\n if (onRestoreFocus) {\n onRestoreFocus(options);\n } else if (options?.documentContainsFocus) {\n // Make sure that the focus method actually exists\n // In some cases the object might exist but not be a real element.\n // This is primarily for IE 11 and should be removed once IE 11 is no longer in use.\n\n previousElementsQueue.current[0]?.focus?.();\n }\n },\n [onRestoreFocus],\n );\n\n useIsomorphicLayoutEffect(() => {\n if (!hidden) {\n const targetElement = targetWindow?.document.activeElement as HTMLElement;\n const targetPosition = previousElementsQueue.current.indexOf(targetElement);\n\n if (targetPosition > -1) {\n previousElementsQueue.current = previousElementsQueue.current.slice(targetPosition + 1);\n } else {\n previousElementsQueue.current = [targetElement, ...previousElementsQueue.current];\n }\n } else if (previousElementsQueue.current.length > 0) {\n tryFocusPreviousActiveElement({\n originalElement: previousElementsQueue.current[0],\n containsFocus: true,\n documentContainsFocus: getDocument()?.hasFocus() || false,\n });\n\n previousElementsQueue.current = [];\n }\n }, [hidden, targetWindow?.document.activeElement, tryFocusPreviousActiveElement]);\n\n return [tryFocusPreviousActiveElement] as const;\n}\n\nfunction useKeyHandlers(\n {\n theme,\n isSubMenu,\n focusZoneProps: { checkForNoWrap, direction: focusZoneDirection = FocusZoneDirection.vertical } = {},\n }: IContextualMenuProps,\n dismiss: (ev?: any, dismissAll?: boolean | undefined) => void | undefined,\n hostElement: React.RefObject,\n openSubMenu: (submenuItemKey: IContextualMenuItem, target: HTMLElement) => void,\n) {\n /** True if the most recent keydown event was for alt (option) or meta (command). */\n const lastKeyDownWasAltOrMeta = React.useRef();\n\n /**\n * Calls `shouldHandleKey` to determine whether the keyboard event should be handled;\n * if so, stops event propagation and dismisses menu(s).\n * @param ev - The keyboard event.\n * @param shouldHandleKey - Returns whether we should handle this keyboard event.\n * @param dismissAllMenus - If true, dismiss all menus. Otherwise, dismiss only the current menu.\n * Only does anything if `shouldHandleKey` returns true.\n * @returns Whether the event was handled.\n */\n const keyHandler = (\n ev: React.KeyboardEvent,\n shouldHandleKey: (ev: React.KeyboardEvent) => boolean,\n dismissAllMenus?: boolean,\n ): boolean => {\n let handled = false;\n\n if (shouldHandleKey(ev)) {\n dismiss(ev, dismissAllMenus);\n ev.preventDefault();\n ev.stopPropagation();\n handled = true;\n }\n\n return handled;\n };\n\n /**\n * Checks if the submenu should be closed\n */\n const shouldCloseSubMenu = (ev: React.KeyboardEvent): boolean => {\n const submenuCloseKey = getRTL(theme) ? KeyCodes.right : KeyCodes.left;\n\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which !== submenuCloseKey || !isSubMenu) {\n return false;\n }\n\n return !!(\n focusZoneDirection === FocusZoneDirection.vertical ||\n (checkForNoWrap && !shouldWrapFocus(ev.target as HTMLElement, 'data-no-horizontal-wrap'))\n );\n };\n\n const shouldHandleKeyDown = (ev: React.KeyboardEvent) => {\n return (\n // eslint-disable-next-line deprecation/deprecation\n ev.which === KeyCodes.escape ||\n shouldCloseSubMenu(ev) ||\n // eslint-disable-next-line deprecation/deprecation\n (ev.which === KeyCodes.up && (ev.altKey || ev.metaKey))\n );\n };\n\n const onKeyDown = (ev: React.KeyboardEvent): boolean => {\n // Take note if we are processing an alt (option) or meta (command) keydown.\n // See comment in shouldHandleKeyUp for reasoning.\n lastKeyDownWasAltOrMeta.current = isAltOrMeta(ev);\n\n // On Mac, pressing escape dismisses all levels of native context menus\n // eslint-disable-next-line deprecation/deprecation\n const dismissAllMenus = ev.which === KeyCodes.escape && (isMac() || isIOS());\n\n return keyHandler(ev, shouldHandleKeyDown, dismissAllMenus);\n };\n\n /**\n * We close the menu on key up only if ALL of the following are true:\n * - Most recent key down was alt or meta (command)\n * - The alt/meta key down was NOT followed by some other key (such as down/up arrow to\n * expand/collapse the menu)\n * - We're not on a Mac (or iOS)\n *\n * This is because on Windows, pressing alt moves focus to the application menu bar or similar,\n * closing any open context menus. There is not a similar behavior on Macs.\n */\n const shouldHandleKeyUp = (ev: React.KeyboardEvent) => {\n const keyPressIsAltOrMetaAlone = lastKeyDownWasAltOrMeta.current && isAltOrMeta(ev);\n lastKeyDownWasAltOrMeta.current = false;\n return !!keyPressIsAltOrMetaAlone && !(isIOS() || isMac());\n };\n\n const onKeyUp = (ev: React.KeyboardEvent): boolean => {\n return keyHandler(ev, shouldHandleKeyUp, true /* dismissAllMenus */);\n };\n\n const onMenuKeyDown = (ev: React.KeyboardEvent) => {\n // Mark as handled if onKeyDown returns true (for handling collapse cases)\n // or if we are attempting to expand a submenu\n const handled = onKeyDown(ev);\n\n if (handled || !hostElement.current) {\n return;\n }\n\n // If we have a modifier key being pressed, we do not want to move focus.\n // Otherwise, handle up and down keys.\n const hasModifier = !!(ev.altKey || ev.metaKey);\n // eslint-disable-next-line deprecation/deprecation\n const isUp = ev.which === KeyCodes.up;\n // eslint-disable-next-line deprecation/deprecation\n const isDown = ev.which === KeyCodes.down;\n if (!hasModifier && (isUp || isDown)) {\n const elementToFocus = isUp\n ? getLastFocusable(hostElement.current, hostElement.current.lastChild as HTMLElement, true)\n : getFirstFocusable(hostElement.current, hostElement.current.firstChild as HTMLElement, true);\n\n if (elementToFocus) {\n elementToFocus.focus();\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n };\n\n const onItemKeyDown = (item: any, ev: React.KeyboardEvent): void => {\n const openKey = getRTL(theme) ? KeyCodes.left : KeyCodes.right;\n\n if (\n !item.disabled &&\n // eslint-disable-next-line deprecation/deprecation\n (ev.which === openKey || ev.which === KeyCodes.enter || (ev.which === KeyCodes.down && (ev.altKey || ev.metaKey)))\n ) {\n openSubMenu(item, ev.currentTarget as HTMLElement);\n ev.preventDefault();\n }\n };\n\n return [onKeyDown, onKeyUp, onMenuKeyDown, onItemKeyDown] as const;\n}\n\nfunction useScrollHandler(asyncTracker: Async) {\n const isScrollIdle = React.useRef(true);\n const scrollIdleTimeoutId = React.useRef();\n\n /**\n * Scroll handler for the callout to make sure the mouse events\n * for updating focus are not interacting during scroll\n */\n const onScroll = (): void => {\n if (!isScrollIdle.current && scrollIdleTimeoutId.current !== undefined) {\n asyncTracker.clearTimeout(scrollIdleTimeoutId.current);\n scrollIdleTimeoutId.current = undefined;\n } else {\n isScrollIdle.current = false;\n }\n\n scrollIdleTimeoutId.current = asyncTracker.setTimeout(() => {\n isScrollIdle.current = true;\n }, NavigationIdleDelay);\n };\n\n return [onScroll, isScrollIdle] as const;\n}\n\nfunction useOnSubmenuDismiss(dismiss: (ev?: any, dismissAll?: boolean) => void, closeSubMenu: () => void) {\n const isMountedRef = React.useRef(false);\n React.useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n /**\n * This function is called ASYNCHRONOUSLY, and so there is a chance it is called\n * after the component is unmounted. The isMountedRef is added to prevent\n * from calling setState() after unmount. Do NOT copy this pattern in synchronous\n * code.\n */\n const onSubMenuDismiss = (ev?: any, dismissAll?: boolean): void => {\n if (dismissAll) {\n dismiss(ev, dismissAll);\n } else if (isMountedRef.current) {\n closeSubMenu();\n }\n };\n\n return onSubMenuDismiss;\n}\n\nfunction useSubmenuEnterTimer({ subMenuHoverDelay = NavigationIdleDelay }: IContextualMenuProps, asyncTracker: Async) {\n const enterTimerRef = React.useRef(undefined);\n\n const cancelSubMenuTimer = () => {\n if (enterTimerRef.current !== undefined) {\n asyncTracker.clearTimeout(enterTimerRef.current);\n enterTimerRef.current = undefined;\n }\n };\n\n const startSubmenuTimer = (onTimerExpired: () => void) => {\n enterTimerRef.current = asyncTracker.setTimeout(() => {\n onTimerExpired();\n cancelSubMenuTimer();\n }, subMenuHoverDelay);\n };\n\n return [cancelSubMenuTimer, startSubmenuTimer, enterTimerRef as React.RefObject] as const;\n}\n\nfunction useMouseHandlers(\n props: IContextualMenuProps,\n isScrollIdle: React.MutableRefObject,\n subMenuEntryTimer: React.RefObject,\n targetWindow: Window | undefined,\n shouldUpdateFocusOnMouseEvent: React.MutableRefObject,\n gotMouseMove: React.MutableRefObject,\n expandedMenuItemKey: string | undefined,\n hostElement: React.RefObject,\n startSubmenuTimer: (onTimerExpired: () => void) => void,\n cancelSubMenuTimer: () => void,\n openSubMenu: (submenuItemKey: IContextualMenuItem, target: HTMLElement, openedByMouseClick?: boolean) => void,\n onSubMenuDismiss: (ev?: any, dismissAll?: boolean) => void,\n dismiss: (ev?: any, dismissAll?: boolean) => void,\n) {\n const { target: menuTarget } = props;\n\n const onItemMouseEnterBase = (item: any, ev: React.MouseEvent, target?: HTMLElement): void => {\n if (shouldUpdateFocusOnMouseEvent.current) {\n gotMouseMove.current = true;\n }\n\n if (shouldIgnoreMouseEvent()) {\n return;\n }\n\n updateFocusOnMouseEvent(item, ev, target);\n };\n\n const onItemMouseMoveBase = (item: any, ev: React.MouseEvent, target: HTMLElement): void => {\n const targetElement = ev.currentTarget as HTMLElement;\n\n // Always do this check to make sure we record a mouseMove if needed (even if we are timed out)\n if (shouldUpdateFocusOnMouseEvent.current) {\n gotMouseMove.current = true;\n } else {\n return;\n }\n\n if (\n !isScrollIdle.current ||\n subMenuEntryTimer.current !== undefined ||\n targetElement === (targetWindow?.document.activeElement as HTMLElement)\n ) {\n return;\n }\n\n updateFocusOnMouseEvent(item, ev, target);\n };\n\n const shouldIgnoreMouseEvent = (): boolean => {\n return !isScrollIdle.current || !gotMouseMove.current;\n };\n\n const onMouseItemLeave = (item: any, ev: React.MouseEvent): void => {\n if (shouldIgnoreMouseEvent()) {\n return;\n }\n\n cancelSubMenuTimer();\n\n if (expandedMenuItemKey !== undefined) {\n return;\n }\n\n /**\n * IE11 focus() method forces parents to scroll to top of element.\n * Edge and IE expose a setActive() function for focusable divs that\n * sets the page focus but does not scroll the parent element.\n */\n if ((hostElement.current as any).setActive) {\n try {\n (hostElement.current as any).setActive();\n } catch (e) {\n /* no-op */\n }\n } else {\n hostElement.current?.focus();\n }\n };\n\n /**\n * Handles updating focus when mouseEnter or mouseMove fire.\n * As part of updating focus, This function will also update\n * the expand/collapse state accordingly.\n */\n const updateFocusOnMouseEvent = (\n item: IContextualMenuItem,\n ev: React.MouseEvent,\n target?: HTMLElement,\n ) => {\n const targetElement = target ? target : (ev.currentTarget as HTMLElement);\n\n if (item.key === expandedMenuItemKey) {\n return;\n }\n\n cancelSubMenuTimer();\n\n // If the menu is not expanded we can update focus without any delay\n if (expandedMenuItemKey === undefined) {\n targetElement.focus();\n }\n\n // Delay updating expanding/dismissing the submenu\n // and only set focus if we have not already done so\n if (hasSubmenu(item)) {\n ev.stopPropagation();\n startSubmenuTimer(() => {\n targetElement.focus();\n openSubMenu(item, targetElement, true);\n });\n } else {\n startSubmenuTimer(() => {\n onSubMenuDismiss(ev);\n targetElement.focus();\n });\n }\n };\n\n const onItemClick = (\n item: IContextualMenuItem,\n ev: React.MouseEvent | React.KeyboardEvent,\n ): void => {\n onItemClickBase(item, ev, ev.currentTarget as HTMLElement);\n };\n\n const onItemClickBase = (\n item: IContextualMenuItem,\n ev: React.MouseEvent | React.KeyboardEvent,\n target: HTMLElement,\n ): void => {\n const items = getSubmenuItems(item, { target: menuTarget });\n\n // Cancel an async menu item hover timeout action from being taken and instead\n // just trigger the click event instead.\n cancelSubMenuTimer();\n\n if (!hasSubmenu(item) && (!items || !items.length)) {\n // This is an item without a menu. Click it.\n executeItemClick(item, ev);\n } else {\n if (item.key !== expandedMenuItemKey) {\n // This has a collapsed sub menu. Expand it.\n\n // focus on the container by default when the menu is opened with a click event\n // this differentiates from a keyboard interaction triggering the click event\n const shouldFocusOnContainer =\n typeof props.shouldFocusOnContainer === 'boolean'\n ? props.shouldFocusOnContainer\n : (ev.nativeEvent as PointerEvent).pointerType === 'mouse';\n openSubMenu(item, target, shouldFocusOnContainer);\n }\n }\n\n ev.stopPropagation();\n ev.preventDefault();\n };\n\n const onAnchorClick = (item: IContextualMenuItem, ev: React.MouseEvent) => {\n executeItemClick(item, ev);\n ev.stopPropagation();\n };\n\n const executeItemClick = (\n item: IContextualMenuItem,\n ev: React.MouseEvent | React.KeyboardEvent,\n ): void => {\n if (item.disabled || item.isDisabled) {\n return;\n }\n\n if (item.preferMenuTargetAsEventTarget) {\n overrideTarget(ev, menuTarget);\n }\n\n let shouldDismiss = false;\n if (item.onClick) {\n shouldDismiss = !!item.onClick(ev, item);\n } else if (props.onItemClick) {\n shouldDismiss = !!props.onItemClick(ev, item);\n }\n\n if (shouldDismiss || !ev.defaultPrevented) {\n dismiss(ev, true);\n }\n };\n\n return [\n onItemMouseEnterBase,\n onItemMouseMoveBase,\n onMouseItemLeave,\n onItemClick,\n onAnchorClick,\n executeItemClick,\n onItemClickBase,\n ] as const;\n}\n//#endregion\n\nexport const ContextualMenuBase: React.FunctionComponent = React.memo(\n React.forwardRef((propsWithoutDefaults, forwardedRef) => {\n const { ref, ...props } = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n const hostElement = React.useRef(null);\n const asyncTracker = useAsync();\n const menuId = useId(COMPONENT_NAME, props.id);\n\n useWarnings({\n name: COMPONENT_NAME,\n props,\n deprecations: {\n getMenuClassNames: 'styles',\n },\n });\n\n const dismiss = (ev?: any, dismissAll?: boolean) => props.onDismiss?.(ev, dismissAll);\n const [targetRef, targetWindow] = useTarget(props.target, hostElement);\n const [tryFocusPreviousActiveElement] = usePreviousActiveElement(props, targetWindow);\n const [expandedMenuItemKey, openSubMenu, getSubmenuProps, onSubMenuDismiss] = useSubMenuState(props, dismiss);\n const [shouldUpdateFocusOnMouseEvent, gotMouseMove, onMenuFocusCapture] = useShouldUpdateFocusOnMouseMove(props);\n const [onScroll, isScrollIdle] = useScrollHandler(asyncTracker);\n const [cancelSubMenuTimer, startSubmenuTimer, subMenuEntryTimer] = useSubmenuEnterTimer(props, asyncTracker);\n\n const responsiveMode = useResponsiveMode(hostElement, props.responsiveMode);\n\n useVisibility(props, targetWindow);\n\n const [onKeyDown, onKeyUp, onMenuKeyDown, onItemKeyDown] = useKeyHandlers(props, dismiss, hostElement, openSubMenu);\n const [\n onItemMouseEnterBase,\n onItemMouseMoveBase,\n onMouseItemLeave,\n onItemClick,\n onAnchorClick,\n executeItemClick,\n onItemClickBase,\n ] = useMouseHandlers(\n props,\n isScrollIdle,\n subMenuEntryTimer,\n targetWindow,\n shouldUpdateFocusOnMouseEvent,\n gotMouseMove,\n expandedMenuItemKey,\n hostElement,\n startSubmenuTimer,\n cancelSubMenuTimer,\n openSubMenu,\n onSubMenuDismiss,\n dismiss,\n );\n\n //#region Render helpers\n\n const onDefaultRenderMenuList = (\n menuListProps: IContextualMenuListProps,\n // eslint-disable-next-line deprecation/deprecation\n menuClassNames: IProcessedStyleSet | IContextualMenuClassNames,\n defaultRender?: IRenderFunction,\n ): JSX.Element => {\n let indexCorrection = 0;\n const { items, totalItemCount, hasCheckmarks, hasIcons } = menuListProps;\n\n return (\n
    \n {items.map((item, index) => {\n const menuItem = renderMenuItem(\n item,\n index,\n indexCorrection,\n totalItemCount,\n hasCheckmarks,\n hasIcons,\n menuClassNames,\n );\n if (item.itemType !== ContextualMenuItemType.Divider && item.itemType !== ContextualMenuItemType.Header) {\n const indexIncrease = item.customOnRenderListLength ? item.customOnRenderListLength : 1;\n indexCorrection += indexIncrease;\n }\n return menuItem;\n })}\n
\n );\n };\n\n const renderFocusZone = (children: JSX.Element | null, adjustedFocusZoneProps: IFocusZoneProps): JSX.Element => {\n const { focusZoneAs: ChildrenRenderer = FocusZone } = props;\n return {children};\n };\n\n /**\n * !!!IMPORTANT!!! Avoid mutating `item: IContextualMenuItem` argument. It will\n * cause the menu items to always re-render because the component update is based on shallow comparison.\n */\n const renderMenuItem = (\n item: IContextualMenuItem,\n index: number,\n focusableElementIndex: number,\n totalItemCount: number,\n hasCheckmarks: boolean,\n hasIcons: boolean,\n // eslint-disable-next-line deprecation/deprecation\n menuClassNames: IProcessedStyleSet | IContextualMenuClassNames,\n ): JSX.Element => {\n const renderedItems: React.ReactNode[] = [];\n const iconProps = item.iconProps || { iconName: 'None' };\n const {\n getItemClassNames, // eslint-disable-line deprecation/deprecation\n itemProps,\n } = item;\n const styles = itemProps ? itemProps.styles : undefined;\n\n // We only send a dividerClassName when the item to be rendered is a divider.\n // For all other cases, the default divider style is used.\n const dividerClassName = item.itemType === ContextualMenuItemType.Divider ? item.className : undefined;\n const subMenuIconClassName = item.submenuIconProps ? item.submenuIconProps.className : '';\n\n // eslint-disable-next-line deprecation/deprecation\n let itemClassNames: IMenuItemClassNames;\n\n // IContextualMenuItem#getItemClassNames for backwards compatibility\n // otherwise uses mergeStyles for class names.\n if (getItemClassNames) {\n itemClassNames = getItemClassNames(\n props.theme!,\n isItemDisabled(item),\n expandedMenuItemKey === item.key,\n !!getIsChecked(item),\n !!item.href,\n iconProps.iconName !== 'None',\n item.className,\n dividerClassName,\n iconProps.className,\n subMenuIconClassName,\n item.primaryDisabled,\n );\n } else {\n const itemStyleProps: IContextualMenuItemStyleProps = {\n theme: props.theme!,\n disabled: isItemDisabled(item),\n expanded: expandedMenuItemKey === item.key,\n checked: !!getIsChecked(item),\n isAnchorLink: !!item.href,\n knownIcon: iconProps.iconName !== 'None',\n itemClassName: item.className,\n dividerClassName,\n iconClassName: iconProps.className,\n subMenuClassName: subMenuIconClassName,\n primaryDisabled: item.primaryDisabled,\n };\n\n // We need to generate default styles then override if styles are provided\n // since the ContextualMenu currently handles item classNames.\n itemClassNames = getContextualMenuItemClassNames(\n _getMenuItemStylesFunction(menuClassNames.subComponentStyles?.menuItem, styles),\n itemStyleProps,\n );\n }\n\n // eslint-disable-next-line deprecation/deprecation\n if (item.text === '-' || item.name === '-') {\n item.itemType = ContextualMenuItemType.Divider;\n }\n switch (item.itemType) {\n case ContextualMenuItemType.Divider:\n renderedItems.push(renderSeparator(index, itemClassNames));\n break;\n case ContextualMenuItemType.Header:\n renderedItems.push(renderSeparator(index, itemClassNames));\n const headerItem = renderHeaderMenuItem(item, itemClassNames, menuClassNames, index, hasCheckmarks, hasIcons);\n renderedItems.push(renderListItem(headerItem, item.key || index, itemClassNames, item.title));\n break;\n case ContextualMenuItemType.Section:\n renderedItems.push(renderSectionItem(item, itemClassNames, menuClassNames, index, hasCheckmarks, hasIcons));\n break;\n default:\n const defaultRenderNormalItem = () =>\n renderNormalItem(\n item,\n itemClassNames,\n index,\n focusableElementIndex,\n totalItemCount,\n hasCheckmarks,\n hasIcons,\n ) as JSX.Element;\n\n const menuItem = props.onRenderContextualMenuItem\n ? props.onRenderContextualMenuItem(item, defaultRenderNormalItem)\n : defaultRenderNormalItem();\n renderedItems.push(renderListItem(menuItem, item.key || index, itemClassNames, item.title));\n break;\n }\n\n // Since multiple nodes *could* be rendered, wrap them all in a fragment with this item's key.\n // This ensures the reconciler handles multi-item output per-node correctly and does not re-mount content.\n return {renderedItems};\n };\n\n const defaultMenuItemRenderer = (\n item: IContextualMenuItemRenderProps,\n // eslint-disable-next-line deprecation/deprecation\n menuClassNames: IProcessedStyleSet | IContextualMenuClassNames,\n ): React.ReactNode => {\n const { index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons } = item;\n return renderMenuItem(\n item,\n index,\n focusableElementIndex,\n totalItemCount,\n hasCheckmarks,\n hasIcons,\n menuClassNames,\n );\n };\n\n const renderSectionItem = (\n sectionItem: IContextualMenuItem,\n // eslint-disable-next-line deprecation/deprecation\n itemClassNames: IMenuItemClassNames,\n // eslint-disable-next-line deprecation/deprecation\n menuClassNames: IProcessedStyleSet | IContextualMenuClassNames,\n index: number,\n hasCheckmarks: boolean,\n hasIcons: boolean,\n ) => {\n const sectionProps = sectionItem.sectionProps;\n if (!sectionProps) {\n return;\n }\n\n let headerItem;\n let groupProps;\n if (sectionProps.title) {\n let headerContextualMenuItem: IContextualMenuItem | undefined = undefined;\n let ariaLabelledby = '';\n if (typeof sectionProps.title === 'string') {\n // Since title is a user-facing string, it needs to be stripped\n // of whitespace in order to build a valid element ID\n const id = menuId + sectionProps.title.replace(/\\s/g, '');\n headerContextualMenuItem = {\n key: `section-${sectionProps.title}-title`,\n itemType: ContextualMenuItemType.Header,\n text: sectionProps.title,\n id: id,\n };\n ariaLabelledby = id;\n } else {\n const id = sectionProps.title.id || menuId + sectionProps.title.key.replace(/\\s/g, '');\n headerContextualMenuItem = { ...sectionProps.title, id };\n ariaLabelledby = id;\n }\n\n if (headerContextualMenuItem) {\n groupProps = {\n role: 'group',\n 'aria-labelledby': ariaLabelledby,\n };\n headerItem = renderHeaderMenuItem(\n headerContextualMenuItem,\n itemClassNames,\n menuClassNames,\n index,\n hasCheckmarks,\n hasIcons,\n );\n }\n }\n\n if (sectionProps.items && sectionProps.items.length > 0) {\n return (\n
  • \n
    \n
      \n {sectionProps.topDivider && renderSeparator(index, itemClassNames, true, true)}\n {headerItem && renderListItem(headerItem, sectionItem.key || index, itemClassNames, sectionItem.title)}\n {sectionProps.items.map((contextualMenuItem, itemsIndex) =>\n renderMenuItem(\n contextualMenuItem,\n itemsIndex,\n itemsIndex,\n sectionProps.items.length,\n hasCheckmarks,\n hasIcons,\n menuClassNames,\n ),\n )}\n {sectionProps.bottomDivider && renderSeparator(index, itemClassNames, false, true)}\n
    \n
    \n
  • \n );\n }\n };\n\n const renderListItem = (\n content: React.ReactNode,\n key: string | number,\n classNames: IMenuItemClassNames, // eslint-disable-line deprecation/deprecation\n title?: string,\n ) => {\n return (\n
  • \n {content}\n
  • \n );\n };\n\n const renderSeparator = (\n index: number,\n classNames: IMenuItemClassNames, // eslint-disable-line deprecation/deprecation\n top?: boolean,\n fromSection?: boolean,\n ): React.ReactNode => {\n if (fromSection || index > 0) {\n return (\n \n );\n }\n return null;\n };\n\n const renderNormalItem = (\n item: IContextualMenuItem,\n classNames: IMenuItemClassNames, // eslint-disable-line deprecation/deprecation\n index: number,\n focusableElementIndex: number,\n totalItemCount: number,\n hasCheckmarks: boolean,\n hasIcons: boolean,\n ): React.ReactNode => {\n if (item.onRender) {\n return item.onRender(\n { 'aria-posinset': focusableElementIndex + 1, 'aria-setsize': totalItemCount, ...item },\n dismiss,\n );\n }\n\n const { contextualMenuItemAs } = props;\n\n const commonProps = {\n item,\n classNames,\n index,\n focusableElementIndex,\n totalItemCount,\n hasCheckmarks,\n hasIcons,\n contextualMenuItemAs,\n onItemMouseEnter: onItemMouseEnterBase,\n onItemMouseLeave: onMouseItemLeave,\n onItemMouseMove: onItemMouseMoveBase,\n onItemMouseDown: onItemMouseDown,\n executeItemClick: executeItemClick,\n onItemKeyDown: onItemKeyDown,\n expandedMenuItemKey,\n openSubMenu,\n dismissSubMenu: onSubMenuDismiss,\n dismissMenu: dismiss,\n } as const;\n\n if (item.href) {\n return ;\n }\n\n if (item.split && hasSubmenu(item)) {\n return (\n \n );\n }\n\n return ;\n };\n\n const renderHeaderMenuItem = (\n item: IContextualMenuItem,\n // eslint-disable-next-line deprecation/deprecation\n itemClassNames: IMenuItemClassNames,\n // eslint-disable-next-line deprecation/deprecation\n menuClassNames: IProcessedStyleSet | IContextualMenuClassNames,\n index: number,\n hasCheckmarks: boolean,\n hasIcons: boolean,\n ): React.ReactNode => {\n const { contextualMenuItemAs: ChildrenRenderer = ContextualMenuItem } = props;\n const { itemProps, id } = item;\n const divHtmlProperties =\n itemProps && getNativeProps>(itemProps, divProperties);\n return (\n // eslint-disable-next-line deprecation/deprecation\n
    \n \n
    \n );\n };\n //#endregion\n\n //#region Main render\n let { isBeakVisible } = props;\n\n const {\n items,\n labelElementId,\n id,\n className,\n beakWidth,\n directionalHint,\n directionalHintForRTL,\n alignTargetEdge,\n gapSpace,\n coverTarget,\n ariaLabel,\n doNotLayer,\n target,\n bounds,\n useTargetWidth,\n useTargetAsMinWidth,\n directionalHintFixed,\n shouldFocusOnMount,\n shouldFocusOnContainer,\n title,\n styles,\n theme,\n calloutProps,\n onRenderSubMenu = onDefaultRenderSubMenu,\n onRenderMenuList = (\n menuListProps: IContextualMenuListProps,\n defaultRender?: IRenderFunction,\n ) => onDefaultRenderMenuList(menuListProps, classNames, defaultRender),\n focusZoneProps,\n // eslint-disable-next-line deprecation/deprecation\n getMenuClassNames,\n } = props;\n\n const classNames = getMenuClassNames\n ? getMenuClassNames(theme!, className)\n : getClassNames(styles, {\n theme: theme!,\n className: className,\n });\n\n const hasIcons = itemsHaveIcons(items);\n\n function itemsHaveIcons(contextualMenuItems: IContextualMenuItem[]): boolean {\n for (const item of contextualMenuItems) {\n if (item.iconProps) {\n return true;\n }\n\n if (\n item.itemType === ContextualMenuItemType.Section &&\n item.sectionProps &&\n itemsHaveIcons(item.sectionProps.items)\n ) {\n return true;\n }\n }\n\n return false;\n }\n\n const adjustedFocusZoneProps = {\n direction: FocusZoneDirection.vertical,\n handleTabKey: FocusZoneTabbableElements.all,\n isCircularNavigation: true,\n ...focusZoneProps,\n className: css(classNames.root, props.focusZoneProps?.className),\n };\n\n const hasCheckmarks = canAnyMenuItemsCheck(items);\n const submenuProps = expandedMenuItemKey && props.hidden !== true ? getSubmenuProps() : null;\n\n isBeakVisible = isBeakVisible === undefined ? responsiveMode! <= ResponsiveMode.medium : isBeakVisible;\n /**\n * When useTargetWidth is true, get the width of the target element and apply it for the context menu container\n */\n let contextMenuStyle: React.CSSProperties;\n const targetAsHtmlElement = targetRef.current as HTMLElement;\n if ((useTargetWidth || useTargetAsMinWidth) && targetAsHtmlElement && targetAsHtmlElement.offsetWidth) {\n const targetBoundingRect = targetAsHtmlElement.getBoundingClientRect();\n const targetWidth = targetBoundingRect.width - 2; /* Accounts for 1px border */\n\n if (useTargetWidth) {\n contextMenuStyle = {\n width: targetWidth,\n };\n } else if (useTargetAsMinWidth) {\n contextMenuStyle = {\n minWidth: targetWidth,\n };\n }\n }\n\n // The menu should only return if items were provided, if no items were provided then it should not appear.\n if (items && items.length > 0) {\n let totalItemCount = 0;\n for (const item of items) {\n if (item.itemType !== ContextualMenuItemType.Divider && item.itemType !== ContextualMenuItemType.Header) {\n const itemCount = item.customOnRenderListLength ? item.customOnRenderListLength : 1;\n totalItemCount += itemCount;\n }\n }\n\n const calloutStyles = classNames.subComponentStyles\n ? (classNames.subComponentStyles.callout as IStyleFunctionOrObject<\n ICalloutContentStyleProps,\n ICalloutContentStyles\n >)\n : undefined;\n\n return (\n \n {menuContext => (\n
    \n \n \n )}\n \n );\n } else {\n return null;\n }\n //#endregion\n }),\n (prevProps, newProps) => {\n if (!newProps.shouldUpdateWhenHidden && prevProps.hidden && newProps.hidden) {\n // Do not update when hidden.\n return true;\n }\n\n return shallowCompare(prevProps, newProps);\n },\n);\nContextualMenuBase.displayName = 'ContextualMenuBase';\n\n/**\n * Returns true if the key for the event is alt (Mac option) or meta (Mac command).\n */\nfunction isAltOrMeta(ev: React.KeyboardEvent): boolean {\n // eslint-disable-next-line deprecation/deprecation\n return ev.which === KeyCodes.alt || ev.key === 'Meta';\n}\n\nfunction onItemMouseDown(item: IContextualMenuItem, ev: React.MouseEvent): void {\n item.onMouseDown?.(item, ev);\n}\n\nfunction onDefaultRenderSubMenu(\n subMenuProps: IContextualMenuProps,\n defaultRender?: IRenderFunction,\n): JSX.Element {\n throw Error(\n 'ContextualMenuBase: onRenderSubMenu callback is null or undefined. ' +\n 'Please ensure to set `onRenderSubMenu` property either manually or with `styled` helper.',\n );\n}\n\n/**\n * Returns the item that matches a given key if any.\n * @param key - The key of the item to match\n * @param items - The items to look for the key\n */\nfunction findItemByKeyFromItems(key: string, items: IContextualMenuItem[]): IContextualMenuItem | undefined {\n for (const item of items) {\n if (item.itemType === ContextualMenuItemType.Section && item.sectionProps) {\n const match = findItemByKeyFromItems(key, item.sectionProps.items);\n if (match) {\n return match;\n }\n } else if (item.key && item.key === key) {\n return item;\n }\n }\n}\n\nfunction getOnClickWithOverrideTarget(\n onClick:\n | ((\n ev?: React.MouseEvent | React.KeyboardEvent | undefined,\n item?: IContextualMenuItem | undefined,\n ) => boolean | void)\n | undefined,\n target: Target | undefined,\n) {\n return onClick\n ? (\n ev?: React.MouseEvent | React.KeyboardEvent | undefined,\n item?: IContextualMenuItem | undefined,\n ) => {\n overrideTarget(ev, target);\n\n return onClick(ev, item);\n }\n : onClick;\n}\n\nfunction overrideTarget(\n ev?: React.MouseEvent | React.KeyboardEvent | undefined,\n target?: Target,\n): void {\n if (ev && target) {\n ev.persist();\n\n if (target instanceof Event) {\n ev.target = target.target as HTMLElement;\n } else if (target instanceof Element) {\n ev.target = target;\n }\n }\n}\n","import { getGlobalClassNames, FontWeights } from '../../Styling';\nimport { CONTEXTUAL_MENU_ITEM_HEIGHT } from './ContextualMenu.cnstyles';\nimport type { IContextualMenuStyleProps, IContextualMenuStyles } from './ContextualMenu.types';\n\nconst GlobalClassNames = {\n root: 'ms-ContextualMenu',\n container: 'ms-ContextualMenu-container',\n list: 'ms-ContextualMenu-list',\n header: 'ms-ContextualMenu-header',\n title: 'ms-ContextualMenu-title',\n isopen: 'is-open',\n};\n\nexport const getStyles = (props: IContextualMenuStyleProps): IContextualMenuStyles => {\n const { className, theme } = props;\n const classNames = getGlobalClassNames(GlobalClassNames, theme);\n\n const { fonts, semanticColors, effects } = theme;\n\n return {\n root: [\n theme.fonts.medium,\n classNames.root,\n classNames.isopen,\n {\n backgroundColor: semanticColors.menuBackground,\n minWidth: '180px',\n },\n className,\n ],\n container: [\n classNames.container,\n {\n selectors: {\n ':focus': { outline: 0 },\n },\n },\n ],\n list: [\n classNames.list,\n classNames.isopen,\n {\n listStyleType: 'none',\n margin: '0',\n padding: '0',\n },\n ],\n header: [\n classNames.header,\n fonts.small,\n {\n fontWeight: FontWeights.semibold,\n color: semanticColors.menuHeader,\n background: 'none',\n backgroundColor: 'transparent',\n border: 'none',\n height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n cursor: 'default',\n padding: '0px 6px',\n userSelect: 'none',\n textAlign: 'left',\n },\n ],\n title: [\n classNames.title,\n {\n fontSize: fonts.mediumPlus.fontSize,\n paddingRight: '14px',\n paddingLeft: '14px',\n paddingBottom: '5px',\n paddingTop: '5px',\n backgroundColor: semanticColors.menuItemBackgroundPressed,\n },\n ],\n subComponentStyles: {\n callout: {\n root: {\n boxShadow: effects.elevation8,\n },\n },\n menuItem: {},\n },\n };\n};\n","import * as React from 'react';\nimport { styled, composeRenderFunction } from '../../Utilities';\nimport { ContextualMenuBase } from './ContextualMenu.base';\nimport { getStyles } from './ContextualMenu.styles';\nimport type { IContextualMenuProps, IContextualMenuStyleProps, IContextualMenuStyles } from './ContextualMenu.types';\n\nfunction onRenderSubMenu(subMenuProps: IContextualMenuProps) {\n return ;\n}\n\n// This is to prevent cyclic import with ContextualMenu.base.tsx.\nconst LocalContextualMenu: React.FunctionComponent = styled<\n IContextualMenuProps,\n IContextualMenuStyleProps,\n IContextualMenuStyles\n>(\n ContextualMenuBase,\n getStyles,\n (props: IContextualMenuProps) => ({\n onRenderSubMenu: props.onRenderSubMenu\n ? composeRenderFunction(props.onRenderSubMenu, onRenderSubMenu)\n : onRenderSubMenu,\n }),\n { scope: 'ContextualMenu' },\n);\n\n/**\n * ContextualMenu description\n */\nexport const ContextualMenu: React.FunctionComponent = LocalContextualMenu;\nContextualMenu.displayName = 'ContextualMenu';\n","import { memoizeFunction } from '../../Utilities';\nimport { getGlobalClassNames, mergeStyleSets } from '../../Styling';\nimport type { ITheme } from '../../Styling';\nimport type { IButtonStyles } from './Button.types';\n\nexport interface IButtonClassNames {\n root?: string;\n flexContainer?: string;\n textContainer?: string;\n icon?: string;\n label?: string;\n menuIcon?: string;\n description?: string;\n screenReaderText?: string;\n}\n\nexport const ButtonGlobalClassNames = {\n msButton: 'ms-Button',\n msButtonHasMenu: 'ms-Button--hasMenu',\n msButtonIcon: 'ms-Button-icon',\n msButtonMenuIcon: 'ms-Button-menuIcon',\n msButtonLabel: 'ms-Button-label',\n msButtonDescription: 'ms-Button-description',\n msButtonScreenReaderText: 'ms-Button-screenReaderText',\n msButtonFlexContainer: 'ms-Button-flexContainer',\n msButtonTextContainer: 'ms-Button-textContainer',\n};\n\nexport const getBaseButtonClassNames = memoizeFunction(\n (\n theme: ITheme,\n styles: IButtonStyles,\n className: string,\n variantClassName: string,\n iconClassName: string | undefined,\n menuIconClassName: string | undefined,\n disabled: boolean,\n hasMenu: boolean,\n checked: boolean,\n expanded: boolean,\n isSplit: boolean | undefined,\n ): IButtonClassNames => {\n const classNames = getGlobalClassNames(ButtonGlobalClassNames, theme || {});\n\n const isExpanded = expanded && !isSplit;\n return mergeStyleSets({\n root: [\n classNames.msButton,\n styles.root,\n variantClassName,\n checked && ['is-checked', styles.rootChecked],\n isExpanded && [\n 'is-expanded',\n styles.rootExpanded,\n {\n selectors: {\n [`:hover .${classNames.msButtonIcon}`]: styles.iconExpandedHovered,\n // menuIcon falls back to rootExpandedHovered to support original behavior\n [`:hover .${classNames.msButtonMenuIcon}`]: styles.menuIconExpandedHovered || styles.rootExpandedHovered,\n ':hover': styles.rootExpandedHovered,\n },\n },\n ],\n hasMenu && [ButtonGlobalClassNames.msButtonHasMenu, styles.rootHasMenu],\n disabled && ['is-disabled', styles.rootDisabled],\n !disabled &&\n !isExpanded &&\n !checked && {\n selectors: {\n ':hover': styles.rootHovered,\n [`:hover .${classNames.msButtonLabel}`]: styles.labelHovered,\n [`:hover .${classNames.msButtonIcon}`]: styles.iconHovered,\n [`:hover .${classNames.msButtonDescription}`]: styles.descriptionHovered,\n [`:hover .${classNames.msButtonMenuIcon}`]: styles.menuIconHovered,\n ':focus': styles.rootFocused,\n ':active': styles.rootPressed,\n [`:active .${classNames.msButtonIcon}`]: styles.iconPressed,\n [`:active .${classNames.msButtonDescription}`]: styles.descriptionPressed,\n [`:active .${classNames.msButtonMenuIcon}`]: styles.menuIconPressed,\n },\n },\n disabled && checked && [styles.rootCheckedDisabled],\n !disabled &&\n checked && {\n selectors: {\n ':hover': styles.rootCheckedHovered,\n ':active': styles.rootCheckedPressed,\n },\n },\n className,\n ],\n flexContainer: [classNames.msButtonFlexContainer, styles.flexContainer],\n textContainer: [classNames.msButtonTextContainer, styles.textContainer],\n icon: [\n classNames.msButtonIcon,\n iconClassName,\n styles.icon,\n isExpanded && styles.iconExpanded,\n checked && styles.iconChecked,\n disabled && styles.iconDisabled,\n ],\n label: [classNames.msButtonLabel, styles.label, checked && styles.labelChecked, disabled && styles.labelDisabled],\n menuIcon: [\n classNames.msButtonMenuIcon,\n menuIconClassName,\n styles.menuIcon,\n checked && styles.menuIconChecked,\n disabled && !isSplit && styles.menuIconDisabled,\n !disabled &&\n !isExpanded &&\n !checked && {\n selectors: {\n ':hover': styles.menuIconHovered,\n ':active': styles.menuIconPressed,\n },\n },\n isExpanded && ['is-expanded', styles.menuIconExpanded],\n ],\n description: [\n classNames.msButtonDescription,\n styles.description,\n checked && styles.descriptionChecked,\n disabled && styles.descriptionDisabled,\n ],\n screenReaderText: [classNames.msButtonScreenReaderText, styles.screenReaderText],\n });\n },\n);\n","import { memoizeFunction } from '../../../Utilities';\nimport { mergeStyles } from '../../../Styling';\nimport type { IButtonStyles } from '../Button.types';\n\nexport interface ISplitButtonClassNames {\n root?: string;\n icon?: string;\n splitButtonContainer?: string;\n flexContainer?: string;\n divider?: string;\n}\n\nexport const getSplitButtonClassNames = memoizeFunction(\n (\n styles: IButtonStyles,\n disabled: boolean,\n expanded: boolean,\n checked: boolean,\n primaryDisabled?: boolean,\n ): ISplitButtonClassNames => {\n return {\n root: mergeStyles(\n styles.splitButtonMenuButton,\n expanded && [styles.splitButtonMenuButtonExpanded],\n disabled && [styles.splitButtonMenuButtonDisabled],\n checked && !disabled && [styles.splitButtonMenuButtonChecked],\n primaryDisabled &&\n !disabled && [\n {\n selectors: {\n ':focus': styles.splitButtonMenuFocused,\n },\n },\n ],\n ),\n\n splitButtonContainer: mergeStyles(\n styles.splitButtonContainer,\n !disabled &&\n checked && [\n styles.splitButtonContainerChecked,\n {\n selectors: {\n ':hover': styles.splitButtonContainerCheckedHovered,\n },\n },\n ],\n !disabled &&\n !checked && [\n {\n selectors: {\n ':hover': styles.splitButtonContainerHovered,\n ':focus': styles.splitButtonContainerFocused,\n },\n },\n ],\n disabled && styles.splitButtonContainerDisabled,\n ),\n\n icon: mergeStyles(\n styles.splitButtonMenuIcon,\n disabled && styles.splitButtonMenuIconDisabled,\n !disabled && primaryDisabled && styles.splitButtonMenuIcon,\n ),\n\n flexContainer: mergeStyles(styles.splitButtonFlexContainer),\n\n divider: mergeStyles(\n styles.splitButtonDivider,\n (primaryDisabled || disabled) && styles.splitButtonDividerDisabled,\n ),\n };\n },\n);\n","import * as React from 'react';\nimport {\n anchorProperties,\n assign,\n buttonProperties,\n createMergedRef,\n css,\n getId,\n getNativeProps,\n initializeComponentRef,\n memoizeFunction,\n mergeAriaAttributeValues,\n nullRender,\n portalContainsElement,\n setFocusVisibility,\n warnConditionallyRequiredProps,\n warnDeprecations,\n Async,\n EventGroup,\n FocusRects,\n KeyCodes,\n} from '../../Utilities';\nimport { Icon, FontIcon, ImageIcon } from '../../Icon';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { ContextualMenu } from '../../ContextualMenu';\nimport { getBaseButtonClassNames } from './BaseButton.classNames';\nimport { getSplitButtonClassNames as getBaseSplitButtonClassNames } from './SplitButton/SplitButton.classNames';\nimport { KeytipData } from '../../KeytipData';\nimport type { IRenderFunction } from '../../Utilities';\nimport type { IContextualMenuProps } from '../../ContextualMenu';\nimport type { IButtonProps, IButton } from './Button.types';\nimport type { IButtonClassNames } from './BaseButton.classNames';\nimport type { ISplitButtonClassNames } from './SplitButton/SplitButton.classNames';\nimport type { IKeytipProps } from '../../Keytip';\nimport { composeComponentAs } from '../../Utilities';\n\n/**\n * {@docCategory Button}\n */\nexport interface IBaseButtonProps extends IButtonProps {\n baseClassName?: string;\n variantClassName?: string;\n}\n\n/**\n * {@docCategory Button}\n */\nexport interface IBaseButtonState {\n menuHidden: boolean;\n}\n\nconst TouchIdleDelay = 500; /* ms */\nconst COMPONENT_NAME = 'BaseButton';\n\n/**\n * {@docCategory Button}\n */\nexport class BaseButton extends React.Component implements IButton {\n private get _isSplitButton(): boolean {\n return !!this.props.menuProps && !!this.props.onClick && this.props.split === true;\n }\n\n public static defaultProps: Partial = {\n baseClassName: 'ms-Button',\n styles: {},\n split: false,\n };\n\n private _async: Async;\n private _events: EventGroup;\n private _buttonElement = React.createRef();\n private _splitButtonContainer = React.createRef();\n private _mergedRef = createMergedRef();\n private _labelId: string;\n private _descriptionId: string;\n private _ariaDescriptionId: string;\n private _classNames: IButtonClassNames;\n private _processingTouch: boolean;\n private _lastTouchTimeoutId: number | undefined;\n private _renderedVisibleMenu: boolean = false;\n\n // These fields will be used to set corresponding props on the menu.\n private _menuShouldFocusOnContainer: boolean | undefined;\n private _menuShouldFocusOnMount: boolean | undefined;\n\n private _getMemoizedMenuButtonKeytipProps = memoizeFunction((keytipProps: IKeytipProps) => {\n return {\n ...keytipProps,\n hasMenu: true,\n };\n });\n\n constructor(props: IBaseButtonProps) {\n super(props);\n\n initializeComponentRef(this);\n this._async = new Async(this);\n this._events = new EventGroup(this);\n\n warnConditionallyRequiredProps(COMPONENT_NAME, props, ['menuProps', 'onClick'], 'split', this.props.split!);\n\n warnDeprecations(COMPONENT_NAME, props, {\n rootProps: undefined,\n description: 'secondaryText',\n toggled: 'checked',\n });\n this._labelId = getId();\n this._descriptionId = getId();\n this._ariaDescriptionId = getId();\n\n this.state = {\n menuHidden: true,\n };\n }\n\n public render(): JSX.Element {\n const {\n ariaDescription,\n ariaLabel,\n ariaHidden,\n className,\n disabled,\n allowDisabledFocus,\n primaryDisabled,\n // eslint-disable-next-line deprecation/deprecation\n secondaryText = this.props.description,\n href,\n iconProps,\n menuIconProps,\n styles,\n checked,\n variantClassName,\n theme,\n toggle,\n getClassNames,\n role,\n } = this.props;\n\n const { menuHidden } = this.state;\n\n // Button is disabled if the whole button (in case of splitButton is disabled) or if the primary action is disabled\n const isPrimaryButtonDisabled = disabled || primaryDisabled;\n\n this._classNames = getClassNames\n ? getClassNames(\n theme!,\n className!,\n variantClassName!,\n iconProps && iconProps.className,\n menuIconProps && menuIconProps.className,\n isPrimaryButtonDisabled!,\n checked!,\n !menuHidden,\n !!this.props.menuProps,\n this.props.split,\n !!allowDisabledFocus,\n )\n : getBaseButtonClassNames(\n theme!,\n styles!,\n className!,\n variantClassName!,\n iconProps && iconProps.className,\n menuIconProps && menuIconProps.className,\n isPrimaryButtonDisabled!,\n !!this.props.menuProps,\n checked!,\n !menuHidden,\n this.props.split,\n );\n\n const { _ariaDescriptionId, _labelId, _descriptionId } = this;\n // Anchor tag cannot be disabled hence in disabled state rendering\n // anchor button as normal button\n const renderAsAnchor: boolean = !isPrimaryButtonDisabled && !!href;\n const tag = renderAsAnchor ? 'a' : 'button';\n\n const nativeProps = getNativeProps(\n // eslint-disable-next-line deprecation/deprecation\n assign(renderAsAnchor ? {} : { type: 'button' }, this.props.rootProps, this.props),\n renderAsAnchor ? anchorProperties : buttonProperties,\n [\n 'disabled', // let disabled buttons be focused and styled as disabled.\n ],\n );\n\n // Check for ariaLabel passed in via Button props, and fall back to aria-label passed in via native props\n const resolvedAriaLabel = ariaLabel || (nativeProps as any)['aria-label'];\n\n // Check for ariaDescription, secondaryText or aria-describedby in the native props to determine source of\n // aria-describedby. Otherwise default to undefined so property does not appear in output.\n let ariaDescribedBy = undefined;\n if (ariaDescription) {\n ariaDescribedBy = _ariaDescriptionId;\n } else if (secondaryText && this.props.onRenderDescription !== nullRender) {\n // for buttons like CompoundButton with a valid onRenderDescription, we need to set an ariaDescribedBy\n // for buttons that do not render anything (via nullRender), we should not set an ariaDescribedBy\n ariaDescribedBy = _descriptionId;\n } else if ((nativeProps as any)['aria-describedby']) {\n ariaDescribedBy = (nativeProps as any)['aria-describedby'];\n }\n\n // If an explicit aria-labelledby is given, use that and we're done.\n // If any kind of description is given (which will end up as an aria-describedby attribute)\n // and no ariaLabel is specified, set the labelledby element.\n // Otherwise, the button is labeled implicitly by the descendent text on the button (if it exists).\n let ariaLabelledBy = undefined;\n if ((nativeProps as any)['aria-labelledby']) {\n ariaLabelledBy = (nativeProps as any)['aria-labelledby'];\n } else if (ariaDescribedBy && !resolvedAriaLabel) {\n ariaLabelledBy = this._hasText() ? _labelId : undefined;\n }\n\n const dataIsFocusable =\n (this.props as any)['data-is-focusable'] === false || (disabled && !allowDisabledFocus) || this._isSplitButton\n ? false\n : true;\n\n const isCheckboxTypeRole = role === 'menuitemcheckbox' || role === 'checkbox';\n // if isCheckboxTypeRole, always return a checked value.\n // Otherwise only return checked value if toggle is set to true.\n // This is because role=\"checkbox\" always needs to have an aria-checked value\n // but our checked prop only sets aria-pressed if we mark the button as a toggle=\"true\"\n const checkedOrPressedValue = isCheckboxTypeRole ? !!checked : toggle === true ? !!checked : undefined;\n\n const buttonProps = assign(nativeProps, {\n className: this._classNames.root,\n // eslint-disable-next-line deprecation/deprecation\n ref: this._mergedRef(this.props.elementRef, this._buttonElement),\n disabled: isPrimaryButtonDisabled && !allowDisabledFocus,\n onKeyDown: this._onKeyDown,\n onKeyPress: this._onKeyPress,\n onKeyUp: this._onKeyUp,\n onMouseDown: this._onMouseDown,\n onMouseUp: this._onMouseUp,\n onClick: this._onClick,\n 'aria-label': resolvedAriaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n 'aria-disabled': isPrimaryButtonDisabled,\n 'data-is-focusable': dataIsFocusable,\n // aria-pressed attribute should only be present for toggle buttons\n // aria-checked attribute should only be present for toggle buttons with checkbox type role\n [isCheckboxTypeRole ? 'aria-checked' : 'aria-pressed']: checkedOrPressedValue,\n });\n\n if (ariaHidden) {\n buttonProps['aria-hidden'] = true;\n }\n\n if (this._isSplitButton) {\n return this._onRenderSplitButtonContent(tag, buttonProps);\n } else if (this.props.menuProps) {\n const { id = `${this._labelId}-menu` } = this.props.menuProps;\n assign(buttonProps, {\n 'aria-expanded': !menuHidden,\n 'aria-controls': !menuHidden ? id : null,\n 'aria-haspopup': true,\n });\n }\n\n return this._onRenderContent(tag, buttonProps);\n }\n\n public componentDidMount() {\n // For split buttons, touching anywhere in the button should drop the dropdown, which should contain the\n // primary action. This gives more hit target space for touch environments. We're setting the onpointerdown here,\n // because React does not support Pointer events yet.\n if (this._isSplitButton && this._splitButtonContainer.current) {\n if ('onpointerdown' in this._splitButtonContainer.current) {\n this._events.on(this._splitButtonContainer.current, 'pointerdown', this._onPointerDown, true);\n }\n if ('onpointerup' in this._splitButtonContainer.current && this.props.onPointerUp) {\n this._events.on(this._splitButtonContainer.current, 'pointerup', this.props.onPointerUp, true);\n }\n }\n }\n\n public componentDidUpdate(prevProps: IBaseButtonProps, prevState: IBaseButtonState) {\n // If Button's menu was closed, run onAfterMenuDismiss.\n if (this.props.onAfterMenuDismiss && !prevState.menuHidden && this.state.menuHidden) {\n this.props.onAfterMenuDismiss();\n }\n }\n\n public componentWillUnmount(): void {\n this._async.dispose();\n this._events.dispose();\n }\n\n public focus(): void {\n if (this._isSplitButton && this._splitButtonContainer.current) {\n setFocusVisibility(true);\n this._splitButtonContainer.current.focus();\n } else if (this._buttonElement.current) {\n setFocusVisibility(true);\n this._buttonElement.current.focus();\n }\n }\n\n public dismissMenu(): void {\n this._dismissMenu();\n }\n\n public openMenu(shouldFocusOnContainer?: boolean, shouldFocusOnMount?: boolean): void {\n this._openMenu(shouldFocusOnContainer, shouldFocusOnMount);\n }\n\n private _onRenderContent(tag: any, buttonProps: IButtonProps): JSX.Element {\n const props = this.props;\n const Tag = tag;\n const {\n menuIconProps,\n menuProps,\n onRenderIcon = this._onRenderIcon,\n onRenderAriaDescription = this._onRenderAriaDescription,\n onRenderChildren = this._onRenderChildren,\n // eslint-disable-next-line deprecation/deprecation\n onRenderMenu = this._onRenderMenu,\n onRenderMenuIcon = this._onRenderMenuIcon,\n disabled,\n } = props;\n let { keytipProps } = props;\n if (keytipProps && menuProps) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n\n const Button = (keytipAttributes?: any): JSX.Element => (\n \n \n {onRenderIcon(props, this._onRenderIcon)}\n {this._onRenderTextContents()}\n {onRenderAriaDescription(props, this._onRenderAriaDescription)}\n {onRenderChildren(props, this._onRenderChildren)}\n {!this._isSplitButton &&\n (menuProps || menuIconProps || this.props.onRenderMenuIcon) &&\n onRenderMenuIcon(this.props, this._onRenderMenuIcon)}\n {menuProps &&\n !menuProps.doNotLayer &&\n this._shouldRenderMenu() &&\n onRenderMenu(this._getMenuProps(menuProps), this._onRenderMenu)}\n \n \n );\n\n const Content = keytipProps ? (\n // If we're making a split button, we won't put the keytip here\n \n {(keytipAttributes: any): JSX.Element => Button(keytipAttributes)}\n \n ) : (\n Button()\n );\n\n if (menuProps && menuProps.doNotLayer) {\n return (\n <>\n {Content}\n {this._shouldRenderMenu() && onRenderMenu(this._getMenuProps(menuProps), this._onRenderMenu)}\n \n );\n }\n\n return (\n <>\n {Content}\n \n \n );\n }\n\n /**\n * Method to help determine if the menu's component tree should\n * be rendered. It takes into account whether the menu is expanded,\n * whether it is a persisted menu and whether it has been shown to the user.\n */\n private _shouldRenderMenu() {\n const { menuHidden } = this.state;\n // eslint-disable-next-line deprecation/deprecation\n const { persistMenu, renderPersistedMenuHiddenOnMount } = this.props;\n\n if (!menuHidden) {\n // Always should render a menu when it is expanded\n return true;\n } else if (persistMenu && (this._renderedVisibleMenu || renderPersistedMenuHiddenOnMount)) {\n // _renderedVisibleMenu ensures that the first rendering of\n // the menu happens on-screen, as edge's scrollbar calculations are off if done while hidden.\n return true;\n }\n\n return false;\n }\n\n private _onRenderIcon = (\n buttonProps?: IButtonProps,\n defaultRender?: IRenderFunction,\n ): JSX.Element | null => {\n const { iconProps } = this.props;\n\n if (iconProps && (iconProps.iconName !== undefined || iconProps.imageProps)) {\n const { className, imageProps, ...rest } = iconProps;\n\n // If the styles prop is specified as part of iconProps, fall back to regular Icon as FontIcon and ImageIcon\n // do not have this prop.\n if (iconProps.styles) {\n return ;\n }\n if (iconProps.iconName) {\n return ;\n }\n if (imageProps) {\n return ;\n }\n }\n return null;\n };\n\n private _onRenderTextContents = (): JSX.Element | (JSX.Element | null)[] => {\n const {\n text,\n children,\n // eslint-disable-next-line deprecation/deprecation\n secondaryText = this.props.description,\n onRenderText = this._onRenderText,\n onRenderDescription = this._onRenderDescription,\n } = this.props;\n\n if (text || typeof children === 'string' || secondaryText) {\n return (\n \n {onRenderText(this.props, this._onRenderText)}\n {onRenderDescription(this.props, this._onRenderDescription)}\n \n );\n }\n return [onRenderText(this.props, this._onRenderText), onRenderDescription(this.props, this._onRenderDescription)];\n };\n\n private _onRenderText = (): JSX.Element | null => {\n let { text } = this.props;\n const { children } = this.props;\n\n // For backwards compat, we should continue to take in the text content from children.\n if (text === undefined && typeof children === 'string') {\n text = children;\n }\n\n if (this._hasText()) {\n return (\n \n {text}\n \n );\n }\n\n return null;\n };\n\n private _hasText(): boolean {\n // _onRenderTextContents and _onRenderText do not perform the same checks. Below is parity with what _onRenderText\n // used to have before the refactor that introduced this function. _onRenderTextContents does not require props.\n // text to be undefined in order for props.children to be used as a fallback.\n // Purely a code maintainability/reuse issue, but logged as Issue #4979.\n return this.props.text !== null && (this.props.text !== undefined || typeof this.props.children === 'string');\n }\n\n private _onRenderChildren = (): JSX.Element | null => {\n const { children } = this.props;\n\n // If children is just a string, either it or the text will be rendered via onRenderLabel\n // If children is another component, it will be rendered after text\n if (typeof children === 'string') {\n return null;\n }\n\n return children as any;\n };\n\n private _onRenderDescription = (props: IButtonProps) => {\n // eslint-disable-next-line deprecation/deprecation\n const { secondaryText = this.props.description } = props;\n\n // ms-Button-description is only shown when the button type is compound.\n // In other cases it will not be displayed.\n return secondaryText ? (\n \n {secondaryText}\n \n ) : null;\n };\n\n private _onRenderAriaDescription = () => {\n const { ariaDescription } = this.props;\n\n // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan,\n // otherwise it will be assigned to descriptionSpan.\n return ariaDescription ? (\n \n {ariaDescription}\n \n ) : null;\n };\n\n private _onRenderMenuIcon = (props: IButtonProps): JSX.Element | null => {\n const { menuIconProps } = this.props;\n\n return ;\n };\n\n private _getMenuProps(menuProps: IContextualMenuProps): IContextualMenuProps {\n const { persistMenu } = this.props;\n const { menuHidden } = this.state;\n\n // the accessible menu label (accessible name) has a relationship to the button.\n // If the menu props do not specify an explicit value for aria-label or aria-labelledBy,\n // AND the button has text, we'll set the menu aria-labelledBy to the text element id.\n if (!menuProps.ariaLabel && !menuProps.labelElementId && this._hasText()) {\n menuProps = { ...menuProps, labelElementId: this._labelId };\n }\n\n return {\n id: this._labelId + '-menu',\n directionalHint: DirectionalHint.bottomLeftEdge,\n ...menuProps,\n shouldFocusOnContainer: this._menuShouldFocusOnContainer,\n shouldFocusOnMount: this._menuShouldFocusOnMount,\n hidden: persistMenu ? menuHidden : undefined,\n className: css('ms-BaseButton-menuhost', menuProps.className),\n target: this._isSplitButton ? this._splitButtonContainer.current : this._buttonElement.current,\n onDismiss: this._onDismissMenu,\n };\n }\n\n private _onRenderMenu = (menuProps: IContextualMenuProps): JSX.Element => {\n const MenuType = this.props.menuAs ? composeComponentAs(this.props.menuAs, ContextualMenu) : ContextualMenu;\n\n return ;\n };\n\n private _onDismissMenu: IContextualMenuProps['onDismiss'] = ev => {\n const { menuProps } = this.props;\n\n if (menuProps && menuProps.onDismiss) {\n menuProps.onDismiss(ev);\n }\n if (!ev || !ev.defaultPrevented) {\n this._dismissMenu();\n }\n };\n\n private _dismissMenu = (): void => {\n this._menuShouldFocusOnMount = undefined;\n this._menuShouldFocusOnContainer = undefined;\n this.setState({ menuHidden: true });\n };\n\n private _openMenu = (shouldFocusOnContainer?: boolean, shouldFocusOnMount: boolean = true): void => {\n if (this.props.menuProps) {\n this._menuShouldFocusOnContainer = shouldFocusOnContainer;\n this._menuShouldFocusOnMount = shouldFocusOnMount;\n this._renderedVisibleMenu = true;\n this.setState({ menuHidden: false });\n }\n };\n\n private _onToggleMenu = (shouldFocusOnContainer: boolean): void => {\n let shouldFocusOnMount = true;\n if (this.props.menuProps && this.props.menuProps.shouldFocusOnMount === false) {\n shouldFocusOnMount = false;\n }\n\n this.state.menuHidden ? this._openMenu(shouldFocusOnContainer, shouldFocusOnMount) : this._dismissMenu();\n };\n\n private _onRenderSplitButtonContent(tag: any, buttonProps: IButtonProps): JSX.Element {\n const {\n styles = {},\n disabled,\n allowDisabledFocus,\n checked,\n getSplitButtonClassNames,\n primaryDisabled,\n menuProps,\n toggle,\n role,\n primaryActionButtonProps,\n } = this.props;\n let { keytipProps } = this.props;\n const { menuHidden } = this.state;\n\n const classNames = getSplitButtonClassNames\n ? getSplitButtonClassNames(!!disabled, !menuHidden, !!checked, !!allowDisabledFocus)\n : styles && getBaseSplitButtonClassNames(styles!, !!disabled, !menuHidden, !!checked, !!primaryDisabled);\n\n assign(buttonProps, {\n onClick: undefined,\n onPointerDown: undefined,\n onPointerUp: undefined,\n tabIndex: -1,\n 'data-is-focusable': false,\n });\n\n if (keytipProps && menuProps) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n\n const containerProps = getNativeProps>(buttonProps, [], ['disabled']);\n\n // Add additional props to apply on primary action button\n if (primaryActionButtonProps) {\n assign(buttonProps, primaryActionButtonProps);\n }\n\n const SplitButton = (keytipAttributes?: any): JSX.Element => (\n \n \n {this._onRenderContent(tag, buttonProps)}\n {this._onRenderSplitButtonMenuButton(classNames, keytipAttributes)}\n {this._onRenderSplitButtonDivider(classNames)}\n \n \n );\n\n return keytipProps ? (\n \n {(keytipAttributes: any): JSX.Element => SplitButton(keytipAttributes)}\n \n ) : (\n SplitButton()\n );\n }\n\n private _onSplitContainerFocusCapture = (ev: React.FocusEvent) => {\n const container = this._splitButtonContainer.current;\n\n // If the target is coming from the portal we do not need to set focus on the container.\n if (!container || (ev.target && portalContainsElement(ev.target, container))) {\n return;\n }\n\n // We should never be able to focus the individual buttons in a split button. Focus\n // should always remain on the container.\n container.focus();\n };\n\n private _onSplitButtonPrimaryClick = (ev: React.MouseEvent) => {\n if (!this.state.menuHidden) {\n this._dismissMenu();\n }\n\n if (!this._processingTouch && this.props.onClick) {\n this.props.onClick(ev);\n } else if (this._processingTouch) {\n this._onMenuClick(ev);\n }\n };\n\n private _onRenderSplitButtonDivider(classNames: ISplitButtonClassNames | undefined): JSX.Element | null {\n if (classNames && classNames.divider) {\n const onClick = (ev: React.MouseEvent) => {\n ev.stopPropagation();\n };\n return ;\n }\n return null;\n }\n\n private _onRenderSplitButtonMenuButton(\n classNames: ISplitButtonClassNames | undefined,\n keytipAttributes: any,\n ): JSX.Element {\n const {\n allowDisabledFocus,\n checked,\n disabled,\n splitButtonMenuProps,\n splitButtonAriaLabel,\n primaryDisabled,\n } = this.props;\n const { menuHidden } = this.state;\n let menuIconProps = this.props.menuIconProps;\n\n if (menuIconProps === undefined) {\n menuIconProps = {\n iconName: 'ChevronDown',\n };\n }\n\n const splitButtonProps = {\n ...splitButtonMenuProps,\n styles: classNames,\n checked: checked,\n disabled: disabled,\n allowDisabledFocus: allowDisabledFocus,\n onClick: this._onMenuClick,\n menuProps: undefined,\n iconProps: { ...menuIconProps, className: this._classNames.menuIcon },\n ariaLabel: splitButtonAriaLabel,\n 'aria-haspopup': true,\n 'aria-expanded': !menuHidden,\n 'data-is-focusable': false,\n };\n\n // Add data-ktp-execute-target to the split button if the keytip is defined\n return (\n \n );\n }\n\n private _onKeyDown = (ev: React.KeyboardEvent) => {\n // explicity cancelling event so click won't fire after this\n // eslint-disable-next-line deprecation/deprecation\n if (this.props.disabled && (ev.which === KeyCodes.enter || ev.which === KeyCodes.space)) {\n ev.preventDefault();\n ev.stopPropagation();\n } else if (!this.props.disabled) {\n if (this.props.menuProps) {\n this._onMenuKeyDown(ev);\n } else if (this.props.onKeyDown !== undefined) {\n this.props.onKeyDown(ev); // not cancelling event because it's not disabled\n }\n }\n };\n\n private _onKeyUp = (\n ev: React.KeyboardEvent,\n ) => {\n if (!this.props.disabled && this.props.onKeyUp !== undefined) {\n this.props.onKeyUp(ev); // not cancelling event because it's not disabled\n }\n };\n\n private _onKeyPress = (\n ev: React.KeyboardEvent,\n ) => {\n if (!this.props.disabled && this.props.onKeyPress !== undefined) {\n this.props.onKeyPress(ev); // not cancelling event because it's not disabled\n }\n };\n\n private _onMouseUp = (\n ev: React.MouseEvent,\n ) => {\n if (!this.props.disabled && this.props.onMouseUp !== undefined) {\n this.props.onMouseUp(ev); // not cancelling event because it's not disabled\n }\n };\n\n private _onMouseDown = (\n ev: React.MouseEvent,\n ) => {\n if (!this.props.disabled && this.props.onMouseDown !== undefined) {\n this.props.onMouseDown(ev); // not cancelling event because it's not disabled\n }\n };\n\n private _onClick = (\n ev: React.MouseEvent,\n ) => {\n if (!this.props.disabled) {\n if (this.props.menuProps) {\n this._onMenuClick(ev);\n } else if (this.props.onClick !== undefined) {\n this.props.onClick(ev); // not cancelling event because it's not disabled\n }\n }\n };\n\n private _onSplitButtonContainerKeyDown = (ev: React.KeyboardEvent) => {\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter || ev.which === KeyCodes.space) {\n if (this._buttonElement.current) {\n this._buttonElement.current.click();\n ev.preventDefault();\n ev.stopPropagation();\n }\n } else {\n this._onMenuKeyDown(ev);\n }\n };\n\n private _onMenuKeyDown = (ev: React.KeyboardEvent) => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(ev);\n }\n\n // eslint-disable-next-line deprecation/deprecation\n const isUp = ev.which === KeyCodes.up;\n // eslint-disable-next-line deprecation/deprecation\n const isDown = ev.which === KeyCodes.down;\n\n if (!ev.defaultPrevented && this._isValidMenuOpenKey(ev)) {\n const { onMenuClick } = this.props;\n if (onMenuClick) {\n onMenuClick(ev, this.props);\n }\n\n this._onToggleMenu(false);\n ev.preventDefault();\n ev.stopPropagation();\n }\n\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter || ev.which === KeyCodes.space) {\n // We manually set the focus visibility to true if opening via Enter or Space to account for the scenario where\n // a user clicks on the button, closes the menu and then opens it via keyboard. In this scenario our default logic\n // for setting focus visibility is not triggered since there is no keyboard navigation present beforehand.\n setFocusVisibility(true, ev.target as Element);\n }\n\n if (!(ev.altKey || ev.metaKey) && (isUp || isDown)) {\n // Suppose a menu, with shouldFocusOnMount: false, is open, and user wants to keyboard to the menu items\n // We need to re-render the menu with shouldFocusOnMount as true.\n\n if (!this.state.menuHidden && this.props.menuProps) {\n const currentShouldFocusOnMount =\n this._menuShouldFocusOnMount !== undefined\n ? this._menuShouldFocusOnMount\n : this.props.menuProps.shouldFocusOnMount;\n if (!currentShouldFocusOnMount) {\n ev.preventDefault();\n ev.stopPropagation();\n this._menuShouldFocusOnMount = true;\n this.forceUpdate();\n }\n }\n }\n };\n\n private _onTouchStart: () => void = () => {\n if (\n this._isSplitButton &&\n this._splitButtonContainer.current &&\n !('onpointerdown' in this._splitButtonContainer.current)\n ) {\n this._handleTouchAndPointerEvent();\n }\n };\n\n private _onPointerDown(\n ev: PointerEvent &\n React.PointerEvent,\n ) {\n const { onPointerDown } = this.props;\n if (onPointerDown) {\n onPointerDown(ev);\n }\n\n if (ev.pointerType === 'touch') {\n this._handleTouchAndPointerEvent();\n\n ev.preventDefault();\n ev.stopImmediatePropagation();\n }\n }\n\n private _handleTouchAndPointerEvent() {\n // If we already have an existing timeout from a previous touch and pointer event\n // cancel that timeout so we can set a new one.\n if (this._lastTouchTimeoutId !== undefined) {\n this._async.clearTimeout(this._lastTouchTimeoutId);\n this._lastTouchTimeoutId = undefined;\n }\n this._processingTouch = true;\n\n this._lastTouchTimeoutId = this._async.setTimeout(() => {\n this._processingTouch = false;\n this._lastTouchTimeoutId = undefined;\n\n // Touch and pointer events don't focus the button naturally,\n // so adding an imperative focus call to guarantee this behavior.\n this.focus();\n }, TouchIdleDelay);\n }\n\n /**\n * Returns if the user hits a valid keyboard key to open the menu\n * @param ev - the keyboard event\n * @returns True if user clicks on custom trigger key if enabled or alt + down arrow if not. False otherwise.\n */\n private _isValidMenuOpenKey(\n ev: React.KeyboardEvent,\n ): boolean {\n if (this.props.menuTriggerKeyCode) {\n // eslint-disable-next-line deprecation/deprecation\n return ev.which === this.props.menuTriggerKeyCode;\n } else if (this.props.menuProps) {\n // eslint-disable-next-line deprecation/deprecation\n return ev.which === KeyCodes.down && (ev.altKey || ev.metaKey);\n }\n\n // Note: When enter is pressed, we will let the event continue to propagate\n // to trigger the onClick event on the button\n return false;\n }\n\n private _onMenuClick = (\n ev: React.MouseEvent,\n ) => {\n const { onMenuClick, menuProps } = this.props;\n if (onMenuClick) {\n onMenuClick(ev, this.props);\n }\n\n // focus on the container by default when the menu is opened with a click event\n // this differentiates from a keyboard interaction triggering the click event\n const shouldFocusOnContainer =\n typeof menuProps?.shouldFocusOnContainer === 'boolean'\n ? menuProps.shouldFocusOnContainer\n : (ev.nativeEvent as PointerEvent).pointerType === 'mouse';\n\n if (!ev.defaultPrevented) {\n this._onToggleMenu(shouldFocusOnContainer);\n ev.preventDefault();\n ev.stopPropagation();\n }\n };\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AuthenticationResult, AccountInfo, Logger, PerformanceCallbackFunction } from \"@azure/msal-common\";\nimport { RedirectRequest } from \"../request/RedirectRequest\";\nimport { PopupRequest } from \"../request/PopupRequest\";\nimport { SilentRequest } from \"../request/SilentRequest\";\nimport { SsoSilentRequest } from \"../request/SsoSilentRequest\";\nimport { EndSessionRequest } from \"../request/EndSessionRequest\";\nimport { BrowserConfigurationAuthError } from \"../error/BrowserConfigurationAuthError\";\nimport { WrapperSKU } from \"../utils/BrowserConstants\";\nimport { INavigationClient } from \"../navigation/INavigationClient\";\nimport { EndSessionPopupRequest } from \"../request/EndSessionPopupRequest\";\nimport { ITokenCache } from \"../cache/ITokenCache\";\nimport { AuthorizationCodeRequest } from \"../request/AuthorizationCodeRequest\";\nimport { BrowserConfiguration } from \"../config/Configuration\";\n\nexport interface IPublicClientApplication {\n initialize(): Promise;\n acquireTokenPopup(request: PopupRequest): Promise;\n acquireTokenRedirect(request: RedirectRequest): Promise;\n acquireTokenSilent(silentRequest: SilentRequest): Promise;\n acquireTokenByCode(request: AuthorizationCodeRequest): Promise;\n addEventCallback(callback: Function): string | null;\n removeEventCallback(callbackId: string): void;\n addPerformanceCallback(callback: PerformanceCallbackFunction): string;\n removePerformanceCallback(callbackId: string): boolean;\n enableAccountStorageEvents(): void;\n disableAccountStorageEvents(): void;\n getAccountByHomeId(homeAccountId: string): AccountInfo | null;\n getAccountByLocalId(localId: string): AccountInfo | null;\n getAccountByUsername(userName: string): AccountInfo | null;\n getAllAccounts(): AccountInfo[];\n handleRedirectPromise(hash?: string): Promise;\n loginPopup(request?: PopupRequest): Promise;\n loginRedirect(request?: RedirectRequest): Promise;\n logout(logoutRequest?: EndSessionRequest): Promise;\n logoutRedirect(logoutRequest?: EndSessionRequest): Promise;\n logoutPopup(logoutRequest?: EndSessionPopupRequest): Promise;\n ssoSilent(request: SsoSilentRequest): Promise;\n getTokenCache(): ITokenCache;\n getLogger(): Logger;\n setLogger(logger: Logger): void;\n setActiveAccount(account: AccountInfo | null): void;\n getActiveAccount(): AccountInfo | null;\n initializeWrapperLibrary(sku: WrapperSKU, version: string): void;\n setNavigationClient(navigationClient: INavigationClient): void;\n getConfiguration(): BrowserConfiguration;\n}\n\nexport const stubbedPublicClientApplication: IPublicClientApplication = {\n initialize: () => {\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\n },\n acquireTokenPopup: () => {\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\n },\n acquireTokenRedirect: () => {\t\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\t\n },\t\n acquireTokenSilent: () => {\t\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\t\n },\n acquireTokenByCode: () => {\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\n },\n getAllAccounts: () => {\n return [];\t\n },\t\n getAccountByHomeId: () => {\n return null;\n },\n getAccountByUsername: () => {\t\n return null;\t\n },\t\n getAccountByLocalId: () => {\n return null;\n },\n handleRedirectPromise: () => {\t\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\t\n },\t\n loginPopup: () => {\t\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\t\n },\t\n loginRedirect: () => {\t\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\t\n },\t\n logout: () => {\t\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\t\n },\t\n logoutRedirect: () => {\t\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\t\n },\n logoutPopup: () => {\t\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\t\n },\n ssoSilent: () => {\t\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\t\n },\n addEventCallback: () => {\n return null;\n },\n removeEventCallback: () => {\n return;\n },\n addPerformanceCallback: () => {\n return \"\";\n },\n removePerformanceCallback: () => {\n return false;\n },\n enableAccountStorageEvents: () => {\n return;\n },\n disableAccountStorageEvents: () => {\n return;\n },\n getTokenCache: () => {\n throw BrowserConfigurationAuthError.createStubPcaInstanceCalledError();\n },\n getLogger: () => {\n throw BrowserConfigurationAuthError.createStubPcaInstanceCalledError();\n },\n setLogger: () => {\n return;\n },\n setActiveAccount: () => {\n return;\n },\n getActiveAccount: () => {\n return null;\n },\n initializeWrapperLibrary: () => {\n return;\n },\n setNavigationClient: () => {\n return;\n },\n getConfiguration: () => {\n throw BrowserConfigurationAuthError.createStubPcaInstanceCalledError();\n }\n};\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AuthenticationResult, AuthError, AccountInfo } from \"@azure/msal-common\";\nimport { EventType } from \"./EventType\";\nimport { InteractionStatus, InteractionType } from \"../utils/BrowserConstants\";\nimport { PopupRequest, RedirectRequest, SilentRequest, SsoSilentRequest, EndSessionRequest } from \"..\";\n\nexport type EventMessage = {\n eventType: EventType;\n interactionType: InteractionType | null;\n payload: EventPayload;\n error: EventError;\n timestamp: number;\n};\n\nexport type PopupEvent = {\n popupWindow: Window;\n};\n\nexport type EventPayload = AccountInfo | PopupRequest | RedirectRequest | SilentRequest | SsoSilentRequest | EndSessionRequest | AuthenticationResult | PopupEvent | null;\n\nexport type EventError = AuthError | Error | null;\n\nexport type EventCallbackFunction = (message: EventMessage) => void;\n\nexport class EventMessageUtils {\n\n /**\n * Gets interaction status from event message\n * @param message\n * @param currentStatus\n */\n static getInteractionStatusFromEvent(message: EventMessage, currentStatus?: InteractionStatus): InteractionStatus|null {\n switch (message.eventType) {\n case EventType.LOGIN_START:\n return InteractionStatus.Login;\n case EventType.SSO_SILENT_START:\n return InteractionStatus.SsoSilent;\n case EventType.ACQUIRE_TOKEN_START:\n if (message.interactionType === InteractionType.Redirect || message.interactionType === InteractionType.Popup) {\n return InteractionStatus.AcquireToken;\n }\n break;\n case EventType.HANDLE_REDIRECT_START:\n return InteractionStatus.HandleRedirect;\n case EventType.LOGOUT_START:\n return InteractionStatus.Logout;\n case EventType.SSO_SILENT_SUCCESS:\n case EventType.SSO_SILENT_FAILURE:\n if (currentStatus && currentStatus !== InteractionStatus.SsoSilent) {\n // Prevent this event from clearing any status other than ssoSilent\n break;\n }\n return InteractionStatus.None;\n case EventType.LOGOUT_END:\n if (currentStatus && currentStatus !== InteractionStatus.Logout) {\n // Prevent this event from clearing any status other than logout\n break;\n }\n return InteractionStatus.None;\n case EventType.HANDLE_REDIRECT_END:\n if (currentStatus && currentStatus !== InteractionStatus.HandleRedirect) {\n // Prevent this event from clearing any status other than handleRedirect\n break;\n }\n return InteractionStatus.None;\n case EventType.LOGIN_SUCCESS:\n case EventType.LOGIN_FAILURE:\n case EventType.ACQUIRE_TOKEN_SUCCESS:\n case EventType.ACQUIRE_TOKEN_FAILURE:\n if (message.interactionType === InteractionType.Redirect || message.interactionType === InteractionType.Popup) {\n if (currentStatus && currentStatus !== InteractionStatus.Login && currentStatus !== InteractionStatus.AcquireToken) {\n // Prevent this event from clearing any status other than login or acquireToken\n break;\n }\n return InteractionStatus.None;\n }\n break;\n default:\n break;\n }\n return null;\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport * as React from \"react\";\nimport { IPublicClientApplication, stubbedPublicClientApplication, Logger, InteractionStatus, AccountInfo } from \"@azure/msal-browser\";\n\nexport interface IMsalContext {\n instance: IPublicClientApplication;\n inProgress: InteractionStatus;\n accounts: AccountInfo[];\n logger: Logger;\n}\n\n/*\n * Stubbed context implementation\n * Only used when there is no provider, which is an unsupported scenario\n */\nconst defaultMsalContext: IMsalContext = {\n instance: stubbedPublicClientApplication,\n inProgress: InteractionStatus.None,\n accounts: [],\n logger: new Logger({})\n};\n\nexport const MsalContext = React.createContext(\n defaultMsalContext\n);\nexport const MsalConsumer = MsalContext.Consumer;\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AccountIdentifiers } from \"../types/AccountIdentifiers\";\nimport { AccountInfo } from \"@azure/msal-browser\";\n\ntype FaaCFunction = (args: T) => React.ReactNode;\n\nexport function getChildrenOrFunction(\n children: React.ReactNode | FaaCFunction,\n args: T\n): React.ReactNode {\n if (typeof children === \"function\") {\n return children(args);\n }\n return children;\n}\n\n/*\n * Utility types\n * Reference: https://github.com/piotrwitek/utility-types\n */\ntype SetDifference = A extends B ? never : A;\ntype SetComplement = SetDifference;\nexport type Subtract = Pick>;\n\n/**\n * Helper function to determine whether 2 arrays are equal\n * Used to avoid unnecessary state updates\n * @param arrayA \n * @param arrayB \n */\nexport function accountArraysAreEqual(arrayA: Array, arrayB: Array): boolean {\n if (arrayA.length !== arrayB.length) {\n return false;\n }\n\n const comparisonArray = [...arrayB];\n\n return arrayA.every((elementA) => {\n const elementB = comparisonArray.shift();\n if (!elementA || !elementB) {\n return false;\n }\n\n return (elementA.homeAccountId === elementB.homeAccountId) && \n (elementA.localAccountId === elementB.localAccountId) &&\n (elementA.username === elementB.username);\n });\n}\n\nexport function getAccountByIdentifiers(allAccounts: AccountInfo[], accountIdentifiers: AccountIdentifiers): AccountInfo | null {\n if (allAccounts.length > 0 && (accountIdentifiers.homeAccountId || accountIdentifiers.localAccountId || accountIdentifiers.username)) {\n const matchedAccounts = allAccounts.filter(accountObj => {\n if (accountIdentifiers.username && accountIdentifiers.username.toLowerCase() !== accountObj.username.toLowerCase()) {\n return false;\n }\n if (accountIdentifiers.homeAccountId && accountIdentifiers.homeAccountId.toLowerCase() !== accountObj.homeAccountId.toLowerCase()) {\n return false;\n }\n if (accountIdentifiers.localAccountId && accountIdentifiers.localAccountId.toLowerCase() !== accountObj.localAccountId.toLowerCase()) {\n return false;\n }\n\n return true;\n });\n\n return matchedAccounts[0] || null;\n } else {\n return null;\n }\n}\n","/* eslint-disable header/header */\nexport const name = \"@azure/msal-browser\";\nexport const version = \"2.28.1\";\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport React, { useEffect, useReducer, PropsWithChildren, useMemo} from \"react\";\nimport {\n IPublicClientApplication,\n EventMessage,\n EventMessageUtils,\n InteractionStatus,\n Logger,\n WrapperSKU,\n AccountInfo\n} from \"@azure/msal-browser\";\nimport { MsalContext, IMsalContext } from \"./MsalContext\";\nimport { accountArraysAreEqual } from \"./utils/utilities\";\nimport { name as SKU, version } from \"./packageMetadata\";\n\nexport type MsalProviderProps = PropsWithChildren<{\n instance: IPublicClientApplication;\n}>;\n\ntype MsalState = {\n inProgress: InteractionStatus;\n accounts: AccountInfo[];\n};\n\nenum MsalProviderActionType {\n UNBLOCK_INPROGRESS = \"UNBLOCK_INPROGRESS\",\n EVENT = \"EVENT\"\n}\n\ntype MsalProviderReducerAction = {\n type: MsalProviderActionType,\n payload: {\n logger: Logger;\n instance: IPublicClientApplication;\n message?: EventMessage;\n };\n};\n\n/**\n * Returns the next inProgress and accounts state based on event message\n * @param previousState \n * @param action \n */\nconst reducer = (previousState: MsalState, action: MsalProviderReducerAction): MsalState => {\n const { type, payload } = action;\n let newInProgress = previousState.inProgress;\n\n switch (type) {\n case MsalProviderActionType.UNBLOCK_INPROGRESS:\n if (previousState.inProgress === InteractionStatus.Startup){\n newInProgress = InteractionStatus.None;\n payload.logger.info(\"MsalProvider - handleRedirectPromise resolved, setting inProgress to 'none'\");\n }\n break;\n case MsalProviderActionType.EVENT:\n const message = payload.message as EventMessage;\n const status = EventMessageUtils.getInteractionStatusFromEvent(message, previousState.inProgress);\n if (status) {\n payload.logger.info(`MsalProvider - ${message.eventType} results in setting inProgress from ${previousState.inProgress} to ${status}`);\n newInProgress = status;\n }\n break;\n default:\n throw new Error(`Unknown action type: ${type}`);\n }\n \n const currentAccounts = payload.instance.getAllAccounts();\n if (newInProgress !== previousState.inProgress && \n !accountArraysAreEqual(currentAccounts, previousState.accounts)) {\n // Both inProgress and accounts changed\n return {\n ...previousState,\n inProgress: newInProgress,\n accounts: currentAccounts\n };\n } else if (newInProgress !== previousState.inProgress) {\n // Only only inProgress changed\n return {\n ...previousState,\n inProgress: newInProgress\n };\n } else if (!accountArraysAreEqual(currentAccounts, previousState.accounts)) {\n // Only accounts changed\n return {\n ...previousState,\n accounts: currentAccounts\n };\n } else {\n // Nothing changed\n return previousState;\n }\n};\n\n/**\n * MSAL context provider component. This must be rendered above any other components that use MSAL.\n */\nexport function MsalProvider({instance, children}: MsalProviderProps): React.ReactElement {\n useEffect(() => {\n instance.initializeWrapperLibrary(WrapperSKU.React, version);\n }, [instance]);\n // Create a logger instance for msal-react with the same options as PublicClientApplication\n const logger = useMemo(() => {\n return instance.getLogger().clone(SKU, version);\n }, [instance]);\n\n const [state, updateState] = useReducer(reducer, undefined, () => {\n // Lazy initialization of the initial state\n return {\n inProgress: InteractionStatus.Startup,\n accounts: instance.getAllAccounts()\n };\n });\n \n useEffect(() => {\n const callbackId = instance.addEventCallback((message: EventMessage) => {\n updateState({\n payload: {\n instance,\n logger,\n message\n }, \n type: MsalProviderActionType.EVENT\n });\n });\n logger.verbose(`MsalProvider - Registered event callback with id: ${callbackId}`);\n\n instance.initialize().then(() => {\n instance.handleRedirectPromise().catch(() => {\n // Errors should be handled by listening to the LOGIN_FAILURE event\n return;\n }).finally(() => {\n /*\n * If handleRedirectPromise returns a cached promise the necessary events may not be fired\n * This is a fallback to prevent inProgress from getting stuck in 'startup'\n */\n updateState({\n payload: {\n instance,\n logger\n },\n type: MsalProviderActionType.UNBLOCK_INPROGRESS \n });\n });\n });\n\n return () => {\n // Remove callback when component unmounts or accounts change\n if (callbackId) {\n logger.verbose(`MsalProvider - Removing event callback ${callbackId}`);\n instance.removeEventCallback(callbackId);\n }\n };\n }, [instance, logger]);\n\n const contextValue: IMsalContext = {\n instance,\n inProgress: state.inProgress,\n accounts: state.accounts,\n logger\n };\n\n return (\n \n {children}\n \n );\n}\n\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { useContext } from \"react\";\nimport { IMsalContext, MsalContext } from \"../MsalContext\";\n\n/**\n * Returns Msal Context values\n */\nexport const useMsal = (): IMsalContext => useContext(MsalContext);\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { useState, useEffect } from \"react\";\nimport { useMsal } from \"./useMsal\";\nimport { AccountIdentifiers } from \"../types/AccountIdentifiers\";\nimport { AccountInfo } from \"@azure/msal-browser\";\nimport { getAccountByIdentifiers } from \"../utils/utilities\";\n\nfunction isAuthenticated(allAccounts: AccountInfo[], matchAccount?: AccountIdentifiers): boolean {\n if(matchAccount && (matchAccount.username || matchAccount.homeAccountId || matchAccount.localAccountId)) {\n return !!getAccountByIdentifiers(allAccounts, matchAccount);\n } \n\n return allAccounts.length > 0;\n}\n\n/**\n * Returns whether or not a user is currently signed-in. Optionally provide 1 or more accountIdentifiers to determine if a specific user is signed-in\n * @param matchAccount \n */\nexport function useIsAuthenticated(matchAccount?: AccountIdentifiers): boolean {\n const { accounts: allAccounts } = useMsal();\n\n const [hasAuthenticated, setHasAuthenticated] = useState(() => isAuthenticated(allAccounts, matchAccount));\n\n useEffect(() => {\n setHasAuthenticated(isAuthenticated(allAccounts, matchAccount));\n }, [allAccounts, matchAccount]);\n\n return hasAuthenticated;\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AuthError } from \"@azure/msal-browser\";\n\nexport const ReactAuthErrorMessage = {\n invalidInteractionType: {\n code: \"invalid_interaction_type\",\n desc: \"The provided interaction type is invalid.\"\n },\n unableToFallbackToInteraction: {\n code: \"unable_to_fallback_to_interaction\",\n desc: \"Interaction is required but another interaction is already in progress. Please try again when the current interaction is complete.\"\n }\n};\n\nexport class ReactAuthError extends AuthError {\n constructor(errorCode: string, errorMessage?: string) {\n super(errorCode, errorMessage);\n\n Object.setPrototypeOf(this, ReactAuthError.prototype);\n this.name = \"ReactAuthError\";\n }\n\n static createInvalidInteractionTypeError(): ReactAuthError {\n return new ReactAuthError(ReactAuthErrorMessage.invalidInteractionType.code, ReactAuthErrorMessage.invalidInteractionType.desc);\n }\n\n static createUnableToFallbackToInteractionError(): ReactAuthError {\n return new ReactAuthError(ReactAuthErrorMessage.unableToFallbackToInteraction.code, ReactAuthErrorMessage.unableToFallbackToInteraction.desc);\n }\n}\n","import { _DYN_COOKIE_CFG, _DYN_INDEX_OF, _DYN_LENGTH, _DYN_LOGGER, _DYN_SET_ENABLED, _DYN_SPLIT, _DYN_SUBSTRING, _DYN_USER_AGENT } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { dumpObj, getDocument, getLocation, getNavigator, isIE } from \"./EnvUtils\";\r\nimport { arrForEach, dateNow, getExceptionName, isFunction, isNotNullOrUndefined, isNullOrUndefined, isString, isTruthy, isUndefined, objForEachKey, setValue, strContains, strEndsWith, strTrim } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nvar strToGMTString = \"toGMTString\";\r\nvar strToUTCString = \"toUTCString\";\r\nvar strCookie = \"cookie\";\r\nvar strExpires = \"expires\";\r\nvar strEnabled = \"enabled\";\r\nvar strIsCookieUseDisabled = \"isCookieUseDisabled\";\r\nvar strDisableCookiesUsage = \"disableCookiesUsage\";\r\nvar strConfigCookieMgr = \"_ckMgr\";\r\nvar _supportsCookies = null;\r\nvar _allowUaSameSite = null;\r\nvar _parsedCookieValue = null;\r\nvar _doc = getDocument();\r\nvar _cookieCache = {};\r\nvar _globalCookieConfig = {};\r\n/**\r\n * @ignore\r\n * DO NOT USE or export from the module, this is exposed as public to support backward compatibility of previous static utility methods only.\r\n * If you want to manager cookies either use the ICookieMgr available from the core instance via getCookieMgr() or create\r\n * your own instance of the CookieMgr and use that.\r\n * Using this directly for enabling / disabling cookie handling will not only affect your usage but EVERY user of cookies.\r\n * Example, if you are using a shared component that is also using Application Insights you will affect their cookie handling.\r\n * @param logger - The DiagnosticLogger to use for reporting errors.\r\n */\r\nexport function _gblCookieMgr(config, logger) {\r\n // Stash the global instance against the BaseCookieMgr class\r\n var inst = createCookieMgr[strConfigCookieMgr] || _globalCookieConfig[strConfigCookieMgr];\r\n if (!inst) {\r\n // Note: not using the getSetValue() helper as that would require always creating a temporary cookieMgr\r\n // that ultimately is never used\r\n inst = createCookieMgr[strConfigCookieMgr] = createCookieMgr(config, logger);\r\n _globalCookieConfig[strConfigCookieMgr] = inst;\r\n }\r\n return inst;\r\n}\r\nfunction _isMgrEnabled(cookieMgr) {\r\n if (cookieMgr) {\r\n return cookieMgr.isEnabled();\r\n }\r\n return true;\r\n}\r\nfunction _createCookieMgrConfig(rootConfig) {\r\n var cookieMgrCfg = rootConfig[_DYN_COOKIE_CFG /* @min:%2ecookieCfg */] = rootConfig[_DYN_COOKIE_CFG /* @min:%2ecookieCfg */] || {};\r\n // Sets the values from the root config if not already present on the cookieMgrCfg\r\n setValue(cookieMgrCfg, \"domain\", rootConfig.cookieDomain, isNotNullOrUndefined, isNullOrUndefined);\r\n setValue(cookieMgrCfg, \"path\", rootConfig.cookiePath || \"/\", null, isNullOrUndefined);\r\n if (isNullOrUndefined(cookieMgrCfg[strEnabled])) {\r\n // Set the enabled from the provided setting or the legacy root values\r\n var cookieEnabled = void 0;\r\n if (!isUndefined(rootConfig[strIsCookieUseDisabled])) {\r\n cookieEnabled = !rootConfig[strIsCookieUseDisabled];\r\n }\r\n if (!isUndefined(rootConfig[strDisableCookiesUsage])) {\r\n cookieEnabled = !rootConfig[strDisableCookiesUsage];\r\n }\r\n cookieMgrCfg[strEnabled] = cookieEnabled;\r\n }\r\n return cookieMgrCfg;\r\n}\r\n/**\r\n * Helper to return the ICookieMgr from the core (if not null/undefined) or a default implementation\r\n * associated with the configuration or a legacy default.\r\n * @param core\r\n * @param config\r\n * @returns\r\n */\r\nexport function safeGetCookieMgr(core, config) {\r\n var cookieMgr;\r\n if (core) {\r\n // Always returns an instance\r\n cookieMgr = core.getCookieMgr();\r\n }\r\n else if (config) {\r\n var cookieCfg = config[_DYN_COOKIE_CFG /* @min:%2ecookieCfg */];\r\n if (cookieCfg[strConfigCookieMgr]) {\r\n cookieMgr = cookieCfg[strConfigCookieMgr];\r\n }\r\n else {\r\n cookieMgr = createCookieMgr(config);\r\n }\r\n }\r\n if (!cookieMgr) {\r\n // Get or initialize the default global (legacy) cookie manager if we couldn't find one\r\n cookieMgr = _gblCookieMgr(config, (core || {})[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return cookieMgr;\r\n}\r\nexport function createCookieMgr(rootConfig, logger) {\r\n var _a;\r\n var cookieMgrConfig = _createCookieMgrConfig(rootConfig || _globalCookieConfig);\r\n var _path = cookieMgrConfig.path || \"/\";\r\n var _domain = cookieMgrConfig.domain;\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n var _enabled = cookieMgrConfig[strEnabled] !== false;\r\n var cookieMgr = (_a = {\r\n isEnabled: function () {\r\n var enabled = _enabled && areCookiesSupported(logger);\r\n // Using an indirect lookup for any global cookie manager to support tree shaking for SDK's\r\n // that don't use the \"applicationinsights-core\" version of the default cookie function\r\n var gblManager = _globalCookieConfig[strConfigCookieMgr];\r\n if (enabled && gblManager && cookieMgr !== gblManager) {\r\n // Make sure the GlobalCookie Manager instance (if not this instance) is also enabled.\r\n // As the global (deprecated) functions may have been called (for backward compatibility)\r\n enabled = _isMgrEnabled(gblManager);\r\n }\r\n return enabled;\r\n }\r\n },\r\n _a[_DYN_SET_ENABLED /* @min:setEnabled */] = function (value) {\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n _enabled = value !== false;\r\n },\r\n _a.set = function (name, value, maxAgeSec, domain, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr)) {\r\n var values = {};\r\n var theValue = strTrim(value || STR_EMPTY);\r\n var idx = theValue[_DYN_INDEX_OF /* @min:%2eindexOf */](\";\");\r\n if (idx !== -1) {\r\n theValue = strTrim(value[_DYN_SUBSTRING /* @min:%2esubstring */](0, idx));\r\n values = _extractParts(value[_DYN_SUBSTRING /* @min:%2esubstring */](idx + 1));\r\n }\r\n // Only update domain if not already present (isUndefined) and the value is truthy (not null, undefined or empty string)\r\n setValue(values, \"domain\", domain || _domain, isTruthy, isUndefined);\r\n if (!isNullOrUndefined(maxAgeSec)) {\r\n var _isIE = isIE();\r\n if (isUndefined(values[strExpires])) {\r\n var nowMs = dateNow();\r\n // Only add expires if not already present\r\n var expireMs = nowMs + (maxAgeSec * 1000);\r\n // Sanity check, if zero or -ve then ignore\r\n if (expireMs > 0) {\r\n var expiry = new Date();\r\n expiry.setTime(expireMs);\r\n setValue(values, strExpires, _formatDate(expiry, !_isIE ? strToUTCString : strToGMTString) || _formatDate(expiry, _isIE ? strToGMTString : strToUTCString) || STR_EMPTY, isTruthy);\r\n }\r\n }\r\n if (!_isIE) {\r\n // Only replace if not already present\r\n setValue(values, \"max-age\", STR_EMPTY + maxAgeSec, null, isUndefined);\r\n }\r\n }\r\n var location_1 = getLocation();\r\n if (location_1 && location_1.protocol === \"https:\") {\r\n setValue(values, \"secure\", null, null, isUndefined);\r\n // Only set same site if not also secure\r\n if (_allowUaSameSite === null) {\r\n _allowUaSameSite = !uaDisallowsSameSiteNone((getNavigator() || {})[_DYN_USER_AGENT /* @min:%2euserAgent */]);\r\n }\r\n if (_allowUaSameSite) {\r\n setValue(values, \"SameSite\", \"None\", null, isUndefined);\r\n }\r\n }\r\n setValue(values, \"path\", path || _path, null, isUndefined);\r\n var setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;\r\n setCookieFn(name, _formatCookieValue(theValue, values));\r\n result = true;\r\n }\r\n return result;\r\n },\r\n _a.get = function (name) {\r\n var value = STR_EMPTY;\r\n if (_isMgrEnabled(cookieMgr)) {\r\n value = (cookieMgrConfig.getCookie || _getCookieValue)(name);\r\n }\r\n return value;\r\n },\r\n _a.del = function (name, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr)) {\r\n // Only remove the cookie if the manager and cookie support has not been disabled\r\n result = cookieMgr.purge(name, path);\r\n }\r\n return result;\r\n },\r\n _a.purge = function (name, path) {\r\n var _a;\r\n var result = false;\r\n if (areCookiesSupported(logger)) {\r\n // Setting the expiration date in the past immediately removes the cookie\r\n var values = (_a = {},\r\n _a[\"path\"] = path ? path : \"/\",\r\n _a[strExpires] = \"Thu, 01 Jan 1970 00:00:01 GMT\",\r\n _a);\r\n if (!isIE()) {\r\n // Set max age to expire now\r\n values[\"max-age\"] = \"0\";\r\n }\r\n var delCookie = cookieMgrConfig.delCookie || _setCookieValue;\r\n delCookie(name, _formatCookieValue(STR_EMPTY, values));\r\n result = true;\r\n }\r\n return result;\r\n },\r\n _a);\r\n // Associated this cookie manager with the config\r\n cookieMgr[strConfigCookieMgr] = cookieMgr;\r\n return cookieMgr;\r\n}\r\n/*\r\n* Helper method to tell if document.cookie object is supported by the runtime\r\n*/\r\nexport function areCookiesSupported(logger) {\r\n if (_supportsCookies === null) {\r\n _supportsCookies = false;\r\n try {\r\n var doc = _doc || {};\r\n _supportsCookies = doc[strCookie] !== undefined;\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 68 /* _eInternalMessageId.CannotAccessCookie */, \"Cannot access document.cookie - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return _supportsCookies;\r\n}\r\nfunction _extractParts(theValue) {\r\n var values = {};\r\n if (theValue && theValue[_DYN_LENGTH /* @min:%2elength */]) {\r\n var parts = strTrim(theValue)[_DYN_SPLIT /* @min:%2esplit */](\";\");\r\n arrForEach(parts, function (thePart) {\r\n thePart = strTrim(thePart || STR_EMPTY);\r\n if (thePart) {\r\n var idx = thePart[_DYN_INDEX_OF /* @min:%2eindexOf */](\"=\");\r\n if (idx === -1) {\r\n values[thePart] = null;\r\n }\r\n else {\r\n values[strTrim(thePart[_DYN_SUBSTRING /* @min:%2esubstring */](0, idx))] = strTrim(thePart[_DYN_SUBSTRING /* @min:%2esubstring */](idx + 1));\r\n }\r\n }\r\n });\r\n }\r\n return values;\r\n}\r\nfunction _formatDate(theDate, func) {\r\n if (isFunction(theDate[func])) {\r\n return theDate[func]();\r\n }\r\n return null;\r\n}\r\nfunction _formatCookieValue(value, values) {\r\n var cookieValue = value || STR_EMPTY;\r\n objForEachKey(values, function (name, theValue) {\r\n cookieValue += \"; \" + name + (!isNullOrUndefined(theValue) ? \"=\" + theValue : STR_EMPTY);\r\n });\r\n return cookieValue;\r\n}\r\nfunction _getCookieValue(name) {\r\n var cookieValue = STR_EMPTY;\r\n if (_doc) {\r\n var theCookie = _doc[strCookie] || STR_EMPTY;\r\n if (_parsedCookieValue !== theCookie) {\r\n _cookieCache = _extractParts(theCookie);\r\n _parsedCookieValue = theCookie;\r\n }\r\n cookieValue = strTrim(_cookieCache[name] || STR_EMPTY);\r\n }\r\n return cookieValue;\r\n}\r\nfunction _setCookieValue(name, cookieValue) {\r\n if (_doc) {\r\n _doc[strCookie] = name + \"=\" + cookieValue;\r\n }\r\n}\r\nexport function uaDisallowsSameSiteNone(userAgent) {\r\n if (!isString(userAgent)) {\r\n return false;\r\n }\r\n // Cover all iOS based browsers here. This includes:\r\n // - Safari on iOS 12 for iPhone, iPod Touch, iPad\r\n // - WkWebview on iOS 12 for iPhone, iPod Touch, iPad\r\n // - Chrome on iOS 12 for iPhone, iPod Touch, iPad\r\n // All of which are broken by SameSite=None, because they use the iOS networking stack\r\n if (strContains(userAgent, \"CPU iPhone OS 12\") || strContains(userAgent, \"iPad; CPU OS 12\")) {\r\n return true;\r\n }\r\n // Cover Mac OS X based browsers that use the Mac OS networking stack. This includes:\r\n // - Safari on Mac OS X\r\n // This does not include:\r\n // - Internal browser on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strContains(userAgent, \"Version/\") && strContains(userAgent, \"Safari\")) {\r\n return true;\r\n }\r\n // Cover Mac OS X internal browsers that use the Mac OS networking stack. This includes:\r\n // - Internal browser on Mac OS X\r\n // This does not include:\r\n // - Safari on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strEndsWith(userAgent, \"AppleWebKit/605.1.15 (KHTML, like Gecko)\")) {\r\n return true;\r\n }\r\n // Cover Chrome 50-69, because some versions are broken by SameSite=None, and none in this range require it.\r\n // Note: this covers some pre-Chromium Edge versions, but pre-Chromim Edge does not require SameSite=None, so this is fine.\r\n // Note: this regex applies to Windows, Mac OS X, and Linux, deliberately.\r\n if (strContains(userAgent, \"Chrome/5\") || strContains(userAgent, \"Chrome/6\")) {\r\n return true;\r\n }\r\n // Unreal Engine runs Chromium 59, but does not advertise as Chrome until 4.23. Treat versions of Unreal\r\n // that don't specify their Chrome version as lacking support for SameSite=None.\r\n if (strContains(userAgent, \"UnrealEngine\") && !strContains(userAgent, \"Chrome\")) {\r\n return true;\r\n }\r\n // UCBrowser < 12.13.2 ignores Set-Cookie headers with SameSite=None\r\n // NB: this rule isn't complete - you need regex to make a complete rule.\r\n // See: https://www.chromium.org/updates/same-site/incompatible-clients\r\n if (strContains(userAgent, \"UCBrowser/12\") || strContains(userAgent, \"UCBrowser/11\")) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=CookieMgr.js.map","import { getWindow } from './dom/getWindow';\n\n/**\n * Fetches an item from session storage without throwing an exception\n * @param key The key of the item to fetch from session storage\n */\nexport function getItem(key: string): string | null {\n let result = null;\n try {\n const win = getWindow();\n result = win ? win.sessionStorage.getItem(key) : null;\n } catch (e) {\n /* Eat the exception */\n }\n return result;\n}\n\n/**\n * Inserts an item into session storage without throwing an exception\n * @param key The key of the item to add to session storage\n * @param data The data to put into session storage\n */\nexport function setItem(key: string, data: string): void {\n try {\n getWindow()?.sessionStorage.setItem(key, data);\n } catch (e) {\n /* Eat the exception */\n }\n}\n","const toObjectMap = (...items: (string[] | Record)[]) => {\n const result: Record = {};\n\n for (const item of items) {\n const keys = Array.isArray(item) ? item : Object.keys(item);\n\n for (const key of keys) {\n result[key] = 1;\n }\n }\n\n return result;\n};\n\n/**\n * An array of events that are allowed on every html element type.\n *\n * @public\n */\nexport const baseElementEvents = toObjectMap([\n 'onCopy',\n 'onCut',\n 'onPaste',\n 'onCompositionEnd',\n 'onCompositionStart',\n 'onCompositionUpdate',\n 'onFocus',\n 'onFocusCapture',\n 'onBlur',\n 'onBlurCapture',\n 'onChange',\n 'onInput',\n 'onSubmit',\n 'onLoad',\n 'onError',\n 'onKeyDown',\n 'onKeyDownCapture',\n 'onKeyPress',\n 'onKeyUp',\n 'onAbort',\n 'onCanPlay',\n 'onCanPlayThrough',\n 'onDurationChange',\n 'onEmptied',\n 'onEncrypted',\n 'onEnded',\n 'onLoadedData',\n 'onLoadedMetadata',\n 'onLoadStart',\n 'onPause',\n 'onPlay',\n 'onPlaying',\n 'onProgress',\n 'onRateChange',\n 'onSeeked',\n 'onSeeking',\n 'onStalled',\n 'onSuspend',\n 'onTimeUpdate',\n 'onVolumeChange',\n 'onWaiting',\n 'onClick',\n 'onClickCapture',\n 'onContextMenu',\n 'onDoubleClick',\n 'onDrag',\n 'onDragEnd',\n 'onDragEnter',\n 'onDragExit',\n 'onDragLeave',\n 'onDragOver',\n 'onDragStart',\n 'onDrop',\n 'onMouseDown',\n 'onMouseDownCapture',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOut',\n 'onMouseOver',\n 'onMouseUp',\n 'onMouseUpCapture',\n 'onSelect',\n 'onTouchCancel',\n 'onTouchEnd',\n 'onTouchMove',\n 'onTouchStart',\n 'onScroll',\n 'onWheel',\n 'onPointerCancel',\n 'onPointerDown',\n 'onPointerEnter',\n 'onPointerLeave',\n 'onPointerMove',\n 'onPointerOut',\n 'onPointerOver',\n 'onPointerUp',\n 'onGotPointerCapture',\n 'onLostPointerCapture',\n]);\n\n/**\n * An array of element attributes which are allowed on every html element type.\n *\n * @public\n */\nexport const baseElementProperties = toObjectMap([\n 'accessKey', // global\n 'children', // global\n 'className', // global\n 'contentEditable', // global\n 'dir', // global\n 'draggable', // global\n 'hidden', // global\n 'htmlFor', // global\n 'id', // global\n 'lang', // global\n 'ref', // global\n 'role', // global\n 'style', // global\n 'tabIndex', // global\n 'title', // global\n 'translate', // global\n 'spellCheck', // global\n 'name', // global\n]);\n\n/**\n * An array of HTML element properties and events.\n *\n * @public\n */\nexport const htmlElementProperties = toObjectMap(baseElementProperties, baseElementEvents);\n\n/**\n * An array of LABEL tag properties and events.\n *\n * @public\n */\nexport const labelProperties = toObjectMap(htmlElementProperties, [\n 'form', // button, fieldset, input, label, meter, object, output, select, textarea\n]);\n\n/**\n * An array of AUDIO tag properties and events.\n\n * @public\n */\nexport const audioProperties = toObjectMap(htmlElementProperties, [\n 'height', // canvas, embed, iframe, img, input, object, video\n 'loop', // audio, video\n 'muted', // audio, video\n 'preload', // audio, video\n 'src', // audio, embed, iframe, img, input, script, source, track, video\n 'width', // canvas, embed, iframe, img, input, object, video\n]);\n\n/**\n * An array of VIDEO tag properties and events.\n *\n * @public\n */\nexport const videoProperties = toObjectMap(audioProperties, [\n 'poster', // video\n]);\n\n/**\n * An array of OL tag properties and events.\n *\n * @public\n */\nexport const olProperties = toObjectMap(htmlElementProperties, [\n 'start', // ol\n]);\n\n/**\n * An array of LI tag properties and events.\n *\n * @public\n */\nexport const liProperties = toObjectMap(htmlElementProperties, [\n 'value', // button, input, li, option, meter, progress, param\n]);\n\n/**\n * An array of A tag properties and events.\n *\n * @public\n */\nexport const anchorProperties = toObjectMap(htmlElementProperties, [\n 'download', // a, area\n 'href', // a, area, base, link\n 'hrefLang', // a, area, link\n 'media', // a, area, link, source, style\n 'rel', // a, area, link\n 'target', // a, area, base, form\n 'type', // a, button, input, link, menu, object, script, source, style\n]);\n\n/**\n * An array of BUTTON tag properties and events.\n *\n * @public\n */\nexport const buttonProperties = toObjectMap(htmlElementProperties, [\n 'autoFocus', // button, input, select, textarea\n 'disabled', // button, fieldset, input, optgroup, option, select, textarea\n 'form', // button, fieldset, input, label, meter, object, output, select, textarea\n 'formAction', // input, button\n 'formEncType', // input, button\n 'formMethod', // input, button\n 'formNoValidate', // input, button\n 'formTarget', // input, button\n 'type', // a, button, input, link, menu, object, script, source, style\n 'value', // button, input, li, option, meter, progress, param,\n]);\n\n/**\n * An array of INPUT tag properties and events.\n *\n * @public\n */\nexport const inputProperties = toObjectMap(buttonProperties, [\n 'accept', // input\n 'alt', // area, img, input\n 'autoCapitalize', // input, textarea\n 'autoComplete', // form, input\n 'checked', // input\n 'dirname', // input, textarea\n 'form', // button, fieldset, input, label, meter, object, output, select, textarea\n 'height', // canvas, embed, iframe, img, input, object, video\n 'inputMode', // input\n 'list', // input\n 'max', // input, meter\n 'maxLength', // input, textarea\n 'min', // input, meter\n 'minLength', // input, textarea\n 'multiple', // input, select\n 'pattern', // input\n 'placeholder', // input, textarea\n 'readOnly', // input, textarea\n 'required', // input, select, textarea\n 'src', // audio, embed, iframe, img, input, script, source, track, video\n 'step', // input\n 'size', // input\n 'type', // a, button, input, link, menu, object, script, source, style\n 'value', // button, input, li, option, meter, progress, param\n 'width', // canvas, embed, iframe, img, input, object, video\n]);\n\n/**\n * An array of TEXTAREA tag properties and events.\n *\n * @public\n */\nexport const textAreaProperties = toObjectMap(buttonProperties, [\n 'autoCapitalize', // input, textarea\n 'cols', // textarea\n 'dirname', // input, textarea\n 'form', // button, fieldset, input, label, meter, object, output, select, textarea\n 'maxLength', // input, textarea\n 'minLength', // input, textarea\n 'placeholder', // input, textarea\n 'readOnly', // input, textarea\n 'required', // input, select, textarea\n 'rows', // textarea\n 'wrap', // textarea\n]);\n\n/**\n * An array of SELECT tag properties and events.\n *\n * @public\n */\nexport const selectProperties = toObjectMap(buttonProperties, [\n 'form', // button, fieldset, input, label, meter, object, output, select, textarea\n 'multiple', // input, select\n 'required', // input, select, textarea\n]);\n\nexport const optionProperties = toObjectMap(htmlElementProperties, [\n 'selected', // option\n 'value', // button, input, li, option, meter, progress, param\n]);\n\n/**\n * An array of TABLE tag properties and events.\n *\n * @public\n */\nexport const tableProperties = toObjectMap(htmlElementProperties, [\n 'cellPadding', // table\n 'cellSpacing', // table\n]);\n\n/**\n * An array of TR tag properties and events.\n *\n * @public\n */\nexport const trProperties = htmlElementProperties;\n\n/**\n * An array of TH tag properties and events.\n *\n * @public\n */\nexport const thProperties = toObjectMap(htmlElementProperties, [\n 'rowSpan', // td, th\n 'scope', // th\n]);\n\n/**\n * An array of TD tag properties and events.\n *\n * @public\n */\nexport const tdProperties = toObjectMap(htmlElementProperties, [\n 'colSpan', // td\n 'headers', // td\n 'rowSpan', // td, th\n 'scope', // th\n]);\n\nexport const colGroupProperties = toObjectMap(htmlElementProperties, [\n 'span', // col, colgroup\n]);\n\nexport const colProperties = toObjectMap(htmlElementProperties, [\n 'span', // col, colgroup\n]);\n\n/**\n * An array of FORM tag properties and events.\n *\n * @public\n */\nexport const formProperties = toObjectMap(htmlElementProperties, [\n 'acceptCharset', // form\n 'action', // form\n 'encType', // form\n 'encType', // form\n 'method', // form\n 'noValidate', // form\n 'target', // form\n]);\n\n/**\n * An array of IFRAME tag properties and events.\n *\n * @public\n */\nexport const iframeProperties = toObjectMap(htmlElementProperties, [\n 'allow', // iframe\n 'allowFullScreen', // iframe\n 'allowPaymentRequest', // iframe\n 'allowTransparency', // iframe\n 'csp', // iframe\n 'height', // canvas, embed, iframe, img, input, object, video\n 'importance', // iframe\n 'referrerPolicy', // iframe\n 'sandbox', // iframe\n 'src', // audio, embed, iframe, img, input, script, source, track, video\n 'srcDoc', // iframe\n 'width', // canvas, embed, iframe, img, input, object, video,\n]);\n\n/**\n * An array of IMAGE tag properties and events.\n *\n * @public\n */\nexport const imgProperties = toObjectMap(htmlElementProperties, [\n 'alt', // area, img, input\n 'crossOrigin', // img\n 'height', // canvas, embed, iframe, img, input, object, video\n 'src', // audio, embed, iframe, img, input, script, source, track, video\n 'srcSet', // img, source\n 'useMap', // img, object,\n 'width', // canvas, embed, iframe, img, input, object, video\n]);\n\n/**\n * @deprecated Use imgProperties for img elements.\n */\nexport const imageProperties = imgProperties;\n\n/**\n * An array of DIV tag properties and events.\n *\n * @public\n */\nexport const divProperties = htmlElementProperties;\n\n/**\n * Gets native supported props for an html element provided the allowance set. Use one of the property\n * sets defined (divProperties, buttonPropertes, etc) to filter out supported properties from a given\n * props set. Note that all data- and aria- prefixed attributes will be allowed.\n * NOTE: getNativeProps should always be applied first when adding props to a react component. The\n * non-native props should be applied second. This will prevent getNativeProps from overriding your custom props.\n * For example, if props passed to getNativeProps has an onClick function and getNativeProps is added to\n * the component after an onClick function is added, then the getNativeProps onClick will override it.\n *\n * @public\n * @param props - The unfiltered input props\n * @param allowedPropsNames - The array or record of allowed prop names.\n * @returns The filtered props\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getNativeProps>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n props: Record,\n allowedPropNames: string[] | Record,\n excludedPropNames?: string[],\n): T {\n // It'd be great to properly type this while allowing 'aria-` and 'data-' attributes like TypeScript does for\n // JSX attributes, but that ability is hardcoded into the TS compiler with no analog in TypeScript typings.\n // Then we'd be able to enforce props extends native props (including aria- and data- attributes), and then\n // return native props.\n // We should be able to do this once this PR is merged: https://github.com/microsoft/TypeScript/pull/26797\n\n const isArray = Array.isArray(allowedPropNames);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const result: Record = {};\n const keys = Object.keys(props);\n\n for (const key of keys) {\n const isNativeProp =\n (!isArray && (allowedPropNames as Record)[key]) ||\n (isArray && (allowedPropNames as string[]).indexOf(key) >= 0) ||\n key.indexOf('data-') === 0 ||\n key.indexOf('aria-') === 0;\n\n if (isNativeProp && (!excludedPropNames || excludedPropNames?.indexOf(key) === -1)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n result[key] = props![key] as any;\n }\n }\n\n return result as T;\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { AnalyticsPlugin } from \"@microsoft/applicationinsights-analytics-js\";\r\nimport { Sender } from \"@microsoft/applicationinsights-channel-js\";\r\nimport { AnalyticsPluginIdentifier, BreezeChannelIdentifier, ConfigurationManager, ConnectionStringParser, ContextTagKeys, CorrelationIdHelper, CtxTagKeys, DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, Data, DataSanitizer, DateTimeUtils, DisabledPropertyName, DistributedTracingModes, Envelope, Event, Exception, Extensions, HttpMethod, Metric, PageView, PageViewPerformance, ProcessLegacy, PropertiesPluginIdentifier, RemoteDependencyData, RequestHeaders, SampleRate, SeverityLevel, TelemetryItemCreator, Trace, UrlHelper, Util, parseConnectionString } from \"@microsoft/applicationinsights-common\";\r\nimport { AppInsightsCore, _throwInternal, addPageHideEventListener, addPageUnloadEventListener, arrForEach, arrIndexOf, createUniqueNamespace, doPerf, hasDocument, hasWindow, isArray, isFunction, isNullOrUndefined, isReactNative, isString, mergeEvtNamespace, objForEachKey, proxyAssign, proxyFunctions, removePageHideEventListener, removePageUnloadEventListener, throwError } from \"@microsoft/applicationinsights-core-js\";\r\nimport { AjaxPlugin as DependenciesPlugin } from \"@microsoft/applicationinsights-dependencies-js\";\r\nimport { PropertiesPlugin } from \"@microsoft/applicationinsights-properties-js\";\r\nimport { STR_ADD_TELEMETRY_INITIALIZER, STR_CLEAR_AUTHENTICATED_USER_CONTEXT, STR_EVT_NAMESPACE, STR_FLUSH, STR_GET_COOKIE_MGR, STR_GET_PLUGIN, STR_POLL_INTERNAL_LOGS, STR_SET_AUTHENTICATED_USER_CONTEXT, STR_SNIPPET, STR_START_TRACK_EVENT, STR_START_TRACK_PAGE, STR_STOP_TRACK_EVENT, STR_STOP_TRACK_PAGE, STR_TRACK_DEPENDENCY_DATA, STR_TRACK_EVENT, STR_TRACK_EXCEPTION, STR_TRACK_METRIC, STR_TRACK_PAGE_VIEW, STR_TRACK_TRACE } from \"./InternalConstants\";\r\nimport { _DYN_ADD_HOUSEKEEPING_BEF20, _DYN_APP_INSIGHTS, _DYN_CONFIG, _DYN_CONNECTION_STRING, _DYN_CONTEXT, _DYN_DIAGNOSTIC_LOG_INTER4, _DYN_DISABLE_FLUSH_ON_BEF11, _DYN_DISABLE_FLUSH_ON_UNL12, _DYN_DISABLE_IKEY_DEPRECA18, _DYN_ENDPOINT_URL, _DYN_GET_TRANSMISSION_CON19, _DYN_INDEX_OF, _DYN_INSTRUMENTATION_KEY, _DYN_LOAD_APP_INSIGHTS, _DYN_ONUNLOAD_FLUSH, _DYN_PUSH, _DYN_QUEUE, _DYN_UPDATE_SNIPPET_DEFIN0, _DYN_VERSION } from \"./__DynamicConstants\";\r\nvar _internalSdkSrc;\r\n// This is an exclude list of properties that should not be updated during initialization\r\n// They include a combination of private and internal property names\r\nvar _ignoreUpdateSnippetProperties = [\r\n STR_SNIPPET, \"dependencies\", \"properties\", \"_snippetVersion\", \"appInsightsNew\", \"getSKUDefaults\"\r\n];\r\n// Re-exposing the Common classes as Telemetry, the list was taken by reviewing the generated code for the build while using\r\n// the previous configuration :-\r\n// import * as Common from \"@microsoft/applicationinsights-common\"\r\n// export const Telemetry = Common;\r\nvar fieldType = {\r\n Default: 0 /* FieldType.Default */,\r\n Required: 1 /* FieldType.Required */,\r\n Array: 2 /* FieldType.Array */,\r\n Hidden: 4 /* FieldType.Hidden */\r\n};\r\n/**\r\n * Telemetry type classes, e.g. PageView, Exception, etc\r\n */\r\nexport var Telemetry = {\r\n __proto__: null,\r\n PropertiesPluginIdentifier: PropertiesPluginIdentifier,\r\n BreezeChannelIdentifier: BreezeChannelIdentifier,\r\n AnalyticsPluginIdentifier: AnalyticsPluginIdentifier,\r\n Util: Util,\r\n CorrelationIdHelper: CorrelationIdHelper,\r\n UrlHelper: UrlHelper,\r\n DateTimeUtils: DateTimeUtils,\r\n ConnectionStringParser: ConnectionStringParser,\r\n FieldType: fieldType,\r\n RequestHeaders: RequestHeaders,\r\n DisabledPropertyName: DisabledPropertyName,\r\n ProcessLegacy: ProcessLegacy,\r\n SampleRate: SampleRate,\r\n HttpMethod: HttpMethod,\r\n DEFAULT_BREEZE_ENDPOINT: DEFAULT_BREEZE_ENDPOINT,\r\n Envelope: Envelope,\r\n Event: Event,\r\n Exception: Exception,\r\n Metric: Metric,\r\n PageView: PageView,\r\n RemoteDependencyData: RemoteDependencyData,\r\n Trace: Trace,\r\n PageViewPerformance: PageViewPerformance,\r\n Data: Data,\r\n SeverityLevel: SeverityLevel,\r\n ConfigurationManager: ConfigurationManager,\r\n ContextTagKeys: ContextTagKeys,\r\n DataSanitizer: DataSanitizer,\r\n TelemetryItemCreator: TelemetryItemCreator,\r\n CtxTagKeys: CtxTagKeys,\r\n Extensions: Extensions,\r\n DistributedTracingModes: DistributedTracingModes\r\n};\r\n/**\r\n * Application Insights API\r\n * @class Initialization\r\n * @implements {IApplicationInsights}\r\n */\r\nvar Initialization = /** @class */ (function () {\r\n function Initialization(snippet) {\r\n var _this = this;\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var dependencies;\r\n var properties;\r\n var _sender;\r\n var _snippetVersion;\r\n var _evtNamespace;\r\n var _houseKeepingNamespace;\r\n var _core;\r\n dynamicProto(Initialization, this, function (_self) {\r\n _initDefaults();\r\n // initialize the queue and config in case they are undefined\r\n _snippetVersion = \"\" + (snippet.sv || snippet[_DYN_VERSION /* @min:%2eversion */] || \"\");\r\n snippet[_DYN_QUEUE /* @min:%2equeue */] = snippet[_DYN_QUEUE /* @min:%2equeue */] || [];\r\n snippet[_DYN_VERSION /* @min:%2eversion */] = snippet[_DYN_VERSION /* @min:%2eversion */] || 2.0; // Default to new version\r\n var config = snippet[_DYN_CONFIG /* @min:%2econfig */] || {};\r\n if (config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */]) {\r\n var cs = parseConnectionString(config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */]);\r\n var ingest = cs.ingestionendpoint;\r\n config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */] = ingest ? (ingest + DEFAULT_BREEZE_PATH) : config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */]; // only add /v2/track when from connectionstring\r\n config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */] = cs.instrumentationkey || config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n }\r\n _self[_DYN_APP_INSIGHTS /* @min:%2eappInsights */] = new AnalyticsPlugin();\r\n properties = new PropertiesPlugin();\r\n dependencies = new DependenciesPlugin();\r\n _sender = new Sender();\r\n _core = new AppInsightsCore();\r\n _self.core = _core;\r\n var isErrMessageDisabled = isNullOrUndefined(config[_DYN_DISABLE_IKEY_DEPRECA18 /* @min:%2edisableIkeyDeprecationMessage */]) ? true : config[_DYN_DISABLE_IKEY_DEPRECA18 /* @min:%2edisableIkeyDeprecationMessage */];\r\n if (!config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */] && !isErrMessageDisabled) {\r\n _throwInternal(_core.logger, 1 /* eLoggingSeverity.CRITICAL */, 106 /* _eInternalMessageId.InstrumentationKeyDeprecation */, \"Instrumentation key support will end soon, see aka.ms/IkeyMigrate\");\r\n }\r\n _self[STR_SNIPPET /* @min:%2esnippet */] = snippet;\r\n _self[_DYN_CONFIG /* @min:%2econfig */] = config;\r\n _getSKUDefaults();\r\n _self[STR_FLUSH /* @min:%2eflush */] = function (async) {\r\n if (async === void 0) { async = true; }\r\n doPerf(_core, function () { return \"AISKU.flush\"; }, function () {\r\n arrForEach(_core[_DYN_GET_TRANSMISSION_CON19 /* @min:%2egetTransmissionControls */](), function (channels) {\r\n arrForEach(channels, function (channel) {\r\n channel[STR_FLUSH /* @min:%2eflush */](async);\r\n });\r\n });\r\n }, null, async);\r\n };\r\n _self[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */] = function (async) {\r\n if (async === void 0) { async = true; }\r\n arrForEach(_core[_DYN_GET_TRANSMISSION_CON19 /* @min:%2egetTransmissionControls */](), function (channels) {\r\n arrForEach(channels, function (channel) {\r\n if (channel[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */]) {\r\n channel[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */]();\r\n }\r\n else {\r\n channel[STR_FLUSH /* @min:%2eflush */](async);\r\n }\r\n });\r\n });\r\n };\r\n _self[_DYN_LOAD_APP_INSIGHTS /* @min:%2eloadAppInsights */] = function (legacyMode, logger, notificationManager) {\r\n if (legacyMode === void 0) { legacyMode = false; }\r\n function _updateSnippetProperties(snippet) {\r\n if (snippet) {\r\n var snippetVer = \"\";\r\n if (!isNullOrUndefined(_snippetVersion)) {\r\n snippetVer += _snippetVersion;\r\n }\r\n if (legacyMode) {\r\n snippetVer += \".lg\";\r\n }\r\n if (_self[_DYN_CONTEXT /* @min:%2econtext */] && _self[_DYN_CONTEXT /* @min:%2econtext */].internal) {\r\n _self[_DYN_CONTEXT /* @min:%2econtext */].internal.snippetVer = snippetVer || \"-\";\r\n }\r\n // apply updated properties to the global instance (snippet)\r\n objForEachKey(_self, function (field, value) {\r\n if (isString(field) &&\r\n !isFunction(value) &&\r\n field && field[0] !== \"_\" && // Don't copy \"internal\" values\r\n arrIndexOf(_ignoreUpdateSnippetProperties, field) === -1) {\r\n snippet[field] = value;\r\n }\r\n });\r\n }\r\n }\r\n // dont allow additional channels/other extensions for legacy mode; legacy mode is only to allow users to switch with no code changes!\r\n if (legacyMode && _self[_DYN_CONFIG /* @min:%2econfig */].extensions && _self[_DYN_CONFIG /* @min:%2econfig */].extensions.length > 0) {\r\n throwError(\"Extensions not allowed in legacy mode\");\r\n }\r\n doPerf(_self.core, function () { return \"AISKU.loadAppInsights\"; }, function () {\r\n var extensions = [];\r\n extensions[_DYN_PUSH /* @min:%2epush */](_sender);\r\n extensions[_DYN_PUSH /* @min:%2epush */](properties);\r\n extensions[_DYN_PUSH /* @min:%2epush */](dependencies);\r\n extensions[_DYN_PUSH /* @min:%2epush */](_self[_DYN_APP_INSIGHTS /* @min:%2eappInsights */]);\r\n // initialize core\r\n _core.initialize(_self[_DYN_CONFIG /* @min:%2econfig */], extensions, logger, notificationManager);\r\n _self[_DYN_CONTEXT /* @min:%2econtext */] = properties[_DYN_CONTEXT /* @min:%2econtext */];\r\n if (_internalSdkSrc && _self[_DYN_CONTEXT /* @min:%2econtext */]) {\r\n _self[_DYN_CONTEXT /* @min:%2econtext */].internal.sdkSrc = _internalSdkSrc;\r\n }\r\n _updateSnippetProperties(_self[STR_SNIPPET /* @min:%2esnippet */]);\r\n // Empty queue of all api calls logged prior to sdk download\r\n _self.emptyQueue();\r\n _self[STR_POLL_INTERNAL_LOGS /* @min:%2epollInternalLogs */]();\r\n _self[_DYN_ADD_HOUSEKEEPING_BEF20 /* @min:%2eaddHousekeepingBeforeUnload */](_this);\r\n });\r\n return _self;\r\n };\r\n _self[_DYN_UPDATE_SNIPPET_DEFIN0 /* @min:%2eupdateSnippetDefinitions */] = function (snippet) {\r\n // apply full appInsights to the global instance\r\n // Note: This must be called before loadAppInsights is called\r\n proxyAssign(snippet, _self, function (name) {\r\n // Not excluding names prefixed with \"_\" as we need to proxy some functions like _onError\r\n return name && arrIndexOf(_ignoreUpdateSnippetProperties, name) === -1;\r\n });\r\n };\r\n _self.emptyQueue = function () {\r\n // call functions that were queued before the main script was loaded\r\n try {\r\n if (isArray(_self.snippet[_DYN_QUEUE /* @min:%2equeue */])) {\r\n // note: do not check length in the for-loop conditional in case something goes wrong and the stub methods are not overridden.\r\n var length_1 = _self.snippet[_DYN_QUEUE /* @min:%2equeue */].length;\r\n for (var i = 0; i < length_1; i++) {\r\n var call = _self.snippet[_DYN_QUEUE /* @min:%2equeue */][i];\r\n call();\r\n }\r\n _self.snippet[_DYN_QUEUE /* @min:%2equeue */] = undefined;\r\n delete _self.snippet[_DYN_QUEUE /* @min:%2equeue */];\r\n }\r\n }\r\n catch (exception) {\r\n var properties_1 = {};\r\n if (exception && isFunction(exception.toString)) {\r\n properties_1.exception = exception.toString();\r\n }\r\n // need from core\r\n // Microsoft.ApplicationInsights._InternalLogging.throwInternal(\r\n // eLoggingSeverity.WARNING,\r\n // _eInternalMessageId.FailedToSendQueuedTelemetry,\r\n // \"Failed to send queued telemetry\",\r\n // properties);\r\n }\r\n };\r\n _self[_DYN_ADD_HOUSEKEEPING_BEF20 /* @min:%2eaddHousekeepingBeforeUnload */] = function (appInsightsInstance) {\r\n // Add callback to push events when the user navigates away\r\n if (hasWindow() || hasDocument()) {\r\n var performHousekeeping = function () {\r\n // Adds the ability to flush all data before the page unloads.\r\n // Note: This approach tries to push a sync request with all the pending events onbeforeunload.\r\n // Firefox does not respect this.Other browsers DO push out the call with < 100% hit rate.\r\n // Telemetry here will help us analyze how effective this approach is.\r\n // Another approach would be to make this call sync with a acceptable timeout to reduce the\r\n // impact on user experience.\r\n // appInsightsInstance.context._sender.triggerSend();\r\n appInsightsInstance[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */](false);\r\n // Back up the current session to local storage\r\n // This lets us close expired sessions after the cookies themselves expire\r\n if (isFunction(_this.core[STR_GET_PLUGIN /* @min:%2egetPlugin */])) {\r\n var loadedPlugin = _this.core[STR_GET_PLUGIN /* @min:%2egetPlugin */](PropertiesPluginIdentifier);\r\n if (loadedPlugin) {\r\n var propertiesPlugin = loadedPlugin.plugin;\r\n if (propertiesPlugin && propertiesPlugin[_DYN_CONTEXT /* @min:%2econtext */] && propertiesPlugin[_DYN_CONTEXT /* @min:%2econtext */]._sessionManager) {\r\n propertiesPlugin[_DYN_CONTEXT /* @min:%2econtext */]._sessionManager.backup();\r\n }\r\n }\r\n }\r\n };\r\n var added = false;\r\n var excludePageUnloadEvents = appInsightsInstance.appInsights[_DYN_CONFIG /* @min:%2econfig */].disablePageUnloadEvents;\r\n if (!_houseKeepingNamespace) {\r\n _houseKeepingNamespace = mergeEvtNamespace(_evtNamespace, _core[STR_EVT_NAMESPACE /* @min:%2eevtNamespace */] && _core[STR_EVT_NAMESPACE /* @min:%2eevtNamespace */]());\r\n }\r\n if (!appInsightsInstance.appInsights.config[_DYN_DISABLE_FLUSH_ON_BEF11 /* @min:%2edisableFlushOnBeforeUnload */]) {\r\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n // As just hooking the window does not always fire (on chrome) for page navigation's.\r\n if (addPageUnloadEventListener(performHousekeeping, excludePageUnloadEvents, _houseKeepingNamespace)) {\r\n added = true;\r\n }\r\n // We also need to hook the pagehide and visibilitychange events as not all versions of Safari support load/unload events.\r\n if (addPageHideEventListener(performHousekeeping, excludePageUnloadEvents, _houseKeepingNamespace)) {\r\n added = true;\r\n }\r\n // A reactNative app may not have a window and therefore the beforeunload/pagehide events -- so don't\r\n // log the failure in this case\r\n if (!added && !isReactNative()) {\r\n _throwInternal(appInsightsInstance[_DYN_APP_INSIGHTS /* @min:%2eappInsights */].core.logger, 1 /* eLoggingSeverity.CRITICAL */, 19 /* _eInternalMessageId.FailedToAddHandlerForOnBeforeUnload */, \"Could not add handler for beforeunload and pagehide\");\r\n }\r\n }\r\n if (!added && !appInsightsInstance.appInsights.config[_DYN_DISABLE_FLUSH_ON_UNL12 /* @min:%2edisableFlushOnUnload */]) {\r\n // If we didn't add the normal set then attempt to add the pagehide and visibilitychange only\r\n addPageHideEventListener(performHousekeeping, excludePageUnloadEvents, _houseKeepingNamespace);\r\n }\r\n }\r\n };\r\n _self.getSender = function () {\r\n return _sender;\r\n };\r\n _self.unload = function (isAsync, unloadComplete, cbTimeout) {\r\n _self[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */](isAsync);\r\n // Remove any registered event handlers\r\n if (_houseKeepingNamespace) {\r\n removePageUnloadEventListener(null, _houseKeepingNamespace);\r\n removePageHideEventListener(null, _houseKeepingNamespace);\r\n }\r\n _core.unload && _core.unload(isAsync, unloadComplete, cbTimeout);\r\n };\r\n proxyFunctions(_self, _self[_DYN_APP_INSIGHTS /* @min:%2eappInsights */], [\r\n STR_GET_COOKIE_MGR,\r\n STR_TRACK_EVENT,\r\n STR_TRACK_PAGE_VIEW,\r\n \"trackPageViewPerformance\",\r\n STR_TRACK_EXCEPTION,\r\n \"_onerror\",\r\n STR_TRACK_TRACE,\r\n STR_TRACK_METRIC,\r\n STR_START_TRACK_PAGE,\r\n STR_STOP_TRACK_PAGE,\r\n STR_START_TRACK_EVENT,\r\n STR_STOP_TRACK_EVENT\r\n ]);\r\n proxyFunctions(_self, _getCurrentDependencies, [\r\n STR_TRACK_DEPENDENCY_DATA,\r\n \"addDependencyListener\"\r\n ]);\r\n proxyFunctions(_self, _core, [\r\n STR_ADD_TELEMETRY_INITIALIZER,\r\n STR_POLL_INTERNAL_LOGS,\r\n \"stopPollingInternalLogs\",\r\n STR_GET_PLUGIN,\r\n \"addPlugin\",\r\n STR_EVT_NAMESPACE,\r\n \"addUnloadCb\",\r\n \"getTraceCtx\"\r\n ]);\r\n proxyFunctions(_self, function () {\r\n var context = properties[_DYN_CONTEXT /* @min:%2econtext */];\r\n return context ? context.user : null;\r\n }, [\r\n STR_SET_AUTHENTICATED_USER_CONTEXT,\r\n STR_CLEAR_AUTHENTICATED_USER_CONTEXT\r\n ]);\r\n function _getSKUDefaults() {\r\n _self.config[_DYN_DIAGNOSTIC_LOG_INTER4 /* @min:%2ediagnosticLogInterval */] =\r\n _self.config[_DYN_DIAGNOSTIC_LOG_INTER4 /* @min:%2ediagnosticLogInterval */] && _self[_DYN_CONFIG /* @min:%2econfig */][_DYN_DIAGNOSTIC_LOG_INTER4 /* @min:%2ediagnosticLogInterval */] > 0 ? _self[_DYN_CONFIG /* @min:%2econfig */][_DYN_DIAGNOSTIC_LOG_INTER4 /* @min:%2ediagnosticLogInterval */] : 10000;\r\n }\r\n // Using a function to support the dynamic adding / removal of plugins, so this will always return the current value\r\n function _getCurrentDependencies() {\r\n return dependencies;\r\n }\r\n function _initDefaults() {\r\n _evtNamespace = createUniqueNamespace(\"AISKU\");\r\n _houseKeepingNamespace = null;\r\n dependencies = null;\r\n properties = null;\r\n _sender = null;\r\n _snippetVersion = null;\r\n }\r\n });\r\n }\r\n // Analytics Plugin\r\n /**\r\n * Get the current cookie manager for this instance\r\n */\r\n Initialization.prototype.getCookieMgr = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Log a user action or other occurrence.\r\n * @param {IEventTelemetry} event\r\n * @param {ICustomProperties} [customProperties]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackEvent = function (event, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Logs that a page, or similar container was displayed to the user.\r\n * @param {IPageViewTelemetry} pageView\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackPageView = function (pageView) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Log a bag of performance information via the customProperties field.\r\n * @param {IPageViewPerformanceTelemetry} pageViewPerformance\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackPageViewPerformance = function (pageViewPerformance) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Log an exception that you have caught.\r\n * @param {IExceptionTelemetry} exception\r\n * @param {{[key: string]: any}} customProperties Additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackException = function (exception, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Manually send uncaught exception telemetry. This method is automatically triggered\r\n * on a window.onerror event.\r\n * @param {IAutoExceptionTelemetry} exception\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype._onerror = function (exception) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Log a diagnostic scenario such entering or leaving a function.\r\n * @param {ITraceTelemetry} trace\r\n * @param {ICustomProperties} [customProperties]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackTrace = function (trace, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Log a numeric value that is not associated with a specific event. Typically used\r\n * to send regular reports of performance indicators.\r\n *\r\n * To send a single measurement, just use the `name` and `average` fields\r\n * of {@link IMetricTelemetry}.\r\n *\r\n * If you take measurements frequently, you can reduce the telemetry bandwidth by\r\n * aggregating multiple measurements and sending the resulting average and modifying\r\n * the `sampleCount` field of {@link IMetricTelemetry}.\r\n * @param {IMetricTelemetry} metric input object argument. Only `name` and `average` are mandatory.\r\n * @param {ICustomProperties} [customProperties]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackMetric = function (metric, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Starts the timer for tracking a page load time. Use this instead of `trackPageView` if you want to control when the page view timer starts and stops,\r\n * but don't want to calculate the duration yourself. This method doesn't send any telemetry. Call `stopTrackPage` to log the end of the page view\r\n * and send the event.\r\n * @param name A string that idenfities this item, unique within this HTML document. Defaults to the document title.\r\n */\r\n Initialization.prototype.startTrackPage = function (name) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Stops the timer that was started by calling `startTrackPage` and sends the pageview load time telemetry with the specified properties and measurements.\r\n * The duration of the page view will be the time between calling `startTrackPage` and `stopTrackPage`.\r\n * @param name The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param url String - a relative or absolute URL that identifies the page or other item. Defaults to the window location.\r\n * @param properties map[string, string] - additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this page, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n Initialization.prototype.stopTrackPage = function (name, url, customProperties, measurements) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n Initialization.prototype.startTrackEvent = function (name) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Log an extended event that you started timing with `startTrackEvent`.\r\n * @param name The string you used to identify this event in `startTrackEvent`.\r\n * @param properties map[string, string] - additional data used to filter events and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this event, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n Initialization.prototype.stopTrackEvent = function (name, properties, measurements) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n Initialization.prototype.addTelemetryInitializer = function (telemetryInitializer) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n // Properties Plugin\r\n /**\r\n * Set the authenticated user id and the account id. Used for identifying a specific signed-in user. Parameters must not contain whitespace or ,;=|\r\n *\r\n * The method will only set the `authenticatedUserId` and `accountId` in the current page view. To set them for the whole session, you should set `storeInCookie = true`\r\n * @param {string} authenticatedUserId\r\n * @param {string} [accountId]\r\n * @param {boolean} [storeInCookie=false]\r\n */\r\n Initialization.prototype.setAuthenticatedUserContext = function (authenticatedUserId, accountId, storeInCookie) {\r\n if (storeInCookie === void 0) { storeInCookie = false; }\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Clears the authenticated user id and account id. The associated cookie is cleared, if present.\r\n */\r\n Initialization.prototype.clearAuthenticatedUserContext = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n // Dependencies Plugin\r\n /**\r\n * Log a dependency call (e.g. ajax)\r\n * @param {IDependencyTelemetry} dependency\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackDependencyData = function (dependency) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n // Misc\r\n /**\r\n * Manually trigger an immediate send of all telemetry still in the buffer.\r\n * @param {boolean} [async=true]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.flush = function (async) {\r\n if (async === void 0) { async = true; }\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Manually trigger an immediate send of all telemetry still in the buffer using beacon Sender.\r\n * Fall back to xhr sender if beacon is not supported.\r\n * @param {boolean} [async=true]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.onunloadFlush = function (async) {\r\n if (async === void 0) { async = true; }\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Initialize this instance of ApplicationInsights\r\n * @returns {IApplicationInsights}\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.loadAppInsights = function (legacyMode, logger, notificationManager) {\r\n if (legacyMode === void 0) { legacyMode = false; }\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Overwrite the lazy loaded fields of global window snippet to contain the\r\n * actual initialized API methods\r\n * @param {Snippet} snippet\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.updateSnippetDefinitions = function (snippet) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Call any functions that were queued before the main script was loaded\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.emptyQueue = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n Initialization.prototype.pollInternalLogs = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n Initialization.prototype.stopPollingInternalLogs = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n Initialization.prototype.addHousekeepingBeforeUnload = function (appInsightsInstance) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n Initialization.prototype.getSender = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Unload and Tear down the SDK and any initialized plugins, after calling this the SDK will be considered\r\n * to be un-initialized and non-operational, re-initializing the SDK should only be attempted if the previous\r\n * unload call return `true` stating that all plugins reported that they also unloaded, the recommended\r\n * approach is to create a new instance and initialize that instance.\r\n * This is due to possible unexpected side effects caused by plugins not supporting unload / teardown, unable\r\n * to successfully remove any global references or they may just be completing the unload process asynchronously.\r\n */\r\n Initialization.prototype.unload = function (isAsync, unloadComplete) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n Initialization.prototype.getPlugin = function (pluginIdentifier) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n Initialization.prototype.addPlugin = function (plugin, replaceExisting, doAsync, addCb) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Returns the unique event namespace that should be used\r\n */\r\n Initialization.prototype.evtNamespace = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Add an unload handler that will be called when the SDK is being unloaded\r\n * @param handler - the handler\r\n */\r\n Initialization.prototype.addUnloadCb = function (handler) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Add an ajax listener which is called just prior to the request being sent and before the correlation headers are added, to allow you\r\n * to access the headers and modify the values used to generate the distributed tracing correlation headers. (added in v2.8.4)\r\n * @param dependencyListener - The Telemetry Initializer function\r\n * @returns - A IDependencyListenerHandler to enable the initializer to be removed\r\n */\r\n Initialization.prototype.addDependencyListener = function (dependencyListener) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Gets the current distributed trace context for this instance if available\r\n */\r\n Initialization.prototype.getTraceCtx = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n return Initialization;\r\n}());\r\nexport { Initialization };\r\n// tslint:disable-next-line\r\n(function () {\r\n var sdkSrc = null;\r\n var isModule = false;\r\n var cdns = [\r\n \"://js.monitor.azure.com/\",\r\n \"://az416426.vo.msecnd.net/\"\r\n ];\r\n try {\r\n // Try and determine whether the sdk is being loaded from the CDN\r\n // currentScript is only valid during initial processing\r\n var scrpt = (document || {}).currentScript;\r\n if (scrpt) {\r\n sdkSrc = scrpt.src;\r\n // } else {\r\n // // We need to update to at least typescript 2.9 for this to work :-(\r\n // // Leaving as a stub for now so after we upgrade this breadcrumb is available\r\n // let meta = import.meta;\r\n // sdkSrc = (meta || {}).url;\r\n // isModule = true;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n if (sdkSrc) {\r\n try {\r\n var url = sdkSrc.toLowerCase();\r\n if (url) {\r\n var src = \"\";\r\n for (var idx = 0; idx < cdns.length; idx++) {\r\n if (url[_DYN_INDEX_OF /* @min:%2eindexOf */](cdns[idx]) !== -1) {\r\n src = \"cdn\" + (idx + 1);\r\n if (url[_DYN_INDEX_OF /* @min:%2eindexOf */](\"/scripts/\") === -1) {\r\n if (url[_DYN_INDEX_OF /* @min:%2eindexOf */](\"/next/\") !== -1) {\r\n src += \"-next\";\r\n }\r\n else if (url[_DYN_INDEX_OF /* @min:%2eindexOf */](\"/beta/\") !== -1) {\r\n src += \"-beta\";\r\n }\r\n }\r\n _internalSdkSrc = src + (isModule ? \".mod\" : \"\");\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n})();\r\n//# sourceMappingURL=Initialization.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { createValueMap } from \"@microsoft/applicationinsights-core-js\";\r\nexport var RequestHeaders = createValueMap({\r\n requestContextHeader: [0 /* eRequestHeaders.requestContextHeader */, \"Request-Context\"],\r\n requestContextTargetKey: [1 /* eRequestHeaders.requestContextTargetKey */, \"appId\"],\r\n requestContextAppIdFormat: [2 /* eRequestHeaders.requestContextAppIdFormat */, \"appId=cid-v1:\"],\r\n requestIdHeader: [3 /* eRequestHeaders.requestIdHeader */, \"Request-Id\"],\r\n traceParentHeader: [4 /* eRequestHeaders.traceParentHeader */, \"traceparent\"],\r\n traceStateHeader: [5 /* eRequestHeaders.traceStateHeader */, \"tracestate\"],\r\n sdkContextHeader: [6 /* eRequestHeaders.sdkContextHeader */, \"Sdk-Context\"],\r\n sdkContextHeaderAppIdRequest: [7 /* eRequestHeaders.sdkContextHeaderAppIdRequest */, \"appId\"],\r\n requestContextHeaderLowerCase: [8 /* eRequestHeaders.requestContextHeaderLowerCase */, \"request-context\"]\r\n});\r\n//# sourceMappingURL=RequestResponseHeaders.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { arrReduce, objKeys } from \"@microsoft/applicationinsights-core-js\";\r\nimport { DEFAULT_BREEZE_ENDPOINT } from \"./Constants\";\r\nimport { _DYN_INGESTIONENDPOINT, _DYN_LENGTH, _DYN_SPLIT, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar _FIELDS_SEPARATOR = \";\";\r\nvar _FIELD_KEY_VALUE_SEPARATOR = \"=\";\r\nexport function parseConnectionString(connectionString) {\r\n if (!connectionString) {\r\n return {};\r\n }\r\n var kvPairs = connectionString[_DYN_SPLIT /* @min:%2esplit */](_FIELDS_SEPARATOR);\r\n var result = arrReduce(kvPairs, function (fields, kv) {\r\n var kvParts = kv[_DYN_SPLIT /* @min:%2esplit */](_FIELD_KEY_VALUE_SEPARATOR);\r\n if (kvParts[_DYN_LENGTH /* @min:%2elength */] === 2) { // only save fields with valid formats\r\n var key = kvParts[0][_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n var value = kvParts[1];\r\n fields[key] = value;\r\n }\r\n return fields;\r\n }, {});\r\n if (objKeys(result)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // this is a valid connection string, so parse the results\r\n if (result.endpointsuffix) {\r\n // use endpoint suffix where overrides are not provided\r\n var locationPrefix = result.location ? result.location + \".\" : \"\";\r\n result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] = result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] || (\"https://\" + locationPrefix + \"dc.\" + result.endpointsuffix);\r\n }\r\n // apply the default endpoints\r\n result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] = result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] || DEFAULT_BREEZE_ENDPOINT;\r\n }\r\n return result;\r\n}\r\nexport var ConnectionStringParser = {\r\n parse: parseConnectionString\r\n};\r\n//# sourceMappingURL=ConnectionStringParser.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\nimport { createClassFromInterface } from \"@microsoft/applicationinsights-core-js\";\r\nfunction _aiNameFunc(baseName) {\r\n var aiName = \"ai.\" + baseName + \".\";\r\n return function (name) {\r\n return aiName + name;\r\n };\r\n}\r\nvar _aiApplication = _aiNameFunc(\"application\");\r\nvar _aiDevice = _aiNameFunc(\"device\");\r\nvar _aiLocation = _aiNameFunc(\"location\");\r\nvar _aiOperation = _aiNameFunc(\"operation\");\r\nvar _aiSession = _aiNameFunc(\"session\");\r\nvar _aiUser = _aiNameFunc(\"user\");\r\nvar _aiCloud = _aiNameFunc(\"cloud\");\r\nvar _aiInternal = _aiNameFunc(\"internal\");\r\nvar ContextTagKeys = /** @class */ (function (_super) {\r\n __extends(ContextTagKeys, _super);\r\n function ContextTagKeys() {\r\n return _super.call(this) || this;\r\n }\r\n return ContextTagKeys;\r\n}(createClassFromInterface({\r\n applicationVersion: _aiApplication(\"ver\"),\r\n applicationBuild: _aiApplication(\"build\"),\r\n applicationTypeId: _aiApplication(\"typeId\"),\r\n applicationId: _aiApplication(\"applicationId\"),\r\n applicationLayer: _aiApplication(\"layer\"),\r\n deviceId: _aiDevice(\"id\"),\r\n deviceIp: _aiDevice(\"ip\"),\r\n deviceLanguage: _aiDevice(\"language\"),\r\n deviceLocale: _aiDevice(\"locale\"),\r\n deviceModel: _aiDevice(\"model\"),\r\n deviceFriendlyName: _aiDevice(\"friendlyName\"),\r\n deviceNetwork: _aiDevice(\"network\"),\r\n deviceNetworkName: _aiDevice(\"networkName\"),\r\n deviceOEMName: _aiDevice(\"oemName\"),\r\n deviceOS: _aiDevice(\"os\"),\r\n deviceOSVersion: _aiDevice(\"osVersion\"),\r\n deviceRoleInstance: _aiDevice(\"roleInstance\"),\r\n deviceRoleName: _aiDevice(\"roleName\"),\r\n deviceScreenResolution: _aiDevice(\"screenResolution\"),\r\n deviceType: _aiDevice(\"type\"),\r\n deviceMachineName: _aiDevice(\"machineName\"),\r\n deviceVMName: _aiDevice(\"vmName\"),\r\n deviceBrowser: _aiDevice(\"browser\"),\r\n deviceBrowserVersion: _aiDevice(\"browserVersion\"),\r\n locationIp: _aiLocation(\"ip\"),\r\n locationCountry: _aiLocation(\"country\"),\r\n locationProvince: _aiLocation(\"province\"),\r\n locationCity: _aiLocation(\"city\"),\r\n operationId: _aiOperation(\"id\"),\r\n operationName: _aiOperation(\"name\"),\r\n operationParentId: _aiOperation(\"parentId\"),\r\n operationRootId: _aiOperation(\"rootId\"),\r\n operationSyntheticSource: _aiOperation(\"syntheticSource\"),\r\n operationCorrelationVector: _aiOperation(\"correlationVector\"),\r\n sessionId: _aiSession(\"id\"),\r\n sessionIsFirst: _aiSession(\"isFirst\"),\r\n sessionIsNew: _aiSession(\"isNew\"),\r\n userAccountAcquisitionDate: _aiUser(\"accountAcquisitionDate\"),\r\n userAccountId: _aiUser(\"accountId\"),\r\n userAgent: _aiUser(\"userAgent\"),\r\n userId: _aiUser(\"id\"),\r\n userStoreRegion: _aiUser(\"storeRegion\"),\r\n userAuthUserId: _aiUser(\"authUserId\"),\r\n userAnonymousUserAcquisitionDate: _aiUser(\"anonUserAcquisitionDate\"),\r\n userAuthenticatedUserAcquisitionDate: _aiUser(\"authUserAcquisitionDate\"),\r\n cloudName: _aiCloud(\"name\"),\r\n cloudRole: _aiCloud(\"role\"),\r\n cloudRoleVer: _aiCloud(\"roleVer\"),\r\n cloudRoleInstance: _aiCloud(\"roleInstance\"),\r\n cloudEnvironment: _aiCloud(\"environment\"),\r\n cloudLocation: _aiCloud(\"location\"),\r\n cloudDeploymentUnit: _aiCloud(\"deploymentUnit\"),\r\n internalNodeName: _aiInternal(\"nodeName\"),\r\n internalSdkVersion: _aiInternal(\"sdkVersion\"),\r\n internalAgentVersion: _aiInternal(\"agentVersion\"),\r\n internalSnippet: _aiInternal(\"snippet\"),\r\n internalSdkSrc: _aiInternal(\"sdkSrc\")\r\n})));\r\nexport { ContextTagKeys };\r\n//# sourceMappingURL=ContextTagKeys.js.map","import { ContextTagKeys } from \"./Contracts/ContextTagKeys\";\r\nexport var Extensions = {\r\n UserExt: \"user\",\r\n DeviceExt: \"device\",\r\n TraceExt: \"trace\",\r\n WebExt: \"web\",\r\n AppExt: \"app\",\r\n OSExt: \"os\",\r\n SessionExt: \"ses\",\r\n SDKExt: \"sdk\"\r\n};\r\nexport var CtxTagKeys = new ContextTagKeys();\r\n//# sourceMappingURL=PartAExtensions.js.map","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","import { IStyleSet, IConcatenatedStyleSet } from './IStyleSet';\nimport { IStyleBase, IStyle } from './IStyle';\nimport { IStyleFunctionOrObject } from './IStyleFunction';\nimport { ObjectOnly } from './ObjectOnly';\n\n/**\n * Combine a set of styles together (but does not register css classes).\n * @param styleSet - The first style set to be concatenated.\n */\nexport function concatStyleSets(\n styleSet: TStyleSet | false | null | undefined,\n): IConcatenatedStyleSet>;\n\n/**\n * Combine a set of styles together (but does not register css classes).\n * @param styleSet1 - The first style set to be concatenated.\n * @param styleSet2 - The second style set to be concatenated.\n */\nexport function concatStyleSets(\n styleSet1: TStyleSet1 | false | null | undefined,\n styleSet2: TStyleSet2 | false | null | undefined,\n): IConcatenatedStyleSet & ObjectOnly>;\n\n/**\n * Combine a set of styles together (but does not register css classes).\n * @param styleSet1 - The first style set to be concatenated.\n * @param styleSet2 - The second style set to be concatenated.\n * @param styleSet3 - The third style set to be concatenated.\n */\nexport function concatStyleSets(\n styleSet1: TStyleSet1 | false | null | undefined,\n styleSet2: TStyleSet2 | false | null | undefined,\n styleSet3: TStyleSet3 | false | null | undefined,\n): IConcatenatedStyleSet & ObjectOnly & ObjectOnly>;\n\n/**\n * Combine a set of styles together (but does not register css classes).\n * @param styleSet1 - The first style set to be concatenated.\n * @param styleSet2 - The second style set to be concatenated.\n * @param styleSet3 - The third style set to be concatenated.\n * @param styleSet4 - The fourth style set to be concatenated.\n */\nexport function concatStyleSets(\n styleSet1: TStyleSet1 | false | null | undefined,\n styleSet2: TStyleSet2 | false | null | undefined,\n styleSet3: TStyleSet3 | false | null | undefined,\n styleSet4: TStyleSet4 | false | null | undefined,\n): IConcatenatedStyleSet<\n ObjectOnly & ObjectOnly & ObjectOnly & ObjectOnly\n>;\n\n/**\n * Combine a set of styles together (but does not register css classes).\n * @param styleSet1 - The first style set to be concatenated.\n * @param styleSet2 - The second style set to be concatenated.\n * @param styleSet3 - The third style set to be concatenated.\n * @param styleSet4 - The fourth style set to be concatenated.\n * @param styleSet5 - The fifth set to be concatenated.\n */\nexport function concatStyleSets(\n styleSet1: TStyleSet1 | false | null | undefined,\n styleSet2: TStyleSet2 | false | null | undefined,\n styleSet3: TStyleSet3 | false | null | undefined,\n styleSet4: TStyleSet4 | false | null | undefined,\n styleSet5: TStyleSet5 | false | null | undefined,\n): IConcatenatedStyleSet<\n ObjectOnly &\n ObjectOnly &\n ObjectOnly &\n ObjectOnly &\n ObjectOnly\n>;\n\n/**\n * Combine a set of styles together (but does not register css classes).\n * @param styleSet1 - The first style set to be concatenated.\n * @param styleSet2 - The second style set to be concatenated.\n * @param styleSet3 - The third style set to be concatenated.\n * @param styleSet4 - The fourth style set to be concatenated.\n * @param styleSet5 - The fifth set to be concatenated.\n * @param styleSet6 - The sixth set to be concatenated.\n */\nexport function concatStyleSets(\n styleSet1: TStyleSet1 | false | null | undefined,\n styleSet2: TStyleSet2 | false | null | undefined,\n styleSet3: TStyleSet3 | false | null | undefined,\n styleSet4: TStyleSet4 | false | null | undefined,\n styleSet5: TStyleSet5 | false | null | undefined,\n styleSet6: TStyleSet6 | false | null | undefined,\n): IConcatenatedStyleSet<\n ObjectOnly &\n ObjectOnly &\n ObjectOnly &\n ObjectOnly &\n ObjectOnly &\n ObjectOnly\n>;\n\n/**\n * Combine a set of styles together (but does not register css classes).\n * @param styleSets - One or more stylesets to be merged (each param can also be falsy).\n */\nexport function concatStyleSets(...styleSets: (IStyleSet | false | null | undefined)[]): IConcatenatedStyleSet;\n\n/**\n * Combine a set of styles together (but does not register css classes).\n * @param styleSets - One or more stylesets to be merged (each param can also be falsy).\n */\nexport function concatStyleSets(...styleSets: (IStyleSet | false | null | undefined)[]): IConcatenatedStyleSet {\n if (styleSets && styleSets.length === 1 && styleSets[0] && !(styleSets[0] as IStyleSet).subComponentStyles) {\n return styleSets[0] as IConcatenatedStyleSet;\n }\n\n const mergedSet: IConcatenatedStyleSet = {};\n\n // We process sub component styles in two phases. First we collect them, then we combine them into 1 style function.\n const workingSubcomponentStyles: { [key: string]: Array> } = {};\n\n for (const currentSet of styleSets) {\n if (currentSet) {\n for (const prop in currentSet) {\n if (currentSet.hasOwnProperty(prop)) {\n if (prop === 'subComponentStyles' && currentSet.subComponentStyles !== undefined) {\n // subcomponent styles - style functions or objects\n\n const currentComponentStyles = currentSet.subComponentStyles;\n for (const subCompProp in currentComponentStyles) {\n if (currentComponentStyles.hasOwnProperty(subCompProp)) {\n if (workingSubcomponentStyles.hasOwnProperty(subCompProp)) {\n workingSubcomponentStyles[subCompProp].push(currentComponentStyles[subCompProp]);\n } else {\n workingSubcomponentStyles[subCompProp] = [currentComponentStyles[subCompProp]];\n }\n }\n }\n\n continue;\n }\n\n // the as any casts below is a workaround for ts 2.8.\n // todo: remove cast to any in ts 2.9.\n const mergedValue: IStyle = (mergedSet as any)[prop];\n const currentValue = (currentSet as any)[prop];\n\n if (mergedValue === undefined) {\n (mergedSet as any)[prop] = currentValue;\n } else {\n (mergedSet as any)[prop] = [\n // https://github.com/Microsoft/TypeScript/issues/25474\n ...(Array.isArray(mergedValue) ? mergedValue : [mergedValue as IStyleBase]),\n ...(Array.isArray(currentValue) ? currentValue : [currentValue as IStyleBase]),\n ];\n }\n }\n }\n }\n }\n\n if (Object.keys(workingSubcomponentStyles).length > 0) {\n mergedSet.subComponentStyles = {};\n const mergedSubStyles = mergedSet.subComponentStyles;\n\n // now we process the subcomponent styles if there are any\n for (const subCompProp in workingSubcomponentStyles) {\n if (workingSubcomponentStyles.hasOwnProperty(subCompProp)) {\n const workingSet = workingSubcomponentStyles[subCompProp];\n mergedSubStyles[subCompProp] = (styleProps: any) => {\n return concatStyleSets(\n ...workingSet.map((styleFunctionOrObject: IStyleFunctionOrObject) =>\n typeof styleFunctionOrObject === 'function' ? styleFunctionOrObject(styleProps) : styleFunctionOrObject,\n ),\n );\n };\n }\n }\n }\n\n return mergedSet;\n}\n","import { __assign } from 'tslib';\nexport const assign = __assign;\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { SerializerOptions, XML_ATTRKEY, XML_CHARKEY } from \"./serializer.common\";\n\nif (!self.document || !self.DOMParser || !self.Node || !self.XMLSerializer) {\n throw new Error(\n `This library depends on the following DOM objects: [\"document\", \"DOMParser\", \"Node\", \"XMLSerializer\"] to parse XML, but some of these are undefined. You may provide a polyfill to make these globally available in order to support your environment. For more information, please refer to https://aka.ms/azsdk/js/web-workers. `\n );\n}\n\nlet cachedDoc: Document | undefined;\nfunction getDoc(): Document {\n if (!cachedDoc) {\n cachedDoc = document.implementation.createDocument(null, null, null);\n }\n return cachedDoc;\n}\n\nlet cachedParser: DOMParser | undefined;\nfunction getParser(): DOMParser {\n if (!cachedParser) {\n cachedParser = new DOMParser();\n }\n return cachedParser;\n}\n\nlet cachedSerializer: XMLSerializer | undefined;\nfunction getSerializer(): XMLSerializer {\n if (!cachedSerializer) {\n cachedSerializer = new XMLSerializer();\n }\n return cachedSerializer;\n}\n\n// Policy to make our code Trusted Types compliant.\n// https://github.com/w3c/webappsec-trusted-types\n// We are calling DOMParser.parseFromString() to parse XML payload from Azure services.\n// The parsed DOM object is not exposed to outside. Scripts are disabled when parsing\n// according to the spec. There are no HTML/XSS security concerns on the usage of\n// parseFromString() here.\nlet ttPolicy: Pick | undefined;\nif (typeof self.trustedTypes !== \"undefined\") {\n ttPolicy = self.trustedTypes.createPolicy(\"@azure/core-http#xml.browser\", {\n createHTML: (s) => s,\n });\n}\n\nexport function parseXML(str: string, opts: SerializerOptions = {}): Promise {\n try {\n const updatedOptions: Required = {\n rootName: opts.rootName ?? \"\",\n includeRoot: opts.includeRoot ?? false,\n xmlCharKey: opts.xmlCharKey ?? XML_CHARKEY,\n };\n const dom = getParser().parseFromString(\n (ttPolicy?.createHTML(str) ?? str) as string,\n \"application/xml\"\n );\n throwIfError(dom);\n\n let obj;\n if (updatedOptions.includeRoot) {\n obj = domToObject(dom, updatedOptions);\n } else {\n obj = domToObject(dom.childNodes[0], updatedOptions);\n }\n\n return Promise.resolve(obj);\n } catch (err: any) {\n return Promise.reject(err);\n }\n}\n\nlet errorNS: string | undefined;\n\nfunction getErrorNamespace(): string {\n if (errorNS === undefined) {\n try {\n const invalidXML = (ttPolicy?.createHTML(\"INVALID\") ?? \"INVALID\") as string;\n errorNS =\n getParser().parseFromString(invalidXML, \"text/xml\").getElementsByTagName(\"parsererror\")[0]\n .namespaceURI! ?? \"\";\n } catch (ignored: any) {\n // Most browsers will return a document containing , but IE will throw.\n errorNS = \"\";\n }\n }\n return errorNS;\n}\n\nfunction throwIfError(dom: Document): void {\n const parserErrors = dom.getElementsByTagName(\"parsererror\");\n if (parserErrors.length > 0 && getErrorNamespace()) {\n for (let i = 0; i < parserErrors.length; i++) {\n if (parserErrors[i].namespaceURI === errorNS) {\n throw new Error(parserErrors[i].innerHTML);\n }\n }\n }\n}\n\nfunction isElement(node: Node): node is Element {\n return !!(node as Element).attributes;\n}\n\n/**\n * Get the Element-typed version of the provided Node if the provided node is an element with\n * attributes. If it isn't, then undefined is returned.\n */\nfunction asElementWithAttributes(node: Node): Element | undefined {\n return isElement(node) && node.hasAttributes() ? node : undefined;\n}\n\nfunction domToObject(node: Node, options: Required): any {\n let result: any = {};\n\n const childNodeCount: number = node.childNodes.length;\n\n const firstChildNode: Node = node.childNodes[0];\n const onlyChildTextValue: string | undefined =\n (firstChildNode &&\n childNodeCount === 1 &&\n firstChildNode.nodeType === Node.TEXT_NODE &&\n firstChildNode.nodeValue) ||\n undefined;\n\n const elementWithAttributes: Element | undefined = asElementWithAttributes(node);\n if (elementWithAttributes) {\n result[XML_ATTRKEY] = {};\n\n for (let i = 0; i < elementWithAttributes.attributes.length; i++) {\n const attr = elementWithAttributes.attributes[i];\n result[XML_ATTRKEY][attr.nodeName] = attr.nodeValue;\n }\n\n if (onlyChildTextValue) {\n result[options.xmlCharKey] = onlyChildTextValue;\n }\n } else if (childNodeCount === 0) {\n result = \"\";\n } else if (onlyChildTextValue) {\n result = onlyChildTextValue;\n }\n\n if (!onlyChildTextValue) {\n for (let i = 0; i < childNodeCount; i++) {\n const child = node.childNodes[i];\n // Ignore leading/trailing whitespace nodes\n if (child.nodeType !== Node.TEXT_NODE) {\n const childObject: any = domToObject(child, options);\n if (!result[child.nodeName]) {\n result[child.nodeName] = childObject;\n } else if (Array.isArray(result[child.nodeName])) {\n result[child.nodeName].push(childObject);\n } else {\n result[child.nodeName] = [result[child.nodeName], childObject];\n }\n }\n }\n }\n\n return result;\n}\n\nexport function stringifyXML(content: unknown, opts: SerializerOptions = {}): string {\n const updatedOptions: Required = {\n rootName: opts.rootName ?? \"root\",\n includeRoot: opts.includeRoot ?? false,\n xmlCharKey: opts.xmlCharKey ?? XML_CHARKEY,\n };\n const dom = buildNode(content, updatedOptions.rootName, updatedOptions)[0];\n return (\n '' +\n getSerializer().serializeToString(dom)\n );\n}\n\nfunction buildAttributes(attrs: { [key: string]: { toString(): string } }): Attr[] {\n const result = [];\n for (const key of Object.keys(attrs)) {\n const attr = getDoc().createAttribute(key);\n attr.value = attrs[key].toString();\n result.push(attr);\n }\n return result;\n}\n\nfunction buildNode(obj: any, elementName: string, options: Required): Node[] {\n if (\n obj === undefined ||\n obj === null ||\n typeof obj === \"string\" ||\n typeof obj === \"number\" ||\n typeof obj === \"boolean\"\n ) {\n const elem = getDoc().createElement(elementName);\n elem.textContent = obj === undefined || obj === null ? \"\" : obj.toString();\n return [elem];\n } else if (Array.isArray(obj)) {\n const result = [];\n for (const arrayElem of obj) {\n for (const child of buildNode(arrayElem, elementName, options)) {\n result.push(child);\n }\n }\n return result;\n } else if (typeof obj === \"object\") {\n const elem = getDoc().createElement(elementName);\n for (const key of Object.keys(obj)) {\n if (key === XML_ATTRKEY) {\n for (const attr of buildAttributes(obj[key])) {\n elem.attributes.setNamedItem(attr);\n }\n } else if (key === options.xmlCharKey) {\n elem.textContent = obj[key].toString();\n } else {\n for (const child of buildNode(obj[key], key, options)) {\n elem.appendChild(child);\n }\n }\n }\n return [elem];\n } else {\n throw new Error(`Illegal value passed to buildObject: ${obj}`);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/*\n * NOTE: When moving this file, please update \"browser\" section in package.json.\n */\n\nimport { TelemetryInfo } from \"./userAgentPolicy\";\n\ninterface NavigatorEx extends Navigator {\n // oscpu is not yet standards-compliant, but can not be undefined in TypeScript 3.6.2\n readonly oscpu: string;\n}\n\nexport function getDefaultUserAgentKey(): string {\n return \"x-ms-useragent\";\n}\n\nexport function getPlatformSpecificData(): TelemetryInfo[] {\n const navigator = self.navigator as NavigatorEx;\n const osInfo = {\n key: \"OS\",\n value: (navigator.oscpu || navigator.platform).replace(\" \", \"\"),\n };\n\n return [osInfo];\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions,\n} from \"./requestPolicy\";\nimport { getDefaultUserAgentKey, getPlatformSpecificData } from \"./msRestUserAgentPolicy\";\nimport { Constants } from \"../util/constants\";\nimport { HttpHeaders } from \"../httpHeaders\";\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { WebResourceLike } from \"../webResource\";\n\n/**\n * Telemetry information. Key/value pairs to include inside the User-Agent string.\n */\nexport type TelemetryInfo = { key?: string; value?: string };\n\n/**\n * Options for adding user agent details to outgoing requests.\n */\nexport interface UserAgentOptions {\n /**\n * String prefix to add to the user agent for outgoing requests.\n * Defaults to an empty string.\n */\n userAgentPrefix?: string;\n}\n\nfunction getRuntimeInfo(): TelemetryInfo[] {\n const msRestRuntime = {\n key: \"core-http\",\n value: Constants.coreHttpVersion,\n };\n\n return [msRestRuntime];\n}\n\nfunction getUserAgentString(\n telemetryInfo: TelemetryInfo[],\n keySeparator = \" \",\n valueSeparator = \"/\"\n): string {\n return telemetryInfo\n .map((info) => {\n const value = info.value ? `${valueSeparator}${info.value}` : \"\";\n return `${info.key}${value}`;\n })\n .join(keySeparator);\n}\n\nexport const getDefaultUserAgentHeaderName = getDefaultUserAgentKey;\n\n/**\n * The default approach to generate user agents.\n * Uses static information from this package, plus system information available from the runtime.\n */\nexport function getDefaultUserAgentValue(): string {\n const runtimeInfo = getRuntimeInfo();\n const platformSpecificData = getPlatformSpecificData();\n const userAgent = getUserAgentString(runtimeInfo.concat(platformSpecificData));\n return userAgent;\n}\n\n/**\n * Returns a policy that adds the user agent header to outgoing requests based on the given {@link TelemetryInfo}.\n * @param userAgentData - Telemetry information.\n * @returns A new {@link UserAgentPolicy}.\n */\nexport function userAgentPolicy(userAgentData?: TelemetryInfo): RequestPolicyFactory {\n const key: string =\n !userAgentData || userAgentData.key === undefined || userAgentData.key === null\n ? getDefaultUserAgentKey()\n : userAgentData.key;\n const value: string =\n !userAgentData || userAgentData.value === undefined || userAgentData.value === null\n ? getDefaultUserAgentValue()\n : userAgentData.value;\n\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions) => {\n return new UserAgentPolicy(nextPolicy, options, key, value);\n },\n };\n}\n\n/**\n * A policy that adds the user agent header to outgoing requests based on the given {@link TelemetryInfo}.\n */\nexport class UserAgentPolicy extends BaseRequestPolicy {\n constructor(\n readonly _nextPolicy: RequestPolicy,\n readonly _options: RequestPolicyOptions,\n protected headerKey: string,\n protected headerValue: string\n ) {\n super(_nextPolicy, _options);\n }\n\n sendRequest(request: WebResourceLike): Promise {\n this.addUserAgentHeader(request);\n return this._nextPolicy.sendRequest(request);\n }\n\n /**\n * Adds the user agent header to the outgoing request.\n */\n addUserAgentHeader(request: WebResourceLike): void {\n if (!request.headers) {\n request.headers = new HttpHeaders();\n }\n\n if (!request.headers.get(this.headerKey) && this.headerValue) {\n request.headers.set(this.headerKey, this.headerValue);\n }\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions,\n} from \"./requestPolicy\";\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { URLBuilder } from \"../url\";\nimport { WebResourceLike } from \"../webResource\";\n\n/**\n * Methods that are allowed to follow redirects 301 and 302\n */\nconst allowedRedirect = [\"GET\", \"HEAD\"];\n\n/**\n * Options for how redirect responses are handled.\n */\nexport interface RedirectOptions {\n /**\n * When true, redirect responses are followed. Defaults to true.\n */\n handleRedirects: boolean;\n\n /**\n * The maximum number of times the redirect URL will be tried before\n * failing. Defaults to 20.\n */\n maxRetries?: number;\n}\n\nexport const DefaultRedirectOptions: RedirectOptions = {\n handleRedirects: true,\n maxRetries: 20,\n};\n\n/**\n * Creates a redirect policy, which sends a repeats the request to a new destination if a response arrives with a \"location\" header, and a status code between 300 and 307.\n * @param maximumRetries - Maximum number of redirects to follow.\n * @returns An instance of the {@link RedirectPolicy}\n */\nexport function redirectPolicy(maximumRetries = 20): RequestPolicyFactory {\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions) => {\n return new RedirectPolicy(nextPolicy, options, maximumRetries);\n },\n };\n}\n\n/**\n * Resends the request to a new destination if a response arrives with a \"location\" header, and a status code between 300 and 307.\n */\nexport class RedirectPolicy extends BaseRequestPolicy {\n constructor(nextPolicy: RequestPolicy, options: RequestPolicyOptions, readonly maxRetries = 20) {\n super(nextPolicy, options);\n }\n\n public sendRequest(request: WebResourceLike): Promise {\n return this._nextPolicy\n .sendRequest(request)\n .then((response) => handleRedirect(this, response, 0));\n }\n}\n\nfunction handleRedirect(\n policy: RedirectPolicy,\n response: HttpOperationResponse,\n currentRetries: number\n): Promise {\n const { request, status } = response;\n const locationHeader = response.headers.get(\"location\");\n if (\n locationHeader &&\n (status === 300 ||\n (status === 301 && allowedRedirect.includes(request.method)) ||\n (status === 302 && allowedRedirect.includes(request.method)) ||\n (status === 303 && request.method === \"POST\") ||\n status === 307) &&\n (!policy.maxRetries || currentRetries < policy.maxRetries)\n ) {\n const builder = URLBuilder.parse(request.url);\n builder.setPath(locationHeader);\n request.url = builder.toString();\n\n // POST request with Status code 303 should be converted into a\n // redirected GET request if the redirect url is present in the location header\n if (status === 303) {\n request.method = \"GET\";\n delete request.body;\n }\n\n return policy._nextPolicy\n .sendRequest(request)\n .then((res) => handleRedirect(policy, res, currentRetries + 1));\n }\n\n return Promise.resolve(response);\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { HttpOperationResponse } from \"../coreHttp\";\n\nexport const DEFAULT_CLIENT_RETRY_COUNT = 3;\n// intervals are in ms\nexport const DEFAULT_CLIENT_RETRY_INTERVAL = 1000 * 30;\nexport const DEFAULT_CLIENT_MAX_RETRY_INTERVAL = 1000 * 90;\nexport const DEFAULT_CLIENT_MIN_RETRY_INTERVAL = 1000 * 3;\n\nexport function isNumber(n: unknown): n is number {\n return typeof n === \"number\";\n}\nexport interface RetryData {\n retryCount: number;\n retryInterval: number;\n error?: RetryError;\n}\n\nexport interface RetryError extends Error {\n message: string;\n code?: string;\n innerError?: RetryError;\n}\n\n/**\n * @internal\n * Determines if the operation should be retried.\n *\n * @param retryLimit - Specifies the max number of retries.\n * @param predicate - Initial chekck on whether to retry based on given responses or errors\n * @param retryData - The retry data.\n * @returns True if the operation qualifies for a retry; false otherwise.\n */\nexport function shouldRetry(\n retryLimit: number,\n predicate: (response?: HttpOperationResponse, error?: RetryError) => boolean,\n retryData: RetryData,\n response?: HttpOperationResponse,\n error?: RetryError\n): boolean {\n if (!predicate(response, error)) {\n return false;\n }\n\n return retryData.retryCount < retryLimit;\n}\n\n/**\n * @internal\n * Updates the retry data for the next attempt.\n *\n * @param retryOptions - specifies retry interval, and its lower bound and upper bound.\n * @param retryData - The retry data.\n * @param err - The operation\"s error, if any.\n */\nexport function updateRetryData(\n retryOptions: { retryInterval: number; minRetryInterval: number; maxRetryInterval: number },\n retryData: RetryData = { retryCount: 0, retryInterval: 0 },\n err?: RetryError\n): RetryData {\n if (err) {\n if (retryData.error) {\n err.innerError = retryData.error;\n }\n\n retryData.error = err;\n }\n\n // Adjust retry count\n retryData.retryCount++;\n\n // Adjust retry interval\n let incrementDelta = Math.pow(2, retryData.retryCount - 1) - 1;\n const boundedRandDelta =\n retryOptions.retryInterval * 0.8 +\n Math.floor(Math.random() * (retryOptions.retryInterval * 0.4));\n incrementDelta *= boundedRandDelta;\n\n retryData.retryInterval = Math.min(\n retryOptions.minRetryInterval + incrementDelta,\n retryOptions.maxRetryInterval\n );\n\n return retryData;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions,\n} from \"./requestPolicy\";\nimport {\n DEFAULT_CLIENT_MAX_RETRY_INTERVAL,\n DEFAULT_CLIENT_RETRY_COUNT,\n DEFAULT_CLIENT_RETRY_INTERVAL,\n RetryData,\n RetryError,\n isNumber,\n shouldRetry,\n updateRetryData,\n} from \"../util/exponentialBackoffStrategy\";\nimport { Constants } from \"../util/constants\";\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { RestError } from \"../restError\";\nimport { WebResourceLike } from \"../webResource\";\nimport { delay } from \"../util/delay\";\nimport { logger } from \"../log\";\n\n/**\n * Policy that retries the request as many times as configured for as long as the max retry time interval specified, each retry waiting longer to begin than the last time.\n * @param retryCount - Maximum number of retries.\n * @param retryInterval - Base time between retries.\n * @param maxRetryInterval - Maximum time to wait between retries.\n */\nexport function exponentialRetryPolicy(\n retryCount?: number,\n retryInterval?: number,\n maxRetryInterval?: number\n): RequestPolicyFactory {\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions) => {\n return new ExponentialRetryPolicy(\n nextPolicy,\n options,\n retryCount,\n retryInterval,\n maxRetryInterval\n );\n },\n };\n}\n\n/**\n * Describes the Retry Mode type. Currently supporting only Exponential.\n */\nexport enum RetryMode {\n /**\n * Currently supported retry mode.\n * Each time a retry happens, it will take exponentially more time than the last time.\n */\n Exponential,\n}\n\n/**\n * Options that control how to retry failed requests.\n */\nexport interface RetryOptions {\n /**\n * The maximum number of retry attempts. Defaults to 3.\n */\n maxRetries?: number;\n\n /**\n * The amount of delay in milliseconds between retry attempts. Defaults to 30000\n * (30 seconds). The delay increases exponentially with each retry up to a maximum\n * specified by maxRetryDelayInMs.\n */\n retryDelayInMs?: number;\n\n /**\n * The maximum delay in milliseconds allowed before retrying an operation. Defaults\n * to 90000 (90 seconds).\n */\n maxRetryDelayInMs?: number;\n\n /**\n * Currently supporting only Exponential mode.\n */\n mode?: RetryMode;\n}\n\nexport const DefaultRetryOptions: RetryOptions = {\n maxRetries: DEFAULT_CLIENT_RETRY_COUNT,\n retryDelayInMs: DEFAULT_CLIENT_RETRY_INTERVAL,\n maxRetryDelayInMs: DEFAULT_CLIENT_MAX_RETRY_INTERVAL,\n};\n\n/**\n * Instantiates a new \"ExponentialRetryPolicyFilter\" instance.\n */\nexport class ExponentialRetryPolicy extends BaseRequestPolicy {\n /**\n * The client retry count.\n */\n retryCount: number;\n /**\n * The client retry interval in milliseconds.\n */\n retryInterval: number;\n /**\n * The maximum retry interval in milliseconds.\n */\n maxRetryInterval: number;\n\n /**\n * @param nextPolicy - The next RequestPolicy in the pipeline chain.\n * @param options - The options for this RequestPolicy.\n * @param retryCount - The client retry count.\n * @param retryInterval - The client retry interval, in milliseconds.\n * @param minRetryInterval - The minimum retry interval, in milliseconds.\n * @param maxRetryInterval - The maximum retry interval, in milliseconds.\n */\n constructor(\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions,\n retryCount?: number,\n retryInterval?: number,\n maxRetryInterval?: number\n ) {\n super(nextPolicy, options);\n this.retryCount = isNumber(retryCount) ? retryCount : DEFAULT_CLIENT_RETRY_COUNT;\n this.retryInterval = isNumber(retryInterval) ? retryInterval : DEFAULT_CLIENT_RETRY_INTERVAL;\n this.maxRetryInterval = isNumber(maxRetryInterval)\n ? maxRetryInterval\n : DEFAULT_CLIENT_MAX_RETRY_INTERVAL;\n }\n\n public sendRequest(request: WebResourceLike): Promise {\n return this._nextPolicy\n .sendRequest(request.clone())\n .then((response) => retry(this, request, response))\n .catch((error) => retry(this, request, error.response, undefined, error));\n }\n}\n\nasync function retry(\n policy: ExponentialRetryPolicy,\n request: WebResourceLike,\n response?: HttpOperationResponse,\n retryData?: RetryData,\n requestError?: RetryError\n): Promise {\n function shouldPolicyRetry(responseParam?: HttpOperationResponse): boolean {\n const statusCode = responseParam?.status;\n if (statusCode === 503 && response?.headers.get(Constants.HeaderConstants.RETRY_AFTER)) {\n return false;\n }\n\n if (\n statusCode === undefined ||\n (statusCode < 500 && statusCode !== 408) ||\n statusCode === 501 ||\n statusCode === 505\n ) {\n return false;\n }\n return true;\n }\n\n retryData = updateRetryData(\n {\n retryInterval: policy.retryInterval,\n minRetryInterval: 0,\n maxRetryInterval: policy.maxRetryInterval,\n },\n retryData,\n requestError\n );\n\n const isAborted: boolean | undefined = request.abortSignal && request.abortSignal.aborted;\n if (!isAborted && shouldRetry(policy.retryCount, shouldPolicyRetry, retryData, response)) {\n logger.info(`Retrying request in ${retryData.retryInterval}`);\n try {\n await delay(retryData.retryInterval);\n const res = await policy._nextPolicy.sendRequest(request.clone());\n return retry(policy, request, res, retryData);\n } catch (err: any) {\n return retry(policy, request, response, retryData, err);\n }\n } else if (isAborted || requestError || !response) {\n // If the operation failed in the end, return all errors instead of just the last one\n const err =\n retryData.error ||\n new RestError(\n \"Failed to send the request.\",\n RestError.REQUEST_SEND_ERROR,\n response && response.status,\n response && response.request,\n response\n );\n throw err;\n } else {\n return response;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { Mapper } from \"./serializer\";\nimport { QueryCollectionFormat } from \"./queryCollectionFormat\";\n\n/**\n * A path which describes how to access a particular property in a given object data source. May be a single property name, an array that denotes nested property names, or a set of multiple named properties with paths in the case of complex object values.\n */\nexport type ParameterPath = string | string[] | { [propertyName: string]: ParameterPath };\n\n/**\n * A common interface that all Operation parameter's extend.\n */\nexport interface OperationParameter {\n /**\n * The path to this parameter's value in OperationArguments or the object that contains paths for\n * each property's value in OperationArguments.\n */\n parameterPath: ParameterPath;\n\n /**\n * The mapper that defines how to validate and serialize this parameter's value.\n */\n mapper: Mapper;\n}\n\n/**\n * A parameter for an operation that will be substituted into the operation's request URL.\n */\nexport interface OperationURLParameter extends OperationParameter {\n /**\n * Whether or not to skip encoding the URL parameter's value before adding it to the URL.\n */\n skipEncoding?: boolean;\n}\n\n/**\n * A parameter for an operation that will be added as a query parameter to the operation's HTTP\n * request.\n */\nexport interface OperationQueryParameter extends OperationParameter {\n /**\n * Whether or not to skip encoding the query parameter's value before adding it to the URL.\n */\n skipEncoding?: boolean;\n\n /**\n * If this query parameter's value is a collection, what type of format should the value be\n * converted to.\n */\n collectionFormat?: QueryCollectionFormat;\n}\n\n/**\n * Get the path to this parameter's value as a dotted string (a.b.c).\n * @param parameter - The parameter to get the path string for.\n * @returns The path to this parameter's value as a dotted string.\n */\nexport function getPathStringFromParameter(parameter: OperationParameter): string {\n return getPathStringFromParameterPath(parameter.parameterPath, parameter.mapper);\n}\n\nexport function getPathStringFromParameterPath(\n parameterPath: ParameterPath,\n mapper: Mapper\n): string {\n let result: string;\n if (typeof parameterPath === \"string\") {\n result = parameterPath;\n } else if (Array.isArray(parameterPath)) {\n result = parameterPath.join(\".\");\n } else {\n result = mapper.serializedName!;\n }\n return result;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { MapperType, Serializer } from \"./serializer\";\nimport {\n OperationParameter,\n OperationQueryParameter,\n OperationURLParameter,\n} from \"./operationParameter\";\nimport { HttpMethods } from \"./webResource\";\nimport { OperationResponse } from \"./operationResponse\";\n\n/**\n * A specification that defines how to perform a particular service operation over HTTP, including how to properly serialize request information into and deserialize response information into an object payload returnable by the {@link ServiceClient}.\n */\nexport interface OperationSpec {\n /**\n * The serializer to use in this operation.\n */\n readonly serializer: Serializer;\n\n /**\n * The HTTP method that should be used by requests for this operation.\n */\n readonly httpMethod: HttpMethods;\n\n /**\n * The URL that was provided in the service's specification. This will still have all of the URL\n * template variables in it. If this is not provided when the OperationSpec is created, then it\n * will be populated by a \"baseUri\" property on the ServiceClient.\n */\n readonly baseUrl?: string;\n\n /**\n * The fixed path for this operation's URL. This will still have all of the URL template variables\n * in it.\n */\n readonly path?: string;\n\n /**\n * The content type of the request body. This value will be used as the \"Content-Type\" header if\n * it is provided.\n */\n readonly contentType?: string;\n\n /**\n * The media type of the request body.\n * This value can be used to aide in serialization if it is provided.\n */\n readonly mediaType?:\n | \"json\"\n | \"xml\"\n | \"form\"\n | \"binary\"\n | \"multipart\"\n | \"text\"\n | \"unknown\"\n | string;\n /**\n * The parameter that will be used to construct the HTTP request's body.\n */\n readonly requestBody?: OperationParameter;\n\n /**\n * Whether or not this operation uses XML request and response bodies.\n */\n readonly isXML?: boolean;\n\n /**\n * The parameters to the operation method that will be substituted into the constructed URL.\n */\n readonly urlParameters?: ReadonlyArray;\n\n /**\n * The parameters to the operation method that will be added to the constructed URL's query.\n */\n readonly queryParameters?: ReadonlyArray;\n\n /**\n * The parameters to the operation method that will be converted to headers on the operation's\n * HTTP request.\n */\n readonly headerParameters?: ReadonlyArray;\n\n /**\n * The parameters to the operation method that will be used to create a formdata body for the\n * operation's HTTP request.\n */\n readonly formDataParameters?: ReadonlyArray;\n\n /**\n * The different types of responses that this operation can return based on what status code is\n * returned.\n */\n readonly responses: { [responseCode: string]: OperationResponse };\n}\n\n/**\n * Gets the list of status codes for streaming responses.\n * @internal\n */\nexport function getStreamResponseStatusCodes(operationSpec: OperationSpec): Set {\n const result = new Set();\n for (const statusCode in operationSpec.responses) {\n const operationResponse = operationSpec.responses[statusCode];\n if (\n operationResponse.bodyMapper &&\n operationResponse.bodyMapper.type.name === MapperType.Stream\n ) {\n result.add(Number(statusCode));\n }\n }\n return result;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { DefaultHttpClient } from \"./defaultHttpClient\";\nimport { HttpClient } from \"./httpClient\";\n\nlet cachedHttpClient: HttpClient | undefined;\n\nexport function getCachedDefaultHttpClient(): HttpClient {\n if (!cachedHttpClient) {\n cachedHttpClient = new DefaultHttpClient();\n }\n\n return cachedHttpClient;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n// BaseRequestPolicy has a protected constructor.\n/* eslint-disable @typescript-eslint/no-useless-constructor */\n\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions,\n} from \"./requestPolicy\";\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { WebResourceLike } from \"../webResource\";\n\nexport function ndJsonPolicy(): RequestPolicyFactory {\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions) => {\n return new NdJsonPolicy(nextPolicy, options);\n },\n };\n}\n\n/**\n * NdJsonPolicy that formats a JSON array as newline-delimited JSON\n */\nclass NdJsonPolicy extends BaseRequestPolicy {\n /**\n * Creates an instance of KeepAlivePolicy.\n */\n constructor(nextPolicy: RequestPolicy, options: RequestPolicyOptions) {\n super(nextPolicy, options);\n }\n\n /**\n * Sends a request.\n */\n public async sendRequest(request: WebResourceLike): Promise {\n // There currently isn't a good way to bypass the serializer\n if (typeof request.body === \"string\" && request.body.startsWith(\"[\")) {\n const body = JSON.parse(request.body);\n if (Array.isArray(body)) {\n request.body = body.map((item) => JSON.stringify(item) + \"\\n\").join(\"\");\n }\n }\n return this._nextPolicy.sendRequest(request);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport * as utils from \"../util/utils\";\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions,\n} from \"./requestPolicy\";\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { WebResourceLike } from \"../webResource\";\nimport { delay } from \"../util/delay\";\n\nexport function rpRegistrationPolicy(retryTimeout = 30): RequestPolicyFactory {\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions) => {\n return new RPRegistrationPolicy(nextPolicy, options, retryTimeout);\n },\n };\n}\n\nexport class RPRegistrationPolicy extends BaseRequestPolicy {\n constructor(\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions,\n readonly _retryTimeout = 30\n ) {\n super(nextPolicy, options);\n }\n\n public sendRequest(request: WebResourceLike): Promise {\n return this._nextPolicy\n .sendRequest(request.clone())\n .then((response) => registerIfNeeded(this, request, response));\n }\n}\n\nfunction registerIfNeeded(\n policy: RPRegistrationPolicy,\n request: WebResourceLike,\n response: HttpOperationResponse\n): Promise {\n if (response.status === 409) {\n const rpName = checkRPNotRegisteredError(response.bodyAsText as string);\n if (rpName) {\n const urlPrefix = extractSubscriptionUrl(request.url);\n return (\n registerRP(policy, urlPrefix, rpName, request)\n // Autoregistration of ${provider} failed for some reason. We will not return this error\n // instead will return the initial response with 409 status code back to the user.\n // do nothing here as we are returning the original response at the end of this method.\n .catch(() => false)\n .then((registrationStatus) => {\n if (registrationStatus) {\n // Retry the original request. We have to change the x-ms-client-request-id\n // otherwise Azure endpoint will return the initial 409 (cached) response.\n request.headers.set(\"x-ms-client-request-id\", utils.generateUuid());\n return policy._nextPolicy.sendRequest(request.clone());\n }\n return response;\n })\n );\n }\n }\n\n return Promise.resolve(response);\n}\n\n/**\n * Reuses the headers of the original request and url (if specified).\n * @param originalRequest - The original request\n * @param reuseUrlToo - Should the url from the original request be reused as well. Default false.\n * @returns A new request object with desired headers.\n */\nfunction getRequestEssentials(\n originalRequest: WebResourceLike,\n reuseUrlToo = false\n): WebResourceLike {\n const reqOptions: WebResourceLike = originalRequest.clone();\n if (reuseUrlToo) {\n reqOptions.url = originalRequest.url;\n }\n\n // We have to change the x-ms-client-request-id otherwise Azure endpoint\n // will return the initial 409 (cached) response.\n reqOptions.headers.set(\"x-ms-client-request-id\", utils.generateUuid());\n\n // Set content-type to application/json\n reqOptions.headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n\n return reqOptions;\n}\n\n/**\n * Validates the error code and message associated with 409 response status code. If it matches to that of\n * RP not registered then it returns the name of the RP else returns undefined.\n * @param body - The response body received after making the original request.\n * @returns The name of the RP if condition is satisfied else undefined.\n */\nfunction checkRPNotRegisteredError(body: string): string {\n let result, responseBody;\n if (body) {\n try {\n responseBody = JSON.parse(body);\n } catch (err: any) {\n // do nothing;\n }\n if (\n responseBody &&\n responseBody.error &&\n responseBody.error.message &&\n responseBody.error.code &&\n responseBody.error.code === \"MissingSubscriptionRegistration\"\n ) {\n const matchRes = responseBody.error.message.match(/.*'(.*)'/i);\n if (matchRes) {\n result = matchRes.pop();\n }\n }\n }\n return result;\n}\n\n/**\n * Extracts the first part of the URL, just after subscription:\n * https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/\n * @param url - The original request url\n * @returns The url prefix as explained above.\n */\nfunction extractSubscriptionUrl(url: string): string {\n let result;\n const matchRes = url.match(/.*\\/subscriptions\\/[a-f0-9-]+\\//gi);\n if (matchRes && matchRes[0]) {\n result = matchRes[0];\n } else {\n throw new Error(`Unable to extract subscriptionId from the given url - ${url}.`);\n }\n return result;\n}\n\n/**\n * Registers the given provider.\n * @param policy - The RPRegistrationPolicy this function is being called against.\n * @param urlPrefix - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/\n * @param provider - The provider name to be registered.\n * @param originalRequest - The original request sent by the user that returned a 409 response\n * with a message that the provider is not registered.\n */\nasync function registerRP(\n policy: RPRegistrationPolicy,\n urlPrefix: string,\n provider: string,\n originalRequest: WebResourceLike\n): Promise {\n const postUrl = `${urlPrefix}providers/${provider}/register?api-version=2016-02-01`;\n const getUrl = `${urlPrefix}providers/${provider}?api-version=2016-02-01`;\n const reqOptions = getRequestEssentials(originalRequest);\n reqOptions.method = \"POST\";\n reqOptions.url = postUrl;\n\n const response = await policy._nextPolicy.sendRequest(reqOptions);\n if (response.status !== 200) {\n throw new Error(`Autoregistration of ${provider} failed. Please try registering manually.`);\n }\n return getRegistrationStatus(policy, getUrl, originalRequest);\n}\n\n/**\n * Polls the registration status of the provider that was registered. Polling happens at an interval of 30 seconds.\n * Polling will happen till the registrationState property of the response body is \"Registered\".\n * @param policy - The RPRegistrationPolicy this function is being called against.\n * @param url - The request url for polling\n * @param originalRequest - The original request sent by the user that returned a 409 response\n * with a message that the provider is not registered.\n * @returns True if RP Registration is successful.\n */\nasync function getRegistrationStatus(\n policy: RPRegistrationPolicy,\n url: string,\n originalRequest: WebResourceLike\n): Promise {\n const reqOptions: any = getRequestEssentials(originalRequest);\n reqOptions.url = url;\n reqOptions.method = \"GET\";\n\n const res = await policy._nextPolicy.sendRequest(reqOptions);\n const obj = res.parsedBody;\n if (res.parsedBody && obj.registrationState && obj.registrationState === \"Registered\") {\n return true;\n } else {\n await delay(policy._retryTimeout * 1000);\n return getRegistrationStatus(policy, url, originalRequest);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions,\n} from \"./requestPolicy\";\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { ServiceClientCredentials } from \"../credentials/serviceClientCredentials\";\nimport { WebResourceLike } from \"../webResource\";\n\n/**\n * Creates a policy that signs outgoing requests by calling to the provided `authenticationProvider`'s `signRequest` method.\n * @param authenticationProvider - The authentication provider.\n * @returns An instance of the {@link SigningPolicy}.\n */\nexport function signingPolicy(\n authenticationProvider: ServiceClientCredentials\n): RequestPolicyFactory {\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions) => {\n return new SigningPolicy(nextPolicy, options, authenticationProvider);\n },\n };\n}\n\n/**\n * A policy that signs outgoing requests by calling to the provided `authenticationProvider`'s `signRequest` method.\n */\nexport class SigningPolicy extends BaseRequestPolicy {\n constructor(\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions,\n public authenticationProvider: ServiceClientCredentials\n ) {\n super(nextPolicy, options);\n }\n\n signRequest(request: WebResourceLike): Promise {\n return this.authenticationProvider.signRequest(request);\n }\n\n public sendRequest(request: WebResourceLike): Promise {\n return this.signRequest(request).then((nextRequest) =>\n this._nextPolicy.sendRequest(nextRequest)\n );\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions,\n} from \"./requestPolicy\";\nimport {\n DEFAULT_CLIENT_MAX_RETRY_INTERVAL,\n DEFAULT_CLIENT_MIN_RETRY_INTERVAL,\n DEFAULT_CLIENT_RETRY_COUNT,\n DEFAULT_CLIENT_RETRY_INTERVAL,\n RetryData,\n RetryError,\n isNumber,\n shouldRetry,\n updateRetryData,\n} from \"../util/exponentialBackoffStrategy\";\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { WebResourceLike } from \"../webResource\";\nimport { delay } from \"../util/delay\";\n\n/**\n * A policy that retries when there's a system error, identified by the codes \"ETIMEDOUT\", \"ESOCKETTIMEDOUT\", \"ECONNREFUSED\", \"ECONNRESET\" or \"ENOENT\".\n * @param retryCount - Maximum number of retries.\n * @param retryInterval - The client retry interval, in milliseconds.\n * @param minRetryInterval - The minimum retry interval, in milliseconds.\n * @param maxRetryInterval - The maximum retry interval, in milliseconds.\n * @returns An instance of the {@link SystemErrorRetryPolicy}\n */\nexport function systemErrorRetryPolicy(\n retryCount?: number,\n retryInterval?: number,\n minRetryInterval?: number,\n maxRetryInterval?: number\n): RequestPolicyFactory {\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions) => {\n return new SystemErrorRetryPolicy(\n nextPolicy,\n options,\n retryCount,\n retryInterval,\n minRetryInterval,\n maxRetryInterval\n );\n },\n };\n}\n\n/**\n * A policy that retries when there's a system error, identified by the codes \"ETIMEDOUT\", \"ESOCKETTIMEDOUT\", \"ECONNREFUSED\", \"ECONNRESET\" or \"ENOENT\".\n * @param retryCount - The client retry count.\n * @param retryInterval - The client retry interval, in milliseconds.\n * @param minRetryInterval - The minimum retry interval, in milliseconds.\n * @param maxRetryInterval - The maximum retry interval, in milliseconds.\n */\nexport class SystemErrorRetryPolicy extends BaseRequestPolicy {\n retryCount: number;\n retryInterval: number;\n minRetryInterval: number;\n maxRetryInterval: number;\n\n constructor(\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions,\n retryCount?: number,\n retryInterval?: number,\n minRetryInterval?: number,\n maxRetryInterval?: number\n ) {\n super(nextPolicy, options);\n this.retryCount = isNumber(retryCount) ? retryCount : DEFAULT_CLIENT_RETRY_COUNT;\n this.retryInterval = isNumber(retryInterval) ? retryInterval : DEFAULT_CLIENT_RETRY_INTERVAL;\n this.minRetryInterval = isNumber(minRetryInterval)\n ? minRetryInterval\n : DEFAULT_CLIENT_MIN_RETRY_INTERVAL;\n this.maxRetryInterval = isNumber(maxRetryInterval)\n ? maxRetryInterval\n : DEFAULT_CLIENT_MAX_RETRY_INTERVAL;\n }\n\n public sendRequest(request: WebResourceLike): Promise {\n return this._nextPolicy\n .sendRequest(request.clone())\n .catch((error) => retry(this, request, error.response, error));\n }\n}\n\nasync function retry(\n policy: SystemErrorRetryPolicy,\n request: WebResourceLike,\n operationResponse: HttpOperationResponse,\n err?: RetryError,\n retryData?: RetryData\n): Promise {\n retryData = updateRetryData(policy, retryData, err);\n\n function shouldPolicyRetry(_response?: HttpOperationResponse, error?: RetryError): boolean {\n if (\n error &&\n error.code &&\n (error.code === \"ETIMEDOUT\" ||\n error.code === \"ESOCKETTIMEDOUT\" ||\n error.code === \"ECONNREFUSED\" ||\n error.code === \"ECONNRESET\" ||\n error.code === \"ENOENT\")\n ) {\n return true;\n }\n return false;\n }\n\n if (shouldRetry(policy.retryCount, shouldPolicyRetry, retryData, operationResponse, err)) {\n // If previous operation ended with an error and the policy allows a retry, do that\n try {\n await delay(retryData.retryInterval);\n return policy._nextPolicy.sendRequest(request.clone());\n } catch (nestedErr: any) {\n return retry(policy, request, operationResponse, nestedErr, retryData);\n }\n } else {\n if (err) {\n // If the operation failed in the end, return all errors instead of just the last one\n return Promise.reject(retryData.error);\n }\n return operationResponse;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions,\n} from \"./requestPolicy\";\nimport { AbortError } from \"@azure/abort-controller\";\nimport { Constants } from \"../util/constants\";\nimport { DEFAULT_CLIENT_MAX_RETRY_COUNT } from \"../util/throttlingRetryStrategy\";\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { WebResourceLike } from \"../webResource\";\nimport { delay } from \"../util/delay\";\n\ntype ResponseHandler = (\n httpRequest: WebResourceLike,\n response: HttpOperationResponse\n) => Promise;\nconst StatusCodes = Constants.HttpConstants.StatusCodes;\n\n/**\n * Creates a policy that re-sends the request if the response indicates the request failed because of throttling reasons.\n * For example, if the response contains a `Retry-After` header, it will retry sending the request based on the value of that header.\n *\n * To learn more, please refer to\n * https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-request-limits,\n * https://docs.microsoft.com/en-us/azure/azure-subscription-service-limits and\n * https://docs.microsoft.com/en-us/azure/virtual-machines/troubleshooting/troubleshooting-throttling-errors\n * @returns\n */\nexport function throttlingRetryPolicy(): RequestPolicyFactory {\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions) => {\n return new ThrottlingRetryPolicy(nextPolicy, options);\n },\n };\n}\n\nconst StandardAbortMessage = \"The operation was aborted.\";\n\n/**\n * Creates a policy that re-sends the request if the response indicates the request failed because of throttling reasons.\n * For example, if the response contains a `Retry-After` header, it will retry sending the request based on the value of that header.\n *\n * To learn more, please refer to\n * https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-request-limits,\n * https://docs.microsoft.com/en-us/azure/azure-subscription-service-limits and\n * https://docs.microsoft.com/en-us/azure/virtual-machines/troubleshooting/troubleshooting-throttling-errors\n */\nexport class ThrottlingRetryPolicy extends BaseRequestPolicy {\n private _handleResponse: ResponseHandler;\n private numberOfRetries = 0;\n\n constructor(\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions,\n _handleResponse?: ResponseHandler\n ) {\n super(nextPolicy, options);\n this._handleResponse = _handleResponse || this._defaultResponseHandler;\n }\n\n public async sendRequest(httpRequest: WebResourceLike): Promise {\n const response = await this._nextPolicy.sendRequest(httpRequest.clone());\n if (\n response.status !== StatusCodes.TooManyRequests &&\n response.status !== StatusCodes.ServiceUnavailable\n ) {\n return response;\n } else {\n return this._handleResponse(httpRequest, response);\n }\n }\n\n private async _defaultResponseHandler(\n httpRequest: WebResourceLike,\n httpResponse: HttpOperationResponse\n ): Promise {\n const retryAfterHeader: string | undefined = httpResponse.headers.get(\n Constants.HeaderConstants.RETRY_AFTER\n );\n\n if (retryAfterHeader) {\n const delayInMs: number | undefined =\n ThrottlingRetryPolicy.parseRetryAfterHeader(retryAfterHeader);\n if (delayInMs) {\n this.numberOfRetries += 1;\n\n await delay(delayInMs, undefined, {\n abortSignal: httpRequest.abortSignal,\n abortErrorMsg: StandardAbortMessage,\n });\n\n if (httpRequest.abortSignal?.aborted) {\n throw new AbortError(StandardAbortMessage);\n }\n\n if (this.numberOfRetries < DEFAULT_CLIENT_MAX_RETRY_COUNT) {\n return this.sendRequest(httpRequest);\n } else {\n return this._nextPolicy.sendRequest(httpRequest);\n }\n }\n }\n\n return httpResponse;\n }\n\n public static parseRetryAfterHeader(headerValue: string): number | undefined {\n const retryAfterInSeconds = Number(headerValue);\n if (Number.isNaN(retryAfterInSeconds)) {\n return ThrottlingRetryPolicy.parseDateRetryAfterHeader(headerValue);\n } else {\n return retryAfterInSeconds * 1000;\n }\n }\n\n public static parseDateRetryAfterHeader(headerValue: string): number | undefined {\n try {\n const now: number = Date.now();\n const date: number = Date.parse(headerValue);\n const diff = date - now;\n\n return Number.isNaN(diff) ? undefined : diff;\n } catch (error: any) {\n return undefined;\n }\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * Maximum number of retries for the throttling retry policy\n */\nexport const DEFAULT_CLIENT_MAX_RETRY_COUNT = 3;\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport * as utils from \"./util/utils\";\nimport { CompositeMapper, DictionaryMapper, Mapper, MapperType, Serializer } from \"./serializer\";\nimport {\n DefaultDeserializationOptions,\n DeserializationContentTypes,\n deserializationPolicy,\n} from \"./policies/deserializationPolicy\";\nimport { DefaultKeepAliveOptions, keepAlivePolicy } from \"./policies/keepAlivePolicy\";\nimport { DefaultRedirectOptions, redirectPolicy } from \"./policies/redirectPolicy\";\nimport { DefaultRetryOptions, exponentialRetryPolicy } from \"./policies/exponentialRetryPolicy\";\nimport { HttpOperationResponse, RestResponse } from \"./httpOperationResponse\";\nimport { LogPolicyOptions, logPolicy } from \"./policies/logPolicy\";\nimport {\n OperationParameter,\n ParameterPath,\n getPathStringFromParameter,\n getPathStringFromParameterPath,\n} from \"./operationParameter\";\nimport { OperationSpec, getStreamResponseStatusCodes } from \"./operationSpec\";\nimport {\n RequestOptionsBase,\n RequestPrepareOptions,\n WebResource,\n WebResourceLike,\n isWebResourceLike,\n} from \"./webResource\";\nimport {\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions,\n} from \"./policies/requestPolicy\";\nimport { SerializerOptions, XML_ATTRKEY, XML_CHARKEY } from \"./util/serializer.common\";\nimport { ServiceCallback, isNode } from \"./util/utils\";\nimport { TokenCredential, isTokenCredential } from \"@azure/core-auth\";\nimport {\n getDefaultUserAgentHeaderName,\n getDefaultUserAgentValue,\n userAgentPolicy,\n} from \"./policies/userAgentPolicy\";\nimport { HttpClient } from \"./httpClient\";\nimport { HttpPipelineLogger } from \"./httpPipelineLogger\";\nimport { InternalPipelineOptions } from \"./pipelineOptions\";\nimport { OperationArguments } from \"./operationArguments\";\nimport { OperationResponse } from \"./operationResponse\";\nimport { QueryCollectionFormat } from \"./queryCollectionFormat\";\nimport { ServiceClientCredentials } from \"./credentials/serviceClientCredentials\";\nimport { URLBuilder } from \"./url\";\nimport { bearerTokenAuthenticationPolicy } from \"./policies/bearerTokenAuthenticationPolicy\";\nimport { disableResponseDecompressionPolicy } from \"./policies/disableResponseDecompressionPolicy\";\nimport { generateClientRequestIdPolicy } from \"./policies/generateClientRequestIdPolicy\";\nimport { getCachedDefaultHttpClient } from \"./httpClientCache\";\nimport { logger } from \"./log\";\nimport { ndJsonPolicy } from \"./policies/ndJsonPolicy\";\nimport { proxyPolicy } from \"./policies/proxyPolicy\";\nimport { rpRegistrationPolicy } from \"./policies/rpRegistrationPolicy\";\nimport { signingPolicy } from \"./policies/signingPolicy\";\nimport { stringifyXML } from \"./util/xml\";\nimport { systemErrorRetryPolicy } from \"./policies/systemErrorRetryPolicy\";\nimport { throttlingRetryPolicy } from \"./policies/throttlingRetryPolicy\";\nimport { tracingPolicy } from \"./policies/tracingPolicy\";\n\n/**\n * Options to configure a proxy for outgoing requests (Node.js only).\n */\nexport interface ProxySettings {\n /**\n * The proxy's host address.\n */\n host: string;\n\n /**\n * The proxy host's port.\n */\n port: number;\n\n /**\n * The user name to authenticate with the proxy, if required.\n */\n username?: string;\n\n /**\n * The password to authenticate with the proxy, if required.\n */\n password?: string;\n}\n\n/**\n * An alias of {@link ProxySettings} for future use.\n */\nexport type ProxyOptions = ProxySettings;\n\n/**\n * Options to be provided while creating the client.\n */\nexport interface ServiceClientOptions {\n /**\n * An array of factories which get called to create the RequestPolicy pipeline used to send a HTTP\n * request on the wire, or a function that takes in the defaultRequestPolicyFactories and returns\n * the requestPolicyFactories that will be used.\n */\n requestPolicyFactories?:\n | RequestPolicyFactory[]\n | ((defaultRequestPolicyFactories: RequestPolicyFactory[]) => void | RequestPolicyFactory[]);\n /**\n * The HttpClient that will be used to send HTTP requests.\n */\n httpClient?: HttpClient;\n /**\n * The HttpPipelineLogger that can be used to debug RequestPolicies within the HTTP pipeline.\n */\n httpPipelineLogger?: HttpPipelineLogger;\n /**\n * If set to true, turn off the default retry policy.\n */\n noRetryPolicy?: boolean;\n /**\n * Gets or sets the retry timeout in seconds for AutomaticRPRegistration. Default value is 30.\n */\n rpRegistrationRetryTimeout?: number;\n /**\n * Whether or not to generate a client request ID header for each HTTP request.\n */\n generateClientRequestIdHeader?: boolean;\n /**\n * Whether to include credentials in CORS requests in the browser.\n * See https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials for more information.\n */\n withCredentials?: boolean;\n /**\n * If specified, a GenerateRequestIdPolicy will be added to the HTTP pipeline that will add a\n * header to all outgoing requests with this header name and a random UUID as the request ID.\n */\n clientRequestIdHeaderName?: string;\n /**\n * The content-types that will be associated with JSON or XML serialization.\n */\n deserializationContentTypes?: DeserializationContentTypes;\n /**\n * The header name to use for the telemetry header while sending the request. If this is not\n * specified, then \"User-Agent\" will be used when running on Node.js and \"x-ms-useragent\" will\n * be used when running in a browser.\n */\n userAgentHeaderName?: string | ((defaultUserAgentHeaderName: string) => string);\n /**\n * The string to be set to the telemetry header while sending the request, or a function that\n * takes in the default user-agent string and returns the user-agent string that will be used.\n */\n userAgent?: string | ((defaultUserAgent: string) => string);\n /**\n * Proxy settings which will be used for every HTTP request (Node.js only).\n */\n proxySettings?: ProxySettings;\n /**\n * If specified, will be used to build the BearerTokenAuthenticationPolicy.\n */\n credentialScopes?: string | string[];\n}\n\n/**\n * ServiceClient sends service requests and receives responses.\n */\nexport class ServiceClient {\n /**\n * If specified, this is the base URI that requests will be made against for this ServiceClient.\n * If it is not specified, then all OperationSpecs must contain a baseUrl property.\n */\n protected baseUri?: string;\n\n /**\n * The default request content type for the service.\n * Used if no requestContentType is present on an OperationSpec.\n */\n protected requestContentType?: string;\n\n /**\n * The HTTP client that will be used to send requests.\n */\n private readonly _httpClient: HttpClient;\n private readonly _requestPolicyOptions: RequestPolicyOptions;\n\n private readonly _requestPolicyFactories: RequestPolicyFactory[];\n private readonly _withCredentials: boolean;\n\n /**\n * The ServiceClient constructor\n * @param credentials - The credentials used for authentication with the service.\n * @param options - The service client options that govern the behavior of the client.\n */\n constructor(\n credentials?: TokenCredential | ServiceClientCredentials,\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options */\n options?: ServiceClientOptions\n ) {\n if (!options) {\n options = {};\n }\n\n this._withCredentials = options.withCredentials || false;\n this._httpClient = options.httpClient || getCachedDefaultHttpClient();\n this._requestPolicyOptions = new RequestPolicyOptions(options.httpPipelineLogger);\n\n let requestPolicyFactories: RequestPolicyFactory[];\n if (Array.isArray(options.requestPolicyFactories)) {\n logger.info(\"ServiceClient: using custom request policies\");\n requestPolicyFactories = options.requestPolicyFactories;\n } else {\n let authPolicyFactory: RequestPolicyFactory | undefined = undefined;\n if (isTokenCredential(credentials)) {\n logger.info(\n \"ServiceClient: creating bearer token authentication policy from provided credentials\"\n );\n // Create a wrapped RequestPolicyFactory here so that we can provide the\n // correct scope to the BearerTokenAuthenticationPolicy at the first time\n // one is requested. This is needed because generated ServiceClient\n // implementations do not set baseUri until after ServiceClient's constructor\n // is finished, leaving baseUri empty at the time when it is needed to\n // build the correct scope name.\n const wrappedPolicyFactory: () => RequestPolicyFactory = () => {\n let bearerTokenPolicyFactory: RequestPolicyFactory | undefined = undefined;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const serviceClient = this;\n const serviceClientOptions = options;\n return {\n create(nextPolicy: RequestPolicy, createOptions: RequestPolicyOptions): RequestPolicy {\n const credentialScopes = getCredentialScopes(\n serviceClientOptions,\n serviceClient.baseUri\n );\n\n if (!credentialScopes) {\n throw new Error(\n `When using credential, the ServiceClient must contain a baseUri or a credentialScopes in ServiceClientOptions. Unable to create a bearerTokenAuthenticationPolicy`\n );\n }\n\n if (bearerTokenPolicyFactory === undefined || bearerTokenPolicyFactory === null) {\n bearerTokenPolicyFactory = bearerTokenAuthenticationPolicy(\n credentials,\n credentialScopes\n );\n }\n\n return bearerTokenPolicyFactory.create(nextPolicy, createOptions);\n },\n };\n };\n\n authPolicyFactory = wrappedPolicyFactory();\n } else if (credentials && typeof credentials.signRequest === \"function\") {\n logger.info(\"ServiceClient: creating signing policy from provided credentials\");\n authPolicyFactory = signingPolicy(credentials);\n } else if (credentials !== undefined && credentials !== null) {\n throw new Error(\"The credentials argument must implement the TokenCredential interface\");\n }\n\n logger.info(\"ServiceClient: using default request policies\");\n requestPolicyFactories = createDefaultRequestPolicyFactories(authPolicyFactory, options);\n if (options.requestPolicyFactories) {\n // options.requestPolicyFactories can also be a function that manipulates\n // the default requestPolicyFactories array\n const newRequestPolicyFactories: void | RequestPolicyFactory[] =\n options.requestPolicyFactories(requestPolicyFactories);\n if (newRequestPolicyFactories) {\n requestPolicyFactories = newRequestPolicyFactories;\n }\n }\n }\n this._requestPolicyFactories = requestPolicyFactories;\n }\n\n /**\n * Send the provided httpRequest.\n */\n sendRequest(options: RequestPrepareOptions | WebResourceLike): Promise {\n if (options === null || options === undefined || typeof options !== \"object\") {\n throw new Error(\"options cannot be null or undefined and it must be of type object.\");\n }\n\n let httpRequest: WebResourceLike;\n try {\n if (isWebResourceLike(options)) {\n options.validateRequestProperties();\n httpRequest = options;\n } else {\n httpRequest = new WebResource();\n httpRequest = httpRequest.prepare(options);\n }\n } catch (error: any) {\n return Promise.reject(error);\n }\n\n let httpPipeline: RequestPolicy = this._httpClient;\n if (this._requestPolicyFactories && this._requestPolicyFactories.length > 0) {\n for (let i = this._requestPolicyFactories.length - 1; i >= 0; --i) {\n httpPipeline = this._requestPolicyFactories[i].create(\n httpPipeline,\n this._requestPolicyOptions\n );\n }\n }\n return httpPipeline.sendRequest(httpRequest);\n }\n\n /**\n * Send an HTTP request that is populated using the provided OperationSpec.\n * @param operationArguments - The arguments that the HTTP request's templated values will be populated from.\n * @param operationSpec - The OperationSpec to use to populate the httpRequest.\n * @param callback - The callback to call when the response is received.\n */\n async sendOperationRequest(\n operationArguments: OperationArguments,\n operationSpec: OperationSpec,\n callback?: ServiceCallback\n ): Promise {\n if (typeof operationArguments.options === \"function\") {\n callback = operationArguments.options;\n operationArguments.options = undefined;\n }\n\n const serializerOptions = operationArguments.options?.serializerOptions;\n const httpRequest: WebResourceLike = new WebResource();\n\n let result: Promise;\n try {\n const baseUri: string | undefined = operationSpec.baseUrl || this.baseUri;\n if (!baseUri) {\n throw new Error(\n \"If operationSpec.baseUrl is not specified, then the ServiceClient must have a baseUri string property that contains the base URL to use.\"\n );\n }\n\n httpRequest.method = operationSpec.httpMethod;\n httpRequest.operationSpec = operationSpec;\n\n const requestUrl: URLBuilder = URLBuilder.parse(baseUri);\n if (operationSpec.path) {\n requestUrl.appendPath(operationSpec.path);\n }\n if (operationSpec.urlParameters && operationSpec.urlParameters.length > 0) {\n for (const urlParameter of operationSpec.urlParameters) {\n let urlParameterValue: string = getOperationArgumentValueFromParameter(\n this,\n operationArguments,\n urlParameter,\n operationSpec.serializer\n );\n urlParameterValue = operationSpec.serializer.serialize(\n urlParameter.mapper,\n urlParameterValue,\n getPathStringFromParameter(urlParameter),\n serializerOptions\n );\n if (!urlParameter.skipEncoding) {\n urlParameterValue = encodeURIComponent(urlParameterValue);\n }\n requestUrl.replaceAll(\n `{${urlParameter.mapper.serializedName || getPathStringFromParameter(urlParameter)}}`,\n urlParameterValue\n );\n }\n }\n if (operationSpec.queryParameters && operationSpec.queryParameters.length > 0) {\n for (const queryParameter of operationSpec.queryParameters) {\n let queryParameterValue: any = getOperationArgumentValueFromParameter(\n this,\n operationArguments,\n queryParameter,\n operationSpec.serializer\n );\n if (queryParameterValue !== undefined && queryParameterValue !== null) {\n queryParameterValue = operationSpec.serializer.serialize(\n queryParameter.mapper,\n queryParameterValue,\n getPathStringFromParameter(queryParameter),\n serializerOptions\n );\n if (\n queryParameter.collectionFormat !== undefined &&\n queryParameter.collectionFormat !== null\n ) {\n if (queryParameter.collectionFormat === QueryCollectionFormat.Multi) {\n if (queryParameterValue.length === 0) {\n // The collection is empty, no need to try serializing the current queryParam\n continue;\n } else {\n for (const index in queryParameterValue) {\n const item = queryParameterValue[index];\n queryParameterValue[index] =\n item === undefined || item === null ? \"\" : item.toString();\n }\n }\n } else if (\n queryParameter.collectionFormat === QueryCollectionFormat.Ssv ||\n queryParameter.collectionFormat === QueryCollectionFormat.Tsv\n ) {\n queryParameterValue = queryParameterValue.join(queryParameter.collectionFormat);\n }\n }\n if (!queryParameter.skipEncoding) {\n if (Array.isArray(queryParameterValue)) {\n for (const index in queryParameterValue) {\n if (\n queryParameterValue[index] !== undefined &&\n queryParameterValue[index] !== null\n ) {\n queryParameterValue[index] = encodeURIComponent(queryParameterValue[index]);\n }\n }\n } else {\n queryParameterValue = encodeURIComponent(queryParameterValue);\n }\n }\n if (\n queryParameter.collectionFormat !== undefined &&\n queryParameter.collectionFormat !== null &&\n queryParameter.collectionFormat !== QueryCollectionFormat.Multi &&\n queryParameter.collectionFormat !== QueryCollectionFormat.Ssv &&\n queryParameter.collectionFormat !== QueryCollectionFormat.Tsv\n ) {\n queryParameterValue = queryParameterValue.join(queryParameter.collectionFormat);\n }\n requestUrl.setQueryParameter(\n queryParameter.mapper.serializedName || getPathStringFromParameter(queryParameter),\n queryParameterValue\n );\n }\n }\n }\n httpRequest.url = requestUrl.toString();\n\n const contentType = operationSpec.contentType || this.requestContentType;\n if (contentType && operationSpec.requestBody) {\n httpRequest.headers.set(\"Content-Type\", contentType);\n }\n\n if (operationSpec.headerParameters) {\n for (const headerParameter of operationSpec.headerParameters) {\n let headerValue: any = getOperationArgumentValueFromParameter(\n this,\n operationArguments,\n headerParameter,\n operationSpec.serializer\n );\n if (headerValue !== undefined && headerValue !== null) {\n headerValue = operationSpec.serializer.serialize(\n headerParameter.mapper,\n headerValue,\n getPathStringFromParameter(headerParameter),\n serializerOptions\n );\n const headerCollectionPrefix = (headerParameter.mapper as DictionaryMapper)\n .headerCollectionPrefix;\n if (headerCollectionPrefix) {\n for (const key of Object.keys(headerValue)) {\n httpRequest.headers.set(headerCollectionPrefix + key, headerValue[key]);\n }\n } else {\n httpRequest.headers.set(\n headerParameter.mapper.serializedName ||\n getPathStringFromParameter(headerParameter),\n headerValue\n );\n }\n }\n }\n }\n\n const options: RequestOptionsBase | undefined = operationArguments.options;\n if (options) {\n if (options.customHeaders) {\n for (const customHeaderName in options.customHeaders) {\n httpRequest.headers.set(customHeaderName, options.customHeaders[customHeaderName]);\n }\n }\n\n if (options.abortSignal) {\n httpRequest.abortSignal = options.abortSignal;\n }\n\n if (options.timeout) {\n httpRequest.timeout = options.timeout;\n }\n\n if (options.onUploadProgress) {\n httpRequest.onUploadProgress = options.onUploadProgress;\n }\n\n if (options.onDownloadProgress) {\n httpRequest.onDownloadProgress = options.onDownloadProgress;\n }\n\n if (options.spanOptions) {\n // By passing spanOptions if they exist at runtime, we're backwards compatible with @azure/core-tracing@preview.13 and earlier.\n (httpRequest as any).spanOptions = options.spanOptions;\n }\n\n if (options.tracingContext) {\n httpRequest.tracingContext = options.tracingContext;\n }\n\n if (options.shouldDeserialize !== undefined && options.shouldDeserialize !== null) {\n httpRequest.shouldDeserialize = options.shouldDeserialize;\n }\n }\n\n httpRequest.withCredentials = this._withCredentials;\n\n serializeRequestBody(this, httpRequest, operationArguments, operationSpec);\n\n if (httpRequest.streamResponseStatusCodes === undefined) {\n httpRequest.streamResponseStatusCodes = getStreamResponseStatusCodes(operationSpec);\n }\n\n let rawResponse: HttpOperationResponse;\n let sendRequestError;\n try {\n rawResponse = await this.sendRequest(httpRequest);\n } catch (error: any) {\n sendRequestError = error;\n }\n if (sendRequestError) {\n if (sendRequestError.response) {\n sendRequestError.details = flattenResponse(\n sendRequestError.response,\n operationSpec.responses[sendRequestError.statusCode] ||\n operationSpec.responses[\"default\"]\n );\n }\n result = Promise.reject(sendRequestError);\n } else {\n result = Promise.resolve(\n flattenResponse(rawResponse!, operationSpec.responses[rawResponse!.status])\n );\n }\n } catch (error: any) {\n result = Promise.reject(error);\n }\n\n const cb = callback;\n if (cb) {\n result\n .then((res) => cb(null, res._response.parsedBody, res._response.request, res._response))\n .catch((err) => cb(err));\n }\n\n return result;\n }\n}\n\nexport function serializeRequestBody(\n serviceClient: ServiceClient,\n httpRequest: WebResourceLike,\n operationArguments: OperationArguments,\n operationSpec: OperationSpec\n): void {\n const serializerOptions = operationArguments.options?.serializerOptions ?? {};\n const updatedOptions: Required = {\n rootName: serializerOptions.rootName ?? \"\",\n includeRoot: serializerOptions.includeRoot ?? false,\n xmlCharKey: serializerOptions.xmlCharKey ?? XML_CHARKEY,\n };\n\n const xmlCharKey = serializerOptions.xmlCharKey;\n if (operationSpec.requestBody && operationSpec.requestBody.mapper) {\n httpRequest.body = getOperationArgumentValueFromParameter(\n serviceClient,\n operationArguments,\n operationSpec.requestBody,\n operationSpec.serializer\n );\n\n const bodyMapper = operationSpec.requestBody.mapper;\n const { required, xmlName, xmlElementName, serializedName, xmlNamespace, xmlNamespacePrefix } =\n bodyMapper;\n const typeName = bodyMapper.type.name;\n\n try {\n if ((httpRequest.body !== undefined && httpRequest.body !== null) || required) {\n const requestBodyParameterPathString: string = getPathStringFromParameter(\n operationSpec.requestBody\n );\n httpRequest.body = operationSpec.serializer.serialize(\n bodyMapper,\n httpRequest.body,\n requestBodyParameterPathString,\n updatedOptions\n );\n\n const isStream = typeName === MapperType.Stream;\n\n if (operationSpec.isXML) {\n const xmlnsKey = xmlNamespacePrefix ? `xmlns:${xmlNamespacePrefix}` : \"xmlns\";\n const value = getXmlValueWithNamespace(\n xmlNamespace,\n xmlnsKey,\n typeName,\n httpRequest.body,\n updatedOptions\n );\n if (typeName === MapperType.Sequence) {\n httpRequest.body = stringifyXML(\n utils.prepareXMLRootList(\n value,\n xmlElementName || xmlName || serializedName!,\n xmlnsKey,\n xmlNamespace\n ),\n {\n rootName: xmlName || serializedName,\n xmlCharKey,\n }\n );\n } else if (!isStream) {\n httpRequest.body = stringifyXML(value, {\n rootName: xmlName || serializedName,\n xmlCharKey,\n });\n }\n } else if (\n typeName === MapperType.String &&\n (operationSpec.contentType?.match(\"text/plain\") || operationSpec.mediaType === \"text\")\n ) {\n // the String serializer has validated that request body is a string\n // so just send the string.\n return;\n } else if (!isStream) {\n httpRequest.body = JSON.stringify(httpRequest.body);\n }\n }\n } catch (error: any) {\n throw new Error(\n `Error \"${error.message}\" occurred in serializing the payload - ${JSON.stringify(\n serializedName,\n undefined,\n \" \"\n )}.`\n );\n }\n } else if (operationSpec.formDataParameters && operationSpec.formDataParameters.length > 0) {\n httpRequest.formData = {};\n for (const formDataParameter of operationSpec.formDataParameters) {\n const formDataParameterValue: any = getOperationArgumentValueFromParameter(\n serviceClient,\n operationArguments,\n formDataParameter,\n operationSpec.serializer\n );\n if (formDataParameterValue !== undefined && formDataParameterValue !== null) {\n const formDataParameterPropertyName: string =\n formDataParameter.mapper.serializedName || getPathStringFromParameter(formDataParameter);\n httpRequest.formData[formDataParameterPropertyName] = operationSpec.serializer.serialize(\n formDataParameter.mapper,\n formDataParameterValue,\n getPathStringFromParameter(formDataParameter),\n updatedOptions\n );\n }\n }\n }\n}\n\n/**\n * Adds an xml namespace to the xml serialized object if needed, otherwise it just returns the value itself\n */\nfunction getXmlValueWithNamespace(\n xmlNamespace: string | undefined,\n xmlnsKey: string,\n typeName: string,\n serializedValue: any,\n options: Required\n): any {\n // Composite and Sequence schemas already got their root namespace set during serialization\n // We just need to add xmlns to the other schema types\n if (xmlNamespace && ![\"Composite\", \"Sequence\", \"Dictionary\"].includes(typeName)) {\n const result: any = {};\n result[options.xmlCharKey] = serializedValue;\n result[XML_ATTRKEY] = { [xmlnsKey]: xmlNamespace };\n return result;\n }\n\n return serializedValue;\n}\n\nfunction getValueOrFunctionResult(\n value: undefined | string | ((defaultValue: string) => string),\n defaultValueCreator: () => string\n): string {\n let result: string;\n if (typeof value === \"string\") {\n result = value;\n } else {\n result = defaultValueCreator();\n if (typeof value === \"function\") {\n result = value(result);\n }\n }\n return result;\n}\n\nfunction createDefaultRequestPolicyFactories(\n authPolicyFactory: RequestPolicyFactory | undefined,\n options: ServiceClientOptions\n): RequestPolicyFactory[] {\n const factories: RequestPolicyFactory[] = [];\n\n if (options.generateClientRequestIdHeader) {\n factories.push(generateClientRequestIdPolicy(options.clientRequestIdHeaderName));\n }\n\n if (authPolicyFactory) {\n factories.push(authPolicyFactory);\n }\n\n const userAgentHeaderName: string = getValueOrFunctionResult(\n options.userAgentHeaderName,\n getDefaultUserAgentHeaderName\n );\n const userAgentHeaderValue: string = getValueOrFunctionResult(\n options.userAgent,\n getDefaultUserAgentValue\n );\n if (userAgentHeaderName && userAgentHeaderValue) {\n factories.push(userAgentPolicy({ key: userAgentHeaderName, value: userAgentHeaderValue }));\n }\n factories.push(redirectPolicy());\n factories.push(rpRegistrationPolicy(options.rpRegistrationRetryTimeout));\n\n if (!options.noRetryPolicy) {\n factories.push(exponentialRetryPolicy());\n factories.push(systemErrorRetryPolicy());\n factories.push(throttlingRetryPolicy());\n }\n\n factories.push(deserializationPolicy(options.deserializationContentTypes));\n\n if (isNode) {\n factories.push(proxyPolicy(options.proxySettings));\n }\n\n factories.push(logPolicy({ logger: logger.info }));\n\n return factories;\n}\n\n/**\n * Creates an HTTP pipeline based on the given options.\n * @param pipelineOptions - Defines options that are used to configure policies in the HTTP pipeline for an SDK client.\n * @param authPolicyFactory - An optional authentication policy factory to use for signing requests.\n * @returns A set of options that can be passed to create a new {@link ServiceClient}.\n */\nexport function createPipelineFromOptions(\n pipelineOptions: InternalPipelineOptions,\n authPolicyFactory?: RequestPolicyFactory\n): ServiceClientOptions {\n const requestPolicyFactories: RequestPolicyFactory[] = [];\n\n if (pipelineOptions.sendStreamingJson) {\n requestPolicyFactories.push(ndJsonPolicy());\n }\n\n let userAgentValue = undefined;\n if (pipelineOptions.userAgentOptions && pipelineOptions.userAgentOptions.userAgentPrefix) {\n const userAgentInfo: string[] = [];\n userAgentInfo.push(pipelineOptions.userAgentOptions.userAgentPrefix);\n\n // Add the default user agent value if it isn't already specified\n // by the userAgentPrefix option.\n const defaultUserAgentInfo = getDefaultUserAgentValue();\n if (userAgentInfo.indexOf(defaultUserAgentInfo) === -1) {\n userAgentInfo.push(defaultUserAgentInfo);\n }\n\n userAgentValue = userAgentInfo.join(\" \");\n }\n\n const keepAliveOptions = {\n ...DefaultKeepAliveOptions,\n ...pipelineOptions.keepAliveOptions,\n };\n\n const retryOptions = {\n ...DefaultRetryOptions,\n ...pipelineOptions.retryOptions,\n };\n\n const redirectOptions = {\n ...DefaultRedirectOptions,\n ...pipelineOptions.redirectOptions,\n };\n\n if (isNode) {\n requestPolicyFactories.push(proxyPolicy(pipelineOptions.proxyOptions));\n }\n\n const deserializationOptions = {\n ...DefaultDeserializationOptions,\n ...pipelineOptions.deserializationOptions,\n };\n\n const loggingOptions: LogPolicyOptions = {\n ...pipelineOptions.loggingOptions,\n };\n\n requestPolicyFactories.push(\n tracingPolicy({ userAgent: userAgentValue }),\n keepAlivePolicy(keepAliveOptions),\n userAgentPolicy({ value: userAgentValue }),\n generateClientRequestIdPolicy(),\n deserializationPolicy(deserializationOptions.expectedContentTypes),\n throttlingRetryPolicy(),\n systemErrorRetryPolicy(),\n exponentialRetryPolicy(\n retryOptions.maxRetries,\n retryOptions.retryDelayInMs,\n retryOptions.maxRetryDelayInMs\n )\n );\n\n if (redirectOptions.handleRedirects) {\n requestPolicyFactories.push(redirectPolicy(redirectOptions.maxRetries));\n }\n\n if (authPolicyFactory) {\n requestPolicyFactories.push(authPolicyFactory);\n }\n\n requestPolicyFactories.push(logPolicy(loggingOptions));\n\n if (isNode && pipelineOptions.decompressResponse === false) {\n requestPolicyFactories.push(disableResponseDecompressionPolicy());\n }\n\n return {\n httpClient: pipelineOptions.httpClient,\n requestPolicyFactories,\n };\n}\n\nexport type PropertyParent = { [propertyName: string]: any };\n\n/**\n * Get the property parent for the property at the provided path when starting with the provided\n * parent object.\n */\nexport function getPropertyParent(parent: PropertyParent, propertyPath: string[]): PropertyParent {\n if (parent && propertyPath) {\n const propertyPathLength: number = propertyPath.length;\n for (let i = 0; i < propertyPathLength - 1; ++i) {\n const propertyName: string = propertyPath[i];\n if (!parent[propertyName]) {\n parent[propertyName] = {};\n }\n parent = parent[propertyName];\n }\n }\n return parent;\n}\n\nfunction getOperationArgumentValueFromParameter(\n serviceClient: ServiceClient,\n operationArguments: OperationArguments,\n parameter: OperationParameter,\n serializer: Serializer\n): any {\n return getOperationArgumentValueFromParameterPath(\n serviceClient,\n operationArguments,\n parameter.parameterPath,\n parameter.mapper,\n serializer\n );\n}\n\nexport function getOperationArgumentValueFromParameterPath(\n serviceClient: ServiceClient,\n operationArguments: OperationArguments,\n parameterPath: ParameterPath,\n parameterMapper: Mapper,\n serializer: Serializer\n): any {\n let value: any;\n if (typeof parameterPath === \"string\") {\n parameterPath = [parameterPath];\n }\n const serializerOptions = operationArguments.options?.serializerOptions;\n if (Array.isArray(parameterPath)) {\n if (parameterPath.length > 0) {\n if (parameterMapper.isConstant) {\n value = parameterMapper.defaultValue;\n } else {\n let propertySearchResult: PropertySearchResult = getPropertyFromParameterPath(\n operationArguments,\n parameterPath\n );\n if (!propertySearchResult.propertyFound) {\n propertySearchResult = getPropertyFromParameterPath(serviceClient, parameterPath);\n }\n\n let useDefaultValue = false;\n if (!propertySearchResult.propertyFound) {\n useDefaultValue =\n parameterMapper.required ||\n (parameterPath[0] === \"options\" && parameterPath.length === 2);\n }\n value = useDefaultValue ? parameterMapper.defaultValue : propertySearchResult.propertyValue;\n }\n\n // Serialize just for validation purposes.\n const parameterPathString: string = getPathStringFromParameterPath(\n parameterPath,\n parameterMapper\n );\n serializer.serialize(parameterMapper, value, parameterPathString, serializerOptions);\n }\n } else {\n if (parameterMapper.required) {\n value = {};\n }\n\n for (const propertyName in parameterPath) {\n const propertyMapper: Mapper = (parameterMapper as CompositeMapper).type.modelProperties![\n propertyName\n ];\n const propertyPath: ParameterPath = parameterPath[propertyName];\n const propertyValue: any = getOperationArgumentValueFromParameterPath(\n serviceClient,\n operationArguments,\n propertyPath,\n propertyMapper,\n serializer\n );\n // Serialize just for validation purposes.\n const propertyPathString: string = getPathStringFromParameterPath(\n propertyPath,\n propertyMapper\n );\n serializer.serialize(propertyMapper, propertyValue, propertyPathString, serializerOptions);\n if (propertyValue !== undefined && propertyValue !== null) {\n if (!value) {\n value = {};\n }\n value[propertyName] = propertyValue;\n }\n }\n }\n return value;\n}\n\ninterface PropertySearchResult {\n propertyValue?: any;\n propertyFound: boolean;\n}\n\nfunction getPropertyFromParameterPath(\n parent: { [parameterName: string]: any },\n parameterPath: string[]\n): PropertySearchResult {\n const result: PropertySearchResult = { propertyFound: false };\n let i = 0;\n for (; i < parameterPath.length; ++i) {\n const parameterPathPart: string = parameterPath[i];\n // Make sure to check inherited properties too, so don't use hasOwnProperty().\n if (parent !== undefined && parent !== null && parameterPathPart in parent) {\n parent = parent[parameterPathPart];\n } else {\n break;\n }\n }\n if (i === parameterPath.length) {\n result.propertyValue = parent;\n result.propertyFound = true;\n }\n return result;\n}\n\n/**\n * Parses an {@link HttpOperationResponse} into a normalized HTTP response object ({@link RestResponse}).\n * @param _response - Wrapper object for http response.\n * @param responseSpec - Mappers for how to parse the response properties.\n * @returns - A normalized response object.\n */\nexport function flattenResponse(\n _response: HttpOperationResponse,\n responseSpec: OperationResponse | undefined\n): RestResponse {\n const parsedHeaders = _response.parsedHeaders;\n const bodyMapper = responseSpec && responseSpec.bodyMapper;\n\n const addOperationResponse = >(\n obj: T\n ): T & {\n _response: HttpOperationResponse;\n } => {\n return Object.defineProperty(obj, \"_response\", {\n value: _response,\n }) as T & {\n _response: HttpOperationResponse;\n };\n };\n\n if (bodyMapper) {\n const typeName = bodyMapper.type.name;\n if (typeName === \"Stream\") {\n return addOperationResponse({\n ...parsedHeaders,\n blobBody: _response.blobBody,\n readableStreamBody: _response.readableStreamBody,\n });\n }\n\n const modelProperties =\n (typeName === \"Composite\" && (bodyMapper as CompositeMapper).type.modelProperties) || {};\n const isPageableResponse = Object.keys(modelProperties).some(\n (k) => modelProperties[k].serializedName === \"\"\n );\n if (typeName === \"Sequence\" || isPageableResponse) {\n const arrayResponse = [...(_response.parsedBody || [])] as RestResponse & any[];\n\n for (const key of Object.keys(modelProperties)) {\n if (modelProperties[key].serializedName) {\n arrayResponse[key] = _response.parsedBody[key];\n }\n }\n\n if (parsedHeaders) {\n for (const key of Object.keys(parsedHeaders)) {\n arrayResponse[key] = parsedHeaders[key];\n }\n }\n addOperationResponse(arrayResponse);\n return arrayResponse;\n }\n\n if (typeName === \"Composite\" || typeName === \"Dictionary\") {\n return addOperationResponse({\n ...parsedHeaders,\n ..._response.parsedBody,\n });\n }\n }\n\n if (\n bodyMapper ||\n _response.request.method === \"HEAD\" ||\n utils.isPrimitiveType(_response.parsedBody)\n ) {\n // primitive body types and HEAD booleans\n return addOperationResponse({\n ...parsedHeaders,\n body: _response.parsedBody,\n });\n }\n\n return addOperationResponse({\n ...parsedHeaders,\n ..._response.parsedBody,\n });\n}\n\nfunction getCredentialScopes(\n options?: ServiceClientOptions,\n baseUri?: string\n): string | string[] | undefined {\n if (options?.credentialScopes) {\n const scopes = options.credentialScopes;\n return Array.isArray(scopes)\n ? scopes.map((scope) => new URL(scope).toString())\n : new URL(scopes).toString();\n }\n\n if (baseUri) {\n return `${baseUri}/.default`;\n }\n return undefined;\n}\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreHttp from \"@azure/core-http\";\nimport { StorageClientOptionalParams } from \"./models\";\n\nconst packageName = \"azure-storage-blob\";\nconst packageVersion = \"12.11.0\";\n\nexport class StorageClientContext extends coreHttp.ServiceClient {\n url: string;\n version: string;\n\n /**\n * Initializes a new instance of the StorageClientContext class.\n * @param url The URL of the service account, container, or blob that is the target of the desired\n * operation.\n * @param options The parameter options\n */\n constructor(url: string, options?: StorageClientOptionalParams) {\n if (url === undefined) {\n throw new Error(\"'url' cannot be null\");\n }\n\n // Initializing default values for options\n if (!options) {\n options = {};\n }\n\n if (!options.userAgent) {\n const defaultUserAgent = coreHttp.getDefaultUserAgentValue();\n options.userAgent = `${packageName}/${packageVersion} ${defaultUserAgent}`;\n }\n\n super(undefined, options);\n\n this.requestContentType = \"application/json; charset=utf-8\";\n\n this.baseUri = options.endpoint || \"{url}\";\n\n // Parameter assignments\n this.url = url;\n\n // Assigning values to Constant parameters\n this.version = options.version || \"2021-08-06\";\n }\n}\n","import { getWindow } from './dom/getWindow';\nexport const IsFocusVisibleClassName = 'ms-Fabric--isFocusVisible';\nexport const IsFocusHiddenClassName = 'ms-Fabric--isFocusHidden';\n\n/**\n * Sets the visibility of focus styling.\n *\n * By default, focus styles (the box surrounding a focused Button, for example) only show up when navigational\n * keypresses occur (through Tab, arrows, PgUp/PgDn, Home and End), and are hidden when mouse interactions occur.\n * This API provides an imperative way to turn them on/off.\n *\n * A use case might be when you have a keypress like ctrl-f6 navigate to a particular region on the page,\n * and want focus to show up.\n *\n * @param enabled - Whether to turn focus visibility on or off.\n * @param target - Optional target from which to get window in case no `providerElem` has been specified.\n * @param providerElem - Theme provider element to which the focus visibility classnames are attached. If no provider\n * element is passed in, the classnames are attached to the document body that contains `target`.\n */\nexport function setFocusVisibility(enabled: boolean, target?: Element, providerElem?: Element): void {\n let classList;\n if (providerElem) {\n classList = providerElem.classList;\n } else {\n const win = target ? getWindow(target) : getWindow();\n if (win) {\n classList = win.document.body.classList;\n }\n }\n\n if (classList) {\n classList.add(enabled ? IsFocusVisibleClassName : IsFocusHiddenClassName);\n classList.remove(enabled ? IsFocusHiddenClassName : IsFocusVisibleClassName);\n }\n}\n","export var ErrorStateIconType;\n(function (ErrorStateIconType) {\n ErrorStateIconType[ErrorStateIconType[\"DataIssue\"] = 1] = \"DataIssue\";\n ErrorStateIconType[ErrorStateIconType[\"InternetIssue\"] = 2] = \"InternetIssue\";\n ErrorStateIconType[ErrorStateIconType[\"OrangeCap\"] = 3] = \"OrangeCap\";\n ErrorStateIconType[ErrorStateIconType[\"OrangeCapAndCat\"] = 4] = \"OrangeCapAndCat\";\n})(ErrorStateIconType || (ErrorStateIconType = {}));\n//# sourceMappingURL=ErrorStateComponent.types.js.map","import { getParent } from './getParent';\n/**\n * Determines whether or not a parent element contains a given child element.\n * If `allowVirtualParents` is true, this method may return `true` if the child\n * has the parent in its virtual element hierarchy.\n *\n * @public\n */\nexport function elementContains(\n parent: HTMLElement | null,\n child: HTMLElement | null,\n allowVirtualParents: boolean = true,\n): boolean {\n let isContained = false;\n\n if (parent && child) {\n if (allowVirtualParents) {\n if (parent === child) {\n isContained = true;\n } else {\n isContained = false;\n\n while (child) {\n const nextParent: HTMLElement | null = getParent(child);\n\n if (nextParent === parent) {\n isContained = true;\n break;\n }\n\n child = nextParent;\n }\n }\n } else if (parent.contains) {\n isContained = parent.contains(child);\n }\n }\n\n return isContained;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { AbortSignalLike } from \"@azure/abort-controller\";\nimport { TracingContext } from \"./tracing\";\n\n/**\n * Represents a credential capable of providing an authentication token.\n */\nexport interface TokenCredential {\n /**\n * Gets the token provided by this credential.\n *\n * This method is called automatically by Azure SDK client libraries. You may call this method\n * directly, but you must also handle token caching and token refreshing.\n *\n * @param scopes - The list of scopes for which the token will have access.\n * @param options - The options used to configure any requests this\n * TokenCredential implementation might make.\n */\n getToken(scopes: string | string[], options?: GetTokenOptions): Promise;\n}\n\n/**\n * Defines options for TokenCredential.getToken.\n */\nexport interface GetTokenOptions {\n /**\n * The signal which can be used to abort requests.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Options used when creating and sending HTTP requests for this operation.\n */\n requestOptions?: {\n /**\n * The number of milliseconds a request can take before automatically being terminated.\n */\n timeout?: number;\n };\n /**\n * Options used when tracing is enabled.\n */\n tracingOptions?: {\n /**\n * Tracing Context for the current request.\n */\n tracingContext?: TracingContext;\n };\n\n /**\n * Allows specifying a tenantId. Useful to handle challenges that provide tenant Id hints.\n */\n tenantId?: string;\n\n /**\n * Claim details to perform the Continuous Access Evaluation authentication flow\n */\n claims?: string;\n}\n\n/**\n * Represents an access token with an expiration time.\n */\nexport interface AccessToken {\n /**\n * The access token returned by the authentication service.\n */\n token: string;\n\n /**\n * The access token's expiration timestamp in milliseconds, UNIX epoch time.\n */\n expiresOnTimestamp: number;\n}\n\n/**\n * Tests an object to determine whether it implements TokenCredential.\n *\n * @param credential - The assumed TokenCredential to be tested.\n */\nexport function isTokenCredential(credential: unknown): credential is TokenCredential {\n // Check for an object with a 'getToken' function and possibly with\n // a 'signRequest' function. We do this check to make sure that\n // a ServiceClientCredentials implementor (like TokenClientCredentials\n // in ms-rest-nodeauth) doesn't get mistaken for a TokenCredential if\n // it doesn't actually implement TokenCredential also.\n const castCredential = credential as {\n getToken: unknown;\n signRequest: unknown;\n };\n return (\n castCredential &&\n typeof castCredential.getToken === \"function\" &&\n (castCredential.signRequest === undefined || castCredential.getToken.length > 0)\n );\n}\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","import { SESSION_ID_KEY, LAST_ACTIVITY_TIME, MAX_INACTIVITY_DURATION, ACTIVITY_EVENTS, TOTAL_TABS_KEY } from './Constants';\r\n\r\nexport function getISO8601String(givenDate: Date): string {\r\n var dateString = givenDate.toISOString();\r\n var dateWithoutZulu = dateString.substring(0, dateString.length - 1);\r\n // Computing the TZ offset to GMT String base +0530 / +0800 / -0300 etc..,\r\n function z(n) { return (n < 10 ? '0' : '') + n; }\r\n var offset = new Date().getTimezoneOffset();\r\n var sign = offset < 0 ? '+' : '-';\r\n offset = Math.abs(offset);\r\n return dateWithoutZulu + sign + z(offset / 60 | 0) + z(offset % 60);\r\n}\r\n\r\nconst GUID_REGEX = /^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\r\n\r\nexport function isGUID(maybeGuid: string): boolean {\r\n let m = maybeGuid.match(/^\\s*\\(([0-9a-f-]+)\\)\\s*$/i);\r\n if (!m) m = maybeGuid.match(/^\\s*\\{([0-9a-f-]+)\\}\\s*$/i);\r\n if (!m) m = maybeGuid.match(/^\\s*([0-9a-f-]+)\\s*$/i);\r\n const s = m ? m[1] : maybeGuid;\r\n const isok = !!s.match(GUID_REGEX);\r\n\r\n if (isok)\r\n return true;\r\n\r\n return false;\r\n}\r\n\r\n\r\n////#region Guid generator\r\nexport var Guid = {\r\n create: function (format?:string) {\r\n function s4() {\r\n return Math.floor((1 + Math.random()) * 0x10000)\r\n .toString(16)\r\n .substring(1);\r\n }\r\n\r\n var tmpGuid = (format == \"N\")\r\n ? s4() + s4() + s4() + s4() + s4() + s4() + s4() + s4()\r\n : s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();\r\n return tmpGuid;\r\n },\r\n empty: function (format?:string) {\r\n if (format == \"N\") {\r\n return \"00000000000000000000000000000000\";\r\n } else {\r\n return \"00000000-0000-0000-0000-000000000000\";\r\n }\r\n }\r\n};\r\n////#endregion\r\n\r\n\r\nexport class SessionManager { \r\n //This will be used if the localstorage is not available\r\n private static sessionId: string = null;\r\n private static refreshTimer: number;\r\n\r\n static init(){\r\n Logger.log(\"Session Manager init called\");\r\n //Subscribe to all the activities which ensures that the logged in user is active\r\n try {\r\n SessionManager.addEventListeners();\r\n }\r\n catch(error){\r\n Logger.log(\"Error occured while adding the eventlisteners, this might be a case in mobile application \"+error);\r\n }\r\n try{\r\n let tabs = Number(Storage.getItem(TOTAL_TABS_KEY));\r\n if(tabs == null || tabs < 1){\r\n //This is the first tab opened\r\n Storage.setItem(TOTAL_TABS_KEY, \"1\");\r\n SessionManager.refreshSession();\r\n Storage.setItem(LAST_ACTIVITY_TIME, Date.now().toString());\r\n Logger.log(\"First tab opened\");\r\n }\r\n else{\r\n //This is in case of multiple tab scenario\r\n if(SessionManager.timeHasElapsed()){\r\n SessionManager.refreshSession();\r\n }\r\n else {\r\n SessionManager.loadSessionFromStorage();\r\n }\r\n Storage.setItem(TOTAL_TABS_KEY, (tabs+1).toString());\r\n Storage.setItem(LAST_ACTIVITY_TIME, Date.now().toString());\r\n SessionManager.setSessionId(this.getValidSessionId());\r\n Logger.log(\"More than one tab opened!!! increasing the tab count in storage\");\r\n }\r\n }\r\n catch(Exception){\r\n Logger.log(\"There is a exception in SessionManager init: \"+Exception);\r\n } \r\n\r\n SessionManager.refreshTimer = Number(setInterval(SessionManager.checkSessionValidity, MAX_INACTIVITY_DURATION));\r\n}\r\n\r\nstatic checkSessionValidity(){\r\n if(SessionManager.timeHasElapsed()){\r\n SessionManager.refreshSession();\r\n }\r\n clearInterval(SessionManager.refreshTimer);\r\n}\r\n\r\nstatic addEventListeners(){\r\n ACTIVITY_EVENTS.forEach(function(eventName) {\r\n Logger.log(\"The document object exists, registering the events callback for activity events\");\r\n addEventListener(eventName, SessionManager.activity, true); \r\n //Event before the page is unloaded so that the sessionId is removed from the localstorage\r\n addEventListener('beforeunload', SessionManager.removeSessionFromStorage, true); \r\n });\r\n}\r\n\r\n static removeEventListeners(){\r\n ACTIVITY_EVENTS.forEach(function(eventName) {\r\n removeEventListener(eventName, SessionManager.activity, true);\r\n });\r\n}\r\n\r\n static removeSessionFromStorage(){\r\n SessionManager.removeEventListeners();\r\n //Removing all the session details if last tab is getting closed\r\n if(Storage.storageExists()){\r\n if(Number(Storage.getItem(TOTAL_TABS_KEY)) == 1){\r\n Storage.removeItem(TOTAL_TABS_KEY);\r\n Storage.removeItem(SESSION_ID_KEY);\r\n Storage.removeItem(LAST_ACTIVITY_TIME);\r\n }\r\n else\r\n {\r\n //Decrement the total tab numbers count if there is a unload event\r\n let tabs = Number(Storage.getItem(TOTAL_TABS_KEY)) - 1;\r\n Storage.setItem(TOTAL_TABS_KEY, tabs.toString());\r\n }\r\n } \r\n }\r\n \r\n /**\r\n * The activity() function is called whenever there is any changes made on the screen, ACTIVITY_EVENTS includes list of events which trigger this\r\n */\r\n static activity(){ \r\n try{ \r\n if(!SessionManager.sessionIdIsValid() || SessionManager.timeHasElapsed()){\r\n //If the user is in-active for more than MAX_INACTIVITY_DURATION then we create a new session id\r\n SessionManager.refreshSession(); \r\n } \r\n }\r\n catch(Exception){\r\n Logger.log(\"There was a exception in Activity method: \"+Exception);\r\n }\r\n Storage.setItem(LAST_ACTIVITY_TIME, Date.now().toString());\r\n clearInterval(SessionManager.refreshTimer);\r\n SessionManager.refreshTimer = Number(setInterval(SessionManager.checkSessionValidity, MAX_INACTIVITY_DURATION));\r\n Logger.log(\"timer is reset again\");\r\n }\r\n\r\n static getValidSessionId(){\r\n if(SessionManager.timeHasElapsed() || !SessionManager.sessionIdIsValid()){\r\n SessionManager.refreshSession();\r\n }\r\n return SessionManager.sessionId;\r\n }\r\n\r\n static sessionIdIsValid(){\r\n if(SessionManager.sessionId != null && SessionManager.sessionId != undefined){\r\n return true;\r\n } \r\n return false; \r\n }\r\n\r\n static timeHasElapsed(){\r\n if(Storage.storageExists()){\r\n let now = Date.now();\r\n let timespan = now - Number(Storage.getItem(LAST_ACTIVITY_TIME));\r\n Logger.log(\"Time difference: \"+timespan);\r\n return timespan >= MAX_INACTIVITY_DURATION;\r\n } \r\n }\r\n\r\n static loadSessionFromStorage(){\r\n if(Storage.storageExists()){\r\n SessionManager.setSessionId(Storage.getItem(SESSION_ID_KEY));\r\n }\r\n }\r\n\r\n static refreshSession(){\r\n let newSessionId = Guid.create();\r\n SessionManager.setSessionId(newSessionId);\r\n Storage.setItem(LAST_ACTIVITY_TIME, Date.now().toString());\r\n }\r\n\r\n static setSessionId(sessionId){\r\n SessionManager.sessionId = sessionId;\r\n if(Storage.storageExists()){\r\n Storage.setItem(SESSION_ID_KEY, sessionId);\r\n Storage.setItem(LAST_ACTIVITY_TIME, Date.now().toString());\r\n }\r\n }\r\n}\r\n\r\n\r\n/**\r\n * Storage functions localstorage/sessionstorage, mobile scenarios usually do not have mutliple tabs \r\n * Mobile scenarios will be using the static variables of the SessionManager class\r\n */\r\nexport class Storage{\r\n static setItem(key: string, value: string){\r\n let verifiedStorage = Storage.getVerifiedStorage();\r\n if(verifiedStorage!=null){\r\n verifiedStorage.setItem(key, value);\r\n }\r\n }\r\n\r\n static getItem(key:string){\r\n let verifiedStorage = Storage.getVerifiedStorage();\r\n if(verifiedStorage!=null){\r\n return verifiedStorage.getItem(key);\r\n } \r\n }\r\n\r\n static removeItem(key: string){\r\n let verifiedStorage = Storage.getVerifiedStorage();\r\n if(verifiedStorage!=null){\r\n verifiedStorage.removeItem(key);\r\n } \r\n }\r\n\r\n static getVerifiedStorage(): any{\r\n //Preferred to have localstorage so that multiple tab will have the same session id\r\n let verifiedStorage = null;\r\n try{ \r\n if(localStorage!=null) {\r\n Logger.log(\"Found local storage!!!\");\r\n verifiedStorage = localStorage;\r\n } \r\n if(verifiedStorage == null && sessionStorage!=null) {\r\n Logger.log(\"local storage not found session id cannot be stored across the tabs\");\r\n verifiedStorage = sessionStorage;\r\n } \r\n //Mostly incase of mobile scenario where sessionId is handled by static program variable \r\n if(verifiedStorage == null){\r\n Logger.log(\"No suitable storage available, sessionID may not be handled properly\"); \r\n } \r\n return verifiedStorage;\r\n }\r\n catch(Exception){\r\n Logger.log(\"There was a exception: \"+Exception);\r\n return null;\r\n }\r\n }\r\n\r\n static storageExists(): boolean{\r\n try{ \r\n if(localStorage!=null || sessionStorage!=null) {\r\n return true;\r\n } \r\n else{\r\n return false;\r\n }\r\n }\r\n catch(Exception){\r\n Logger.log(\"There was a exception: \"+Exception); \r\n return false;\r\n }\r\n }\r\n}\r\n\r\n\r\n/**\r\n * Helper functions to display the console logs\r\n */\r\nexport class Logger{\r\n static enableDevLogs: boolean = false;\r\n static setDevConfig(enableLogs: boolean){\r\n this.enableDevLogs = enableLogs;\r\n }\r\n static log(message: string){\r\n if(this.enableDevLogs){\r\n console.log(message);\r\n }\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { isFunction, getDocument } from \"@microsoft/applicationinsights-core-js\";\r\nexport function createDomEvent(eventName) {\r\n var event = null;\r\n if (isFunction(Event)) { // Use Event constructor when available\r\n event = new Event(eventName);\r\n }\r\n else { // Event has no constructor in IE\r\n var doc = getDocument();\r\n if (doc && doc.createEvent) {\r\n event = doc.createEvent(\"Event\");\r\n event.initEvent(eventName, true, true);\r\n }\r\n }\r\n return event;\r\n}\r\n//# sourceMappingURL=DomHelperFuncs.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { isNullOrUndefined, objForEachKey, throwError, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strIkey, strNotSpecified } from \"./Constants\";\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { _DYN_NAME } from \"./__DynamicConstants\";\r\n/**\r\n * Create a telemetry item that the 1DS channel understands\r\n * @param item domain specific properties; part B\r\n * @param baseType telemetry item type. ie PageViewData\r\n * @param envelopeName name of the envelope. ie Microsoft.ApplicationInsights..PageView\r\n * @param customProperties user defined custom properties; part C\r\n * @param systemProperties system properties that are added to the context; part A\r\n * @returns ITelemetryItem that is sent to channel\r\n */\r\nexport function createTelemetryItem(item, baseType, envelopeName, logger, customProperties, systemProperties) {\r\n var _a;\r\n envelopeName = dataSanitizeString(logger, envelopeName) || strNotSpecified;\r\n if (isNullOrUndefined(item) ||\r\n isNullOrUndefined(baseType) ||\r\n isNullOrUndefined(envelopeName)) {\r\n throwError(\"Input doesn't contain all required fields\");\r\n }\r\n var iKey = \"\";\r\n if (item[strIkey]) {\r\n iKey = item[strIkey];\r\n delete item[strIkey];\r\n }\r\n var telemetryItem = (_a = {},\r\n _a[_DYN_NAME /* @min:name */] = envelopeName,\r\n _a.time = toISOString(new Date()),\r\n _a.iKey = iKey,\r\n _a.ext = systemProperties ? systemProperties : {},\r\n _a.tags = [],\r\n _a.data = {},\r\n _a.baseType = baseType,\r\n _a.baseData = item // Part B\r\n ,\r\n _a);\r\n // Part C\r\n if (!isNullOrUndefined(customProperties)) {\r\n objForEachKey(customProperties, function (prop, value) {\r\n telemetryItem.data[prop] = value;\r\n });\r\n }\r\n return telemetryItem;\r\n}\r\nvar TelemetryItemCreator = /** @class */ (function () {\r\n function TelemetryItemCreator() {\r\n }\r\n /**\r\n * Create a telemetry item that the 1DS channel understands\r\n * @param item domain specific properties; part B\r\n * @param baseType telemetry item type. ie PageViewData\r\n * @param envelopeName name of the envelope. ie Microsoft.ApplicationInsights..PageView\r\n * @param customProperties user defined custom properties; part C\r\n * @param systemProperties system properties that are added to the context; part A\r\n * @returns ITelemetryItem that is sent to channel\r\n */\r\n TelemetryItemCreator.create = createTelemetryItem;\r\n return TelemetryItemCreator;\r\n}());\r\nexport { TelemetryItemCreator };\r\n//# sourceMappingURL=TelemetryItemCreator.js.map","/* eslint-disable no-console */\n\nlet _warningCallback: ((message: string) => void) | undefined = undefined;\n\nexport type ISettingsMap = { [P in keyof T]?: string };\n\n/**\n * Sends a warning to console, if the api is present.\n *\n * @public\n * @param message - Warning message.\n */\nexport function warn(message: string): void {\n if (_warningCallback && process.env.NODE_ENV !== 'production') {\n _warningCallback(message);\n } else if (console && console.warn) {\n console.warn(message);\n }\n}\n\n/**\n * Configures the warning callback. Passing in undefined will reset it to use the default\n * console.warn function.\n *\n * @public\n * @param warningCallback - Callback to override the generated warnings.\n */\nexport function setWarningCallback(warningCallback?: (message: string) => void): void {\n _warningCallback = warningCallback;\n}\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { StringUtils } from \"../utils/StringUtils\";\nimport { LoggerOptions } from \"../config/ClientConfiguration\";\nimport { Constants } from \"../utils/Constants\";\n\n/**\n * Options for logger messages.\n */\nexport type LoggerMessageOptions = {\n logLevel: LogLevel,\n containsPii?: boolean,\n context?: string,\n correlationId?: string\n};\n\n/**\n * Log message level.\n */\nexport enum LogLevel {\n Error,\n Warning,\n Info,\n Verbose,\n Trace\n}\n\n/**\n * Callback to send the messages to.\n */\nexport interface ILoggerCallback {\n (level: LogLevel, message: string, containsPii: boolean): void;\n}\n\n/**\n * Class which facilitates logging of messages to a specific place.\n */\nexport class Logger {\n\n // Correlation ID for request, usually set by user.\n private correlationId: string;\n\n // Current log level, defaults to info.\n private level: LogLevel = LogLevel.Info;\n\n // Boolean describing whether PII logging is allowed.\n private piiLoggingEnabled: boolean;\n\n // Callback to send messages to.\n private localCallback: ILoggerCallback;\n\n // Package name implementing this logger\n private packageName: string;\n\n // Package version implementing this logger\n private packageVersion: string;\n\n constructor(loggerOptions: LoggerOptions, packageName?: string, packageVersion?: string) {\n const defaultLoggerCallback = () => {\n return;\n };\n this.localCallback = loggerOptions.loggerCallback || defaultLoggerCallback;\n this.piiLoggingEnabled = loggerOptions.piiLoggingEnabled || false;\n this.level = typeof(loggerOptions.logLevel) === \"number\" ? loggerOptions.logLevel : LogLevel.Info;\n this.correlationId = loggerOptions.correlationId || Constants.EMPTY_STRING;\n\n this.packageName = packageName || Constants.EMPTY_STRING;\n this.packageVersion = packageVersion || Constants.EMPTY_STRING;\n }\n\n /**\n * Create new Logger with existing configurations.\n */\n public clone(packageName: string, packageVersion: string, correlationId?: string): Logger {\n return new Logger({loggerCallback: this.localCallback, piiLoggingEnabled: this.piiLoggingEnabled, logLevel: this.level, correlationId: correlationId || this.correlationId}, packageName, packageVersion);\n }\n\n /**\n * Log message with required options.\n */\n private logMessage(logMessage: string, options: LoggerMessageOptions): void {\n if ((options.logLevel > this.level) || (!this.piiLoggingEnabled && options.containsPii)) {\n return;\n }\n const timestamp = new Date().toUTCString();\n\n // Add correlationId to logs if set, correlationId provided on log messages take precedence\n let logHeader: string;\n if (!StringUtils.isEmpty(options.correlationId)) {\n logHeader = `[${timestamp}] : [${options.correlationId}]`;\n } else if (!StringUtils.isEmpty(this.correlationId)) {\n logHeader = `[${timestamp}] : [${this.correlationId}]`;\n } else {\n logHeader = `[${timestamp}]`;\n }\n\n const log = `${logHeader} : ${this.packageName}@${this.packageVersion} : ${LogLevel[options.logLevel]} - ${logMessage}`;\n // debug(`msal:${LogLevel[options.logLevel]}${options.containsPii ? \"-Pii\": Constants.EMPTY_STRING}${options.context ? `:${options.context}` : Constants.EMPTY_STRING}`)(logMessage);\n this.executeCallback(options.logLevel, log, options.containsPii || false);\n }\n\n /**\n * Execute callback with message.\n */\n executeCallback(level: LogLevel, message: string, containsPii: boolean): void {\n if (this.localCallback) {\n this.localCallback(level, message, containsPii);\n }\n }\n\n /**\n * Logs error messages.\n */\n error(message: string, correlationId?: string): void {\n this.logMessage(message, {\n logLevel: LogLevel.Error,\n containsPii: false,\n correlationId: correlationId || Constants.EMPTY_STRING\n });\n }\n\n /**\n * Logs error messages with PII.\n */\n errorPii(message: string, correlationId?: string): void {\n this.logMessage(message, {\n logLevel: LogLevel.Error,\n containsPii: true,\n correlationId: correlationId || Constants.EMPTY_STRING\n });\n }\n\n /**\n * Logs warning messages.\n */\n warning(message: string, correlationId?: string): void {\n this.logMessage(message, {\n logLevel: LogLevel.Warning,\n containsPii: false,\n correlationId: correlationId || Constants.EMPTY_STRING\n });\n }\n\n /**\n * Logs warning messages with PII.\n */\n warningPii(message: string, correlationId?: string): void {\n this.logMessage(message, {\n logLevel: LogLevel.Warning,\n containsPii: true,\n correlationId: correlationId || Constants.EMPTY_STRING\n });\n }\n\n /**\n * Logs info messages.\n */\n info(message: string, correlationId?: string): void {\n this.logMessage(message, {\n logLevel: LogLevel.Info,\n containsPii: false,\n correlationId: correlationId || Constants.EMPTY_STRING\n });\n }\n\n /**\n * Logs info messages with PII.\n */\n infoPii(message: string, correlationId?: string): void {\n this.logMessage(message, {\n logLevel: LogLevel.Info,\n containsPii: true,\n correlationId: correlationId || Constants.EMPTY_STRING\n });\n }\n\n /**\n * Logs verbose messages.\n */\n verbose(message: string, correlationId?: string): void {\n this.logMessage(message, {\n logLevel: LogLevel.Verbose,\n containsPii: false,\n correlationId: correlationId || Constants.EMPTY_STRING\n });\n }\n\n /**\n * Logs verbose messages with PII.\n */\n verbosePii(message: string, correlationId?: string): void {\n this.logMessage(message, {\n logLevel: LogLevel.Verbose,\n containsPii: true,\n correlationId: correlationId || Constants.EMPTY_STRING\n });\n }\n\n /**\n * Logs trace messages.\n */\n trace(message: string, correlationId?: string): void {\n this.logMessage(message, {\n logLevel: LogLevel.Trace,\n containsPii: false,\n correlationId: correlationId || Constants.EMPTY_STRING\n });\n }\n\n /**\n * Logs trace messages with PII.\n */\n tracePii(message: string, correlationId?: string): void {\n this.logMessage(message, {\n logLevel: LogLevel.Trace,\n containsPii: true,\n correlationId: correlationId || Constants.EMPTY_STRING\n });\n }\n\n /**\n * Returns whether PII Logging is enabled or not.\n */\n isPiiLoggingEnabled(): boolean {\n return this.piiLoggingEnabled || false;\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { _DYN_APPLY, _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { getGlobalInst } from \"./EnvUtils\";\r\nvar listenerFuncs = [\"eventsSent\", \"eventsDiscarded\", \"eventsSendRequest\", \"perfEvent\"];\r\nvar _aiNamespace = null;\r\nvar _debugListener;\r\nfunction _listenerProxyFunc(name, config) {\r\n return function () {\r\n var args = arguments;\r\n var dbgExt = getDebugExt(config);\r\n if (dbgExt) {\r\n var listener = dbgExt.listener;\r\n if (listener && listener[name]) {\r\n listener[name][_DYN_APPLY /* @min:%2eapply */](listener, args);\r\n }\r\n }\r\n };\r\n}\r\nfunction _getExtensionNamespace() {\r\n // Cache the lookup of the global namespace object\r\n var target = getGlobalInst(\"Microsoft\");\r\n if (target) {\r\n _aiNamespace = target[\"ApplicationInsights\"];\r\n }\r\n return _aiNamespace;\r\n}\r\nexport function getDebugExt(config) {\r\n var ns = _aiNamespace;\r\n if (!ns && config.disableDbgExt !== true) {\r\n ns = _aiNamespace || _getExtensionNamespace();\r\n }\r\n return ns ? ns[\"ChromeDbgExt\"] : null;\r\n}\r\nexport function getDebugListener(config) {\r\n if (!_debugListener) {\r\n _debugListener = {};\r\n for (var lp = 0; lp < listenerFuncs[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n _debugListener[listenerFuncs[lp]] = _listenerProxyFunc(listenerFuncs[lp], config);\r\n }\r\n }\r\n return _debugListener;\r\n}\r\n//# sourceMappingURL=DbgExtensionUtils.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { _DYN_DIAG_LOG, _DYN_PUSH } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { dumpObj } from \"./EnvUtils\";\r\nimport { arrForEach } from \"./HelperFuncs\";\r\nexport function createUnloadHandlerContainer() {\r\n var handlers = [];\r\n function _addHandler(handler) {\r\n if (handler) {\r\n handlers[_DYN_PUSH /* @min:%2epush */](handler);\r\n }\r\n }\r\n function _runHandlers(unloadCtx, unloadState) {\r\n arrForEach(handlers, function (handler) {\r\n try {\r\n handler(unloadCtx, unloadState);\r\n }\r\n catch (e) {\r\n _throwInternal(unloadCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unexpected error calling unload handler - \" + dumpObj(e));\r\n }\r\n });\r\n handlers = [];\r\n }\r\n return {\r\n add: _addHandler,\r\n run: _runHandlers\r\n };\r\n}\r\n//# sourceMappingURL=UnloadHandlerContainer.js.map","import { IStyle, IStyleBaseArray } from './IStyle';\nimport { Stylesheet } from './Stylesheet';\n\n/**\n * Separates the classes and style objects. Any classes that are pre-registered\n * args are auto expanded into objects.\n */\nexport function extractStyleParts(\n ...args: (IStyle | IStyle[] | false | null | undefined)[]\n): { classes: string[]; objects: IStyleBaseArray } {\n const classes: string[] = [];\n const objects: {}[] = [];\n const stylesheet = Stylesheet.getInstance();\n\n function _processArgs(argsList: (IStyle | IStyle[])[]): void {\n for (const arg of argsList) {\n if (arg) {\n if (typeof arg === 'string') {\n if (arg.indexOf(' ') >= 0) {\n _processArgs(arg.split(' '));\n } else {\n const translatedArgs = stylesheet.argsFromClassName(arg);\n\n if (translatedArgs) {\n _processArgs(translatedArgs);\n } else {\n // Avoid adding the same class twice.\n if (classes.indexOf(arg) === -1) {\n classes.push(arg);\n }\n }\n }\n } else if (Array.isArray(arg)) {\n _processArgs(arg);\n } else if (typeof arg === 'object') {\n objects.push(arg);\n }\n }\n }\n }\n\n _processArgs(args);\n\n return {\n classes,\n objects,\n };\n}\n","import { getParent } from './getParent';\n/**\n * Finds the first parent element where the matchFunction returns true\n * @param element - element to start searching at\n * @param matchFunction - the function that determines if the element is a match\n * @returns the matched element or null no match was found\n */\nexport function findElementRecursive(\n element: HTMLElement | null,\n matchFunction: (element: HTMLElement) => boolean,\n): HTMLElement | null {\n if (!element || element === document.body) {\n return null;\n }\n return matchFunction(element) ? element : findElementRecursive(getParent(element), matchFunction);\n}\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","import { HighContrastSelector, concatStyleSets, getFocusStyle, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport type { IButtonStyles } from '../Button.types';\nimport type { ITheme, IStyle } from '../../../Styling';\n\nexport const getStyles = memoizeFunction(\n (theme: ITheme, customStyles?: IButtonStyles): IButtonStyles => {\n const { effects, palette, semanticColors } = theme;\n\n const buttonHighContrastFocus = {\n left: -2,\n top: -2,\n bottom: -2,\n right: -2,\n border: 'none',\n };\n\n const splitButtonDividerBaseStyles: IStyle = {\n position: 'absolute',\n width: 1,\n right: 31,\n top: 8,\n bottom: 8,\n };\n\n const splitButtonStyles: IButtonStyles = {\n splitButtonContainer: [\n getFocusStyle(theme, { highContrastStyle: buttonHighContrastFocus, inset: 2 }),\n {\n display: 'inline-flex',\n selectors: {\n '.ms-Button--default': {\n borderTopRightRadius: '0',\n borderBottomRightRadius: '0',\n borderRight: 'none',\n flexGrow: '1',\n },\n '.ms-Button--primary': {\n borderTopRightRadius: '0',\n borderBottomRightRadius: '0',\n border: 'none',\n flexGrow: '1',\n\n selectors: {\n [HighContrastSelector]: {\n color: 'WindowText',\n backgroundColor: 'Window',\n border: '1px solid WindowText',\n borderRightWidth: '0',\n ...getHighContrastNoAdjustStyle(),\n },\n },\n },\n '.ms-Button--primary + .ms-Button': {\n border: 'none',\n selectors: {\n [HighContrastSelector]: {\n border: '1px solid WindowText',\n borderLeftWidth: '0',\n },\n },\n },\n },\n },\n ],\n splitButtonContainerHovered: {\n selectors: {\n '.ms-Button--primary': {\n selectors: {\n [HighContrastSelector]: {\n color: 'Window',\n backgroundColor: 'Highlight',\n },\n },\n },\n '.ms-Button.is-disabled': {\n color: semanticColors.buttonTextDisabled,\n selectors: {\n [HighContrastSelector]: {\n color: 'GrayText',\n borderColor: 'GrayText',\n backgroundColor: 'Window',\n },\n },\n },\n },\n },\n splitButtonContainerChecked: {\n selectors: {\n '.ms-Button--primary': {\n selectors: {\n [HighContrastSelector]: {\n color: 'Window',\n backgroundColor: 'WindowText',\n ...getHighContrastNoAdjustStyle(),\n },\n },\n },\n },\n },\n splitButtonContainerCheckedHovered: {\n selectors: {\n '.ms-Button--primary': {\n selectors: {\n [HighContrastSelector]: {\n color: 'Window',\n backgroundColor: 'WindowText',\n ...getHighContrastNoAdjustStyle(),\n },\n },\n },\n },\n },\n splitButtonContainerFocused: {\n outline: 'none!important',\n },\n splitButtonMenuButton: {\n padding: 6,\n height: 'auto',\n boxSizing: 'border-box',\n borderRadius: 0,\n borderTopRightRadius: effects.roundedCorner2,\n borderBottomRightRadius: effects.roundedCorner2,\n border: `1px solid ${palette.neutralSecondaryAlt}`,\n borderLeft: 'none',\n outline: 'transparent',\n userSelect: 'none',\n display: 'inline-block',\n textDecoration: 'none',\n textAlign: 'center',\n cursor: 'pointer',\n verticalAlign: 'top',\n width: 32,\n marginLeft: -1,\n marginTop: 0,\n marginRight: 0,\n marginBottom: 0,\n [HighContrastSelector]: {\n '.ms-Button-menuIcon': {\n color: 'WindowText',\n },\n },\n },\n splitButtonDivider: {\n ...splitButtonDividerBaseStyles,\n selectors: {\n [HighContrastSelector]: {\n backgroundColor: 'WindowText',\n },\n },\n },\n splitButtonDividerDisabled: {\n ...splitButtonDividerBaseStyles,\n selectors: {\n [HighContrastSelector]: {\n backgroundColor: 'GrayText',\n },\n },\n },\n splitButtonMenuButtonDisabled: {\n pointerEvents: 'none',\n border: 'none',\n selectors: {\n ':hover': {\n cursor: 'default',\n },\n\n '.ms-Button--primary': {\n selectors: {\n [HighContrastSelector]: {\n color: 'GrayText',\n borderColor: 'GrayText',\n backgroundColor: 'Window',\n },\n },\n },\n '.ms-Button-menuIcon': {\n selectors: {\n [HighContrastSelector]: {\n color: 'GrayText',\n },\n },\n },\n [HighContrastSelector]: {\n color: 'GrayText',\n border: '1px solid GrayText',\n backgroundColor: 'Window',\n },\n },\n },\n\n splitButtonFlexContainer: {\n display: 'flex',\n height: '100%',\n flexWrap: 'nowrap',\n justifyContent: 'center',\n alignItems: 'center',\n },\n\n splitButtonContainerDisabled: {\n outline: 'none',\n border: 'none',\n selectors: {\n [HighContrastSelector]: {\n color: 'GrayText',\n borderColor: 'GrayText',\n backgroundColor: 'Window',\n ...getHighContrastNoAdjustStyle(),\n },\n },\n },\n splitButtonMenuFocused: {\n ...getFocusStyle(theme, { highContrastStyle: buttonHighContrastFocus, inset: 2 }),\n },\n };\n\n return concatStyleSets(splitButtonStyles, customStyles)!;\n },\n);\n","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { URLBuilder, URLQuery } from \"../url\";\nimport { UnknownObject, isObject } from \"./utils\";\n\nexport interface SanitizerOptions {\n /**\n * Header names whose values will be logged when logging is enabled. Defaults to\n * Date, traceparent, x-ms-client-request-id, and x-ms-request id. Any headers\n * specified in this field will be added to that list. Any other values will\n * be written to logs as \"REDACTED\".\n */\n allowedHeaderNames?: string[];\n\n /**\n * Query string names whose values will be logged when logging is enabled. By default no\n * query string values are logged.\n */\n allowedQueryParameters?: string[];\n}\n\nconst RedactedString = \"REDACTED\";\n\nconst defaultAllowedHeaderNames = [\n \"x-ms-client-request-id\",\n \"x-ms-return-client-request-id\",\n \"x-ms-useragent\",\n \"x-ms-correlation-request-id\",\n \"x-ms-request-id\",\n \"client-request-id\",\n \"ms-cv\",\n \"return-client-request-id\",\n \"traceparent\",\n\n \"Access-Control-Allow-Credentials\",\n \"Access-Control-Allow-Headers\",\n \"Access-Control-Allow-Methods\",\n \"Access-Control-Allow-Origin\",\n \"Access-Control-Expose-Headers\",\n \"Access-Control-Max-Age\",\n \"Access-Control-Request-Headers\",\n \"Access-Control-Request-Method\",\n \"Origin\",\n\n \"Accept\",\n \"Accept-Encoding\",\n \"Cache-Control\",\n \"Connection\",\n \"Content-Length\",\n \"Content-Type\",\n \"Date\",\n \"ETag\",\n \"Expires\",\n \"If-Match\",\n \"If-Modified-Since\",\n \"If-None-Match\",\n \"If-Unmodified-Since\",\n \"Last-Modified\",\n \"Pragma\",\n \"Request-Id\",\n \"Retry-After\",\n \"Server\",\n \"Transfer-Encoding\",\n \"User-Agent\",\n \"WWW-Authenticate\",\n];\n\nconst defaultAllowedQueryParameters: string[] = [\"api-version\"];\n\nexport class Sanitizer {\n public allowedHeaderNames: Set;\n public allowedQueryParameters: Set;\n\n constructor({ allowedHeaderNames = [], allowedQueryParameters = [] }: SanitizerOptions = {}) {\n allowedHeaderNames = Array.isArray(allowedHeaderNames)\n ? defaultAllowedHeaderNames.concat(allowedHeaderNames)\n : defaultAllowedHeaderNames;\n\n allowedQueryParameters = Array.isArray(allowedQueryParameters)\n ? defaultAllowedQueryParameters.concat(allowedQueryParameters)\n : defaultAllowedQueryParameters;\n\n this.allowedHeaderNames = new Set(allowedHeaderNames.map((n) => n.toLowerCase()));\n this.allowedQueryParameters = new Set(allowedQueryParameters.map((p) => p.toLowerCase()));\n }\n\n public sanitize(obj: unknown): string {\n const seen = new Set();\n return JSON.stringify(\n obj,\n (key: string, value: unknown) => {\n // Ensure Errors include their interesting non-enumerable members\n if (value instanceof Error) {\n return {\n ...value,\n name: value.name,\n message: value.message,\n };\n }\n\n if (key === \"_headersMap\") {\n return this.sanitizeHeaders(value as UnknownObject);\n } else if (key === \"url\") {\n return this.sanitizeUrl(value as string);\n } else if (key === \"query\") {\n return this.sanitizeQuery(value as UnknownObject);\n } else if (key === \"body\") {\n // Don't log the request body\n return undefined;\n } else if (key === \"response\") {\n // Don't log response again\n return undefined;\n } else if (key === \"operationSpec\") {\n // When using sendOperationRequest, the request carries a massive\n // field with the autorest spec. No need to log it.\n return undefined;\n } else if (Array.isArray(value) || isObject(value)) {\n if (seen.has(value)) {\n return \"[Circular]\";\n }\n seen.add(value);\n }\n\n return value;\n },\n 2\n );\n }\n\n private sanitizeHeaders(value: UnknownObject): UnknownObject {\n return this.sanitizeObject(value, this.allowedHeaderNames, (v, k) => v[k].value);\n }\n\n private sanitizeQuery(value: UnknownObject): UnknownObject {\n return this.sanitizeObject(value, this.allowedQueryParameters, (v, k) => v[k]);\n }\n\n private sanitizeObject(\n value: UnknownObject,\n allowedKeys: Set,\n accessor: (value: any, key: string) => any\n ): UnknownObject {\n if (typeof value !== \"object\" || value === null) {\n return value;\n }\n\n const sanitized: UnknownObject = {};\n\n for (const k of Object.keys(value)) {\n if (allowedKeys.has(k.toLowerCase())) {\n sanitized[k] = accessor(value, k);\n } else {\n sanitized[k] = RedactedString;\n }\n }\n\n return sanitized;\n }\n\n private sanitizeUrl(value: string): string {\n if (typeof value !== \"string\" || value === null) {\n return value;\n }\n\n const urlBuilder = URLBuilder.parse(value);\n const queryString = urlBuilder.getQuery();\n\n if (!queryString) {\n return value;\n }\n\n const query = URLQuery.parse(queryString);\n for (const k of query.keys()) {\n if (!this.allowedQueryParameters.has(k.toLowerCase())) {\n query.set(k, RedactedString);\n }\n }\n\n urlBuilder.setQuery(query.toString());\n return urlBuilder.toString();\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport { generateUuid, HttpResponse } from \"@azure/core-http\";\nimport { StorageClientContext } from \"./generated/src/index\";\nimport { ContainerBreakLeaseOptionalParams } from \"./generatedModels\";\nimport { AbortSignalLike } from \"@azure/abort-controller\";\nimport { SpanStatusCode } from \"@azure/core-tracing\";\nimport { Blob as StorageBlob, Container } from \"./generated/src/operations\";\nimport { ModifiedAccessConditions } from \"./models\";\nimport { CommonOptions } from \"./StorageClient\";\nimport { ETagNone } from \"./utils/constants\";\nimport { convertTracingToRequestOptionsBase, createSpan } from \"./utils/tracing\";\nimport { BlobClient } from \"./Clients\";\nimport { ContainerClient } from \"./ContainerClient\";\n\n/**\n * The details for a specific lease.\n */\nexport interface Lease {\n /**\n * The ETag contains a value that you can use to\n * perform operations conditionally. If the request version is 2011-08-18 or\n * newer, the ETag value will be in quotes.\n */\n etag?: string;\n /**\n * Returns the date and time the container was\n * last modified. Any operation that modifies the blob, including an update\n * of the blob's metadata or properties, changes the last-modified time of\n * the blob.\n */\n lastModified?: Date;\n /**\n * Uniquely identifies a container's lease\n */\n leaseId?: string;\n /**\n * Approximate time remaining in the lease\n * period, in seconds.\n */\n leaseTime?: number;\n /**\n * This header uniquely identifies the request\n * that was made and can be used for troubleshooting the request.\n */\n requestId?: string;\n /**\n * Indicates the version of the Blob service used\n * to execute the request. This header is returned for requests made against\n * version 2009-09-19 and above.\n */\n version?: string;\n /**\n * UTC date/time value generated by the service that\n * indicates the time at which the response was initiated\n */\n date?: Date;\n /**\n * Error code if any associated with the response that returned\n * the Lease information.\n */\n errorCode?: string;\n}\n\n/**\n * Contains the response data for operations that create, modify, or delete a lease.\n *\n * See {@link BlobLeaseClient}.\n */\nexport type LeaseOperationResponse = Lease & {\n /**\n * The underlying HTTP response.\n */\n _response: HttpResponse & {\n /**\n * The parsed HTTP response headers.\n */\n parsedHeaders: Lease;\n };\n};\n\n/**\n * Configures lease operations.\n */\nexport interface LeaseOperationOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Conditions to meet when changing the lease.\n */\n conditions?: ModifiedAccessConditions;\n}\n\n/**\n * A client that manages leases for a {@link ContainerClient} or a {@link BlobClient}.\n */\nexport class BlobLeaseClient {\n private _leaseId: string;\n private _url: string;\n private _containerOrBlobOperation: Container | StorageBlob;\n private _isContainer: boolean;\n\n /**\n * Gets the lease Id.\n *\n * @readonly\n */\n public get leaseId(): string {\n return this._leaseId;\n }\n\n /**\n * Gets the url.\n *\n * @readonly\n */\n public get url(): string {\n return this._url;\n }\n\n /**\n * Creates an instance of BlobLeaseClient.\n * @param client - The client to make the lease operation requests.\n * @param leaseId - Initial proposed lease id.\n */\n constructor(client: ContainerClient | BlobClient, leaseId?: string) {\n const clientContext = new StorageClientContext(\n client.url,\n (client as any).pipeline.toServiceClientOptions()\n );\n this._url = client.url;\n\n if ((client as BlobClient).name === undefined) {\n this._isContainer = true;\n this._containerOrBlobOperation = new Container(clientContext);\n } else {\n this._isContainer = false;\n this._containerOrBlobOperation = new StorageBlob(clientContext);\n }\n\n if (!leaseId) {\n leaseId = generateUuid();\n }\n this._leaseId = leaseId;\n }\n\n /**\n * Establishes and manages a lock on a container for delete operations, or on a blob\n * for write and delete operations.\n * The lock duration can be 15 to 60 seconds, or can be infinite.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-container\n * and\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-blob\n *\n * @param duration - Must be between 15 to 60 seconds, or infinite (-1)\n * @param options - option to configure lease management operations.\n * @returns Response data for acquire lease operation.\n */\n public async acquireLease(\n duration: number,\n options: LeaseOperationOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlobLeaseClient-acquireLease\", options);\n\n if (\n this._isContainer &&\n ((options.conditions?.ifMatch && options.conditions?.ifMatch !== ETagNone) ||\n (options.conditions?.ifNoneMatch && options.conditions?.ifNoneMatch !== ETagNone) ||\n options.conditions?.tagConditions)\n ) {\n throw new RangeError(\n \"The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.\"\n );\n }\n\n try {\n return await this._containerOrBlobOperation.acquireLease({\n abortSignal: options.abortSignal,\n duration,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n proposedLeaseId: this._leaseId,\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * To change the ID of the lease.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-container\n * and\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-blob\n *\n * @param proposedLeaseId - the proposed new lease Id.\n * @param options - option to configure lease management operations.\n * @returns Response data for change lease operation.\n */\n public async changeLease(\n proposedLeaseId: string,\n options: LeaseOperationOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlobLeaseClient-changeLease\", options);\n\n if (\n this._isContainer &&\n ((options.conditions?.ifMatch && options.conditions?.ifMatch !== ETagNone) ||\n (options.conditions?.ifNoneMatch && options.conditions?.ifNoneMatch !== ETagNone) ||\n options.conditions?.tagConditions)\n ) {\n throw new RangeError(\n \"The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.\"\n );\n }\n\n try {\n const response = await this._containerOrBlobOperation.changeLease(\n this._leaseId,\n proposedLeaseId,\n {\n abortSignal: options.abortSignal,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n ...convertTracingToRequestOptionsBase(updatedOptions),\n }\n );\n this._leaseId = proposedLeaseId;\n return response;\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * To free the lease if it is no longer needed so that another client may\n * immediately acquire a lease against the container or the blob.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-container\n * and\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-blob\n *\n * @param options - option to configure lease management operations.\n * @returns Response data for release lease operation.\n */\n public async releaseLease(options: LeaseOperationOptions = {}): Promise {\n const { span, updatedOptions } = createSpan(\"BlobLeaseClient-releaseLease\", options);\n\n if (\n this._isContainer &&\n ((options.conditions?.ifMatch && options.conditions?.ifMatch !== ETagNone) ||\n (options.conditions?.ifNoneMatch && options.conditions?.ifNoneMatch !== ETagNone) ||\n options.conditions?.tagConditions)\n ) {\n throw new RangeError(\n \"The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.\"\n );\n }\n\n try {\n return await this._containerOrBlobOperation.releaseLease(this._leaseId, {\n abortSignal: options.abortSignal,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * To renew the lease.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-container\n * and\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-blob\n *\n * @param options - Optional option to configure lease management operations.\n * @returns Response data for renew lease operation.\n */\n public async renewLease(options: LeaseOperationOptions = {}): Promise {\n const { span, updatedOptions } = createSpan(\"BlobLeaseClient-renewLease\", options);\n\n if (\n this._isContainer &&\n ((options.conditions?.ifMatch && options.conditions?.ifMatch !== ETagNone) ||\n (options.conditions?.ifNoneMatch && options.conditions?.ifNoneMatch !== ETagNone) ||\n options.conditions?.tagConditions)\n ) {\n throw new RangeError(\n \"The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.\"\n );\n }\n\n try {\n return await this._containerOrBlobOperation.renewLease(this._leaseId, {\n abortSignal: options.abortSignal,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n ...convertTracingToRequestOptionsBase(updatedOptions),\n });\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * To end the lease but ensure that another client cannot acquire a new lease\n * until the current lease period has expired.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-container\n * and\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/lease-blob\n *\n * @param breakPeriod - Break period\n * @param options - Optional options to configure lease management operations.\n * @returns Response data for break lease operation.\n */\n public async breakLease(\n breakPeriod: number,\n options: LeaseOperationOptions = {}\n ): Promise {\n const { span, updatedOptions } = createSpan(\"BlobLeaseClient-breakLease\", options);\n\n if (\n this._isContainer &&\n ((options.conditions?.ifMatch && options.conditions?.ifMatch !== ETagNone) ||\n (options.conditions?.ifNoneMatch && options.conditions?.ifNoneMatch !== ETagNone) ||\n options.conditions?.tagConditions)\n ) {\n throw new RangeError(\n \"The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.\"\n );\n }\n\n try {\n const operationOptions: ContainerBreakLeaseOptionalParams = {\n abortSignal: options.abortSignal,\n breakPeriod,\n modifiedAccessConditions: {\n ...options.conditions,\n ifTags: options.conditions?.tagConditions,\n },\n ...convertTracingToRequestOptionsBase(updatedOptions),\n };\n return await this._containerOrBlobOperation.breakLease(operationOptions);\n } catch (e: any) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: e.message,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * This is a helper class to construct a string representing the permissions granted by a ServiceSAS to a blob. Setting\n * a value to true means that any SAS which uses these permissions will grant permissions for that operation. Once all\n * the values are set, this should be serialized with toString and set as the permissions field on a\n * {@link BlobSASSignatureValues} object. It is possible to construct the permissions string without this class, but\n * the order of the permissions is particular and this class guarantees correctness.\n */\nexport class BlobSASPermissions {\n /**\n * Creates a {@link BlobSASPermissions} from the specified permissions string. This method will throw an\n * Error if it encounters a character that does not correspond to a valid permission.\n *\n * @param permissions -\n */\n public static parse(permissions: string): BlobSASPermissions {\n const blobSASPermissions = new BlobSASPermissions();\n\n for (const char of permissions) {\n switch (char) {\n case \"r\":\n blobSASPermissions.read = true;\n break;\n case \"a\":\n blobSASPermissions.add = true;\n break;\n case \"c\":\n blobSASPermissions.create = true;\n break;\n case \"w\":\n blobSASPermissions.write = true;\n break;\n case \"d\":\n blobSASPermissions.delete = true;\n break;\n case \"x\":\n blobSASPermissions.deleteVersion = true;\n break;\n case \"t\":\n blobSASPermissions.tag = true;\n break;\n case \"m\":\n blobSASPermissions.move = true;\n break;\n case \"e\":\n blobSASPermissions.execute = true;\n break;\n case \"i\":\n blobSASPermissions.setImmutabilityPolicy = true;\n break;\n case \"y\":\n blobSASPermissions.permanentDelete = true;\n break;\n default:\n throw new RangeError(`Invalid permission: ${char}`);\n }\n }\n\n return blobSASPermissions;\n }\n\n /**\n * Creates a {@link BlobSASPermissions} from a raw object which contains same keys as it\n * and boolean values for them.\n *\n * @param permissionLike -\n */\n public static from(permissionLike: BlobSASPermissionsLike): BlobSASPermissions {\n const blobSASPermissions = new BlobSASPermissions();\n if (permissionLike.read) {\n blobSASPermissions.read = true;\n }\n if (permissionLike.add) {\n blobSASPermissions.add = true;\n }\n if (permissionLike.create) {\n blobSASPermissions.create = true;\n }\n if (permissionLike.write) {\n blobSASPermissions.write = true;\n }\n if (permissionLike.delete) {\n blobSASPermissions.delete = true;\n }\n if (permissionLike.deleteVersion) {\n blobSASPermissions.deleteVersion = true;\n }\n if (permissionLike.tag) {\n blobSASPermissions.tag = true;\n }\n if (permissionLike.move) {\n blobSASPermissions.move = true;\n }\n if (permissionLike.execute) {\n blobSASPermissions.execute = true;\n }\n if (permissionLike.setImmutabilityPolicy) {\n blobSASPermissions.setImmutabilityPolicy = true;\n }\n if (permissionLike.permanentDelete) {\n blobSASPermissions.permanentDelete = true;\n }\n return blobSASPermissions;\n }\n\n /**\n * Specifies Read access granted.\n */\n public read: boolean = false;\n\n /**\n * Specifies Add access granted.\n */\n public add: boolean = false;\n\n /**\n * Specifies Create access granted.\n */\n public create: boolean = false;\n\n /**\n * Specifies Write access granted.\n */\n public write: boolean = false;\n\n /**\n * Specifies Delete access granted.\n */\n public delete: boolean = false;\n\n /**\n * Specifies Delete version access granted.\n */\n public deleteVersion: boolean = false;\n\n /**\n * Specfies Tag access granted.\n */\n public tag: boolean = false;\n\n /**\n * Specifies Move access granted.\n */\n public move: boolean = false;\n\n /**\n * Specifies Execute access granted.\n */\n public execute: boolean = false;\n\n /**\n * Specifies SetImmutabilityPolicy access granted.\n */\n public setImmutabilityPolicy: boolean = false;\n\n /**\n * Specifies that Permanent Delete is permitted.\n */\n public permanentDelete: boolean = false;\n\n /**\n * Converts the given permissions to a string. Using this method will guarantee the permissions are in an\n * order accepted by the service.\n *\n * @returns A string which represents the BlobSASPermissions\n */\n public toString(): string {\n const permissions: string[] = [];\n if (this.read) {\n permissions.push(\"r\");\n }\n if (this.add) {\n permissions.push(\"a\");\n }\n if (this.create) {\n permissions.push(\"c\");\n }\n if (this.write) {\n permissions.push(\"w\");\n }\n if (this.delete) {\n permissions.push(\"d\");\n }\n if (this.deleteVersion) {\n permissions.push(\"x\");\n }\n if (this.tag) {\n permissions.push(\"t\");\n }\n if (this.move) {\n permissions.push(\"m\");\n }\n if (this.execute) {\n permissions.push(\"e\");\n }\n if (this.setImmutabilityPolicy) {\n permissions.push(\"i\");\n }\n if (this.permanentDelete) {\n permissions.push(\"y\");\n }\n return permissions.join(\"\");\n }\n}\n\n/**\n * A type that looks like a Blob SAS permission.\n * Used in {@link BlobSASPermissions} to parse SAS permissions from raw objects.\n */\nexport interface BlobSASPermissionsLike {\n /**\n * Specifies Read access granted.\n */\n read?: boolean;\n\n /**\n * Specifies Add access granted.\n */\n add?: boolean;\n\n /**\n * Specifies Create access granted.\n */\n create?: boolean;\n\n /**\n * Specifies Write access granted.\n */\n write?: boolean;\n\n /**\n * Specifies Delete access granted.\n */\n delete?: boolean;\n\n /**\n * Specifies Delete version access granted.\n */\n deleteVersion?: boolean;\n\n /**\n * Specfies Tag access granted.\n */\n tag?: boolean;\n\n /**\n * Specifies Move access granted.\n */\n move?: boolean;\n\n /**\n * Specifies Execute access granted.\n */\n execute?: boolean;\n\n /**\n * Specifies SetImmutabilityPolicy access granted.\n */\n setImmutabilityPolicy?: boolean;\n\n /**\n * Specifies that Permanent Delete is permitted.\n */\n permanentDelete?: boolean;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * This is a helper class to construct a string representing the permissions granted by a ServiceSAS to a container.\n * Setting a value to true means that any SAS which uses these permissions will grant permissions for that operation.\n * Once all the values are set, this should be serialized with toString and set as the permissions field on a\n * {@link BlobSASSignatureValues} object. It is possible to construct the permissions string without this class, but\n * the order of the permissions is particular and this class guarantees correctness.\n */\nexport class ContainerSASPermissions {\n /**\n * Creates an {@link ContainerSASPermissions} from the specified permissions string. This method will throw an\n * Error if it encounters a character that does not correspond to a valid permission.\n *\n * @param permissions -\n */\n public static parse(permissions: string): ContainerSASPermissions {\n const containerSASPermissions = new ContainerSASPermissions();\n\n for (const char of permissions) {\n switch (char) {\n case \"r\":\n containerSASPermissions.read = true;\n break;\n case \"a\":\n containerSASPermissions.add = true;\n break;\n case \"c\":\n containerSASPermissions.create = true;\n break;\n case \"w\":\n containerSASPermissions.write = true;\n break;\n case \"d\":\n containerSASPermissions.delete = true;\n break;\n case \"l\":\n containerSASPermissions.list = true;\n break;\n case \"t\":\n containerSASPermissions.tag = true;\n break;\n case \"x\":\n containerSASPermissions.deleteVersion = true;\n break;\n case \"m\":\n containerSASPermissions.move = true;\n break;\n case \"e\":\n containerSASPermissions.execute = true;\n break;\n case \"i\":\n containerSASPermissions.setImmutabilityPolicy = true;\n break;\n case \"y\":\n containerSASPermissions.permanentDelete = true;\n break;\n case \"f\":\n containerSASPermissions.filterByTags = true;\n break;\n default:\n throw new RangeError(`Invalid permission ${char}`);\n }\n }\n\n return containerSASPermissions;\n }\n\n /**\n * Creates a {@link ContainerSASPermissions} from a raw object which contains same keys as it\n * and boolean values for them.\n *\n * @param permissionLike -\n */\n public static from(permissionLike: ContainerSASPermissionsLike): ContainerSASPermissions {\n const containerSASPermissions = new ContainerSASPermissions();\n if (permissionLike.read) {\n containerSASPermissions.read = true;\n }\n if (permissionLike.add) {\n containerSASPermissions.add = true;\n }\n if (permissionLike.create) {\n containerSASPermissions.create = true;\n }\n if (permissionLike.write) {\n containerSASPermissions.write = true;\n }\n if (permissionLike.delete) {\n containerSASPermissions.delete = true;\n }\n if (permissionLike.list) {\n containerSASPermissions.list = true;\n }\n if (permissionLike.deleteVersion) {\n containerSASPermissions.deleteVersion = true;\n }\n if (permissionLike.tag) {\n containerSASPermissions.tag = true;\n }\n if (permissionLike.move) {\n containerSASPermissions.move = true;\n }\n if (permissionLike.execute) {\n containerSASPermissions.execute = true;\n }\n if (permissionLike.setImmutabilityPolicy) {\n containerSASPermissions.setImmutabilityPolicy = true;\n }\n if (permissionLike.permanentDelete) {\n containerSASPermissions.permanentDelete = true;\n }\n if (permissionLike.filterByTags) {\n containerSASPermissions.filterByTags = true;\n }\n return containerSASPermissions;\n }\n\n /**\n * Specifies Read access granted.\n */\n public read: boolean = false;\n\n /**\n * Specifies Add access granted.\n */\n public add: boolean = false;\n\n /**\n * Specifies Create access granted.\n */\n public create: boolean = false;\n\n /**\n * Specifies Write access granted.\n */\n public write: boolean = false;\n\n /**\n * Specifies Delete access granted.\n */\n public delete: boolean = false;\n\n /**\n * Specifies Delete version access granted.\n */\n public deleteVersion: boolean = false;\n\n /**\n * Specifies List access granted.\n */\n public list: boolean = false;\n\n /**\n * Specfies Tag access granted.\n */\n public tag: boolean = false;\n\n /**\n * Specifies Move access granted.\n */\n public move: boolean = false;\n\n /**\n * Specifies Execute access granted.\n */\n public execute: boolean = false;\n\n /**\n * Specifies SetImmutabilityPolicy access granted.\n */\n public setImmutabilityPolicy: boolean = false;\n\n /**\n * Specifies that Permanent Delete is permitted.\n */\n public permanentDelete: boolean = false;\n\n /**\n * Specifies that Filter Blobs by Tags is permitted.\n */\n public filterByTags: boolean = false;\n\n /**\n * Converts the given permissions to a string. Using this method will guarantee the permissions are in an\n * order accepted by the service.\n *\n * The order of the characters should be as specified here to ensure correctness.\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas\n *\n */\n public toString(): string {\n const permissions: string[] = [];\n if (this.read) {\n permissions.push(\"r\");\n }\n if (this.add) {\n permissions.push(\"a\");\n }\n if (this.create) {\n permissions.push(\"c\");\n }\n if (this.write) {\n permissions.push(\"w\");\n }\n if (this.delete) {\n permissions.push(\"d\");\n }\n if (this.deleteVersion) {\n permissions.push(\"x\");\n }\n if (this.list) {\n permissions.push(\"l\");\n }\n if (this.tag) {\n permissions.push(\"t\");\n }\n if (this.move) {\n permissions.push(\"m\");\n }\n if (this.execute) {\n permissions.push(\"e\");\n }\n if (this.setImmutabilityPolicy) {\n permissions.push(\"i\");\n }\n if (this.permanentDelete) {\n permissions.push(\"y\");\n }\n if (this.filterByTags) {\n permissions.push(\"f\");\n }\n return permissions.join(\"\");\n }\n}\n\n/**\n * A type that looks like a Container SAS permission.\n * Used in {@link ContainerSASPermissions} to parse SAS permissions from raw objects.\n */\nexport interface ContainerSASPermissionsLike {\n /**\n * Specifies Read access granted.\n */\n read?: boolean;\n\n /**\n * Specifies Add access granted.\n */\n add?: boolean;\n\n /**\n * Specifies Create access granted.\n */\n create?: boolean;\n\n /**\n * Specifies Write access granted.\n */\n write?: boolean;\n\n /**\n * Specifies Delete access granted.\n */\n delete?: boolean;\n\n /**\n * Specifies Delete version access granted.\n */\n deleteVersion?: boolean;\n\n /**\n * Specifies List access granted.\n */\n list?: boolean;\n\n /**\n * Specfies Tag access granted.\n */\n tag?: boolean;\n\n /**\n * Specifies Move access granted.\n */\n move?: boolean;\n\n /**\n * Specifies Execute access granted.\n */\n execute?: boolean;\n\n /**\n * Specifies SetImmutabilityPolicy access granted.\n */\n setImmutabilityPolicy?: boolean;\n\n /**\n * Specifies that Permanent Delete is permitted.\n */\n permanentDelete?: boolean;\n\n /**\n * Specifies that Filter Blobs by Tags is permitted.\n */\n filterByTags?: boolean;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport class UserDelegationKeyCredential {}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport { BlobSASPermissions } from \"./BlobSASPermissions\";\nimport { UserDelegationKey } from \"../BlobServiceClient\";\nimport { ContainerSASPermissions } from \"./ContainerSASPermissions\";\nimport { StorageSharedKeyCredential } from \"../credentials/StorageSharedKeyCredential\";\nimport { UserDelegationKeyCredential } from \"../credentials/UserDelegationKeyCredential\";\nimport { ipRangeToString, SasIPRange } from \"./SasIPRange\";\nimport { SASProtocol, SASQueryParameters } from \"./SASQueryParameters\";\nimport { SERVICE_VERSION } from \"../utils/constants\";\nimport { truncatedISO8061Date } from \"../utils/utils.common\";\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * BlobSASSignatureValues is used to help generating Blob service SAS tokens for containers or blobs.\n */\nexport interface BlobSASSignatureValues {\n /**\n * The version of the service this SAS will target. If not specified, it will default to the version targeted by the\n * library.\n */\n version?: string;\n\n /**\n * Optional. SAS protocols, HTTPS only or HTTPSandHTTP\n */\n protocol?: SASProtocol;\n\n /**\n * Optional. When the SAS will take effect.\n */\n startsOn?: Date;\n\n /**\n * Optional only when identifier is provided. The time after which the SAS will no longer work.\n */\n expiresOn?: Date;\n\n /**\n * Optional only when identifier is provided.\n * Please refer to either {@link ContainerSASPermissions} or {@link BlobSASPermissions} depending on the resource\n * being accessed for help constructing the permissions string.\n */\n permissions?: BlobSASPermissions | ContainerSASPermissions;\n\n /**\n * Optional. IP ranges allowed in this SAS.\n */\n ipRange?: SasIPRange;\n\n /**\n * The name of the container the SAS user may access.\n */\n containerName: string;\n\n /**\n * Optional. The blob name of the SAS user may access. Required if snapshotTime or versionId is provided.\n */\n blobName?: string;\n\n /**\n * Optional. Snapshot timestamp string the SAS user may access. Only supported from API version 2018-11-09.\n */\n snapshotTime?: string;\n\n /**\n * Optional. VersionId of the blob version the SAS user may access. Only supported from API version 2019-10-10.\n */\n versionId?: string;\n\n /**\n * Optional. The name of the access policy on the container this SAS references if any.\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/establishing-a-stored-access-policy\n */\n identifier?: string;\n\n /**\n * Optional. Encryption scope to use when sending requests authorized with this SAS URI.\n */\n encryptionScope?: string;\n\n /**\n * Optional. The cache-control header for the SAS.\n */\n cacheControl?: string;\n\n /**\n * Optional. The content-disposition header for the SAS.\n */\n contentDisposition?: string;\n\n /**\n * Optional. The content-encoding header for the SAS.\n */\n contentEncoding?: string;\n\n /**\n * Optional. The content-language header for the SAS.\n */\n contentLanguage?: string;\n\n /**\n * Optional. The content-type header for the SAS.\n */\n contentType?: string;\n\n /**\n * Optional. Beginning in version 2020-02-10, specifies the Authorized AAD Object ID in GUID format. The AAD Object ID of a user\n * authorized by the owner of the user delegation key to perform the action granted by the SAS. The Azure Storage service will\n * ensure that the owner of the user delegation key has the required permissions before granting access but no additional permission\n * check for the user specified in this value will be performed. This is only used for User Delegation SAS.\n */\n preauthorizedAgentObjectId?: string;\n\n /**\n * Optional. Beginning in version 2020-02-10, this is a GUID value that will be logged in the storage diagnostic logs and can be used to\n * correlate SAS generation with storage resource access. This is only used for User Delegation SAS.\n */\n correlationId?: string;\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Creates an instance of SASQueryParameters.\n *\n * Only accepts required settings needed to create a SAS. For optional settings please\n * set corresponding properties directly, such as permissions, startsOn and identifier.\n *\n * WARNING: When identifier is not provided, permissions and expiresOn are required.\n * You MUST assign value to identifier or expiresOn & permissions manually if you initial with\n * this constructor.\n *\n * Fill in the required details before running the following snippets.\n *\n * Example usage:\n *\n * ```js\n * // Generate service level SAS for a container\n * const containerSAS = generateBlobSASQueryParameters({\n * containerName, // Required\n * permissions: ContainerSASPermissions.parse(\"racwdl\"), // Required\n * startsOn: new Date(), // Optional\n * expiresOn: new Date(new Date().valueOf() + 86400), // Required. Date type\n * ipRange: { start: \"0.0.0.0\", end: \"255.255.255.255\" }, // Optional\n * protocol: SASProtocol.HttpsAndHttp, // Optional\n * version: \"2016-05-31\" // Optional\n * },\n * sharedKeyCredential // StorageSharedKeyCredential - `new StorageSharedKeyCredential(account, accountKey)`\n * ).toString();\n * ```\n *\n * Example using an identifier:\n *\n * ```js\n * // Generate service level SAS for a container with identifier\n * // startsOn & permissions are optional when identifier is provided\n * const identifier = \"unique-id\";\n * await containerClient.setAccessPolicy(undefined, [\n * {\n * accessPolicy: {\n * expiresOn: new Date(new Date().valueOf() + 86400), // Date type\n * permissions: ContainerSASPermissions.parse(\"racwdl\").toString(),\n * startsOn: new Date() // Date type\n * },\n * id: identifier\n * }\n * ]);\n *\n * const containerSAS = generateBlobSASQueryParameters(\n * {\n * containerName, // Required\n * identifier // Required\n * },\n * sharedKeyCredential // StorageSharedKeyCredential - `new StorageSharedKeyCredential(account, accountKey)`\n * ).toString();\n * ```\n *\n * Example using a blob name:\n *\n * ```js\n * // Generate service level SAS for a blob\n * const blobSAS = generateBlobSASQueryParameters({\n * containerName, // Required\n * blobName, // Required\n * permissions: BlobSASPermissions.parse(\"racwd\"), // Required\n * startsOn: new Date(), // Optional\n * expiresOn: new Date(new Date().valueOf() + 86400), // Required. Date type\n * cacheControl: \"cache-control-override\", // Optional\n * contentDisposition: \"content-disposition-override\", // Optional\n * contentEncoding: \"content-encoding-override\", // Optional\n * contentLanguage: \"content-language-override\", // Optional\n * contentType: \"content-type-override\", // Optional\n * ipRange: { start: \"0.0.0.0\", end: \"255.255.255.255\" }, // Optional\n * protocol: SASProtocol.HttpsAndHttp, // Optional\n * version: \"2016-05-31\" // Optional\n * },\n * sharedKeyCredential // StorageSharedKeyCredential - `new StorageSharedKeyCredential(account, accountKey)`\n * ).toString();\n * ```\n *\n * @param blobSASSignatureValues -\n * @param sharedKeyCredential -\n */\nexport function generateBlobSASQueryParameters(\n blobSASSignatureValues: BlobSASSignatureValues,\n sharedKeyCredential: StorageSharedKeyCredential\n): SASQueryParameters;\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Creates an instance of SASQueryParameters.\n * WARNING: identifier will be ignored when generating user delegation SAS, permissions and expiresOn are required.\n *\n * Example usage:\n *\n * ```js\n * // Generate user delegation SAS for a container\n * const userDelegationKey = await blobServiceClient.getUserDelegationKey(startsOn, expiresOn);\n * const containerSAS = generateBlobSASQueryParameters({\n * containerName, // Required\n * permissions: ContainerSASPermissions.parse(\"racwdl\"), // Required\n * startsOn, // Optional. Date type\n * expiresOn, // Required. Date type\n * ipRange: { start: \"0.0.0.0\", end: \"255.255.255.255\" }, // Optional\n * protocol: SASProtocol.HttpsAndHttp, // Optional\n * version: \"2018-11-09\" // Must greater than or equal to 2018-11-09 to generate user delegation SAS\n * },\n * userDelegationKey, // UserDelegationKey\n * accountName\n * ).toString();\n * ```\n *\n * @param blobSASSignatureValues -\n * @param userDelegationKey - Return value of `blobServiceClient.getUserDelegationKey()`\n * @param accountName -\n */\nexport function generateBlobSASQueryParameters(\n blobSASSignatureValues: BlobSASSignatureValues,\n userDelegationKey: UserDelegationKey,\n accountName: string\n): SASQueryParameters;\n\nexport function generateBlobSASQueryParameters(\n blobSASSignatureValues: BlobSASSignatureValues,\n sharedKeyCredentialOrUserDelegationKey: StorageSharedKeyCredential | UserDelegationKey,\n accountName?: string\n): SASQueryParameters {\n const version = blobSASSignatureValues.version ? blobSASSignatureValues.version : SERVICE_VERSION;\n\n const sharedKeyCredential =\n sharedKeyCredentialOrUserDelegationKey instanceof StorageSharedKeyCredential\n ? sharedKeyCredentialOrUserDelegationKey\n : undefined;\n let userDelegationKeyCredential: UserDelegationKeyCredential | undefined;\n\n if (sharedKeyCredential === undefined && accountName !== undefined) {\n userDelegationKeyCredential = new UserDelegationKeyCredential(\n accountName,\n sharedKeyCredentialOrUserDelegationKey as UserDelegationKey\n );\n }\n\n if (sharedKeyCredential === undefined && userDelegationKeyCredential === undefined) {\n throw TypeError(\"Invalid sharedKeyCredential, userDelegationKey or accountName.\");\n }\n\n // Version 2020-12-06 adds support for encryptionscope in SAS.\n if (version >= \"2020-12-06\") {\n if (sharedKeyCredential !== undefined) {\n return generateBlobSASQueryParameters20201206(blobSASSignatureValues, sharedKeyCredential);\n } else {\n return generateBlobSASQueryParametersUDK20201206(\n blobSASSignatureValues,\n userDelegationKeyCredential!\n );\n }\n }\n\n // Version 2019-12-12 adds support for the blob tags permission.\n // Version 2018-11-09 adds support for the signed resource and signed blob snapshot time fields.\n // https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas#constructing-the-signature-string\n if (version >= \"2018-11-09\") {\n if (sharedKeyCredential !== undefined) {\n return generateBlobSASQueryParameters20181109(blobSASSignatureValues, sharedKeyCredential);\n } else {\n // Version 2020-02-10 delegation SAS signature construction includes preauthorizedAgentObjectId, agentObjectId, correlationId.\n if (version >= \"2020-02-10\") {\n return generateBlobSASQueryParametersUDK20200210(\n blobSASSignatureValues,\n userDelegationKeyCredential!\n );\n } else {\n return generateBlobSASQueryParametersUDK20181109(\n blobSASSignatureValues,\n userDelegationKeyCredential!\n );\n }\n }\n }\n\n if (version >= \"2015-04-05\") {\n if (sharedKeyCredential !== undefined) {\n return generateBlobSASQueryParameters20150405(blobSASSignatureValues, sharedKeyCredential);\n } else {\n throw new RangeError(\n \"'version' must be >= '2018-11-09' when generating user delegation SAS using user delegation key.\"\n );\n }\n }\n\n throw new RangeError(\"'version' must be >= '2015-04-05'.\");\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2015-04-05 AND BEFORE 2018-11-09.\n *\n * Creates an instance of SASQueryParameters.\n *\n * Only accepts required settings needed to create a SAS. For optional settings please\n * set corresponding properties directly, such as permissions, startsOn and identifier.\n *\n * WARNING: When identifier is not provided, permissions and expiresOn are required.\n * You MUST assign value to identifier or expiresOn & permissions manually if you initial with\n * this constructor.\n *\n * @param blobSASSignatureValues -\n * @param sharedKeyCredential -\n */\nfunction generateBlobSASQueryParameters20150405(\n blobSASSignatureValues: BlobSASSignatureValues,\n sharedKeyCredential: StorageSharedKeyCredential\n): SASQueryParameters {\n blobSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues);\n\n if (\n !blobSASSignatureValues.identifier &&\n !(blobSASSignatureValues.permissions && blobSASSignatureValues.expiresOn)\n ) {\n throw new RangeError(\n \"Must provide 'permissions' and 'expiresOn' for Blob SAS generation when 'identifier' is not provided.\"\n );\n }\n\n let resource: string = \"c\";\n if (blobSASSignatureValues.blobName) {\n resource = \"b\";\n }\n\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n let verifiedPermissions: string | undefined;\n if (blobSASSignatureValues.permissions) {\n if (blobSASSignatureValues.blobName) {\n verifiedPermissions = BlobSASPermissions.parse(\n blobSASSignatureValues.permissions.toString()\n ).toString();\n } else {\n verifiedPermissions = ContainerSASPermissions.parse(\n blobSASSignatureValues.permissions.toString()\n ).toString();\n }\n }\n\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n blobSASSignatureValues.startsOn\n ? truncatedISO8061Date(blobSASSignatureValues.startsOn, false)\n : \"\",\n blobSASSignatureValues.expiresOn\n ? truncatedISO8061Date(blobSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(\n sharedKeyCredential.accountName,\n blobSASSignatureValues.containerName,\n blobSASSignatureValues.blobName\n ),\n blobSASSignatureValues.identifier,\n blobSASSignatureValues.ipRange ? ipRangeToString(blobSASSignatureValues.ipRange) : \"\",\n blobSASSignatureValues.protocol ? blobSASSignatureValues.protocol : \"\",\n blobSASSignatureValues.version,\n blobSASSignatureValues.cacheControl ? blobSASSignatureValues.cacheControl : \"\",\n blobSASSignatureValues.contentDisposition ? blobSASSignatureValues.contentDisposition : \"\",\n blobSASSignatureValues.contentEncoding ? blobSASSignatureValues.contentEncoding : \"\",\n blobSASSignatureValues.contentLanguage ? blobSASSignatureValues.contentLanguage : \"\",\n blobSASSignatureValues.contentType ? blobSASSignatureValues.contentType : \"\",\n ].join(\"\\n\");\n\n const signature = sharedKeyCredential.computeHMACSHA256(stringToSign);\n\n return new SASQueryParameters(\n blobSASSignatureValues.version!,\n signature,\n verifiedPermissions,\n undefined,\n undefined,\n blobSASSignatureValues.protocol,\n blobSASSignatureValues.startsOn,\n blobSASSignatureValues.expiresOn,\n blobSASSignatureValues.ipRange,\n blobSASSignatureValues.identifier,\n resource,\n blobSASSignatureValues.cacheControl,\n blobSASSignatureValues.contentDisposition,\n blobSASSignatureValues.contentEncoding,\n blobSASSignatureValues.contentLanguage,\n blobSASSignatureValues.contentType\n );\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2018-11-09.\n *\n * Creates an instance of SASQueryParameters.\n *\n * Only accepts required settings needed to create a SAS. For optional settings please\n * set corresponding properties directly, such as permissions, startsOn and identifier.\n *\n * WARNING: When identifier is not provided, permissions and expiresOn are required.\n * You MUST assign value to identifier or expiresOn & permissions manually if you initial with\n * this constructor.\n *\n * @param blobSASSignatureValues -\n * @param sharedKeyCredential -\n */\nfunction generateBlobSASQueryParameters20181109(\n blobSASSignatureValues: BlobSASSignatureValues,\n sharedKeyCredential: StorageSharedKeyCredential\n): SASQueryParameters {\n blobSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues);\n\n if (\n !blobSASSignatureValues.identifier &&\n !(blobSASSignatureValues.permissions && blobSASSignatureValues.expiresOn)\n ) {\n throw new RangeError(\n \"Must provide 'permissions' and 'expiresOn' for Blob SAS generation when 'identifier' is not provided.\"\n );\n }\n\n let resource: string = \"c\";\n let timestamp = blobSASSignatureValues.snapshotTime;\n if (blobSASSignatureValues.blobName) {\n resource = \"b\";\n if (blobSASSignatureValues.snapshotTime) {\n resource = \"bs\";\n } else if (blobSASSignatureValues.versionId) {\n resource = \"bv\";\n timestamp = blobSASSignatureValues.versionId;\n }\n }\n\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n let verifiedPermissions: string | undefined;\n if (blobSASSignatureValues.permissions) {\n if (blobSASSignatureValues.blobName) {\n verifiedPermissions = BlobSASPermissions.parse(\n blobSASSignatureValues.permissions.toString()\n ).toString();\n } else {\n verifiedPermissions = ContainerSASPermissions.parse(\n blobSASSignatureValues.permissions.toString()\n ).toString();\n }\n }\n\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n blobSASSignatureValues.startsOn\n ? truncatedISO8061Date(blobSASSignatureValues.startsOn, false)\n : \"\",\n blobSASSignatureValues.expiresOn\n ? truncatedISO8061Date(blobSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(\n sharedKeyCredential.accountName,\n blobSASSignatureValues.containerName,\n blobSASSignatureValues.blobName\n ),\n blobSASSignatureValues.identifier,\n blobSASSignatureValues.ipRange ? ipRangeToString(blobSASSignatureValues.ipRange) : \"\",\n blobSASSignatureValues.protocol ? blobSASSignatureValues.protocol : \"\",\n blobSASSignatureValues.version,\n resource,\n timestamp,\n blobSASSignatureValues.cacheControl ? blobSASSignatureValues.cacheControl : \"\",\n blobSASSignatureValues.contentDisposition ? blobSASSignatureValues.contentDisposition : \"\",\n blobSASSignatureValues.contentEncoding ? blobSASSignatureValues.contentEncoding : \"\",\n blobSASSignatureValues.contentLanguage ? blobSASSignatureValues.contentLanguage : \"\",\n blobSASSignatureValues.contentType ? blobSASSignatureValues.contentType : \"\",\n ].join(\"\\n\");\n\n const signature = sharedKeyCredential.computeHMACSHA256(stringToSign);\n\n return new SASQueryParameters(\n blobSASSignatureValues.version!,\n signature,\n verifiedPermissions,\n undefined,\n undefined,\n blobSASSignatureValues.protocol,\n blobSASSignatureValues.startsOn,\n blobSASSignatureValues.expiresOn,\n blobSASSignatureValues.ipRange,\n blobSASSignatureValues.identifier,\n resource,\n blobSASSignatureValues.cacheControl,\n blobSASSignatureValues.contentDisposition,\n blobSASSignatureValues.contentEncoding,\n blobSASSignatureValues.contentLanguage,\n blobSASSignatureValues.contentType\n );\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2020-12-06.\n *\n * Creates an instance of SASQueryParameters.\n *\n * Only accepts required settings needed to create a SAS. For optional settings please\n * set corresponding properties directly, such as permissions, startsOn and identifier.\n *\n * WARNING: When identifier is not provided, permissions and expiresOn are required.\n * You MUST assign value to identifier or expiresOn & permissions manually if you initial with\n * this constructor.\n *\n * @param blobSASSignatureValues -\n * @param sharedKeyCredential -\n */\nfunction generateBlobSASQueryParameters20201206(\n blobSASSignatureValues: BlobSASSignatureValues,\n sharedKeyCredential: StorageSharedKeyCredential\n): SASQueryParameters {\n blobSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues);\n\n if (\n !blobSASSignatureValues.identifier &&\n !(blobSASSignatureValues.permissions && blobSASSignatureValues.expiresOn)\n ) {\n throw new RangeError(\n \"Must provide 'permissions' and 'expiresOn' for Blob SAS generation when 'identifier' is not provided.\"\n );\n }\n\n let resource: string = \"c\";\n let timestamp = blobSASSignatureValues.snapshotTime;\n if (blobSASSignatureValues.blobName) {\n resource = \"b\";\n if (blobSASSignatureValues.snapshotTime) {\n resource = \"bs\";\n } else if (blobSASSignatureValues.versionId) {\n resource = \"bv\";\n timestamp = blobSASSignatureValues.versionId;\n }\n }\n\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n let verifiedPermissions: string | undefined;\n if (blobSASSignatureValues.permissions) {\n if (blobSASSignatureValues.blobName) {\n verifiedPermissions = BlobSASPermissions.parse(\n blobSASSignatureValues.permissions.toString()\n ).toString();\n } else {\n verifiedPermissions = ContainerSASPermissions.parse(\n blobSASSignatureValues.permissions.toString()\n ).toString();\n }\n }\n\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n blobSASSignatureValues.startsOn\n ? truncatedISO8061Date(blobSASSignatureValues.startsOn, false)\n : \"\",\n blobSASSignatureValues.expiresOn\n ? truncatedISO8061Date(blobSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(\n sharedKeyCredential.accountName,\n blobSASSignatureValues.containerName,\n blobSASSignatureValues.blobName\n ),\n blobSASSignatureValues.identifier,\n blobSASSignatureValues.ipRange ? ipRangeToString(blobSASSignatureValues.ipRange) : \"\",\n blobSASSignatureValues.protocol ? blobSASSignatureValues.protocol : \"\",\n blobSASSignatureValues.version,\n resource,\n timestamp,\n blobSASSignatureValues.encryptionScope,\n blobSASSignatureValues.cacheControl ? blobSASSignatureValues.cacheControl : \"\",\n blobSASSignatureValues.contentDisposition ? blobSASSignatureValues.contentDisposition : \"\",\n blobSASSignatureValues.contentEncoding ? blobSASSignatureValues.contentEncoding : \"\",\n blobSASSignatureValues.contentLanguage ? blobSASSignatureValues.contentLanguage : \"\",\n blobSASSignatureValues.contentType ? blobSASSignatureValues.contentType : \"\",\n ].join(\"\\n\");\n\n const signature = sharedKeyCredential.computeHMACSHA256(stringToSign);\n\n return new SASQueryParameters(\n blobSASSignatureValues.version!,\n signature,\n verifiedPermissions,\n undefined,\n undefined,\n blobSASSignatureValues.protocol,\n blobSASSignatureValues.startsOn,\n blobSASSignatureValues.expiresOn,\n blobSASSignatureValues.ipRange,\n blobSASSignatureValues.identifier,\n resource,\n blobSASSignatureValues.cacheControl,\n blobSASSignatureValues.contentDisposition,\n blobSASSignatureValues.contentEncoding,\n blobSASSignatureValues.contentLanguage,\n blobSASSignatureValues.contentType,\n undefined,\n undefined,\n undefined,\n blobSASSignatureValues.encryptionScope\n );\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2018-11-09.\n *\n * Creates an instance of SASQueryParameters.\n *\n * Only accepts required settings needed to create a SAS. For optional settings please\n * set corresponding properties directly, such as permissions, startsOn.\n *\n * WARNING: identifier will be ignored, permissions and expiresOn are required.\n *\n * @param blobSASSignatureValues -\n * @param userDelegationKeyCredential -\n */\nfunction generateBlobSASQueryParametersUDK20181109(\n blobSASSignatureValues: BlobSASSignatureValues,\n userDelegationKeyCredential: UserDelegationKeyCredential\n): SASQueryParameters {\n blobSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues);\n\n // Stored access policies are not supported for a user delegation SAS.\n if (!blobSASSignatureValues.permissions || !blobSASSignatureValues.expiresOn) {\n throw new RangeError(\n \"Must provide 'permissions' and 'expiresOn' for Blob SAS generation when generating user delegation SAS.\"\n );\n }\n\n let resource: string = \"c\";\n let timestamp = blobSASSignatureValues.snapshotTime;\n if (blobSASSignatureValues.blobName) {\n resource = \"b\";\n if (blobSASSignatureValues.snapshotTime) {\n resource = \"bs\";\n } else if (blobSASSignatureValues.versionId) {\n resource = \"bv\";\n timestamp = blobSASSignatureValues.versionId;\n }\n }\n\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n let verifiedPermissions: string | undefined;\n if (blobSASSignatureValues.permissions) {\n if (blobSASSignatureValues.blobName) {\n verifiedPermissions = BlobSASPermissions.parse(\n blobSASSignatureValues.permissions.toString()\n ).toString();\n } else {\n verifiedPermissions = ContainerSASPermissions.parse(\n blobSASSignatureValues.permissions.toString()\n ).toString();\n }\n }\n\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n blobSASSignatureValues.startsOn\n ? truncatedISO8061Date(blobSASSignatureValues.startsOn, false)\n : \"\",\n blobSASSignatureValues.expiresOn\n ? truncatedISO8061Date(blobSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(\n userDelegationKeyCredential.accountName,\n blobSASSignatureValues.containerName,\n blobSASSignatureValues.blobName\n ),\n userDelegationKeyCredential.userDelegationKey.signedObjectId,\n userDelegationKeyCredential.userDelegationKey.signedTenantId,\n userDelegationKeyCredential.userDelegationKey.signedStartsOn\n ? truncatedISO8061Date(userDelegationKeyCredential.userDelegationKey.signedStartsOn, false)\n : \"\",\n userDelegationKeyCredential.userDelegationKey.signedExpiresOn\n ? truncatedISO8061Date(userDelegationKeyCredential.userDelegationKey.signedExpiresOn, false)\n : \"\",\n userDelegationKeyCredential.userDelegationKey.signedService,\n userDelegationKeyCredential.userDelegationKey.signedVersion,\n blobSASSignatureValues.ipRange ? ipRangeToString(blobSASSignatureValues.ipRange) : \"\",\n blobSASSignatureValues.protocol ? blobSASSignatureValues.protocol : \"\",\n blobSASSignatureValues.version,\n resource,\n timestamp,\n blobSASSignatureValues.cacheControl,\n blobSASSignatureValues.contentDisposition,\n blobSASSignatureValues.contentEncoding,\n blobSASSignatureValues.contentLanguage,\n blobSASSignatureValues.contentType,\n ].join(\"\\n\");\n\n const signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign);\n return new SASQueryParameters(\n blobSASSignatureValues.version!,\n signature,\n verifiedPermissions,\n undefined,\n undefined,\n blobSASSignatureValues.protocol,\n blobSASSignatureValues.startsOn,\n blobSASSignatureValues.expiresOn,\n blobSASSignatureValues.ipRange,\n blobSASSignatureValues.identifier,\n resource,\n blobSASSignatureValues.cacheControl,\n blobSASSignatureValues.contentDisposition,\n blobSASSignatureValues.contentEncoding,\n blobSASSignatureValues.contentLanguage,\n blobSASSignatureValues.contentType,\n userDelegationKeyCredential.userDelegationKey\n );\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2020-02-10.\n *\n * Creates an instance of SASQueryParameters.\n *\n * Only accepts required settings needed to create a SAS. For optional settings please\n * set corresponding properties directly, such as permissions, startsOn.\n *\n * WARNING: identifier will be ignored, permissions and expiresOn are required.\n *\n * @param blobSASSignatureValues -\n * @param userDelegationKeyCredential -\n */\nfunction generateBlobSASQueryParametersUDK20200210(\n blobSASSignatureValues: BlobSASSignatureValues,\n userDelegationKeyCredential: UserDelegationKeyCredential\n): SASQueryParameters {\n blobSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues);\n\n // Stored access policies are not supported for a user delegation SAS.\n if (!blobSASSignatureValues.permissions || !blobSASSignatureValues.expiresOn) {\n throw new RangeError(\n \"Must provide 'permissions' and 'expiresOn' for Blob SAS generation when generating user delegation SAS.\"\n );\n }\n\n let resource: string = \"c\";\n let timestamp = blobSASSignatureValues.snapshotTime;\n if (blobSASSignatureValues.blobName) {\n resource = \"b\";\n if (blobSASSignatureValues.snapshotTime) {\n resource = \"bs\";\n } else if (blobSASSignatureValues.versionId) {\n resource = \"bv\";\n timestamp = blobSASSignatureValues.versionId;\n }\n }\n\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n let verifiedPermissions: string | undefined;\n if (blobSASSignatureValues.permissions) {\n if (blobSASSignatureValues.blobName) {\n verifiedPermissions = BlobSASPermissions.parse(\n blobSASSignatureValues.permissions.toString()\n ).toString();\n } else {\n verifiedPermissions = ContainerSASPermissions.parse(\n blobSASSignatureValues.permissions.toString()\n ).toString();\n }\n }\n\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n blobSASSignatureValues.startsOn\n ? truncatedISO8061Date(blobSASSignatureValues.startsOn, false)\n : \"\",\n blobSASSignatureValues.expiresOn\n ? truncatedISO8061Date(blobSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(\n userDelegationKeyCredential.accountName,\n blobSASSignatureValues.containerName,\n blobSASSignatureValues.blobName\n ),\n userDelegationKeyCredential.userDelegationKey.signedObjectId,\n userDelegationKeyCredential.userDelegationKey.signedTenantId,\n userDelegationKeyCredential.userDelegationKey.signedStartsOn\n ? truncatedISO8061Date(userDelegationKeyCredential.userDelegationKey.signedStartsOn, false)\n : \"\",\n userDelegationKeyCredential.userDelegationKey.signedExpiresOn\n ? truncatedISO8061Date(userDelegationKeyCredential.userDelegationKey.signedExpiresOn, false)\n : \"\",\n userDelegationKeyCredential.userDelegationKey.signedService,\n userDelegationKeyCredential.userDelegationKey.signedVersion,\n blobSASSignatureValues.preauthorizedAgentObjectId,\n undefined, // agentObjectId\n blobSASSignatureValues.correlationId,\n blobSASSignatureValues.ipRange ? ipRangeToString(blobSASSignatureValues.ipRange) : \"\",\n blobSASSignatureValues.protocol ? blobSASSignatureValues.protocol : \"\",\n blobSASSignatureValues.version,\n resource,\n timestamp,\n blobSASSignatureValues.cacheControl,\n blobSASSignatureValues.contentDisposition,\n blobSASSignatureValues.contentEncoding,\n blobSASSignatureValues.contentLanguage,\n blobSASSignatureValues.contentType,\n ].join(\"\\n\");\n\n const signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign);\n return new SASQueryParameters(\n blobSASSignatureValues.version!,\n signature,\n verifiedPermissions,\n undefined,\n undefined,\n blobSASSignatureValues.protocol,\n blobSASSignatureValues.startsOn,\n blobSASSignatureValues.expiresOn,\n blobSASSignatureValues.ipRange,\n blobSASSignatureValues.identifier,\n resource,\n blobSASSignatureValues.cacheControl,\n blobSASSignatureValues.contentDisposition,\n blobSASSignatureValues.contentEncoding,\n blobSASSignatureValues.contentLanguage,\n blobSASSignatureValues.contentType,\n userDelegationKeyCredential.userDelegationKey,\n blobSASSignatureValues.preauthorizedAgentObjectId,\n blobSASSignatureValues.correlationId\n );\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n * IMPLEMENTATION FOR API VERSION FROM 2020-12-06.\n *\n * Creates an instance of SASQueryParameters.\n *\n * Only accepts required settings needed to create a SAS. For optional settings please\n * set corresponding properties directly, such as permissions, startsOn.\n *\n * WARNING: identifier will be ignored, permissions and expiresOn are required.\n *\n * @param blobSASSignatureValues -\n * @param userDelegationKeyCredential -\n */\nfunction generateBlobSASQueryParametersUDK20201206(\n blobSASSignatureValues: BlobSASSignatureValues,\n userDelegationKeyCredential: UserDelegationKeyCredential\n): SASQueryParameters {\n blobSASSignatureValues = SASSignatureValuesSanityCheckAndAutofill(blobSASSignatureValues);\n\n // Stored access policies are not supported for a user delegation SAS.\n if (!blobSASSignatureValues.permissions || !blobSASSignatureValues.expiresOn) {\n throw new RangeError(\n \"Must provide 'permissions' and 'expiresOn' for Blob SAS generation when generating user delegation SAS.\"\n );\n }\n\n let resource: string = \"c\";\n let timestamp = blobSASSignatureValues.snapshotTime;\n if (blobSASSignatureValues.blobName) {\n resource = \"b\";\n if (blobSASSignatureValues.snapshotTime) {\n resource = \"bs\";\n } else if (blobSASSignatureValues.versionId) {\n resource = \"bv\";\n timestamp = blobSASSignatureValues.versionId;\n }\n }\n\n // Calling parse and toString guarantees the proper ordering and throws on invalid characters.\n let verifiedPermissions: string | undefined;\n if (blobSASSignatureValues.permissions) {\n if (blobSASSignatureValues.blobName) {\n verifiedPermissions = BlobSASPermissions.parse(\n blobSASSignatureValues.permissions.toString()\n ).toString();\n } else {\n verifiedPermissions = ContainerSASPermissions.parse(\n blobSASSignatureValues.permissions.toString()\n ).toString();\n }\n }\n\n // Signature is generated on the un-url-encoded values.\n const stringToSign = [\n verifiedPermissions ? verifiedPermissions : \"\",\n blobSASSignatureValues.startsOn\n ? truncatedISO8061Date(blobSASSignatureValues.startsOn, false)\n : \"\",\n blobSASSignatureValues.expiresOn\n ? truncatedISO8061Date(blobSASSignatureValues.expiresOn, false)\n : \"\",\n getCanonicalName(\n userDelegationKeyCredential.accountName,\n blobSASSignatureValues.containerName,\n blobSASSignatureValues.blobName\n ),\n userDelegationKeyCredential.userDelegationKey.signedObjectId,\n userDelegationKeyCredential.userDelegationKey.signedTenantId,\n userDelegationKeyCredential.userDelegationKey.signedStartsOn\n ? truncatedISO8061Date(userDelegationKeyCredential.userDelegationKey.signedStartsOn, false)\n : \"\",\n userDelegationKeyCredential.userDelegationKey.signedExpiresOn\n ? truncatedISO8061Date(userDelegationKeyCredential.userDelegationKey.signedExpiresOn, false)\n : \"\",\n userDelegationKeyCredential.userDelegationKey.signedService,\n userDelegationKeyCredential.userDelegationKey.signedVersion,\n blobSASSignatureValues.preauthorizedAgentObjectId,\n undefined, // agentObjectId\n blobSASSignatureValues.correlationId,\n blobSASSignatureValues.ipRange ? ipRangeToString(blobSASSignatureValues.ipRange) : \"\",\n blobSASSignatureValues.protocol ? blobSASSignatureValues.protocol : \"\",\n blobSASSignatureValues.version,\n resource,\n timestamp,\n blobSASSignatureValues.encryptionScope,\n blobSASSignatureValues.cacheControl,\n blobSASSignatureValues.contentDisposition,\n blobSASSignatureValues.contentEncoding,\n blobSASSignatureValues.contentLanguage,\n blobSASSignatureValues.contentType,\n ].join(\"\\n\");\n\n const signature = userDelegationKeyCredential.computeHMACSHA256(stringToSign);\n return new SASQueryParameters(\n blobSASSignatureValues.version!,\n signature,\n verifiedPermissions,\n undefined,\n undefined,\n blobSASSignatureValues.protocol,\n blobSASSignatureValues.startsOn,\n blobSASSignatureValues.expiresOn,\n blobSASSignatureValues.ipRange,\n blobSASSignatureValues.identifier,\n resource,\n blobSASSignatureValues.cacheControl,\n blobSASSignatureValues.contentDisposition,\n blobSASSignatureValues.contentEncoding,\n blobSASSignatureValues.contentLanguage,\n blobSASSignatureValues.contentType,\n userDelegationKeyCredential.userDelegationKey,\n blobSASSignatureValues.preauthorizedAgentObjectId,\n blobSASSignatureValues.correlationId,\n blobSASSignatureValues.encryptionScope\n );\n}\n\nfunction getCanonicalName(accountName: string, containerName: string, blobName?: string): string {\n // Container: \"/blob/account/containerName\"\n // Blob: \"/blob/account/containerName/blobName\"\n const elements: string[] = [`/blob/${accountName}/${containerName}`];\n if (blobName) {\n elements.push(`/${blobName}`);\n }\n return elements.join(\"\");\n}\n\nfunction SASSignatureValuesSanityCheckAndAutofill(\n blobSASSignatureValues: BlobSASSignatureValues\n): BlobSASSignatureValues {\n const version = blobSASSignatureValues.version ? blobSASSignatureValues.version : SERVICE_VERSION;\n if (blobSASSignatureValues.snapshotTime && version < \"2018-11-09\") {\n throw RangeError(\"'version' must be >= '2018-11-09' when providing 'snapshotTime'.\");\n }\n if (blobSASSignatureValues.blobName === undefined && blobSASSignatureValues.snapshotTime) {\n throw RangeError(\"Must provide 'blobName' when providing 'snapshotTime'.\");\n }\n\n if (blobSASSignatureValues.versionId && version < \"2019-10-10\") {\n throw RangeError(\"'version' must be >= '2019-10-10' when providing 'versionId'.\");\n }\n if (blobSASSignatureValues.blobName === undefined && blobSASSignatureValues.versionId) {\n throw RangeError(\"Must provide 'blobName' when providing 'versionId'.\");\n }\n\n if (\n blobSASSignatureValues.permissions &&\n blobSASSignatureValues.permissions.setImmutabilityPolicy &&\n version < \"2020-08-04\"\n ) {\n throw RangeError(\"'version' must be >= '2020-08-04' when provided 'i' permission.\");\n }\n\n if (\n blobSASSignatureValues.permissions &&\n blobSASSignatureValues.permissions.deleteVersion &&\n version < \"2019-10-10\"\n ) {\n throw RangeError(\"'version' must be >= '2019-10-10' when providing 'x' permission.\");\n }\n\n if (\n blobSASSignatureValues.permissions &&\n blobSASSignatureValues.permissions.permanentDelete &&\n version < \"2019-10-10\"\n ) {\n throw RangeError(\"'version' must be >= '2019-10-10' when providing 'y' permission.\");\n }\n\n if (\n blobSASSignatureValues.permissions &&\n blobSASSignatureValues.permissions.tag &&\n version < \"2019-12-12\"\n ) {\n throw RangeError(\"'version' must be >= '2019-12-12' when providing 't' permission.\");\n }\n\n if (\n version < \"2020-02-10\" &&\n blobSASSignatureValues.permissions &&\n (blobSASSignatureValues.permissions.move || blobSASSignatureValues.permissions.execute)\n ) {\n throw RangeError(\"'version' must be >= '2020-02-10' when providing the 'm' or 'e' permission.\");\n }\n\n if (\n version < \"2021-04-10\" &&\n blobSASSignatureValues.permissions &&\n (blobSASSignatureValues.permissions as ContainerSASPermissions).filterByTags\n ) {\n throw RangeError(\"'version' must be >= '2021-04-10' when providing the 'f' permission.\");\n }\n\n if (\n version < \"2020-02-10\" &&\n (blobSASSignatureValues.preauthorizedAgentObjectId || blobSASSignatureValues.correlationId)\n ) {\n throw RangeError(\n \"'version' must be >= '2020-02-10' when providing 'preauthorizedAgentObjectId' or 'correlationId'.\"\n );\n }\n\n if (blobSASSignatureValues.encryptionScope && version < \"2020-12-06\") {\n throw RangeError(\"'version' must be >= '2020-12-06' when provided 'encryptionScope' in SAS.\");\n }\n\n blobSASSignatureValues.version = version;\n return blobSASSignatureValues;\n}\n","import * as React from 'react';\nimport { classNamesFunction, getNativeProps, imgProperties } from '../../Utilities';\nimport { ImageCoverStyle, ImageFit, ImageLoadState } from './Image.types';\nimport { useIsomorphicLayoutEffect, useMergedRefs } from '@fluentui/react-hooks';\nimport type { IImageProps, IImageStyleProps, IImageStyles } from './Image.types';\n\nconst getClassNames = classNamesFunction();\n\nexport interface IImageState {\n loadState?: ImageLoadState;\n}\n\nconst SVG_REGEX = /\\.svg$/i;\nconst KEY_PREFIX = 'fabricImage';\n\nfunction useLoadState(\n props: IImageProps,\n imageElement: React.RefObject,\n): readonly [\n ImageLoadState,\n /* onImageLoad */ (ev: React.SyntheticEvent) => void,\n /* onImageError */ (ev: React.SyntheticEvent) => void,\n] {\n const { onLoadingStateChange, onLoad, onError, src } = props;\n\n const [loadState, setLoadState] = React.useState(ImageLoadState.notLoaded);\n\n useIsomorphicLayoutEffect(() => {\n // If the src property changes, reset the load state\n // (does nothing if the load state is already notLoaded)\n setLoadState(ImageLoadState.notLoaded);\n }, [src]);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps -- intended to run every render\n React.useEffect(() => {\n if (loadState === ImageLoadState.notLoaded) {\n // testing if naturalWidth and naturalHeight are greater than zero is better than checking\n // .complete, because .complete will also be set to true if the image breaks. However,\n // for some browsers, SVG images do not have a naturalWidth or naturalHeight, so fall back\n // to checking .complete for these images.\n const isLoaded: boolean = imageElement.current\n ? (src && imageElement.current.naturalWidth > 0 && imageElement.current.naturalHeight > 0) ||\n (imageElement.current.complete && SVG_REGEX.test(src!))\n : false;\n\n if (isLoaded) {\n setLoadState(ImageLoadState.loaded);\n }\n }\n });\n\n React.useEffect(() => {\n onLoadingStateChange?.(loadState);\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run when loadState changes\n }, [loadState]);\n\n const onImageLoaded = React.useCallback(\n (ev: React.SyntheticEvent) => {\n onLoad?.(ev);\n if (src) {\n setLoadState(ImageLoadState.loaded);\n }\n },\n [src, onLoad],\n );\n\n const onImageError = React.useCallback(\n (ev: React.SyntheticEvent) => {\n onError?.(ev);\n setLoadState(ImageLoadState.error);\n },\n [onError],\n );\n\n return [loadState, onImageLoaded, onImageError] as const;\n}\n\nexport const ImageBase: React.FunctionComponent = React.forwardRef(\n (props, forwardedRef) => {\n const frameElement = React.useRef() as React.RefObject;\n const imageElement = React.useRef() as React.RefObject;\n const [loadState, onImageLoaded, onImageError] = useLoadState(props, imageElement);\n\n const imageProps = getNativeProps>(props, imgProperties, [\n 'width',\n 'height',\n ]);\n const {\n src,\n alt,\n width,\n height,\n shouldFadeIn = true,\n shouldStartVisible,\n className,\n imageFit,\n role,\n maximizeFrame,\n styles,\n theme,\n loading,\n } = props;\n const coverStyle = useCoverStyle(props, loadState, imageElement, frameElement);\n const classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n width,\n height,\n maximizeFrame,\n shouldFadeIn,\n shouldStartVisible,\n isLoaded:\n loadState === ImageLoadState.loaded || (loadState === ImageLoadState.notLoaded && props.shouldStartVisible),\n isLandscape: coverStyle === ImageCoverStyle.landscape,\n isCenter: imageFit === ImageFit.center,\n isCenterContain: imageFit === ImageFit.centerContain,\n isCenterCover: imageFit === ImageFit.centerCover,\n isContain: imageFit === ImageFit.contain,\n isCover: imageFit === ImageFit.cover,\n isNone: imageFit === ImageFit.none,\n isError: loadState === ImageLoadState.error,\n isNotImageFit: imageFit === undefined,\n });\n\n // If image dimensions aren't specified, the natural size of the image is used.\n return (\n
    \n \n
    \n );\n },\n);\nImageBase.displayName = 'ImageBase';\n\nfunction useCoverStyle(\n props: IImageProps,\n loadState: ImageLoadState,\n imageElement: React.RefObject,\n frameElement: React.RefObject,\n) {\n const previousLoadState = React.useRef(loadState);\n const coverStyle = React.useRef();\n\n if (\n coverStyle === undefined ||\n (previousLoadState.current === ImageLoadState.notLoaded && loadState === ImageLoadState.loaded)\n ) {\n coverStyle.current = computeCoverStyle(props, loadState, imageElement, frameElement);\n }\n\n previousLoadState.current = loadState;\n\n return coverStyle.current!;\n}\n\nfunction computeCoverStyle(\n props: IImageProps,\n loadState: ImageLoadState,\n imageElement: React.RefObject,\n frameElement: React.RefObject,\n): ImageCoverStyle {\n const { imageFit, width, height } = props;\n\n // Do not compute cover style if it was already specified in props\n if (props.coverStyle !== undefined) {\n return props.coverStyle;\n } else if (\n loadState === ImageLoadState.loaded &&\n (imageFit === ImageFit.cover ||\n imageFit === ImageFit.contain ||\n imageFit === ImageFit.centerContain ||\n imageFit === ImageFit.centerCover) &&\n imageElement.current &&\n frameElement.current\n ) {\n // Determine the desired ratio using the width and height props.\n // If those props aren't available, measure measure the frame.\n let desiredRatio;\n if (\n typeof width === 'number' &&\n typeof height === 'number' &&\n imageFit !== ImageFit.centerContain &&\n imageFit !== ImageFit.centerCover\n ) {\n desiredRatio = width / height;\n } else {\n desiredRatio = frameElement.current.clientWidth / frameElement.current.clientHeight;\n }\n\n // Examine the source image to determine its original ratio.\n const naturalRatio = imageElement.current.naturalWidth / imageElement.current.naturalHeight;\n\n // Should we crop from the top or the sides?\n if (naturalRatio > desiredRatio) {\n return ImageCoverStyle.landscape;\n }\n }\n return ImageCoverStyle.portrait;\n}\n","import { AnimationClassNames, getGlobalClassNames } from '../../Styling';\nimport { getWindow } from '../../Utilities';\nimport type { IStyle } from '../../Styling';\nimport type { IImageStyleProps, IImageStyles } from './Image.types';\n\nconst GlobalClassNames = {\n root: 'ms-Image',\n rootMaximizeFrame: 'ms-Image--maximizeFrame',\n image: 'ms-Image-image',\n imageCenter: 'ms-Image-image--center',\n imageContain: 'ms-Image-image--contain',\n imageCover: 'ms-Image-image--cover',\n imageCenterContain: 'ms-Image-image--centerContain',\n imageCenterCover: 'ms-Image-image--centerCover',\n imageNone: 'ms-Image-image--none',\n imageLandscape: 'ms-Image-image--landscape',\n imagePortrait: 'ms-Image-image--portrait',\n};\n\nexport const getStyles = (props: IImageStyleProps): IImageStyles => {\n const {\n className,\n width,\n height,\n maximizeFrame,\n isLoaded,\n shouldFadeIn,\n shouldStartVisible,\n isLandscape,\n isCenter,\n isContain,\n isCover,\n isCenterContain,\n isCenterCover,\n isNone,\n isError,\n isNotImageFit,\n theme,\n } = props;\n\n const classNames = getGlobalClassNames(GlobalClassNames, theme);\n\n const ImageFitStyles: IStyle = {\n position: 'absolute',\n left: '50% /* @noflip */',\n top: '50%',\n transform: 'translate(-50%,-50%)', // @todo test RTL renders transform: translate(50%,-50%);\n };\n\n // Cut the mustard using msMaxTouchPoints to detect IE11 which does not support CSS object-fit\n const window: Window | undefined = getWindow();\n const supportsObjectFit: boolean = window !== undefined && window.navigator.msMaxTouchPoints === undefined;\n const fallbackObjectFitStyles =\n (isContain && isLandscape) || (isCover && !isLandscape)\n ? { width: '100%', height: 'auto' }\n : { width: 'auto', height: '100%' };\n\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n overflow: 'hidden',\n },\n maximizeFrame && [\n classNames.rootMaximizeFrame,\n {\n height: '100%',\n width: '100%',\n },\n ],\n isLoaded && shouldFadeIn && !shouldStartVisible && AnimationClassNames.fadeIn400,\n (isCenter || isContain || isCover || isCenterContain || isCenterCover) && {\n position: 'relative',\n },\n className,\n ],\n image: [\n classNames.image,\n {\n display: 'block',\n opacity: 0,\n },\n isLoaded && [\n 'is-loaded',\n {\n opacity: 1,\n },\n ],\n isCenter && [classNames.imageCenter, ImageFitStyles],\n isContain && [\n classNames.imageContain,\n supportsObjectFit && {\n width: '100%',\n height: '100%',\n objectFit: 'contain',\n },\n !supportsObjectFit && fallbackObjectFitStyles,\n !supportsObjectFit && ImageFitStyles,\n ],\n isCover && [\n classNames.imageCover,\n supportsObjectFit && {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n },\n !supportsObjectFit && fallbackObjectFitStyles,\n !supportsObjectFit && ImageFitStyles,\n ],\n isCenterContain && [\n classNames.imageCenterContain,\n isLandscape && {\n maxWidth: '100%',\n },\n !isLandscape && {\n maxHeight: '100%',\n },\n ImageFitStyles,\n ],\n isCenterCover && [\n classNames.imageCenterCover,\n isLandscape && {\n maxHeight: '100%',\n },\n !isLandscape && {\n maxWidth: '100%',\n },\n ImageFitStyles,\n ],\n isNone && [\n classNames.imageNone,\n {\n width: 'auto',\n height: 'auto',\n },\n ],\n isNotImageFit && [\n !!width &&\n !height && {\n height: 'auto',\n width: '100%',\n },\n !width &&\n !!height && {\n height: '100%',\n width: 'auto',\n },\n !!width &&\n !!height && {\n height: '100%',\n width: '100%',\n },\n ],\n isLandscape && classNames.imageLandscape,\n !isLandscape && classNames.imagePortrait,\n !isLoaded && 'is-notLoaded',\n shouldFadeIn && 'is-fadeIn',\n isError && 'is-error',\n ],\n };\n};\n","import * as React from 'react';\nimport { styled } from '../../Utilities';\nimport { ImageBase } from './Image.base';\nimport { getStyles } from './Image.styles';\nimport type { IImageProps, IImageStyleProps, IImageStyles } from './Image.types';\n\nexport const Image: React.FunctionComponent = styled(\n ImageBase,\n getStyles,\n undefined,\n {\n scope: 'Image',\n },\n true,\n);\nImage.displayName = 'Image';\n","// A packages cache that makes sure that we don't inject the same packageName twice in the same bundle -\n// this cache is local to the module closure inside this bundle\nconst packagesCache: { [name: string]: string } = {};\n\n// Cache access to window to avoid IE11 memory leak.\nlet _win: Window | undefined = undefined;\n\ntry {\n _win = window;\n} catch (e) {\n /* no-op */\n}\n\nexport function setVersion(packageName: string, packageVersion: string): void {\n if (typeof _win !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const packages = ((_win as any).__packages__ = (_win as any).__packages__ || {});\n\n // We allow either the global packages or local packages caches to invalidate so testing can\n // just clear the global to set this state\n if (!packages[packageName] || !packagesCache[packageName]) {\n packagesCache[packageName] = packageVersion;\n const versions = (packages[packageName] = packages[packageName] || []);\n versions.push(packageVersion);\n }\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions,\n} from \"./requestPolicy\";\nimport { SerializerOptions, XML_CHARKEY } from \"../util/serializer.common\";\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { MapperType } from \"../serializer\";\nimport { OperationResponse } from \"../operationResponse\";\nimport { OperationSpec } from \"../operationSpec\";\nimport { RestError } from \"../restError\";\nimport { WebResourceLike } from \"../webResource\";\nimport { parseXML } from \"../util/xml\";\n\n/**\n * Options to configure API response deserialization.\n */\nexport interface DeserializationOptions {\n /**\n * Configures the expected content types for the deserialization of\n * JSON and XML response bodies.\n */\n expectedContentTypes: DeserializationContentTypes;\n}\n\n/**\n * The content-types that will indicate that an operation response should be deserialized in a\n * particular way.\n */\nexport interface DeserializationContentTypes {\n /**\n * The content-types that indicate that an operation response should be deserialized as JSON.\n * Defaults to [ \"application/json\", \"text/json\" ].\n */\n json?: string[];\n\n /**\n * The content-types that indicate that an operation response should be deserialized as XML.\n * Defaults to [ \"application/xml\", \"application/atom+xml\" ].\n */\n xml?: string[];\n}\n\n/**\n * Create a new serialization RequestPolicyCreator that will serialized HTTP request bodies as they\n * pass through the HTTP pipeline.\n */\nexport function deserializationPolicy(\n deserializationContentTypes?: DeserializationContentTypes,\n parsingOptions?: SerializerOptions\n): RequestPolicyFactory {\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions) => {\n return new DeserializationPolicy(\n nextPolicy,\n options,\n deserializationContentTypes,\n parsingOptions\n );\n },\n };\n}\n\nexport const defaultJsonContentTypes = [\"application/json\", \"text/json\"];\nexport const defaultXmlContentTypes = [\"application/xml\", \"application/atom+xml\"];\n\nexport const DefaultDeserializationOptions: DeserializationOptions = {\n expectedContentTypes: {\n json: defaultJsonContentTypes,\n xml: defaultXmlContentTypes,\n },\n};\n\n/**\n * A RequestPolicy that will deserialize HTTP response bodies and headers as they pass through the\n * HTTP pipeline.\n */\nexport class DeserializationPolicy extends BaseRequestPolicy {\n public readonly jsonContentTypes: string[];\n public readonly xmlContentTypes: string[];\n public readonly xmlCharKey: string;\n\n constructor(\n nextPolicy: RequestPolicy,\n requestPolicyOptions: RequestPolicyOptions,\n deserializationContentTypes?: DeserializationContentTypes,\n parsingOptions: SerializerOptions = {}\n ) {\n super(nextPolicy, requestPolicyOptions);\n\n this.jsonContentTypes =\n (deserializationContentTypes && deserializationContentTypes.json) || defaultJsonContentTypes;\n this.xmlContentTypes =\n (deserializationContentTypes && deserializationContentTypes.xml) || defaultXmlContentTypes;\n this.xmlCharKey = parsingOptions.xmlCharKey ?? XML_CHARKEY;\n }\n\n public async sendRequest(request: WebResourceLike): Promise {\n return this._nextPolicy.sendRequest(request).then((response: HttpOperationResponse) =>\n deserializeResponseBody(this.jsonContentTypes, this.xmlContentTypes, response, {\n xmlCharKey: this.xmlCharKey,\n })\n );\n }\n}\n\nfunction getOperationResponse(\n parsedResponse: HttpOperationResponse\n): undefined | OperationResponse {\n let result: OperationResponse | undefined;\n const request: WebResourceLike = parsedResponse.request;\n const operationSpec: OperationSpec | undefined = request.operationSpec;\n if (operationSpec) {\n const operationResponseGetter:\n | undefined\n | ((\n operationSpec: OperationSpec,\n response: HttpOperationResponse\n ) => undefined | OperationResponse) = request.operationResponseGetter;\n if (!operationResponseGetter) {\n result = operationSpec.responses[parsedResponse.status];\n } else {\n result = operationResponseGetter(operationSpec, parsedResponse);\n }\n }\n return result;\n}\n\nfunction shouldDeserializeResponse(parsedResponse: HttpOperationResponse): boolean {\n const shouldDeserialize: undefined | boolean | ((response: HttpOperationResponse) => boolean) =\n parsedResponse.request.shouldDeserialize;\n let result: boolean;\n if (shouldDeserialize === undefined) {\n result = true;\n } else if (typeof shouldDeserialize === \"boolean\") {\n result = shouldDeserialize;\n } else {\n result = shouldDeserialize(parsedResponse);\n }\n return result;\n}\n\n/**\n * Given a particular set of content types to parse as either JSON or XML, consumes the HTTP response to produce the result object defined by the request's {@link OperationSpec}.\n * @param jsonContentTypes - Response content types to parse the body as JSON.\n * @param xmlContentTypes - Response content types to parse the body as XML.\n * @param response - HTTP Response from the pipeline.\n * @param options - Options to the serializer, mostly for configuring the XML parser if needed.\n * @returns A parsed {@link HttpOperationResponse} object that can be returned by the {@link ServiceClient}.\n */\nexport function deserializeResponseBody(\n jsonContentTypes: string[],\n xmlContentTypes: string[],\n response: HttpOperationResponse,\n options: SerializerOptions = {}\n): Promise {\n const updatedOptions: Required = {\n rootName: options.rootName ?? \"\",\n includeRoot: options.includeRoot ?? false,\n xmlCharKey: options.xmlCharKey ?? XML_CHARKEY,\n };\n return parse(jsonContentTypes, xmlContentTypes, response, updatedOptions).then(\n (parsedResponse) => {\n if (!shouldDeserializeResponse(parsedResponse)) {\n return parsedResponse;\n }\n\n const operationSpec = parsedResponse.request.operationSpec;\n if (!operationSpec || !operationSpec.responses) {\n return parsedResponse;\n }\n\n const responseSpec = getOperationResponse(parsedResponse);\n\n const { error, shouldReturnResponse } = handleErrorResponse(\n parsedResponse,\n operationSpec,\n responseSpec\n );\n if (error) {\n throw error;\n } else if (shouldReturnResponse) {\n return parsedResponse;\n }\n\n // An operation response spec does exist for current status code, so\n // use it to deserialize the response.\n if (responseSpec) {\n if (responseSpec.bodyMapper) {\n let valueToDeserialize: any = parsedResponse.parsedBody;\n if (operationSpec.isXML && responseSpec.bodyMapper.type.name === MapperType.Sequence) {\n valueToDeserialize =\n typeof valueToDeserialize === \"object\"\n ? valueToDeserialize[responseSpec.bodyMapper.xmlElementName!]\n : [];\n }\n try {\n parsedResponse.parsedBody = operationSpec.serializer.deserialize(\n responseSpec.bodyMapper,\n valueToDeserialize,\n \"operationRes.parsedBody\",\n options\n );\n } catch (innerError: any) {\n const restError = new RestError(\n `Error ${innerError} occurred in deserializing the responseBody - ${parsedResponse.bodyAsText}`,\n undefined,\n parsedResponse.status,\n parsedResponse.request,\n parsedResponse\n );\n throw restError;\n }\n } else if (operationSpec.httpMethod === \"HEAD\") {\n // head methods never have a body, but we return a boolean to indicate presence/absence of the resource\n parsedResponse.parsedBody = response.status >= 200 && response.status < 300;\n }\n\n if (responseSpec.headersMapper) {\n parsedResponse.parsedHeaders = operationSpec.serializer.deserialize(\n responseSpec.headersMapper,\n parsedResponse.headers.rawHeaders(),\n \"operationRes.parsedHeaders\",\n options\n );\n }\n }\n\n return parsedResponse;\n }\n );\n}\n\nfunction isOperationSpecEmpty(operationSpec: OperationSpec): boolean {\n const expectedStatusCodes = Object.keys(operationSpec.responses);\n return (\n expectedStatusCodes.length === 0 ||\n (expectedStatusCodes.length === 1 && expectedStatusCodes[0] === \"default\")\n );\n}\n\nfunction handleErrorResponse(\n parsedResponse: HttpOperationResponse,\n operationSpec: OperationSpec,\n responseSpec: OperationResponse | undefined\n): { error: RestError | null; shouldReturnResponse: boolean } {\n const isSuccessByStatus = 200 <= parsedResponse.status && parsedResponse.status < 300;\n const isExpectedStatusCode: boolean = isOperationSpecEmpty(operationSpec)\n ? isSuccessByStatus\n : !!responseSpec;\n\n if (isExpectedStatusCode) {\n if (responseSpec) {\n if (!responseSpec.isError) {\n return { error: null, shouldReturnResponse: false };\n }\n } else {\n return { error: null, shouldReturnResponse: false };\n }\n }\n\n const errorResponseSpec = responseSpec ?? operationSpec.responses.default;\n const streaming =\n parsedResponse.request.streamResponseStatusCodes?.has(parsedResponse.status) ||\n parsedResponse.request.streamResponseBody;\n const initialErrorMessage = streaming\n ? `Unexpected status code: ${parsedResponse.status}`\n : (parsedResponse.bodyAsText as string);\n\n const error = new RestError(\n initialErrorMessage,\n undefined,\n parsedResponse.status,\n parsedResponse.request,\n parsedResponse\n );\n\n // If the item failed but there's no error spec or default spec to deserialize the error,\n // we should fail so we just throw the parsed response\n if (!errorResponseSpec) {\n throw error;\n }\n\n const defaultBodyMapper = errorResponseSpec.bodyMapper;\n const defaultHeadersMapper = errorResponseSpec.headersMapper;\n\n try {\n // If error response has a body, try to deserialize it using default body mapper.\n // Then try to extract error code & message from it\n if (parsedResponse.parsedBody) {\n const parsedBody = parsedResponse.parsedBody;\n let parsedError;\n if (defaultBodyMapper) {\n let valueToDeserialize: any = parsedBody;\n if (operationSpec.isXML && defaultBodyMapper.type.name === MapperType.Sequence) {\n valueToDeserialize =\n typeof parsedBody === \"object\" ? parsedBody[defaultBodyMapper.xmlElementName!] : [];\n }\n parsedError = operationSpec.serializer.deserialize(\n defaultBodyMapper,\n valueToDeserialize,\n \"error.response.parsedBody\"\n );\n }\n\n const internalError: any = parsedBody.error || parsedError || parsedBody;\n error.code = internalError.code;\n if (internalError.message) {\n error.message = internalError.message;\n }\n\n if (defaultBodyMapper) {\n error.response!.parsedBody = parsedError;\n }\n }\n\n // If error response has headers, try to deserialize it using default header mapper\n if (parsedResponse.headers && defaultHeadersMapper) {\n error.response!.parsedHeaders = operationSpec.serializer.deserialize(\n defaultHeadersMapper,\n parsedResponse.headers.rawHeaders(),\n \"operationRes.parsedHeaders\"\n );\n }\n } catch (defaultError: any) {\n error.message = `Error \"${defaultError.message}\" occurred in deserializing the responseBody - \"${parsedResponse.bodyAsText}\" for the default response.`;\n }\n\n return { error, shouldReturnResponse: false };\n}\n\nfunction parse(\n jsonContentTypes: string[],\n xmlContentTypes: string[],\n operationResponse: HttpOperationResponse,\n opts: Required\n): Promise {\n const errorHandler = (err: Error & { code: string }): Promise => {\n const msg = `Error \"${err}\" occurred while parsing the response body - ${operationResponse.bodyAsText}.`;\n const errCode = err.code || RestError.PARSE_ERROR;\n const e = new RestError(\n msg,\n errCode,\n operationResponse.status,\n operationResponse.request,\n operationResponse\n );\n return Promise.reject(e);\n };\n\n const streaming =\n operationResponse.request.streamResponseStatusCodes?.has(operationResponse.status) ||\n operationResponse.request.streamResponseBody;\n if (!streaming && operationResponse.bodyAsText) {\n const text = operationResponse.bodyAsText;\n const contentType: string = operationResponse.headers.get(\"Content-Type\") || \"\";\n const contentComponents: string[] = !contentType\n ? []\n : contentType.split(\";\").map((component) => component.toLowerCase());\n if (\n contentComponents.length === 0 ||\n contentComponents.some((component) => jsonContentTypes.indexOf(component) !== -1)\n ) {\n return new Promise((resolve) => {\n operationResponse.parsedBody = JSON.parse(text);\n resolve(operationResponse);\n }).catch(errorHandler);\n } else if (contentComponents.some((component) => xmlContentTypes.indexOf(component) !== -1)) {\n return parseXML(text, opts)\n .then((body) => {\n operationResponse.parsedBody = body;\n return operationResponse;\n })\n .catch(errorHandler);\n }\n }\n\n return Promise.resolve(operationResponse);\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { Context, SpanOptions } from \"@azure/core-tracing\";\nimport { HttpHeaders, HttpHeadersLike, isHttpHeadersLike } from \"./httpHeaders\";\nimport { Mapper, Serializer } from \"./serializer\";\nimport { AbortSignalLike } from \"@azure/abort-controller\";\nimport { HttpOperationResponse } from \"./httpOperationResponse\";\nimport { OperationResponse } from \"./operationResponse\";\nimport { OperationSpec } from \"./operationSpec\";\nimport { ProxySettings } from \"./serviceClient\";\nimport { SerializerOptions } from \"./util/serializer.common\";\nimport { generateUuid } from \"./util/utils\";\n\n/**\n * List of supported HTTP methods.\n */\nexport type HttpMethods =\n | \"GET\"\n | \"PUT\"\n | \"POST\"\n | \"DELETE\"\n | \"PATCH\"\n | \"HEAD\"\n | \"OPTIONS\"\n | \"TRACE\";\n\n/**\n * Possible HTTP request body types\n */\nexport type HttpRequestBody =\n | Blob\n | string\n | ArrayBuffer\n | ArrayBufferView\n | (() => NodeJS.ReadableStream);\n\n/**\n * Fired in response to upload or download progress.\n */\nexport type TransferProgressEvent = {\n /**\n * The number of bytes loaded so far.\n */\n loadedBytes: number;\n};\n\n/**\n * A description of a HTTP request to be made to a remote server.\n */\nexport interface WebResourceLike {\n /**\n * The URL being accessed by the request.\n */\n url: string;\n /**\n * The HTTP method to use when making the request.\n */\n method: HttpMethods;\n /**\n * The HTTP body contents of the request.\n */\n body?: any;\n /**\n * The HTTP headers to use when making the request.\n */\n headers: HttpHeadersLike;\n /**\n * Whether or not the body of the HttpOperationResponse should be treated as a stream.\n * @deprecated Use streamResponseStatusCodes property instead.\n */\n streamResponseBody?: boolean;\n /**\n * A list of response status codes whose corresponding HttpOperationResponse body should be treated as a stream.\n */\n streamResponseStatusCodes?: Set;\n /**\n * Whether or not the HttpOperationResponse should be deserialized. If this is undefined, then the\n * HttpOperationResponse should be deserialized.\n */\n shouldDeserialize?: boolean | ((response: HttpOperationResponse) => boolean);\n /**\n * A function that returns the proper OperationResponse for the given OperationSpec and\n * HttpOperationResponse combination. If this is undefined, then a simple status code lookup will\n * be used.\n */\n operationResponseGetter?: (\n operationSpec: OperationSpec,\n response: HttpOperationResponse\n ) => undefined | OperationResponse;\n /**\n * Form data, used to build the request body.\n */\n formData?: any;\n /**\n * A query string represented as an object.\n */\n query?: { [key: string]: any };\n /**\n * Used to parse the response.\n */\n operationSpec?: OperationSpec;\n /**\n * If credentials (cookies) should be sent along during an XHR.\n */\n withCredentials: boolean;\n /**\n * The number of milliseconds a request can take before automatically being terminated.\n * If the request is terminated, an `AbortError` is thrown.\n */\n timeout: number;\n /**\n * Proxy configuration.\n */\n proxySettings?: ProxySettings;\n /**\n * If the connection should be reused.\n */\n keepAlive?: boolean;\n /**\n * Whether or not to decompress response according to Accept-Encoding header (node-fetch only)\n */\n decompressResponse?: boolean;\n /**\n * A unique identifier for the request. Used for logging and tracing.\n */\n requestId: string;\n\n /**\n * Signal of an abort controller. Can be used to abort both sending a network request and waiting for a response.\n */\n abortSignal?: AbortSignalLike;\n\n /**\n * Callback which fires upon upload progress.\n */\n onUploadProgress?: (progress: TransferProgressEvent) => void;\n\n /** Callback which fires upon download progress. */\n onDownloadProgress?: (progress: TransferProgressEvent) => void;\n\n /**\n * Tracing: Context used when creating spans.\n */\n tracingContext?: Context;\n\n /**\n * Validates that the required properties such as method, url, headers[\"Content-Type\"],\n * headers[\"accept-language\"] are defined. It will throw an error if one of the above\n * mentioned properties are not defined.\n */\n validateRequestProperties(): void;\n\n /**\n * Sets options on the request.\n */\n prepare(options: RequestPrepareOptions): WebResourceLike;\n /**\n * Clone this request object.\n */\n clone(): WebResourceLike;\n}\n\nexport function isWebResourceLike(object: unknown): object is WebResourceLike {\n if (object && typeof object === \"object\") {\n const castObject = object as {\n url: unknown;\n method: unknown;\n headers: unknown;\n validateRequestProperties: unknown;\n prepare: unknown;\n clone: unknown;\n };\n if (\n typeof castObject.url === \"string\" &&\n typeof castObject.method === \"string\" &&\n typeof castObject.headers === \"object\" &&\n isHttpHeadersLike(castObject.headers) &&\n typeof castObject.validateRequestProperties === \"function\" &&\n typeof castObject.prepare === \"function\" &&\n typeof castObject.clone === \"function\"\n ) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Creates a new WebResource object.\n *\n * This class provides an abstraction over a REST call by being library / implementation agnostic and wrapping the necessary\n * properties to initiate a request.\n */\nexport class WebResource implements WebResourceLike {\n /**\n * URL of the outgoing request.\n */\n url: string;\n /**\n * HTTP method to use.\n */\n method: HttpMethods;\n /**\n * Request body.\n */\n body?: any;\n /**\n * HTTP headers.\n */\n headers: HttpHeadersLike;\n /**\n * Whether or not the body of the HttpOperationResponse should be treated as a stream.\n * @deprecated Use streamResponseStatusCodes property instead.\n */\n streamResponseBody?: boolean;\n /**\n * A list of status codes whose corresponding HttpOperationResponse body should be treated as a stream.\n */\n streamResponseStatusCodes?: Set;\n /**\n * Whether or not the HttpOperationResponse should be deserialized. If this is undefined, then the\n * HttpOperationResponse should be deserialized.\n */\n shouldDeserialize?: boolean | ((response: HttpOperationResponse) => boolean);\n /**\n * A function that returns the proper OperationResponse for the given OperationSpec and\n * HttpOperationResponse combination. If this is undefined, then a simple status code lookup will\n * be used.\n */\n operationResponseGetter?: (\n operationSpec: OperationSpec,\n response: HttpOperationResponse\n ) => undefined | OperationResponse;\n /**\n * Form data, used to build the request body.\n */\n formData?: any;\n /**\n * Query added to the URL.\n */\n query?: { [key: string]: any };\n /**\n * Specification of the HTTP request.\n */\n operationSpec?: OperationSpec;\n /**\n * Whether to send credentials (via cookies, authorization headers, or TLS client certificates) when making a request in the browser to a cross-site destination.\n */\n withCredentials: boolean;\n /**\n * How long to wait in milliseconds before aborting the request.\n */\n timeout: number;\n /**\n * What proxy to use, if necessary.\n */\n proxySettings?: ProxySettings;\n /**\n * Whether to keep the HTTP connections alive throughout requests.\n */\n keepAlive?: boolean;\n /**\n * Whether or not to decompress response according to Accept-Encoding header (node-fetch only)\n */\n decompressResponse?: boolean;\n /**\n * Unique identifier of the outgoing request.\n */\n requestId: string;\n\n /**\n * Signal of an abort controller. Can be used to abort both sending a network request and waiting for a response.\n */\n abortSignal?: AbortSignalLike;\n\n /**\n * Callback which fires upon upload progress.\n */\n onUploadProgress?: (progress: TransferProgressEvent) => void;\n\n /**\n * Callback which fires upon download progress.\n */\n onDownloadProgress?: (progress: TransferProgressEvent) => void;\n\n /**\n * Tracing: Options used to create a span when tracing is enabled.\n */\n spanOptions?: SpanOptions;\n\n /**\n * Tracing: Context used when creating Spans.\n */\n tracingContext?: Context;\n\n constructor(\n url?: string,\n method?: HttpMethods,\n body?: unknown,\n query?: { [key: string]: any },\n headers?: { [key: string]: any } | HttpHeadersLike,\n streamResponseBody?: boolean,\n withCredentials?: boolean,\n abortSignal?: AbortSignalLike,\n timeout?: number,\n onUploadProgress?: (progress: TransferProgressEvent) => void,\n onDownloadProgress?: (progress: TransferProgressEvent) => void,\n proxySettings?: ProxySettings,\n keepAlive?: boolean,\n decompressResponse?: boolean,\n streamResponseStatusCodes?: Set\n ) {\n this.streamResponseBody = streamResponseBody;\n this.streamResponseStatusCodes = streamResponseStatusCodes;\n this.url = url || \"\";\n this.method = method || \"GET\";\n this.headers = isHttpHeadersLike(headers) ? headers : new HttpHeaders(headers);\n this.body = body;\n this.query = query;\n this.formData = undefined;\n this.withCredentials = withCredentials || false;\n this.abortSignal = abortSignal;\n this.timeout = timeout || 0;\n this.onUploadProgress = onUploadProgress;\n this.onDownloadProgress = onDownloadProgress;\n this.proxySettings = proxySettings;\n this.keepAlive = keepAlive;\n this.decompressResponse = decompressResponse;\n this.requestId = this.headers.get(\"x-ms-client-request-id\") || generateUuid();\n }\n\n /**\n * Validates that the required properties such as method, url, headers[\"Content-Type\"],\n * headers[\"accept-language\"] are defined. It will throw an error if one of the above\n * mentioned properties are not defined.\n */\n validateRequestProperties(): void {\n if (!this.method) {\n throw new Error(\"WebResource.method is required.\");\n }\n if (!this.url) {\n throw new Error(\"WebResource.url is required.\");\n }\n }\n\n /**\n * Prepares the request.\n * @param options - Options to provide for preparing the request.\n * @returns Returns the prepared WebResource (HTTP Request) object that needs to be given to the request pipeline.\n */\n prepare(options: RequestPrepareOptions): WebResource {\n if (!options) {\n throw new Error(\"options object is required\");\n }\n\n if (\n options.method === undefined ||\n options.method === null ||\n typeof options.method.valueOf() !== \"string\"\n ) {\n throw new Error(\"options.method must be a string.\");\n }\n\n if (options.url && options.pathTemplate) {\n throw new Error(\n \"options.url and options.pathTemplate are mutually exclusive. Please provide exactly one of them.\"\n );\n }\n\n if (\n (options.pathTemplate === undefined ||\n options.pathTemplate === null ||\n typeof options.pathTemplate.valueOf() !== \"string\") &&\n (options.url === undefined ||\n options.url === null ||\n typeof options.url.valueOf() !== \"string\")\n ) {\n throw new Error(\"Please provide exactly one of options.pathTemplate or options.url.\");\n }\n\n // set the url if it is provided.\n if (options.url) {\n if (typeof options.url !== \"string\") {\n throw new Error('options.url must be of type \"string\".');\n }\n this.url = options.url;\n }\n\n // set the method\n if (options.method) {\n const validMethods = [\"GET\", \"PUT\", \"HEAD\", \"DELETE\", \"OPTIONS\", \"POST\", \"PATCH\", \"TRACE\"];\n if (validMethods.indexOf(options.method.toUpperCase()) === -1) {\n throw new Error(\n 'The provided method \"' +\n options.method +\n '\" is invalid. Supported HTTP methods are: ' +\n JSON.stringify(validMethods)\n );\n }\n }\n this.method = options.method.toUpperCase() as HttpMethods;\n\n // construct the url if path template is provided\n if (options.pathTemplate) {\n const { pathTemplate, pathParameters } = options;\n if (typeof pathTemplate !== \"string\") {\n throw new Error('options.pathTemplate must be of type \"string\".');\n }\n if (!options.baseUrl) {\n options.baseUrl = \"https://management.azure.com\";\n }\n const baseUrl = options.baseUrl;\n let url =\n baseUrl +\n (baseUrl.endsWith(\"/\") ? \"\" : \"/\") +\n (pathTemplate.startsWith(\"/\") ? pathTemplate.slice(1) : pathTemplate);\n const segments = url.match(/({[\\w-]*\\s*[\\w-]*})/gi);\n if (segments && segments.length) {\n if (!pathParameters) {\n throw new Error(\n `pathTemplate: ${pathTemplate} has been provided. Hence, options.pathParameters must also be provided.`\n );\n }\n segments.forEach(function (item) {\n const pathParamName = item.slice(1, -1);\n const pathParam = (pathParameters as { [key: string]: any })[pathParamName];\n if (\n pathParam === null ||\n pathParam === undefined ||\n !(typeof pathParam === \"string\" || typeof pathParam === \"object\")\n ) {\n const stringifiedPathParameters = JSON.stringify(pathParameters, undefined, 2);\n throw new Error(\n `pathTemplate: ${pathTemplate} contains the path parameter ${pathParamName}` +\n ` however, it is not present in parameters: ${stringifiedPathParameters}.` +\n `The value of the path parameter can either be a \"string\" of the form { ${pathParamName}: \"some sample value\" } or ` +\n `it can be an \"object\" of the form { \"${pathParamName}\": { value: \"some sample value\", skipUrlEncoding: true } }.`\n );\n }\n\n if (typeof pathParam.valueOf() === \"string\") {\n url = url.replace(item, encodeURIComponent(pathParam));\n }\n\n if (typeof pathParam.valueOf() === \"object\") {\n if (!pathParam.value) {\n throw new Error(\n `options.pathParameters[${pathParamName}] is of type \"object\" but it does not contain a \"value\" property.`\n );\n }\n if (pathParam.skipUrlEncoding) {\n url = url.replace(item, pathParam.value);\n } else {\n url = url.replace(item, encodeURIComponent(pathParam.value));\n }\n }\n });\n }\n this.url = url;\n }\n\n // append query parameters to the url if they are provided. They can be provided with pathTemplate or url option.\n if (options.queryParameters) {\n const queryParameters = options.queryParameters;\n if (typeof queryParameters !== \"object\") {\n throw new Error(\n `options.queryParameters must be of type object. It should be a JSON object ` +\n `of \"query-parameter-name\" as the key and the \"query-parameter-value\" as the value. ` +\n `The \"query-parameter-value\" may be fo type \"string\" or an \"object\" of the form { value: \"query-parameter-value\", skipUrlEncoding: true }.`\n );\n }\n // append question mark if it is not present in the url\n if (this.url && this.url.indexOf(\"?\") === -1) {\n this.url += \"?\";\n }\n // construct queryString\n const queryParams = [];\n // We need to populate this.query as a dictionary if the request is being used for Sway's validateRequest().\n this.query = {};\n for (const queryParamName in queryParameters) {\n const queryParam: any = queryParameters[queryParamName];\n if (queryParam) {\n if (typeof queryParam === \"string\") {\n queryParams.push(queryParamName + \"=\" + encodeURIComponent(queryParam));\n this.query[queryParamName] = encodeURIComponent(queryParam);\n } else if (typeof queryParam === \"object\") {\n if (!queryParam.value) {\n throw new Error(\n `options.queryParameters[${queryParamName}] is of type \"object\" but it does not contain a \"value\" property.`\n );\n }\n if (queryParam.skipUrlEncoding) {\n queryParams.push(queryParamName + \"=\" + queryParam.value);\n this.query[queryParamName] = queryParam.value;\n } else {\n queryParams.push(queryParamName + \"=\" + encodeURIComponent(queryParam.value));\n this.query[queryParamName] = encodeURIComponent(queryParam.value);\n }\n }\n }\n } // end-of-for\n // append the queryString\n this.url += queryParams.join(\"&\");\n }\n\n // add headers to the request if they are provided\n if (options.headers) {\n const headers = options.headers;\n for (const headerName of Object.keys(options.headers)) {\n this.headers.set(headerName, headers[headerName]);\n }\n }\n // ensure accept-language is set correctly\n if (!this.headers.get(\"accept-language\")) {\n this.headers.set(\"accept-language\", \"en-US\");\n }\n // ensure the request-id is set correctly\n if (!this.headers.get(\"x-ms-client-request-id\") && !options.disableClientRequestId) {\n this.headers.set(\"x-ms-client-request-id\", this.requestId);\n }\n\n // default\n if (!this.headers.get(\"Content-Type\")) {\n this.headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n // set the request body. request.js automatically sets the Content-Length request header, so we need not set it explicitly\n this.body = options.body;\n if (options.body !== undefined && options.body !== null) {\n // body as a stream special case. set the body as-is and check for some special request headers specific to sending a stream.\n if (options.bodyIsStream) {\n if (!this.headers.get(\"Transfer-Encoding\")) {\n this.headers.set(\"Transfer-Encoding\", \"chunked\");\n }\n if (this.headers.get(\"Content-Type\") !== \"application/octet-stream\") {\n this.headers.set(\"Content-Type\", \"application/octet-stream\");\n }\n } else {\n if (options.serializationMapper) {\n this.body = new Serializer(options.mappers).serialize(\n options.serializationMapper,\n options.body,\n \"requestBody\"\n );\n }\n if (!options.disableJsonStringifyOnBody) {\n this.body = JSON.stringify(options.body);\n }\n }\n }\n\n if (options.spanOptions) {\n this.spanOptions = options.spanOptions;\n }\n\n if (options.tracingContext) {\n this.tracingContext = options.tracingContext;\n }\n\n this.abortSignal = options.abortSignal;\n this.onDownloadProgress = options.onDownloadProgress;\n this.onUploadProgress = options.onUploadProgress;\n\n return this;\n }\n\n /**\n * Clone this WebResource HTTP request object.\n * @returns The clone of this WebResource HTTP request object.\n */\n clone(): WebResource {\n const result = new WebResource(\n this.url,\n this.method,\n this.body,\n this.query,\n this.headers && this.headers.clone(),\n this.streamResponseBody,\n this.withCredentials,\n this.abortSignal,\n this.timeout,\n this.onUploadProgress,\n this.onDownloadProgress,\n this.proxySettings,\n this.keepAlive,\n this.decompressResponse,\n this.streamResponseStatusCodes\n );\n\n if (this.formData) {\n result.formData = this.formData;\n }\n\n if (this.operationSpec) {\n result.operationSpec = this.operationSpec;\n }\n\n if (this.shouldDeserialize) {\n result.shouldDeserialize = this.shouldDeserialize;\n }\n\n if (this.operationResponseGetter) {\n result.operationResponseGetter = this.operationResponseGetter;\n }\n\n return result;\n }\n}\n\n/**\n * Options to prepare an outgoing HTTP request.\n */\nexport interface RequestPrepareOptions {\n /**\n * The HTTP request method. Valid values are \"GET\", \"PUT\", \"HEAD\", \"DELETE\", \"OPTIONS\", \"POST\",\n * or \"PATCH\".\n */\n method: HttpMethods;\n /**\n * The request url. It may or may not have query parameters in it. Either provide the \"url\" or\n * provide the \"pathTemplate\" in the options object. Both the options are mutually exclusive.\n */\n url?: string;\n /**\n * A dictionary of query parameters to be appended to the url, where\n * the \"key\" is the \"query-parameter-name\" and the \"value\" is the \"query-parameter-value\".\n * The \"query-parameter-value\" can be of type \"string\" or it can be of type \"object\".\n * The \"object\" format should be used when you want to skip url encoding. While using the object format,\n * the object must have a property named value which provides the \"query-parameter-value\".\n * Example:\n * - query-parameter-value in \"object\" format: `{ \"query-parameter-name\": { value: \"query-parameter-value\", skipUrlEncoding: true } }`\n * - query-parameter-value in \"string\" format: `{ \"query-parameter-name\": \"query-parameter-value\"}`.\n * Note: \"If options.url already has some query parameters, then the value provided in options.queryParameters will be appended to the url.\n */\n queryParameters?: { [key: string]: any | ParameterValue };\n /**\n * The path template of the request url. Either provide the \"url\" or provide the \"pathTemplate\" in\n * the options object. Both the options are mutually exclusive.\n * Example: `/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}`\n */\n pathTemplate?: string;\n /**\n * The base url of the request. Default value is: \"https://management.azure.com\". This is\n * applicable only with pathTemplate. If you are providing options.url then it is expected that\n * you provide the complete url.\n */\n baseUrl?: string;\n /**\n * A dictionary of path parameters that need to be replaced with actual values in the pathTemplate.\n * Here the key is the \"path-parameter-name\" and the value is the \"path-parameter-value\".\n * The \"path-parameter-value\" can be of type \"string\" or it can be of type \"object\".\n * The \"object\" format should be used when you want to skip url encoding. While using the object format,\n * the object must have a property named value which provides the \"path-parameter-value\".\n * Example:\n * - path-parameter-value in \"object\" format: `{ \"path-parameter-name\": { value: \"path-parameter-value\", skipUrlEncoding: true } }`\n * - path-parameter-value in \"string\" format: `{ \"path-parameter-name\": \"path-parameter-value\" }`.\n */\n pathParameters?: { [key: string]: any | ParameterValue };\n /**\n * Form data, used to build the request body.\n */\n formData?: { [key: string]: any };\n /**\n * A dictionary of request headers that need to be applied to the request.\n * Here the key is the \"header-name\" and the value is the \"header-value\". The header-value MUST be of type string.\n * - ContentType must be provided with the key name as \"Content-Type\". Default value \"application/json; charset=utf-8\".\n * - \"Transfer-Encoding\" is set to \"chunked\" by default if \"options.bodyIsStream\" is set to true.\n * - \"Content-Type\" is set to \"application/octet-stream\" by default if \"options.bodyIsStream\" is set to true.\n * - \"accept-language\" by default is set to \"en-US\"\n * - \"x-ms-client-request-id\" by default is set to a new Guid. To not generate a guid for the request, please set options.disableClientRequestId to true\n */\n headers?: { [key: string]: any };\n /**\n * When set to true, instructs the client to not set \"x-ms-client-request-id\" header to a new Guid().\n */\n disableClientRequestId?: boolean;\n /**\n * The request body. It can be of any type. This value will be serialized if it is not a stream.\n */\n body?: any;\n /**\n * Provides information on how to serialize the request body.\n */\n serializationMapper?: Mapper;\n /**\n * A dictionary of mappers that may be used while [de]serialization.\n */\n mappers?: { [x: string]: any };\n /**\n * Provides information on how to deserialize the response body.\n */\n deserializationMapper?: Record;\n /**\n * Indicates whether this method should JSON.stringify() the request body. Default value: false.\n */\n disableJsonStringifyOnBody?: boolean;\n /**\n * Indicates whether the request body is a stream (useful for file upload scenarios).\n */\n bodyIsStream?: boolean;\n /**\n * Signal of an abort controller. Can be used to abort both sending a network request and waiting for a response.\n */\n abortSignal?: AbortSignalLike;\n /**\n * Allows keeping track of the progress of uploading the outgoing request.\n */\n onUploadProgress?: (progress: TransferProgressEvent) => void;\n /**\n * Allows keeping track of the progress of downloading the incoming response.\n */\n onDownloadProgress?: (progress: TransferProgressEvent) => void;\n /**\n * Tracing: Options used to create a span when tracing is enabled.\n */\n spanOptions?: SpanOptions;\n /**\n * Tracing: Context used when creating spans.\n */\n tracingContext?: Context;\n}\n\n/**\n * The Parameter value provided for path or query parameters in RequestPrepareOptions\n */\nexport interface ParameterValue {\n /**\n * Value of the parameter.\n */\n value: any;\n /**\n * Disables URL encoding if set to true.\n */\n skipUrlEncoding: boolean;\n /**\n * Parameter values may contain any other property.\n */\n [key: string]: any;\n}\n\n/**\n * Describes the base structure of the options object that will be used in every operation.\n */\nexport interface RequestOptionsBase {\n /**\n * will be applied before the request is sent.\n */\n customHeaders?: { [key: string]: string };\n\n /**\n * Signal of an abort controller. Can be used to abort both sending a network request and waiting for a response.\n */\n abortSignal?: AbortSignalLike;\n\n /**\n * The number of milliseconds a request can take before automatically being terminated.\n * If the request is terminated, an `AbortError` is thrown.\n */\n timeout?: number;\n\n /**\n * Callback which fires upon upload progress.\n */\n onUploadProgress?: (progress: TransferProgressEvent) => void;\n\n /**\n * Callback which fires upon download progress.\n */\n onDownloadProgress?: (progress: TransferProgressEvent) => void;\n\n /**\n * Whether or not the HttpOperationResponse should be deserialized. If this is undefined, then the\n * HttpOperationResponse should be deserialized.\n */\n shouldDeserialize?: boolean | ((response: HttpOperationResponse) => boolean);\n\n /**\n * Tracing: Context used when creating spans.\n */\n tracingContext?: Context;\n\n /**\n * May contain other properties.\n */\n [key: string]: any;\n\n /**\n * Options to override XML parsing/building behavior.\n */\n serializerOptions?: SerializerOptions;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { HttpResponse } from \"@azure/core-http\";\nimport {\n PageBlobGetPageRangesHeaders,\n PageBlobGetPageRangesDiffHeaders,\n PageBlobGetPageRangesResponseModel,\n PageBlobGetPageRangesDiffResponseModel,\n} from \"./generatedModels\";\nimport { Range } from \"./Range\";\n\n/**\n * List of page ranges for a blob.\n */\nexport interface PageList {\n /**\n * Valid non-overlapping page ranges.\n */\n pageRange?: Range[];\n /**\n * Present if the prevSnapshot parameter was specified and there were cleared\n * pages between the previous snapshot and the target snapshot.\n */\n clearRange?: Range[];\n}\n\n/**\n * Contains response data for the {@link BlobClient.getPageRanges} operation.\n */\nexport interface PageBlobGetPageRangesResponse extends PageList, PageBlobGetPageRangesHeaders {\n /**\n * The underlying HTTP response.\n */\n _response: HttpResponse & {\n /**\n * The parsed HTTP response headers.\n */\n parsedHeaders: PageBlobGetPageRangesHeaders;\n\n /**\n * The response body as text (string format)\n */\n bodyAsText: string;\n\n /**\n * The response body as parsed JSON or XML\n */\n parsedBody: PageList;\n };\n}\n\n/**\n * Contains response data for the {@link BlobClient.getPageRangesDiff} operation.\n */\nexport interface PageBlobGetPageRangesDiffResponse\n extends PageList,\n PageBlobGetPageRangesDiffHeaders {\n /**\n * The underlying HTTP response.\n */\n _response: HttpResponse & {\n /**\n * The parsed HTTP response headers.\n */\n parsedHeaders: PageBlobGetPageRangesDiffHeaders;\n\n /**\n * The response body as text (string format)\n */\n bodyAsText: string;\n\n /**\n * The response body as parsed JSON or XML\n */\n parsedBody: PageList;\n };\n}\n\n/**\n * Function that converts PageRange and ClearRange to a common Range object.\n * PageRange and ClearRange have start and end while Range offset and count\n * this function normalizes to Range.\n * @param response - Model PageBlob Range response\n */\nexport function rangeResponseFromModel(\n response: PageBlobGetPageRangesResponseModel | PageBlobGetPageRangesDiffResponseModel\n): PageBlobGetPageRangesResponse | PageBlobGetPageRangesDiffResponse {\n const pageRange = (response._response.parsedBody.pageRange || []).map((x) => ({\n offset: x.start,\n count: x.end - x.start,\n }));\n\n const clearRange = (response._response.parsedBody.clearRange || []).map((x) => ({\n offset: x.start,\n count: x.end - x.start,\n }));\n\n return {\n ...response,\n pageRange,\n clearRange,\n _response: {\n ...response._response,\n parsedBody: {\n pageRange,\n clearRange,\n },\n },\n };\n}\n","import { on } from '@fluentui/utilities';\nimport * as React from 'react';\n\n/**\n * Hook to attach an event handler on mount and handle cleanup.\n * @param element - Element (or ref to an element) to attach the event handler to\n * @param eventName - The event to attach a handler for\n * @param callback - The handler for the event\n * @param useCapture - Whether or not to attach the handler for the capture phase\n */\nexport function useOnEvent(\n element: React.RefObject | TElement | Window | Document | undefined | null,\n eventName: string,\n callback: (ev: TEvent) => void,\n useCapture?: boolean,\n) {\n // Use a ref for the callback to prevent repeatedly attaching/unattaching callbacks that are unstable across renders\n const callbackRef = React.useRef(callback);\n callbackRef.current = callback;\n\n React.useEffect(() => {\n const actualElement = element && 'current' in element ? element.current : element;\n if (!actualElement) {\n return;\n }\n\n const dispose = on(actualElement, eventName, (ev: TEvent) => callbackRef.current(ev), useCapture);\n return dispose;\n }, [element, eventName, useCapture]);\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar enhanceError = require('../core/enhanceError');\nvar transitionalDefaults = require('./transitional');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","export enum ComponentType {\r\n Web,\r\n SmartApp,\r\n Device,\r\n BackgroundProcess,\r\n WebService,\r\n Executable,\r\n DynamicLinkLibrary,\r\n JobService,\r\n WorkflowComponent,\r\n DataStore,\r\n Other\r\n }\r\n\r\n export enum EventName {\r\n PageLoad = \"PageLoad\",\r\n DropdownSelected = \"DropdownSelected\",\r\n DropdownChange = \"DropdownChange\",\r\n PageNavigation = \"PageNavigation\",\r\n CheckboxChange = \"CheckboxChange\",\r\n ListChange = \"ListChange\",\r\n ButtonClick = \"ButtonClick\",\r\n TabChange = \"TabChange\",\r\n TabNavigation = \"TabNavigation\",\r\n PanelOpened = \"PanelOpened\",\r\n PanelClosed = \"PanelClosed\",\r\n PickerSelected = \"PickerSelected\",\r\n PickerDeselected = \"PickerDeselected\",\r\n TileAdded = \"TileAdded\",\r\n TileClicked = \"TileClicked\",\r\n TileDeleted = \"TileDeleted\",\r\n TileLoaded = \"TileLoaded\",\r\n OnFocus = \"OnFocus\",\r\n OnBlur = \"OnBlur\",\r\n TextChange = \"TextChange\",\r\n Scroll = \"Scroll\",\r\n SectionRendering = \"SectionRendering\",\r\n BackEndAPICall = \"BackEndAPICall\",\r\n Rendering = \"Rendering\",\r\n NA = \"NA\",\r\n Hover = \"Hover\",\r\n LinkClicked = \"LinkClicked\"\r\n}\r\n\r\nexport enum TaskStatus {\r\n Start = \"Start\",\r\n Completed = \"Completed\",\r\n NA = \"NA\"\r\n}\r\n\r\nexport enum ActionStatus{\r\n Succeeded = \"Succeeded\",\r\n Failed = \"Failed\",\r\n NA = \"NA\"\r\n}\r\n\r\nexport enum ActionType{\r\n User = \"User\",\r\n System = \"System\",\r\n Aware = \"Aware\"\r\n}\r\n\r\nexport enum ItEventType {\r\n FeatureUsageEvent,\r\n BusinessProcessEvent,\r\n BusinessEventMessageExchange,\r\n BusinessEventEntityUpdate,\r\n BusinessEventDatabaseRecord,\r\n SystemEvent,\r\n Other\r\n}\r\n\r\nexport enum StorageType{\r\n LocalStorage,\r\n SessionStorage\r\n}","import dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, ProcessLegacy, stringToBoolOrDefault } from \"@microsoft/applicationinsights-common\";\r\nimport { arrIndexOf, isFunction, proxyAssign, proxyFunctions, throwError } from \"@microsoft/applicationinsights-core-js\";\r\nimport { DfltAjaxCorrelationHeaderExDomains } from \"@microsoft/applicationinsights-dependencies-js\";\r\nimport { STR_ADD_TELEMETRY_INITIALIZER, STR_ADD_TELEMETRY_INITIALIZERS, STR_CLEAR_AUTHENTICATED_USER_CONTEXT, STR_FLUSH, STR_GET_COOKIE_MGR, STR_SET_AUTHENTICATED_USER_CONTEXT, STR_SNIPPET, STR_START_TRACK_EVENT, STR_START_TRACK_PAGE, STR_STOP_TRACK_EVENT, STR_STOP_TRACK_PAGE, STR_TRACK_DEPENDENCY_DATA, STR_TRACK_EVENT, STR_TRACK_EXCEPTION, STR_TRACK_METRIC, STR_TRACK_PAGE_VIEW, STR_TRACK_TRACE } from \"./InternalConstants\";\r\nimport { _DYN_AUTO_TRACK_PAGE_VISI5, _DYN_CONFIG, _DYN_CONTEXT, _DYN_CORRELATION_HEADER_E10, _DYN_DIAGNOSTIC_LOG_INTER4, _DYN_DISABLE_AJAX_TRACKIN6, _DYN_DISABLE_CORRELATION_9, _DYN_DISABLE_EXCEPTION_TR2, _DYN_DISABLE_FLUSH_ON_BEF11, _DYN_DISABLE_TELEMETRY, _DYN_EMIT_LINE_DELIMITED_3, _DYN_ENABLE_CORS_CORRELAT17, _DYN_ENABLE_SESSION_STORA13, _DYN_ENDPOINT_URL, _DYN_IS_BEACON_API_DISABL8, _DYN_IS_BROWSER_LINK_TRAC16, _DYN_IS_COOKIE_USE_DISABL14, _DYN_IS_STORAGE_USE_DISAB15, _DYN_LOAD_APP_INSIGHTS, _DYN_MAX_AJAX_CALLS_PER_V7, _DYN_MAX_BATCH_INTERVAL, _DYN_MAX_BATCH_SIZE_IN_BY1, _DYN_PUSH, _DYN_QUEUE, _DYN_SAMPLING_PERCENTAGE, _DYN_UPDATE_SNIPPET_DEFIN0 } from \"./__DynamicConstants\";\r\n// This is an exclude list of properties that should not be updated during initialization\r\n// They include a combination of private and internal property names\r\nvar _ignoreUpdateSnippetProperties = [\r\n STR_SNIPPET, \"getDefaultConfig\", \"_hasLegacyInitializers\", \"_queue\", \"_processLegacyInitializers\"\r\n];\r\nfunction getDefaultConfig(config) {\r\n if (!config) {\r\n config = {};\r\n }\r\n // set default values\r\n config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */] = config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */] || DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH;\r\n config.sessionRenewalMs = 30 * 60 * 1000;\r\n config.sessionExpirationMs = 24 * 60 * 60 * 1000;\r\n config[_DYN_MAX_BATCH_SIZE_IN_BY1 /* @min:%2emaxBatchSizeInBytes */] = config[_DYN_MAX_BATCH_SIZE_IN_BY1 /* @min:%2emaxBatchSizeInBytes */] > 0 ? config[_DYN_MAX_BATCH_SIZE_IN_BY1 /* @min:%2emaxBatchSizeInBytes */] : 102400; // 100kb\r\n config[_DYN_MAX_BATCH_INTERVAL /* @min:%2emaxBatchInterval */] = !isNaN(config[_DYN_MAX_BATCH_INTERVAL /* @min:%2emaxBatchInterval */]) ? config[_DYN_MAX_BATCH_INTERVAL /* @min:%2emaxBatchInterval */] : 15000;\r\n config.enableDebug = stringToBoolOrDefault(config.enableDebug);\r\n config[_DYN_DISABLE_EXCEPTION_TR2 /* @min:%2edisableExceptionTracking */] = stringToBoolOrDefault(config[_DYN_DISABLE_EXCEPTION_TR2 /* @min:%2edisableExceptionTracking */]);\r\n config[_DYN_DISABLE_TELEMETRY /* @min:%2edisableTelemetry */] = stringToBoolOrDefault(config[_DYN_DISABLE_TELEMETRY /* @min:%2edisableTelemetry */]);\r\n config.verboseLogging = stringToBoolOrDefault(config.verboseLogging);\r\n config[_DYN_EMIT_LINE_DELIMITED_3 /* @min:%2eemitLineDelimitedJson */] = stringToBoolOrDefault(config[_DYN_EMIT_LINE_DELIMITED_3 /* @min:%2eemitLineDelimitedJson */]);\r\n config[_DYN_DIAGNOSTIC_LOG_INTER4 /* @min:%2ediagnosticLogInterval */] = config[_DYN_DIAGNOSTIC_LOG_INTER4 /* @min:%2ediagnosticLogInterval */] || 10000;\r\n config[_DYN_AUTO_TRACK_PAGE_VISI5 /* @min:%2eautoTrackPageVisitTime */] = stringToBoolOrDefault(config[_DYN_AUTO_TRACK_PAGE_VISI5 /* @min:%2eautoTrackPageVisitTime */]);\r\n if (isNaN(config[_DYN_SAMPLING_PERCENTAGE /* @min:%2esamplingPercentage */]) || config[_DYN_SAMPLING_PERCENTAGE /* @min:%2esamplingPercentage */] <= 0 || config[_DYN_SAMPLING_PERCENTAGE /* @min:%2esamplingPercentage */] >= 100) {\r\n config[_DYN_SAMPLING_PERCENTAGE /* @min:%2esamplingPercentage */] = 100;\r\n }\r\n config[_DYN_DISABLE_AJAX_TRACKIN6 /* @min:%2edisableAjaxTracking */] = stringToBoolOrDefault(config[_DYN_DISABLE_AJAX_TRACKIN6 /* @min:%2edisableAjaxTracking */]);\r\n config[_DYN_MAX_AJAX_CALLS_PER_V7 /* @min:%2emaxAjaxCallsPerView */] = !isNaN(config[_DYN_MAX_AJAX_CALLS_PER_V7 /* @min:%2emaxAjaxCallsPerView */]) ? config[_DYN_MAX_AJAX_CALLS_PER_V7 /* @min:%2emaxAjaxCallsPerView */] : 500;\r\n config[_DYN_IS_BEACON_API_DISABL8 /* @min:%2eisBeaconApiDisabled */] = stringToBoolOrDefault(config[_DYN_IS_BEACON_API_DISABL8 /* @min:%2eisBeaconApiDisabled */], true);\r\n config[_DYN_DISABLE_CORRELATION_9 /* @min:%2edisableCorrelationHeaders */] = stringToBoolOrDefault(config[_DYN_DISABLE_CORRELATION_9 /* @min:%2edisableCorrelationHeaders */]);\r\n config[_DYN_CORRELATION_HEADER_E10 /* @min:%2ecorrelationHeaderExcludedDomains */] = config[_DYN_CORRELATION_HEADER_E10 /* @min:%2ecorrelationHeaderExcludedDomains */] || DfltAjaxCorrelationHeaderExDomains;\r\n config[_DYN_DISABLE_FLUSH_ON_BEF11 /* @min:%2edisableFlushOnBeforeUnload */] = stringToBoolOrDefault(config[_DYN_DISABLE_FLUSH_ON_BEF11 /* @min:%2edisableFlushOnBeforeUnload */]);\r\n config.disableFlushOnUnload = stringToBoolOrDefault(config.disableFlushOnUnload, config[_DYN_DISABLE_FLUSH_ON_BEF11 /* @min:%2edisableFlushOnBeforeUnload */]);\r\n config[_DYN_ENABLE_SESSION_STORA13 /* @min:%2eenableSessionStorageBuffer */] = stringToBoolOrDefault(config[_DYN_ENABLE_SESSION_STORA13 /* @min:%2eenableSessionStorageBuffer */], true);\r\n config.isRetryDisabled = stringToBoolOrDefault(config.isRetryDisabled);\r\n config[_DYN_IS_COOKIE_USE_DISABL14 /* @min:%2eisCookieUseDisabled */] = stringToBoolOrDefault(config[_DYN_IS_COOKIE_USE_DISABL14 /* @min:%2eisCookieUseDisabled */]);\r\n config[_DYN_IS_STORAGE_USE_DISAB15 /* @min:%2eisStorageUseDisabled */] = stringToBoolOrDefault(config[_DYN_IS_STORAGE_USE_DISAB15 /* @min:%2eisStorageUseDisabled */]);\r\n config[_DYN_IS_BROWSER_LINK_TRAC16 /* @min:%2eisBrowserLinkTrackingEnabled */] = stringToBoolOrDefault(config[_DYN_IS_BROWSER_LINK_TRAC16 /* @min:%2eisBrowserLinkTrackingEnabled */]);\r\n config[_DYN_ENABLE_CORS_CORRELAT17 /* @min:%2eenableCorsCorrelation */] = stringToBoolOrDefault(config[_DYN_ENABLE_CORS_CORRELAT17 /* @min:%2eenableCorsCorrelation */]);\r\n return config;\r\n}\r\nvar AppInsightsDeprecated = /** @class */ (function () {\r\n function AppInsightsDeprecated(snippet, appInsightsNew) {\r\n var _this = this;\r\n var _hasLegacyInitializers = false;\r\n var _queue = [];\r\n var _config;\r\n dynamicProto(AppInsightsDeprecated, this, function (_self) {\r\n _config = getDefaultConfig(snippet[_DYN_CONFIG /* @min:%2econfig */]);\r\n _self[_DYN_CONFIG /* @min:%2econfig */] = _config;\r\n _self[STR_SNIPPET /* @min:%2esnippet */] = snippet;\r\n _self.appInsightsNew = appInsightsNew;\r\n _self[_DYN_CONTEXT /* @min:%2econtext */] = { addTelemetryInitializer: _addTelemetryInitializers.bind(_self) };\r\n _self[STR_ADD_TELEMETRY_INITIALIZERS /* @min:%2eaddTelemetryInitializers */] = _addTelemetryInitializers;\r\n function _addTelemetryInitializers(callBack) {\r\n // Add initializer to current processing only if there is any old telemetry initializer\r\n if (!_hasLegacyInitializers) {\r\n appInsightsNew[STR_ADD_TELEMETRY_INITIALIZER /* @min:%2eaddTelemetryInitializer */](function (item) {\r\n _processLegacyInitializers(item); // setup call back for each legacy processor\r\n });\r\n _hasLegacyInitializers = true;\r\n }\r\n _queue[_DYN_PUSH /* @min:%2epush */](callBack);\r\n }\r\n proxyFunctions(_self, appInsightsNew, [\r\n STR_GET_COOKIE_MGR,\r\n STR_START_TRACK_PAGE,\r\n STR_STOP_TRACK_PAGE,\r\n STR_FLUSH,\r\n STR_START_TRACK_EVENT,\r\n STR_STOP_TRACK_EVENT\r\n ]);\r\n _self[STR_TRACK_PAGE_VIEW /* @min:%2etrackPageView */] = function (name, url, properties, measurements, duration) {\r\n var telemetry = {\r\n name: name,\r\n uri: url,\r\n properties: properties,\r\n measurements: measurements\r\n };\r\n // fix for props, measurements, duration\r\n appInsightsNew[STR_TRACK_PAGE_VIEW /* @min:%2etrackPageView */](telemetry);\r\n };\r\n _self[STR_TRACK_EVENT /* @min:%2etrackEvent */] = function (name, properties, measurements) {\r\n appInsightsNew[STR_TRACK_EVENT /* @min:%2etrackEvent */]({ name: name });\r\n };\r\n _self.trackDependency = function (id, method, absoluteUrl, pathName, totalTime, success, resultCode) {\r\n appInsightsNew[STR_TRACK_DEPENDENCY_DATA /* @min:%2etrackDependencyData */]({\r\n id: id,\r\n target: absoluteUrl,\r\n type: pathName,\r\n duration: totalTime,\r\n properties: { HttpMethod: method },\r\n success: success,\r\n responseCode: resultCode\r\n });\r\n };\r\n _self[STR_TRACK_EXCEPTION /* @min:%2etrackException */] = function (exception, handledAt, properties, measurements, severityLevel) {\r\n appInsightsNew[STR_TRACK_EXCEPTION /* @min:%2etrackException */]({\r\n exception: exception\r\n });\r\n };\r\n _self[STR_TRACK_METRIC /* @min:%2etrackMetric */] = function (name, average, sampleCount, min, max, properties) {\r\n appInsightsNew[STR_TRACK_METRIC /* @min:%2etrackMetric */]({ name: name, average: average, sampleCount: sampleCount, min: min, max: max });\r\n };\r\n _self[STR_TRACK_TRACE /* @min:%2etrackTrace */] = function (message, properties, severityLevel) {\r\n appInsightsNew[STR_TRACK_TRACE /* @min:%2etrackTrace */]({ message: message, severityLevel: severityLevel });\r\n };\r\n _self[STR_SET_AUTHENTICATED_USER_CONTEXT /* @min:%2esetAuthenticatedUserContext */] = function (authenticatedUserId, accountId, storeInCookie) {\r\n appInsightsNew[_DYN_CONTEXT /* @min:%2econtext */].user[STR_SET_AUTHENTICATED_USER_CONTEXT /* @min:%2esetAuthenticatedUserContext */](authenticatedUserId, accountId, storeInCookie);\r\n };\r\n _self[STR_CLEAR_AUTHENTICATED_USER_CONTEXT /* @min:%2eclearAuthenticatedUserContext */] = function () {\r\n appInsightsNew[_DYN_CONTEXT /* @min:%2econtext */].user[STR_CLEAR_AUTHENTICATED_USER_CONTEXT /* @min:%2eclearAuthenticatedUserContext */]();\r\n };\r\n _self._onerror = function (message, url, lineNumber, columnNumber, error) {\r\n appInsightsNew._onerror({ message: message, url: url, lineNumber: lineNumber, columnNumber: columnNumber, error: error });\r\n };\r\n _self.downloadAndSetup = function (config) {\r\n throwError(\"downloadAndSetup not implemented in web SKU\");\r\n };\r\n _self[_DYN_UPDATE_SNIPPET_DEFIN0 /* @min:%2eupdateSnippetDefinitions */] = function (snippet) {\r\n // apply full appInsights to the global instance\r\n // Note: This must be called before loadAppInsights is called\r\n proxyAssign(snippet, _this, function (name) {\r\n // Not excluding names prefixed with \"_\" as we need to proxy some functions like _onError\r\n return name && arrIndexOf(_ignoreUpdateSnippetProperties, name) === -1;\r\n });\r\n };\r\n // note: these are split into methods to enable unit tests\r\n _self[_DYN_LOAD_APP_INSIGHTS /* @min:%2eloadAppInsights */] = function () {\r\n // initialize global instance of appInsights\r\n // var appInsights = new Microsoft.ApplicationInsights.AppInsights(_self.config);\r\n // implement legacy version of trackPageView for 0.10<\r\n if (_self[_DYN_CONFIG /* @min:%2econfig */][\"iKey\"]) {\r\n var originalTrackPageView_1 = _self[STR_TRACK_PAGE_VIEW /* @min:%2etrackPageView */];\r\n _self[STR_TRACK_PAGE_VIEW /* @min:%2etrackPageView */] = function (pagePath, properties, measurements) {\r\n originalTrackPageView_1.apply(_self, [null, pagePath, properties, measurements]);\r\n };\r\n }\r\n // implement legacy pageView interface if it is present in the snippet\r\n var legacyPageView = \"logPageView\";\r\n if (isFunction(_self[STR_SNIPPET /* @min:%2esnippet */][legacyPageView])) {\r\n _this[legacyPageView] = function (pagePath, properties, measurements) {\r\n _self[STR_TRACK_PAGE_VIEW /* @min:%2etrackPageView */](null, pagePath, properties, measurements);\r\n };\r\n }\r\n // implement legacy event interface if it is present in the snippet\r\n var legacyEvent = \"logEvent\";\r\n if (isFunction(_self[STR_SNIPPET /* @min:%2esnippet */][legacyEvent])) {\r\n _this[legacyEvent] = function (name, props, measurements) {\r\n _self[STR_TRACK_EVENT /* @min:%2etrackEvent */](name, props, measurements);\r\n };\r\n }\r\n return _this;\r\n };\r\n function _processLegacyInitializers(item) {\r\n // instead of mapping new to legacy and then back again and repeating in channel, attach callback for channel to call\r\n item.tags[ProcessLegacy] = _queue;\r\n return item;\r\n }\r\n });\r\n }\r\n /**\r\n * The array of telemetry initializers to call before sending each telemetry item.\r\n */\r\n AppInsightsDeprecated.prototype.addTelemetryInitializers = function (callBack) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Get the current cookie manager for this instance\r\n */\r\n AppInsightsDeprecated.prototype.getCookieMgr = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n AppInsightsDeprecated.prototype.startTrackPage = function (name) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AppInsightsDeprecated.prototype.stopTrackPage = function (name, url, properties, measurements) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AppInsightsDeprecated.prototype.trackPageView = function (name, url, properties, measurements, duration) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AppInsightsDeprecated.prototype.trackEvent = function (name, properties, measurements) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AppInsightsDeprecated.prototype.trackDependency = function (id, method, absoluteUrl, pathName, totalTime, success, resultCode) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AppInsightsDeprecated.prototype.trackException = function (exception, handledAt, properties, measurements, severityLevel) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AppInsightsDeprecated.prototype.trackMetric = function (name, average, sampleCount, min, max, properties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AppInsightsDeprecated.prototype.trackTrace = function (message, properties, severityLevel) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AppInsightsDeprecated.prototype.flush = function (async) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AppInsightsDeprecated.prototype.setAuthenticatedUserContext = function (authenticatedUserId, accountId, storeInCookie) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AppInsightsDeprecated.prototype.clearAuthenticatedUserContext = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AppInsightsDeprecated.prototype._onerror = function (message, url, lineNumber, columnNumber, error) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AppInsightsDeprecated.prototype.startTrackEvent = function (name) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AppInsightsDeprecated.prototype.stopTrackEvent = function (name, properties, measurements) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AppInsightsDeprecated.prototype.downloadAndSetup = function (config) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AppInsightsDeprecated.prototype.updateSnippetDefinitions = function (snippet) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n // note: these are split into methods to enable unit tests\r\n AppInsightsDeprecated.prototype.loadAppInsights = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return AppInsightsDeprecated;\r\n}());\r\nexport { AppInsightsDeprecated };\r\n//# sourceMappingURL=ApplicationInsightsDeprecated.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// @skip-file-minify\r\nvar _a;\r\nimport { createEnumStyle } from \"../JavaScriptSDK.Enums/EnumHelperFuncs\";\r\nvar FAILED = \"Failed\";\r\nvar FAILED_MONITOR_AJAX = FAILED + \"MonitorAjax\";\r\nvar TRACK = \"Track\";\r\nvar START = \"Start\";\r\nvar STOP = \"Stop\";\r\nvar EVENT = \"Event\";\r\nvar AUTH_CONTEXT = \"AuthContext\";\r\nvar EXCEPTION = \"Exception\";\r\nvar LOCAL = \"Local\";\r\nvar SESSION = \"Session\";\r\nvar STORAGE = \"Storage\";\r\nvar BROWSER = \"Browser\";\r\nvar CANNOT = \"Cannot\";\r\nvar BUFFER = \"Buffer\";\r\nvar INSTRUMENTATION_KEY = \"InstrumentationKey\";\r\nexport var LoggingSeverity = createEnumStyle({\r\n CRITICAL: 1 /* eLoggingSeverity.CRITICAL */,\r\n WARNING: 2 /* eLoggingSeverity.WARNING */\r\n});\r\n/**\r\n * Internal message ID. Please create a new one for every conceptually different message. Please keep alphabetically ordered\r\n */\r\nexport var _InternalMessageId = createEnumStyle((_a = {},\r\n // Non user actionable\r\n _a[BROWSER + \"DoesNotSupport\" + LOCAL + STORAGE] = 0 /* _eInternalMessageId.BrowserDoesNotSupportLocalStorage */,\r\n _a[BROWSER + CANNOT + \"Read\" + LOCAL + STORAGE] = 1 /* _eInternalMessageId.BrowserCannotReadLocalStorage */,\r\n _a[BROWSER + CANNOT + \"Read\" + SESSION + STORAGE] = 2 /* _eInternalMessageId.BrowserCannotReadSessionStorage */,\r\n _a[BROWSER + CANNOT + \"Write\" + LOCAL + STORAGE] = 3 /* _eInternalMessageId.BrowserCannotWriteLocalStorage */,\r\n _a[BROWSER + CANNOT + \"Write\" + SESSION + STORAGE] = 4 /* _eInternalMessageId.BrowserCannotWriteSessionStorage */,\r\n _a[BROWSER + FAILED + \"RemovalFrom\" + LOCAL + STORAGE] = 5 /* _eInternalMessageId.BrowserFailedRemovalFromLocalStorage */,\r\n _a[BROWSER + FAILED + \"RemovalFrom\" + SESSION + STORAGE] = 6 /* _eInternalMessageId.BrowserFailedRemovalFromSessionStorage */,\r\n _a[CANNOT + \"SendEmptyTelemetry\"] = 7 /* _eInternalMessageId.CannotSendEmptyTelemetry */,\r\n _a.ClientPerformanceMathError = 8 /* _eInternalMessageId.ClientPerformanceMathError */,\r\n _a[\"ErrorParsingAI\" + SESSION + \"Cookie\"] = 9 /* _eInternalMessageId.ErrorParsingAISessionCookie */,\r\n _a.ErrorPVCalc = 10 /* _eInternalMessageId.ErrorPVCalc */,\r\n _a[EXCEPTION + \"WhileLoggingError\"] = 11 /* _eInternalMessageId.ExceptionWhileLoggingError */,\r\n _a[FAILED + \"AddingTelemetryTo\" + BUFFER] = 12 /* _eInternalMessageId.FailedAddingTelemetryToBuffer */,\r\n _a[FAILED_MONITOR_AJAX + \"Abort\"] = 13 /* _eInternalMessageId.FailedMonitorAjaxAbort */,\r\n _a[FAILED_MONITOR_AJAX + \"Dur\"] = 14 /* _eInternalMessageId.FailedMonitorAjaxDur */,\r\n _a[FAILED_MONITOR_AJAX + \"Open\"] = 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */,\r\n _a[FAILED_MONITOR_AJAX + \"RSC\"] = 16 /* _eInternalMessageId.FailedMonitorAjaxRSC */,\r\n _a[FAILED_MONITOR_AJAX + \"Send\"] = 17 /* _eInternalMessageId.FailedMonitorAjaxSend */,\r\n _a[FAILED_MONITOR_AJAX + \"GetCorrelationHeader\"] = 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */,\r\n _a[FAILED + \"ToAddHandlerForOnBeforeUnload\"] = 19 /* _eInternalMessageId.FailedToAddHandlerForOnBeforeUnload */,\r\n _a[FAILED + \"ToSendQueuedTelemetry\"] = 20 /* _eInternalMessageId.FailedToSendQueuedTelemetry */,\r\n _a[FAILED + \"ToReportDataLoss\"] = 21 /* _eInternalMessageId.FailedToReportDataLoss */,\r\n _a[\"Flush\" + FAILED] = 22 /* _eInternalMessageId.FlushFailed */,\r\n _a.MessageLimitPerPVExceeded = 23 /* _eInternalMessageId.MessageLimitPerPVExceeded */,\r\n _a.MissingRequiredFieldSpecification = 24 /* _eInternalMessageId.MissingRequiredFieldSpecification */,\r\n _a.NavigationTimingNotSupported = 25 /* _eInternalMessageId.NavigationTimingNotSupported */,\r\n _a.OnError = 26 /* _eInternalMessageId.OnError */,\r\n _a[SESSION + \"RenewalDateIsZero\"] = 27 /* _eInternalMessageId.SessionRenewalDateIsZero */,\r\n _a.SenderNotInitialized = 28 /* _eInternalMessageId.SenderNotInitialized */,\r\n _a[START + TRACK + EVENT + FAILED] = 29 /* _eInternalMessageId.StartTrackEventFailed */,\r\n _a[STOP + TRACK + EVENT + FAILED] = 30 /* _eInternalMessageId.StopTrackEventFailed */,\r\n _a[START + TRACK + FAILED] = 31 /* _eInternalMessageId.StartTrackFailed */,\r\n _a[STOP + TRACK + FAILED] = 32 /* _eInternalMessageId.StopTrackFailed */,\r\n _a.TelemetrySampledAndNotSent = 33 /* _eInternalMessageId.TelemetrySampledAndNotSent */,\r\n _a[TRACK + EVENT + FAILED] = 34 /* _eInternalMessageId.TrackEventFailed */,\r\n _a[TRACK + EXCEPTION + FAILED] = 35 /* _eInternalMessageId.TrackExceptionFailed */,\r\n _a[TRACK + \"Metric\" + FAILED] = 36 /* _eInternalMessageId.TrackMetricFailed */,\r\n _a[TRACK + \"PV\" + FAILED] = 37 /* _eInternalMessageId.TrackPVFailed */,\r\n _a[TRACK + \"PV\" + FAILED + \"Calc\"] = 38 /* _eInternalMessageId.TrackPVFailedCalc */,\r\n _a[TRACK + \"Trace\" + FAILED] = 39 /* _eInternalMessageId.TrackTraceFailed */,\r\n _a[\"Transmission\" + FAILED] = 40 /* _eInternalMessageId.TransmissionFailed */,\r\n _a[FAILED + \"ToSet\" + STORAGE + BUFFER] = 41 /* _eInternalMessageId.FailedToSetStorageBuffer */,\r\n _a[FAILED + \"ToRestore\" + STORAGE + BUFFER] = 42 /* _eInternalMessageId.FailedToRestoreStorageBuffer */,\r\n _a.InvalidBackendResponse = 43 /* _eInternalMessageId.InvalidBackendResponse */,\r\n _a[FAILED + \"ToFixDepricatedValues\"] = 44 /* _eInternalMessageId.FailedToFixDepricatedValues */,\r\n _a.InvalidDurationValue = 45 /* _eInternalMessageId.InvalidDurationValue */,\r\n _a.TelemetryEnvelopeInvalid = 46 /* _eInternalMessageId.TelemetryEnvelopeInvalid */,\r\n _a.CreateEnvelopeError = 47 /* _eInternalMessageId.CreateEnvelopeError */,\r\n // User actionable\r\n _a[CANNOT + \"SerializeObject\"] = 48 /* _eInternalMessageId.CannotSerializeObject */,\r\n _a[CANNOT + \"SerializeObjectNonSerializable\"] = 49 /* _eInternalMessageId.CannotSerializeObjectNonSerializable */,\r\n _a.CircularReferenceDetected = 50 /* _eInternalMessageId.CircularReferenceDetected */,\r\n _a[\"Clear\" + AUTH_CONTEXT + FAILED] = 51 /* _eInternalMessageId.ClearAuthContextFailed */,\r\n _a[EXCEPTION + \"Truncated\"] = 52 /* _eInternalMessageId.ExceptionTruncated */,\r\n _a.IllegalCharsInName = 53 /* _eInternalMessageId.IllegalCharsInName */,\r\n _a.ItemNotInArray = 54 /* _eInternalMessageId.ItemNotInArray */,\r\n _a.MaxAjaxPerPVExceeded = 55 /* _eInternalMessageId.MaxAjaxPerPVExceeded */,\r\n _a.MessageTruncated = 56 /* _eInternalMessageId.MessageTruncated */,\r\n _a.NameTooLong = 57 /* _eInternalMessageId.NameTooLong */,\r\n _a.SampleRateOutOfRange = 58 /* _eInternalMessageId.SampleRateOutOfRange */,\r\n _a[\"Set\" + AUTH_CONTEXT + FAILED] = 59 /* _eInternalMessageId.SetAuthContextFailed */,\r\n _a[\"Set\" + AUTH_CONTEXT + FAILED + \"AccountName\"] = 60 /* _eInternalMessageId.SetAuthContextFailedAccountName */,\r\n _a.StringValueTooLong = 61 /* _eInternalMessageId.StringValueTooLong */,\r\n _a.StartCalledMoreThanOnce = 62 /* _eInternalMessageId.StartCalledMoreThanOnce */,\r\n _a.StopCalledWithoutStart = 63 /* _eInternalMessageId.StopCalledWithoutStart */,\r\n _a[\"TelemetryInitializer\" + FAILED] = 64 /* _eInternalMessageId.TelemetryInitializerFailed */,\r\n _a.TrackArgumentsNotSpecified = 65 /* _eInternalMessageId.TrackArgumentsNotSpecified */,\r\n _a.UrlTooLong = 66 /* _eInternalMessageId.UrlTooLong */,\r\n _a[SESSION + STORAGE + BUFFER + \"Full\"] = 67 /* _eInternalMessageId.SessionStorageBufferFull */,\r\n _a[CANNOT + \"AccessCookie\"] = 68 /* _eInternalMessageId.CannotAccessCookie */,\r\n _a.IdTooLong = 69 /* _eInternalMessageId.IdTooLong */,\r\n _a.InvalidEvent = 70 /* _eInternalMessageId.InvalidEvent */,\r\n _a[FAILED_MONITOR_AJAX + \"SetRequestHeader\"] = 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */,\r\n _a[\"Send\" + BROWSER + \"InfoOnUserInit\"] = 72 /* _eInternalMessageId.SendBrowserInfoOnUserInit */,\r\n _a[\"Plugin\" + EXCEPTION] = 73 /* _eInternalMessageId.PluginException */,\r\n _a[\"Notification\" + EXCEPTION] = 74 /* _eInternalMessageId.NotificationException */,\r\n _a.SnippetScriptLoadFailure = 99 /* _eInternalMessageId.SnippetScriptLoadFailure */,\r\n _a[\"Invalid\" + INSTRUMENTATION_KEY] = 100 /* _eInternalMessageId.InvalidInstrumentationKey */,\r\n _a[CANNOT + \"ParseAiBlobValue\"] = 101 /* _eInternalMessageId.CannotParseAiBlobValue */,\r\n _a.InvalidContentBlob = 102 /* _eInternalMessageId.InvalidContentBlob */,\r\n _a[TRACK + \"PageAction\" + EVENT + FAILED] = 103 /* _eInternalMessageId.TrackPageActionEventFailed */,\r\n _a[FAILED + \"AddingCustomDefinedRequestContext\"] = 104 /* _eInternalMessageId.FailedAddingCustomDefinedRequestContext */,\r\n _a[\"InMemory\" + STORAGE + BUFFER + \"Full\"] = 105 /* _eInternalMessageId.InMemoryStorageBufferFull */,\r\n _a[INSTRUMENTATION_KEY + \"Deprecation\"] = 106 /* _eInternalMessageId.InstrumentationKeyDeprecation */,\r\n _a));\r\n//# sourceMappingURL=LoggingEnums.js.map","import { _legacyCookieMgr } from \"@microsoft/applicationinsights-core-js\";\r\nimport { AppInsightsDeprecated } from \"./ApplicationInsightsDeprecated\";\r\nimport { Initialization as ApplicationInsights } from \"./Initialization\";\r\nimport { _DYN_LOAD_APP_INSIGHTS, _DYN_UPDATE_SNIPPET_DEFIN0 } from \"./__DynamicConstants\";\r\nvar ApplicationInsightsContainer = /** @class */ (function () {\r\n function ApplicationInsightsContainer() {\r\n }\r\n ApplicationInsightsContainer.getAppInsights = function (snippet, version) {\r\n var initialization = new ApplicationInsights(snippet);\r\n var legacyMode = version >= 2 ? false : true;\r\n // Side effect is to create, initialize and listen to the CoreUtils._canUseCookies changes\r\n // Called here to support backward compatibility\r\n _legacyCookieMgr();\r\n // Two target scenarios:\r\n // 1. Customer runs v1 snippet + runtime. If customer updates just cdn location to new SDK, it will run in compat mode so old apis work\r\n // 2. Customer updates to new snippet (that uses cdn location to new SDK. This is same as a new customer onboarding\r\n // and all api signatures are expected to map to new SDK. Note new snippet specifies version\r\n if (!legacyMode) {\r\n initialization[_DYN_UPDATE_SNIPPET_DEFIN0 /* @min:%2eupdateSnippetDefinitions */](snippet);\r\n initialization[_DYN_LOAD_APP_INSIGHTS /* @min:%2eloadAppInsights */](legacyMode);\r\n return initialization; // default behavior with new snippet\r\n }\r\n else {\r\n var legacy = new AppInsightsDeprecated(snippet, initialization); // target scenario old snippet + updated endpoint\r\n legacy[_DYN_UPDATE_SNIPPET_DEFIN0 /* @min:%2eupdateSnippetDefinitions */](snippet);\r\n initialization[_DYN_LOAD_APP_INSIGHTS /* @min:%2eloadAppInsights */](legacyMode);\r\n return legacy;\r\n }\r\n };\r\n return ApplicationInsightsContainer;\r\n}());\r\nexport { ApplicationInsightsContainer };\r\n//# sourceMappingURL=ApplicationInsightsContainer.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strNotSpecified } from \"../../Constants\";\r\nimport { _DYN_NAME } from \"../../__DynamicConstants\";\r\nimport { dataSanitizeString } from \"./DataSanitizer\";\r\nvar Envelope = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n function Envelope(logger, data, name) {\r\n var _this = this;\r\n var _self = this;\r\n _self.ver = 1;\r\n _self.sampleRate = 100.0;\r\n _self.tags = {};\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self.data = data;\r\n _self.time = toISOString(new Date());\r\n _self.aiDataContract = {\r\n time: 1 /* FieldType.Required */,\r\n iKey: 1 /* FieldType.Required */,\r\n name: 1 /* FieldType.Required */,\r\n sampleRate: function () {\r\n return (_this.sampleRate === 100) ? 4 /* FieldType.Hidden */ : 1 /* FieldType.Required */;\r\n },\r\n tags: 1 /* FieldType.Required */,\r\n data: 1 /* FieldType.Required */\r\n };\r\n }\r\n return Envelope;\r\n}());\r\nexport { Envelope };\r\n//# sourceMappingURL=Envelope.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar Event = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the EventTelemetry object\r\n */\r\n function Event(logger, name, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 1 /* FieldType.Required */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n Event.envelopeType = \"Microsoft.ApplicationInsights.{0}.Event\";\r\n Event.dataType = \"EventData\";\r\n return Event;\r\n}());\r\nexport { Event };\r\n//# sourceMappingURL=Event.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __assign } from \"tslib\";\r\nimport { arrForEach, arrMap, isArray, isError, isFunction, isNullOrUndefined, isObject, isString, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_ASSEMBLY, _DYN_EXCEPTIONS, _DYN_FILE_NAME, _DYN_HAS_FULL_STACK, _DYN_INDEX_OF, _DYN_IS_MANUAL, _DYN_LENGTH, _DYN_LEVEL, _DYN_LINE, _DYN_MEASUREMENTS, _DYN_MESSAGE, _DYN_METHOD, _DYN_NAME, _DYN_PARSED_STACK, _DYN_PROBLEM_GROUP, _DYN_PROPERTIES, _DYN_SEVERITY_LEVEL, _DYN_SIZE_IN_BYTES, _DYN_SPLIT, _DYN_STRINGIFY, _DYN_TO_STRING, _DYN_TYPE_NAME, _DYN__CREATE_FROM_INTERFA1 } from \"../__DynamicConstants\";\r\nimport { dataSanitizeException, dataSanitizeMeasurements, dataSanitizeMessage, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar NoMethod = \"\";\r\nvar strError = \"error\";\r\nvar strStack = \"stack\";\r\nvar strStackDetails = \"stackDetails\";\r\nvar strErrorSrc = \"errorSrc\";\r\nvar strMessage = \"message\";\r\nvar strDescription = \"description\";\r\nfunction _stringify(value, convertToString) {\r\n var result = value;\r\n if (result && !isString(result)) {\r\n if (JSON && JSON[_DYN_STRINGIFY /* @min:%2estringify */]) {\r\n result = JSON[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n if (convertToString && (!result || result === \"{}\")) {\r\n if (isFunction(value[_DYN_TO_STRING /* @min:%2etoString */])) {\r\n result = value[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n else {\r\n result = \"\" + value;\r\n }\r\n }\r\n }\r\n else {\r\n result = \"\" + value + \" - (Missing JSON.stringify)\";\r\n }\r\n }\r\n return result || \"\";\r\n}\r\nfunction _formatMessage(theEvent, errorType) {\r\n var evtMessage = theEvent;\r\n if (theEvent) {\r\n if (evtMessage && !isString(evtMessage)) {\r\n evtMessage = theEvent[strMessage] || theEvent[strDescription] || evtMessage;\r\n }\r\n // Make sure the message is a string\r\n if (evtMessage && !isString(evtMessage)) {\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n evtMessage = _stringify(evtMessage, true);\r\n }\r\n if (theEvent[\"filename\"]) {\r\n // Looks like an event object with filename\r\n evtMessage = evtMessage + \" @\" + (theEvent[\"filename\"] || \"\") + \":\" + (theEvent[\"lineno\"] || \"?\") + \":\" + (theEvent[\"colno\"] || \"?\");\r\n }\r\n }\r\n // Automatically add the error type to the message if it does already appear to be present\r\n if (errorType && errorType !== \"String\" && errorType !== \"Object\" && errorType !== \"Error\" && (evtMessage || \"\")[_DYN_INDEX_OF /* @min:%2eindexOf */](errorType) === -1) {\r\n evtMessage = errorType + \": \" + evtMessage;\r\n }\r\n return evtMessage || \"\";\r\n}\r\nfunction _isExceptionDetailsInternal(value) {\r\n try {\r\n if (isObject(value)) {\r\n return \"hasFullStack\" in value && \"typeName\" in value;\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return false;\r\n}\r\nfunction _isExceptionInternal(value) {\r\n try {\r\n if (isObject(value)) {\r\n return (\"ver\" in value && \"exceptions\" in value && \"properties\" in value);\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return false;\r\n}\r\nfunction _isStackDetails(details) {\r\n return details && details.src && isString(details.src) && details.obj && isArray(details.obj);\r\n}\r\nfunction _convertStackObj(errorStack) {\r\n var src = errorStack || \"\";\r\n if (!isString(src)) {\r\n if (isString(src[strStack])) {\r\n src = src[strStack];\r\n }\r\n else {\r\n src = \"\" + src;\r\n }\r\n }\r\n var items = src[_DYN_SPLIT /* @min:%2esplit */](\"\\n\");\r\n return {\r\n src: src,\r\n obj: items\r\n };\r\n}\r\nfunction _getOperaStack(errorMessage) {\r\n var stack = [];\r\n var lines = errorMessage[_DYN_SPLIT /* @min:%2esplit */](\"\\n\");\r\n for (var lp = 0; lp < lines[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var entry = lines[lp];\r\n if (lines[lp + 1]) {\r\n entry += \"@\" + lines[lp + 1];\r\n lp++;\r\n }\r\n stack.push(entry);\r\n }\r\n return {\r\n src: errorMessage,\r\n obj: stack\r\n };\r\n}\r\nfunction _getStackFromErrorObj(errorObj) {\r\n var details = null;\r\n if (errorObj) {\r\n try {\r\n /* Using bracket notation is support older browsers (IE 7/8 -- dont remember the version) that throw when using dot\r\n notation for undefined objects and we don't want to loose the error from being reported */\r\n if (errorObj[strStack]) {\r\n // Chrome/Firefox\r\n details = _convertStackObj(errorObj[strStack]);\r\n }\r\n else if (errorObj[strError] && errorObj[strError][strStack]) {\r\n // Edge error event provides the stack and error object\r\n details = _convertStackObj(errorObj[strError][strStack]);\r\n }\r\n else if (errorObj[\"exception\"] && errorObj.exception[strStack]) {\r\n details = _convertStackObj(errorObj.exception[strStack]);\r\n }\r\n else if (_isStackDetails(errorObj)) {\r\n details = errorObj;\r\n }\r\n else if (_isStackDetails(errorObj[strStackDetails])) {\r\n details = errorObj[strStackDetails];\r\n }\r\n else if (window && window[\"opera\"] && errorObj[strMessage]) {\r\n // Opera\r\n details = _getOperaStack(errorObj[_DYN_MESSAGE /* @min:%2emessage */]);\r\n }\r\n else if (isString(errorObj)) {\r\n details = _convertStackObj(errorObj);\r\n }\r\n else {\r\n var evtMessage = errorObj[strMessage] || errorObj[strDescription] || \"\";\r\n if (isString(errorObj[strErrorSrc])) {\r\n if (evtMessage) {\r\n evtMessage += \"\\n\";\r\n }\r\n evtMessage += \" from \" + errorObj[strErrorSrc];\r\n }\r\n if (evtMessage) {\r\n details = _convertStackObj(evtMessage);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // something unexpected happened so to avoid failing to report any error lets swallow the exception\r\n // and fallback to the callee/caller method\r\n details = _convertStackObj(e);\r\n }\r\n }\r\n return details || {\r\n src: \"\",\r\n obj: null\r\n };\r\n}\r\nfunction _formatStackTrace(stackDetails) {\r\n var stack = \"\";\r\n if (stackDetails) {\r\n if (stackDetails.obj) {\r\n arrForEach(stackDetails.obj, function (entry) {\r\n stack += entry + \"\\n\";\r\n });\r\n }\r\n else {\r\n stack = stackDetails.src || \"\";\r\n }\r\n }\r\n return stack;\r\n}\r\nfunction _parseStack(stack) {\r\n var parsedStack;\r\n var frames = stack.obj;\r\n if (frames && frames[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n parsedStack = [];\r\n var level_1 = 0;\r\n var totalSizeInBytes_1 = 0;\r\n arrForEach(frames, function (frame) {\r\n var theFrame = frame[_DYN_TO_STRING /* @min:%2etoString */]();\r\n if (_StackFrame.regex.test(theFrame)) {\r\n var parsedFrame = new _StackFrame(theFrame, level_1++);\r\n totalSizeInBytes_1 += parsedFrame[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n parsedStack.push(parsedFrame);\r\n }\r\n });\r\n // DP Constraint - exception parsed stack must be < 32KB\r\n // remove frames from the middle to meet the threshold\r\n var exceptionParsedStackThreshold = 32 * 1024;\r\n if (totalSizeInBytes_1 > exceptionParsedStackThreshold) {\r\n var left = 0;\r\n var right = parsedStack[_DYN_LENGTH /* @min:%2elength */] - 1;\r\n var size = 0;\r\n var acceptedLeft = left;\r\n var acceptedRight = right;\r\n while (left < right) {\r\n // check size\r\n var lSize = parsedStack[left][_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n var rSize = parsedStack[right][_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n size += lSize + rSize;\r\n if (size > exceptionParsedStackThreshold) {\r\n // remove extra frames from the middle\r\n var howMany = acceptedRight - acceptedLeft + 1;\r\n parsedStack.splice(acceptedLeft, howMany);\r\n break;\r\n }\r\n // update pointers\r\n acceptedLeft = left;\r\n acceptedRight = right;\r\n left++;\r\n right--;\r\n }\r\n }\r\n }\r\n return parsedStack;\r\n}\r\nfunction _getErrorType(errorType) {\r\n // Gets the Error Type by passing the constructor (used to get the true type of native error object).\r\n var typeName = \"\";\r\n if (errorType) {\r\n typeName = errorType.typeName || errorType[_DYN_NAME /* @min:%2ename */] || \"\";\r\n if (!typeName) {\r\n try {\r\n var funcNameRegex = /function (.{1,200})\\(/;\r\n var results = (funcNameRegex).exec((errorType).constructor[_DYN_TO_STRING /* @min:%2etoString */]());\r\n typeName = (results && results[_DYN_LENGTH /* @min:%2elength */] > 1) ? results[1] : \"\";\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\r\n }\r\n }\r\n }\r\n return typeName;\r\n}\r\n/**\r\n * Formats the provided errorObj for display and reporting, it may be a String, Object, integer or undefined depending on the browser.\r\n * @param errorObj The supplied errorObj\r\n */\r\nexport function _formatErrorCode(errorObj) {\r\n if (errorObj) {\r\n try {\r\n if (!isString(errorObj)) {\r\n var errorType = _getErrorType(errorObj);\r\n var result = _stringify(errorObj, false);\r\n if (!result || result === \"{}\") {\r\n if (errorObj[strError]) {\r\n // Looks like an MS Error Event\r\n errorObj = errorObj[strError];\r\n errorType = _getErrorType(errorObj);\r\n }\r\n result = _stringify(errorObj, true);\r\n }\r\n if (result[_DYN_INDEX_OF /* @min:%2eindexOf */](errorType) !== 0 && errorType !== \"String\") {\r\n return errorType + \":\" + result;\r\n }\r\n return result;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\r\n }\r\n }\r\n // Fallback to just letting the object format itself into a string\r\n return \"\" + (errorObj || \"\");\r\n}\r\nvar Exception = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the ExceptionTelemetry object\r\n */\r\n function Exception(logger, exception, properties, measurements, severityLevel, id) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n exceptions: 1 /* FieldType.Required */,\r\n severityLevel: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2; // TODO: handle the CS\"4.0\" ==> breeze 2 conversion in a better way\r\n if (!_isExceptionInternal(exception)) {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n _self[_DYN_EXCEPTIONS /* @min:%2eexceptions */] = [new _ExceptionDetails(logger, exception, properties)];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (severityLevel) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = severityLevel;\r\n }\r\n if (id) {\r\n _self.id = id;\r\n }\r\n }\r\n else {\r\n _self[_DYN_EXCEPTIONS /* @min:%2eexceptions */] = exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */] || [];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = exception[_DYN_PROPERTIES /* @min:%2eproperties */];\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = exception[_DYN_MEASUREMENTS /* @min:%2emeasurements */];\r\n if (exception[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */]) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = exception[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */];\r\n }\r\n if (exception.id) {\r\n _self.id = exception.id;\r\n }\r\n if (exception[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */]) {\r\n _self[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */] = exception[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */];\r\n }\r\n // bool/int types, use isNullOrUndefined\r\n if (!isNullOrUndefined(exception[_DYN_IS_MANUAL /* @min:%2eisManual */])) {\r\n _self[_DYN_IS_MANUAL /* @min:%2eisManual */] = exception[_DYN_IS_MANUAL /* @min:%2eisManual */];\r\n }\r\n }\r\n }\r\n Exception.CreateAutoException = function (message, url, lineNumber, columnNumber, error, evt, stack, errorSrc) {\r\n var _a;\r\n var errorType = _getErrorType(error || evt || message);\r\n return _a = {},\r\n _a[_DYN_MESSAGE /* @min:message */] = _formatMessage(message, errorType),\r\n _a.url = url,\r\n _a.lineNumber = lineNumber,\r\n _a.columnNumber = columnNumber,\r\n _a.error = _formatErrorCode(error || evt || message),\r\n _a.evt = _formatErrorCode(evt || message),\r\n _a[_DYN_TYPE_NAME /* @min:typeName */] = errorType,\r\n _a.stackDetails = _getStackFromErrorObj(stack || error || evt),\r\n _a.errorSrc = errorSrc,\r\n _a;\r\n };\r\n Exception.CreateFromInterface = function (logger, exception, properties, measurements) {\r\n var exceptions = exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */]\r\n && arrMap(exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */], function (ex) { return _ExceptionDetails[_DYN__CREATE_FROM_INTERFA1 /* @min:%2eCreateFromInterface */](logger, ex); });\r\n var exceptionData = new Exception(logger, __assign(__assign({}, exception), { exceptions: exceptions }), properties, measurements);\r\n return exceptionData;\r\n };\r\n Exception.prototype.toInterface = function () {\r\n var _a;\r\n var _b = this, exceptions = _b.exceptions, properties = _b.properties, measurements = _b.measurements, severityLevel = _b.severityLevel, problemGroup = _b.problemGroup, id = _b.id, isManual = _b.isManual;\r\n var exceptionDetailsInterface = exceptions instanceof Array\r\n && arrMap(exceptions, function (exception) { return exception.toInterface(); })\r\n || undefined;\r\n return _a = {\r\n ver: \"4.0\"\r\n },\r\n _a[_DYN_EXCEPTIONS /* @min:exceptions */] = exceptionDetailsInterface,\r\n _a.severityLevel = severityLevel,\r\n _a.properties = properties,\r\n _a.measurements = measurements,\r\n _a.problemGroup = problemGroup,\r\n _a.id = id,\r\n _a.isManual = isManual,\r\n _a;\r\n };\r\n /**\r\n * Creates a simple exception with 1 stack frame. Useful for manual constracting of exception.\r\n */\r\n Exception.CreateSimpleException = function (message, typeName, assembly, fileName, details, line) {\r\n var _a;\r\n return {\r\n exceptions: [\r\n (_a = {},\r\n _a[_DYN_HAS_FULL_STACK /* @min:hasFullStack */] = true,\r\n _a.message = message,\r\n _a.stack = details,\r\n _a.typeName = typeName,\r\n _a)\r\n ]\r\n };\r\n };\r\n Exception.envelopeType = \"Microsoft.ApplicationInsights.{0}.Exception\";\r\n Exception.dataType = \"ExceptionData\";\r\n Exception.formatError = _formatErrorCode;\r\n return Exception;\r\n}());\r\nexport { Exception };\r\nvar _ExceptionDetails = /** @class */ (function () {\r\n function _ExceptionDetails(logger, exception, properties) {\r\n this.aiDataContract = {\r\n id: 0 /* FieldType.Default */,\r\n outerId: 0 /* FieldType.Default */,\r\n typeName: 1 /* FieldType.Required */,\r\n message: 1 /* FieldType.Required */,\r\n hasFullStack: 0 /* FieldType.Default */,\r\n stack: 0 /* FieldType.Default */,\r\n parsedStack: 2 /* FieldType.Array */\r\n };\r\n var _self = this;\r\n if (!_isExceptionDetailsInternal(exception)) {\r\n var error = exception;\r\n var evt = error && error.evt;\r\n if (!isError(error)) {\r\n error = error[strError] || evt || error;\r\n }\r\n _self[_DYN_TYPE_NAME /* @min:%2etypeName */] = dataSanitizeString(logger, _getErrorType(error)) || strNotSpecified;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = dataSanitizeMessage(logger, _formatMessage(exception || error, _self[_DYN_TYPE_NAME /* @min:%2etypeName */])) || strNotSpecified;\r\n var stack = exception[strStackDetails] || _getStackFromErrorObj(exception);\r\n _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] = _parseStack(stack);\r\n _self[strStack] = dataSanitizeException(logger, _formatStackTrace(stack));\r\n _self.hasFullStack = isArray(_self.parsedStack) && _self.parsedStack[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n if (properties) {\r\n properties[_DYN_TYPE_NAME /* @min:%2etypeName */] = properties[_DYN_TYPE_NAME /* @min:%2etypeName */] || _self[_DYN_TYPE_NAME /* @min:%2etypeName */];\r\n }\r\n }\r\n else {\r\n _self[_DYN_TYPE_NAME /* @min:%2etypeName */] = exception[_DYN_TYPE_NAME /* @min:%2etypeName */];\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = exception[_DYN_MESSAGE /* @min:%2emessage */];\r\n _self[strStack] = exception[strStack];\r\n _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] = exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */] || [];\r\n _self[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */] = exception[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */];\r\n }\r\n }\r\n _ExceptionDetails.prototype.toInterface = function () {\r\n var _a;\r\n var _self = this;\r\n var parsedStack = _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] instanceof Array\r\n && arrMap(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) { return frame.toInterface(); });\r\n var exceptionDetailsInterface = (_a = {\r\n id: _self.id,\r\n outerId: _self.outerId,\r\n typeName: _self[_DYN_TYPE_NAME /* @min:%2etypeName */],\r\n message: _self[_DYN_MESSAGE /* @min:%2emessage */],\r\n hasFullStack: _self[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */],\r\n stack: _self[strStack]\r\n },\r\n _a[_DYN_PARSED_STACK /* @min:parsedStack */] = parsedStack || undefined,\r\n _a);\r\n return exceptionDetailsInterface;\r\n };\r\n _ExceptionDetails.CreateFromInterface = function (logger, exception) {\r\n var parsedStack = (exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */] instanceof Array\r\n && arrMap(exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) { return _StackFrame[_DYN__CREATE_FROM_INTERFA1 /* @min:%2eCreateFromInterface */](frame); }))\r\n || exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */];\r\n var exceptionDetails = new _ExceptionDetails(logger, __assign(__assign({}, exception), { parsedStack: parsedStack }));\r\n return exceptionDetails;\r\n };\r\n return _ExceptionDetails;\r\n}());\r\nexport { _ExceptionDetails };\r\nvar _StackFrame = /** @class */ (function () {\r\n function _StackFrame(sourceFrame, level) {\r\n this.aiDataContract = {\r\n level: 1 /* FieldType.Required */,\r\n method: 1 /* FieldType.Required */,\r\n assembly: 0 /* FieldType.Default */,\r\n fileName: 0 /* FieldType.Default */,\r\n line: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] = 0;\r\n // Not converting this to isString() as typescript uses this logic to \"understand\" the different\r\n // types for the 2 different code paths\r\n if (typeof sourceFrame === \"string\") {\r\n var frame = sourceFrame;\r\n _self[_DYN_LEVEL /* @min:%2elevel */] = level;\r\n _self[_DYN_METHOD /* @min:%2emethod */] = NoMethod;\r\n _self[_DYN_ASSEMBLY /* @min:%2eassembly */] = strTrim(frame);\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = \"\";\r\n _self[_DYN_LINE /* @min:%2eline */] = 0;\r\n var matches = frame.match(_StackFrame.regex);\r\n if (matches && matches[_DYN_LENGTH /* @min:%2elength */] >= 5) {\r\n _self[_DYN_METHOD /* @min:%2emethod */] = strTrim(matches[2]) || _self[_DYN_METHOD /* @min:%2emethod */];\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = strTrim(matches[4]);\r\n _self[_DYN_LINE /* @min:%2eline */] = parseInt(matches[5]) || 0;\r\n }\r\n }\r\n else {\r\n _self[_DYN_LEVEL /* @min:%2elevel */] = sourceFrame[_DYN_LEVEL /* @min:%2elevel */];\r\n _self[_DYN_METHOD /* @min:%2emethod */] = sourceFrame[_DYN_METHOD /* @min:%2emethod */];\r\n _self[_DYN_ASSEMBLY /* @min:%2eassembly */] = sourceFrame[_DYN_ASSEMBLY /* @min:%2eassembly */];\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = sourceFrame[_DYN_FILE_NAME /* @min:%2efileName */];\r\n _self[_DYN_LINE /* @min:%2eline */] = sourceFrame[_DYN_LINE /* @min:%2eline */];\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] = 0;\r\n }\r\n _self.sizeInBytes += _self.method[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.fileName[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.assembly[_DYN_LENGTH /* @min:%2elength */];\r\n // todo: these might need to be removed depending on how the back-end settles on their size calculation\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] += _StackFrame.baseSize;\r\n _self.sizeInBytes += _self.level.toString()[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.line.toString()[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n _StackFrame.CreateFromInterface = function (frame) {\r\n return new _StackFrame(frame, null /* level is available in frame interface */);\r\n };\r\n _StackFrame.prototype.toInterface = function () {\r\n var _self = this;\r\n return {\r\n level: _self[_DYN_LEVEL /* @min:%2elevel */],\r\n method: _self[_DYN_METHOD /* @min:%2emethod */],\r\n assembly: _self[_DYN_ASSEMBLY /* @min:%2eassembly */],\r\n fileName: _self[_DYN_FILE_NAME /* @min:%2efileName */],\r\n line: _self[_DYN_LINE /* @min:%2eline */]\r\n };\r\n };\r\n // regex to match stack frames from ie/chrome/ff\r\n // methodName=$2, fileName=$4, lineNo=$5, column=$6\r\n _StackFrame.regex = /^([\\s]+at)?[\\s]{0,50}([^\\@\\()]+?)[\\s]{0,50}(\\@|\\()([^\\(\\n]+):([0-9]+):([0-9]+)(\\)?)$/;\r\n _StackFrame.baseSize = 58; // '{\"method\":\"\",\"level\":,\"assembly\":\"\",\"fileName\":\"\",\"line\":}'.length\r\n return _StackFrame;\r\n}());\r\nexport { _StackFrame };\r\n//# sourceMappingURL=Exception.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeId, dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar PageView = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n function PageView(logger, name, url, durationMs, properties, measurements, id) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n url: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */,\r\n id: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.id = dataSanitizeId(logger, id);\r\n _self.url = dataSanitizeUrl(logger, url);\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n if (!isNaN(durationMs)) {\r\n _self[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(durationMs);\r\n }\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n PageView.envelopeType = \"Microsoft.ApplicationInsights.{0}.Pageview\";\r\n PageView.dataType = \"PageviewData\";\r\n return PageView;\r\n}());\r\nexport { PageView };\r\n//# sourceMappingURL=PageView.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nimport { AjaxHelperParseDependencyPath } from \"../Util\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar RemoteDependencyData = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the RemoteDependencyData object\r\n */\r\n function RemoteDependencyData(logger, id, absoluteUrl, commandName, value, success, resultCode, method, requestAPI, correlationContext, properties, measurements) {\r\n if (requestAPI === void 0) { requestAPI = \"Ajax\"; }\r\n this.aiDataContract = {\r\n id: 1 /* FieldType.Required */,\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n resultCode: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n success: 0 /* FieldType.Default */,\r\n data: 0 /* FieldType.Default */,\r\n target: 0 /* FieldType.Default */,\r\n type: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */,\r\n kind: 0 /* FieldType.Default */,\r\n value: 0 /* FieldType.Default */,\r\n count: 0 /* FieldType.Default */,\r\n min: 0 /* FieldType.Default */,\r\n max: 0 /* FieldType.Default */,\r\n stdDev: 0 /* FieldType.Default */,\r\n dependencyKind: 0 /* FieldType.Default */,\r\n dependencySource: 0 /* FieldType.Default */,\r\n commandName: 0 /* FieldType.Default */,\r\n dependencyTypeName: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.id = id;\r\n _self[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(value);\r\n _self.success = success;\r\n _self.resultCode = resultCode + \"\";\r\n _self.type = dataSanitizeString(logger, requestAPI);\r\n var dependencyFields = AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName);\r\n _self.data = dataSanitizeUrl(logger, commandName) || dependencyFields.data; // get a value from hosturl if commandName not available\r\n _self.target = dataSanitizeString(logger, dependencyFields.target);\r\n if (correlationContext) {\r\n _self.target = \"\".concat(_self.target, \" | \").concat(correlationContext);\r\n }\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, dependencyFields[_DYN_NAME /* @min:%2ename */]);\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n RemoteDependencyData.envelopeType = \"Microsoft.ApplicationInsights.{0}.RemoteDependency\";\r\n RemoteDependencyData.dataType = \"RemoteDependencyData\";\r\n return RemoteDependencyData;\r\n}());\r\nexport { RemoteDependencyData };\r\n//# sourceMappingURL=RemoteDependencyData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_MEASUREMENTS, _DYN_MESSAGE, _DYN_PROPERTIES, _DYN_SEVERITY_LEVEL } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeMessage, dataSanitizeProperties } from \"./Common/DataSanitizer\";\r\nvar Trace = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the TraceTelemetry object\r\n */\r\n function Trace(logger, message, severityLevel, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n message: 1 /* FieldType.Required */,\r\n severityLevel: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n message = message || strNotSpecified;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = dataSanitizeMessage(logger, message);\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (severityLevel) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = severityLevel;\r\n }\r\n }\r\n Trace.envelopeType = \"Microsoft.ApplicationInsights.{0}.Message\";\r\n Trace.dataType = \"MessageData\";\r\n return Trace;\r\n}());\r\nexport { Trace };\r\n//# sourceMappingURL=Trace.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES, _DYN_RECEIVED_RESPONSE } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar PageViewPerformance = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n function PageViewPerformance(logger, name, url, unused, properties, measurements, cs4BaseData) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n url: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n perfTotal: 0 /* FieldType.Default */,\r\n networkConnect: 0 /* FieldType.Default */,\r\n sentRequest: 0 /* FieldType.Default */,\r\n receivedResponse: 0 /* FieldType.Default */,\r\n domProcessing: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.url = dataSanitizeUrl(logger, url);\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (cs4BaseData) {\r\n _self.domProcessing = cs4BaseData.domProcessing;\r\n _self[_DYN_DURATION /* @min:%2eduration */] = cs4BaseData[_DYN_DURATION /* @min:%2eduration */];\r\n _self.networkConnect = cs4BaseData.networkConnect;\r\n _self.perfTotal = cs4BaseData.perfTotal;\r\n _self[_DYN_RECEIVED_RESPONSE /* @min:%2ereceivedResponse */] = cs4BaseData[_DYN_RECEIVED_RESPONSE /* @min:%2ereceivedResponse */];\r\n _self.sentRequest = cs4BaseData.sentRequest;\r\n }\r\n }\r\n PageViewPerformance.envelopeType = \"Microsoft.ApplicationInsights.{0}.PageviewPerformance\";\r\n PageViewPerformance.dataType = \"PageviewPerformanceData\";\r\n return PageViewPerformance;\r\n}());\r\nexport { PageViewPerformance };\r\n//# sourceMappingURL=PageViewPerformance.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Data = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n function Data(baseType, data) {\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n this.aiDataContract = {\r\n baseType: 1 /* FieldType.Required */,\r\n baseData: 1 /* FieldType.Required */\r\n };\r\n this.baseType = baseType;\r\n this.baseData = data;\r\n }\r\n return Data;\r\n}());\r\nexport { Data };\r\n//# sourceMappingURL=Data.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { createEnumStyle } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * Defines the level of severity for the event.\r\n */\r\nexport var SeverityLevel = createEnumStyle({\r\n Verbose: 0 /* eSeverityLevel.Verbose */,\r\n Information: 1 /* eSeverityLevel.Information */,\r\n Warning: 2 /* eSeverityLevel.Warning */,\r\n Error: 3 /* eSeverityLevel.Error */,\r\n Critical: 4 /* eSeverityLevel.Critical */\r\n});\r\n//# sourceMappingURL=SeverityLevel.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { isNullOrUndefined } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_EXTENSION_CONFIG } from \"../__DynamicConstants\";\r\nvar ConfigurationManager = /** @class */ (function () {\r\n function ConfigurationManager() {\r\n }\r\n ConfigurationManager.getConfig = function (config, field, identifier, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n var configValue;\r\n if (identifier && config[_DYN_EXTENSION_CONFIG /* @min:%2eextensionConfig */] && config[_DYN_EXTENSION_CONFIG /* @min:%2eextensionConfig */][identifier] && !isNullOrUndefined(config[_DYN_EXTENSION_CONFIG /* @min:%2eextensionConfig */][identifier][field])) {\r\n configValue = config[_DYN_EXTENSION_CONFIG /* @min:%2eextensionConfig */][identifier][field];\r\n }\r\n else {\r\n configValue = config[field];\r\n }\r\n return !isNullOrUndefined(configValue) ? configValue : defaultValue;\r\n };\r\n return ConfigurationManager;\r\n}());\r\nexport { ConfigurationManager };\r\n//# sourceMappingURL=IConfig.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar DataPoint = /** @class */ (function () {\r\n function DataPoint() {\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n this.aiDataContract = {\r\n name: 1 /* FieldType.Required */,\r\n kind: 0 /* FieldType.Default */,\r\n value: 1 /* FieldType.Required */,\r\n count: 0 /* FieldType.Default */,\r\n min: 0 /* FieldType.Default */,\r\n max: 0 /* FieldType.Default */,\r\n stdDev: 0 /* FieldType.Default */\r\n };\r\n /**\r\n * Metric type. Single measurement or the aggregated value.\r\n */\r\n this.kind = 0 /* DataPointType.Measurement */;\r\n }\r\n return DataPoint;\r\n}());\r\nexport { DataPoint };\r\n//# sourceMappingURL=DataPoint.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { DataPoint } from \"./Common/DataPoint\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar Metric = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the MetricTelemetry object\r\n */\r\n function Metric(logger, name, value, count, min, max, stdDev, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n metrics: 1 /* FieldType.Required */,\r\n properties: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n var dataPoint = new DataPoint();\r\n dataPoint.count = count > 0 ? count : undefined;\r\n dataPoint.max = isNaN(max) || max === null ? undefined : max;\r\n dataPoint.min = isNaN(min) || min === null ? undefined : min;\r\n dataPoint[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n dataPoint.value = value;\r\n dataPoint.stdDev = isNaN(stdDev) || stdDev === null ? undefined : stdDev;\r\n _self.metrics = [dataPoint];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n Metric.envelopeType = \"Microsoft.ApplicationInsights.{0}.Metric\";\r\n Metric.dataType = \"MetricData\";\r\n return Metric;\r\n}());\r\nexport { Metric };\r\n//# sourceMappingURL=Metric.js.map","import isRetryAllowed from 'is-retry-allowed';\n\nconst namespace = 'axios-retry';\n\n/**\n * @param {Error} error\n * @return {boolean}\n */\nexport function isNetworkError(error) {\n return (\n !error.response &&\n Boolean(error.code) && // Prevents retrying cancelled requests\n error.code !== 'ECONNABORTED' && // Prevents retrying timed out requests\n isRetryAllowed(error)\n ); // Prevents retrying unsafe errors\n}\n\nconst SAFE_HTTP_METHODS = ['get', 'head', 'options'];\nconst IDEMPOTENT_HTTP_METHODS = SAFE_HTTP_METHODS.concat(['put', 'delete']);\n\n/**\n * @param {Error} error\n * @return {boolean}\n */\nexport function isRetryableError(error) {\n return (\n error.code !== 'ECONNABORTED' &&\n (!error.response || (error.response.status >= 500 && error.response.status <= 599))\n );\n}\n\n/**\n * @param {Error} error\n * @return {boolean}\n */\nexport function isSafeRequestError(error) {\n if (!error.config) {\n // Cannot determine if the request can be retried\n return false;\n }\n\n return isRetryableError(error) && SAFE_HTTP_METHODS.indexOf(error.config.method) !== -1;\n}\n\n/**\n * @param {Error} error\n * @return {boolean}\n */\nexport function isIdempotentRequestError(error) {\n if (!error.config) {\n // Cannot determine if the request can be retried\n return false;\n }\n\n return isRetryableError(error) && IDEMPOTENT_HTTP_METHODS.indexOf(error.config.method) !== -1;\n}\n\n/**\n * @param {Error} error\n * @return {boolean}\n */\nexport function isNetworkOrIdempotentRequestError(error) {\n return isNetworkError(error) || isIdempotentRequestError(error);\n}\n\n/**\n * @return {number} - delay in milliseconds, always 0\n */\nfunction noDelay() {\n return 0;\n}\n\n/**\n * @param {number} [retryNumber=0]\n * @return {number} - delay in milliseconds\n */\nexport function exponentialDelay(retryNumber = 0) {\n const delay = Math.pow(2, retryNumber) * 100;\n const randomSum = delay * 0.2 * Math.random(); // 0-20% of the delay\n return delay + randomSum;\n}\n\n/**\n * Initializes and returns the retry state for the given request/config\n * @param {AxiosRequestConfig} config\n * @return {Object}\n */\nfunction getCurrentState(config) {\n const currentState = config[namespace] || {};\n currentState.retryCount = currentState.retryCount || 0;\n config[namespace] = currentState;\n return currentState;\n}\n\n/**\n * Returns the axios-retry options for the current request\n * @param {AxiosRequestConfig} config\n * @param {AxiosRetryConfig} defaultOptions\n * @return {AxiosRetryConfig}\n */\nfunction getRequestOptions(config, defaultOptions) {\n return { ...defaultOptions, ...config[namespace] };\n}\n\n/**\n * @param {Axios} axios\n * @param {AxiosRequestConfig} config\n */\nfunction fixConfig(axios, config) {\n if (axios.defaults.agent === config.agent) {\n delete config.agent;\n }\n if (axios.defaults.httpAgent === config.httpAgent) {\n delete config.httpAgent;\n }\n if (axios.defaults.httpsAgent === config.httpsAgent) {\n delete config.httpsAgent;\n }\n}\n\n/**\n * Checks retryCondition if request can be retried. Handles it's retruning value or Promise.\n * @param {number} retries\n * @param {Function} retryCondition\n * @param {Object} currentState\n * @param {Error} error\n * @return {boolean}\n */\nasync function shouldRetry(retries, retryCondition, currentState, error) {\n const shouldRetryOrPromise = currentState.retryCount < retries && retryCondition(error);\n\n // This could be a promise\n if (typeof shouldRetryOrPromise === 'object') {\n try {\n const shouldRetryPromiseResult = await shouldRetryOrPromise;\n // keep return true unless shouldRetryPromiseResult return false for compatibility\n return shouldRetryPromiseResult !== false;\n } catch (_err) {\n return false;\n }\n }\n return shouldRetryOrPromise;\n}\n\n/**\n * Adds response interceptors to an axios instance to retry requests failed due to network issues\n *\n * @example\n *\n * import axios from 'axios';\n *\n * axiosRetry(axios, { retries: 3 });\n *\n * axios.get('http://example.com/test') // The first request fails and the second returns 'ok'\n * .then(result => {\n * result.data; // 'ok'\n * });\n *\n * // Exponential back-off retry delay between requests\n * axiosRetry(axios, { retryDelay : axiosRetry.exponentialDelay});\n *\n * // Custom retry delay\n * axiosRetry(axios, { retryDelay : (retryCount) => {\n * return retryCount * 1000;\n * }});\n *\n * // Also works with custom axios instances\n * const client = axios.create({ baseURL: 'http://example.com' });\n * axiosRetry(client, { retries: 3 });\n *\n * client.get('/test') // The first request fails and the second returns 'ok'\n * .then(result => {\n * result.data; // 'ok'\n * });\n *\n * // Allows request-specific configuration\n * client\n * .get('/test', {\n * 'axios-retry': {\n * retries: 0\n * }\n * })\n * .catch(error => { // The first request fails\n * error !== undefined\n * });\n *\n * @param {Axios} axios An axios instance (the axios object or one created from axios.create)\n * @param {Object} [defaultOptions]\n * @param {number} [defaultOptions.retries=3] Number of retries\n * @param {boolean} [defaultOptions.shouldResetTimeout=false]\n * Defines if the timeout should be reset between retries\n * @param {Function} [defaultOptions.retryCondition=isNetworkOrIdempotentRequestError]\n * A function to determine if the error can be retried\n * @param {Function} [defaultOptions.retryDelay=noDelay]\n * A function to determine the delay between retry requests\n * @param {Function} [defaultOptions.onRetry=()=>{}]\n * A function to get notified when a retry occurs\n */\nexport default function axiosRetry(axios, defaultOptions) {\n axios.interceptors.request.use((config) => {\n const currentState = getCurrentState(config);\n currentState.lastRequestTime = Date.now();\n return config;\n });\n\n axios.interceptors.response.use(null, async (error) => {\n const { config } = error;\n\n // If we have no information to retry the request\n if (!config) {\n return Promise.reject(error);\n }\n\n const {\n retries = 3,\n retryCondition = isNetworkOrIdempotentRequestError,\n retryDelay = noDelay,\n shouldResetTimeout = false,\n onRetry = () => {}\n } = getRequestOptions(config, defaultOptions);\n\n const currentState = getCurrentState(config);\n\n if (await shouldRetry(retries, retryCondition, currentState, error)) {\n currentState.retryCount += 1;\n const delay = retryDelay(currentState.retryCount, error);\n\n // Axios fails merging this configuration to the default configuration because it has an issue\n // with circular structures: https://github.com/mzabriskie/axios/issues/370\n fixConfig(axios, config);\n\n if (!shouldResetTimeout && config.timeout && currentState.lastRequestTime) {\n const lastRequestDuration = Date.now() - currentState.lastRequestTime;\n // Minimum 1ms timeout (passing 0 or less to XHR means no timeout)\n config.timeout = Math.max(config.timeout - lastRequestDuration - delay, 1);\n }\n\n config.transformRequest = [(data) => data];\n\n onRetry(currentState.retryCount, error, config);\n\n return new Promise((resolve) => setTimeout(() => resolve(axios(config)), delay));\n }\n\n return Promise.reject(error);\n });\n}\n\n// Compatibility with CommonJS\naxiosRetry.isNetworkError = isNetworkError;\naxiosRetry.isSafeRequestError = isSafeRequestError;\naxiosRetry.isIdempotentRequestError = isIdempotentRequestError;\naxiosRetry.isNetworkOrIdempotentRequestError = isNetworkOrIdempotentRequestError;\naxiosRetry.exponentialDelay = exponentialDelay;\naxiosRetry.isRetryableError = isRetryableError;\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _DYN_CREATE_NEW, _DYN_DIAG_LOG, _DYN_GET_NEXT, _DYN_GET_PROCESS_TEL_CONT0, _DYN_INITIALIZE, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_SET_NEXT_PLUGIN, _DYN_TEARDOWN, _DYN_UPDATE, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { arrForEach, isArray, isFunction, isNullOrUndefined, proxyFunctionAs, setValue } from \"./HelperFuncs\";\r\nimport { STR_CORE, STR_EXTENSION_CONFIG, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { createProcessTelemetryContext, createProcessTelemetryUnloadContext, createProcessTelemetryUpdateContext } from \"./ProcessTelemetryContext\";\r\nimport { createUnloadHandlerContainer } from \"./UnloadHandlerContainer\";\r\nvar strGetPlugin = \"getPlugin\";\r\n/**\r\n * BaseTelemetryPlugin provides a basic implementation of the ITelemetryPlugin interface so that plugins\r\n * can avoid implementation the same set of boiler plate code as well as provide a base\r\n * implementation so that new default implementations can be added without breaking all plugins.\r\n */\r\nvar BaseTelemetryPlugin = /** @class */ (function () {\r\n function BaseTelemetryPlugin() {\r\n var _self = this; // Setting _self here as it's used outside of the dynamicProto as well\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _isinitialized;\r\n var _rootCtx; // Used as the root context, holding the current config and initialized core\r\n var _nextPlugin; // Used for backward compatibility where plugins don't call the main pipeline\r\n var _unloadHandlerContainer;\r\n var _hooks;\r\n _initDefaults();\r\n dynamicProto(BaseTelemetryPlugin, _self, function (_self) {\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, core, extensions, pluginChain) {\r\n _setDefaults(config, core, pluginChain);\r\n _isinitialized = true;\r\n };\r\n _self[_DYN_TEARDOWN /* @min:%2eteardown */] = function (unloadCtx, unloadState) {\r\n var _a;\r\n // If this plugin has already been torn down (not operational) or is not initialized (core is not set)\r\n // or the core being used for unload was not the same core used for initialization.\r\n var core = _self[STR_CORE /* @min:%2ecore */];\r\n if (!core || (unloadCtx && core !== unloadCtx[STR_CORE /* @min:%2ecore */]())) {\r\n // Do Nothing as either the plugin is not initialized or was not initialized by the current core\r\n return;\r\n }\r\n var result;\r\n var unloadDone = false;\r\n var theUnloadCtx = unloadCtx || createProcessTelemetryUnloadContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);\r\n var theUnloadState = unloadState || (_a = {\r\n reason: 0 /* TelemetryUnloadReason.ManualTeardown */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = false,\r\n _a);\r\n function _unloadCallback() {\r\n if (!unloadDone) {\r\n unloadDone = true;\r\n _unloadHandlerContainer.run(theUnloadCtx, unloadState);\r\n var oldHooks = _hooks;\r\n _hooks = [];\r\n // Remove all instrumentation hooks\r\n arrForEach(oldHooks, function (fn) {\r\n fn.rm();\r\n });\r\n if (result === true) {\r\n theUnloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](theUnloadState);\r\n }\r\n _initDefaults();\r\n }\r\n }\r\n if (!_self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] || _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */](theUnloadCtx, theUnloadState, _unloadCallback) !== true) {\r\n _unloadCallback();\r\n }\r\n else {\r\n // Tell the caller that we will be calling processNext()\r\n result = true;\r\n }\r\n return result;\r\n };\r\n _self[_DYN_UPDATE /* @min:%2eupdate */] = function (updateCtx, updateState) {\r\n // If this plugin has already been torn down (not operational) or is not initialized (core is not set)\r\n // or the core being used for unload was not the same core used for initialization.\r\n var core = _self[STR_CORE /* @min:%2ecore */];\r\n if (!core || (updateCtx && core !== updateCtx[STR_CORE /* @min:%2ecore */]())) {\r\n // Do Nothing\r\n return;\r\n }\r\n var result;\r\n var updateDone = false;\r\n var theUpdateCtx = updateCtx || createProcessTelemetryUpdateContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);\r\n var theUpdateState = updateState || {\r\n reason: 0 /* TelemetryUpdateReason.Unknown */\r\n };\r\n function _updateCallback() {\r\n if (!updateDone) {\r\n updateDone = true;\r\n _setDefaults(theUpdateCtx.getCfg(), theUpdateCtx.core(), theUpdateCtx[_DYN_GET_NEXT /* @min:%2egetNext */]());\r\n }\r\n }\r\n if (!_self._doUpdate || _self._doUpdate(theUpdateCtx, theUpdateState, _updateCallback) !== true) {\r\n _updateCallback();\r\n }\r\n else {\r\n result = true;\r\n }\r\n return result;\r\n };\r\n _self._addHook = function (hooks) {\r\n if (hooks) {\r\n if (isArray(hooks)) {\r\n _hooks = _hooks.concat(hooks);\r\n }\r\n else {\r\n _hooks[_DYN_PUSH /* @min:%2epush */](hooks);\r\n }\r\n }\r\n };\r\n proxyFunctionAs(_self, \"_addUnloadCb\", function () { return _unloadHandlerContainer; }, \"add\");\r\n });\r\n // These are added after the dynamicProto so that are not moved to the prototype\r\n _self[_DYN_DIAG_LOG /* @min:%2ediagLog */] = function (itemCtx) {\r\n return _getTelCtx(itemCtx)[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n };\r\n _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = function () {\r\n return _isinitialized;\r\n };\r\n _self.setInitialized = function (isInitialized) {\r\n _isinitialized = isInitialized;\r\n };\r\n // _self.getNextPlugin = () => DO NOT IMPLEMENT\r\n // Sub-classes of this base class *should* not be relying on this value and instead\r\n // should use processNext() function. If you require access to the plugin use the\r\n // IProcessTelemetryContext.getNext().getPlugin() while in the pipeline, Note getNext() may return null.\r\n _self[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */] = function (next) {\r\n _nextPlugin = next;\r\n };\r\n _self[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = function (env, itemCtx) {\r\n if (itemCtx) {\r\n // Normal core execution sequence\r\n itemCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](env);\r\n }\r\n else if (_nextPlugin && isFunction(_nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */])) {\r\n // Looks like backward compatibility or out of band processing. And as it looks\r\n // like a ITelemetryPlugin or ITelemetryPluginChain, just call processTelemetry\r\n _nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, null);\r\n }\r\n };\r\n _self._getTelCtx = _getTelCtx;\r\n function _getTelCtx(currentCtx) {\r\n if (currentCtx === void 0) { currentCtx = null; }\r\n var itemCtx = currentCtx;\r\n if (!itemCtx) {\r\n var rootCtx = _rootCtx || createProcessTelemetryContext(null, {}, _self[STR_CORE /* @min:%2ecore */]);\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n // Looks like a chain object\r\n itemCtx = rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](null, _nextPlugin[strGetPlugin]);\r\n }\r\n else {\r\n itemCtx = rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](null, _nextPlugin);\r\n }\r\n }\r\n return itemCtx;\r\n }\r\n function _setDefaults(config, core, pluginChain) {\r\n if (config) {\r\n // Make sure the extensionConfig exists\r\n setValue(config, STR_EXTENSION_CONFIG, [], null, isNullOrUndefined);\r\n }\r\n if (!pluginChain && core) {\r\n // Get the first plugin from the core\r\n pluginChain = core[_DYN_GET_PROCESS_TEL_CONT0 /* @min:%2egetProcessTelContext */]()[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n var nextPlugin = _nextPlugin;\r\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n // If it looks like a proxy/chain then get the plugin\r\n nextPlugin = _nextPlugin[strGetPlugin]();\r\n }\r\n // Support legacy plugins where core was defined as a property\r\n _self[STR_CORE /* @min:%2ecore */] = core;\r\n _rootCtx = createProcessTelemetryContext(pluginChain, config, core, nextPlugin);\r\n }\r\n function _initDefaults() {\r\n _isinitialized = false;\r\n _self[STR_CORE /* @min:%2ecore */] = null;\r\n _rootCtx = null;\r\n _nextPlugin = null;\r\n _hooks = [];\r\n _unloadHandlerContainer = createUnloadHandlerContainer();\r\n }\r\n }\r\n BaseTelemetryPlugin.prototype.initialize = function (config, core, extensions, pluginChain) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Tear down the plugin and remove any hooked value, the plugin should be removed so that it is no longer initialized and\r\n * therefore could be re-initialized after being torn down. The plugin should ensure that once this has been called any further\r\n * processTelemetry calls are ignored and it just calls the processNext() with the provided context.\r\n * @param unloadCtx - This is the context that should be used during unloading.\r\n * @param unloadState - The details / state of the unload process, it holds details like whether it should be unloaded synchronously or asynchronously and the reason for the unload.\r\n * @returns boolean - true if the plugin has or will call processNext(), this for backward compatibility as previously teardown was synchronous and returned nothing.\r\n */\r\n BaseTelemetryPlugin.prototype.teardown = function (unloadCtx, unloadState) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return false;\r\n };\r\n /**\r\n * The the plugin should re-evaluate configuration and update any cached configuration settings.\r\n * @param updateCtx - This is the context that should be used during updating.\r\n * @param updateState - The details / state of the update process, it holds details like the current and previous configuration.\r\n * @returns boolean - true if the plugin has or will call updateCtx.processNext(), this allows the plugin to perform any asynchronous operations.\r\n */\r\n BaseTelemetryPlugin.prototype.update = function (updateCtx, updateState) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Add an unload handler that will be called when the SDK is being unloaded\r\n * @param handler - the handler\r\n */\r\n BaseTelemetryPlugin.prototype._addUnloadCb = function (handler) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Add this hook so that it is automatically removed during unloading\r\n * @param hooks - The single hook or an array of IInstrumentHook objects\r\n */\r\n BaseTelemetryPlugin.prototype._addHook = function (hooks) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return BaseTelemetryPlugin;\r\n}());\r\nexport { BaseTelemetryPlugin };\r\n//# sourceMappingURL=BaseTelemetryPlugin.js.map","import { getWindow } from './dom/getWindow';\n\ndeclare function setTimeout(cb: Function, delay: number): number;\ndeclare function setInterval(cb: Function, delay: number): number;\n\n/**\n * Bugs often appear in async code when stuff gets disposed, but async operations don't get canceled.\n * This Async helper class solves these issues by tying async code to the lifetime of a disposable object.\n *\n * Usage: Anything class extending from BaseModel can access this helper via this.async. Otherwise create a\n * new instance of the class and remember to call dispose() during your code's dispose handler.\n *\n * @public\n */\nexport class Async {\n private _timeoutIds: { [id: number]: boolean } | null = null;\n private _immediateIds: { [id: number]: boolean } | null = null;\n private _intervalIds: { [id: number]: boolean } | null = null;\n private _animationFrameIds: { [id: number]: boolean } | null = null;\n private _isDisposed: boolean;\n private _parent: object | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _onErrorHandler: ((e: any) => void) | undefined;\n private _noop: () => void;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(parent?: object, onError?: (e: any) => void) {\n this._isDisposed = false;\n this._parent = parent || null;\n this._onErrorHandler = onError;\n this._noop = () => {\n /* do nothing */\n };\n }\n\n /**\n * Dispose function, clears all async operations.\n */\n public dispose(): void {\n let id;\n\n this._isDisposed = true;\n this._parent = null;\n\n // Clear timeouts.\n if (this._timeoutIds) {\n for (id in this._timeoutIds) {\n if (this._timeoutIds.hasOwnProperty(id)) {\n this.clearTimeout(parseInt(id, 10));\n }\n }\n\n this._timeoutIds = null;\n }\n\n // Clear immediates.\n if (this._immediateIds) {\n for (id in this._immediateIds) {\n if (this._immediateIds.hasOwnProperty(id)) {\n this.clearImmediate(parseInt(id, 10));\n }\n }\n\n this._immediateIds = null;\n }\n\n // Clear intervals.\n if (this._intervalIds) {\n for (id in this._intervalIds) {\n if (this._intervalIds.hasOwnProperty(id)) {\n this.clearInterval(parseInt(id, 10));\n }\n }\n this._intervalIds = null;\n }\n\n // Clear animation frames.\n if (this._animationFrameIds) {\n for (id in this._animationFrameIds) {\n if (this._animationFrameIds.hasOwnProperty(id)) {\n this.cancelAnimationFrame(parseInt(id, 10));\n }\n }\n\n this._animationFrameIds = null;\n }\n }\n\n /**\n * SetTimeout override, which will auto cancel the timeout during dispose.\n * @param callback - Callback to execute.\n * @param duration - Duration in milliseconds.\n * @returns The setTimeout id.\n */\n public setTimeout(callback: () => void, duration: number): number {\n let timeoutId = 0;\n\n if (!this._isDisposed) {\n if (!this._timeoutIds) {\n this._timeoutIds = {};\n }\n\n timeoutId = setTimeout(() => {\n // Time to execute the timeout, enqueue it as a foreground task to be executed.\n\n try {\n // Now delete the record and call the callback.\n if (this._timeoutIds) {\n delete this._timeoutIds[timeoutId];\n }\n callback.apply(this._parent);\n } catch (e) {\n this._logError(e);\n }\n }, duration);\n\n this._timeoutIds[timeoutId] = true;\n }\n\n return timeoutId;\n }\n\n /**\n * Clears the timeout.\n * @param id - Id to cancel.\n */\n public clearTimeout(id: number): void {\n if (this._timeoutIds && this._timeoutIds[id]) {\n clearTimeout(id);\n delete this._timeoutIds[id];\n }\n }\n\n /**\n * SetImmediate override, which will auto cancel the immediate during dispose.\n * @param callback - Callback to execute.\n * @param targetElement - Optional target element to use for identifying the correct window.\n * @returns The setTimeout id.\n */\n public setImmediate(callback: () => void, targetElement?: Element | null): number {\n let immediateId = 0;\n const win = getWindow(targetElement)!;\n\n if (!this._isDisposed) {\n if (!this._immediateIds) {\n this._immediateIds = {};\n }\n\n let setImmediateCallback = () => {\n // Time to execute the timeout, enqueue it as a foreground task to be executed.\n\n try {\n // Now delete the record and call the callback.\n if (this._immediateIds) {\n delete this._immediateIds[immediateId];\n }\n callback.apply(this._parent);\n } catch (e) {\n this._logError(e);\n }\n };\n\n immediateId = win.setTimeout(setImmediateCallback, 0);\n\n this._immediateIds[immediateId] = true;\n }\n\n return immediateId;\n }\n\n /**\n * Clears the immediate.\n * @param id - Id to cancel.\n * @param targetElement - Optional target element to use for identifying the correct window.\n */\n public clearImmediate(id: number, targetElement?: Element | null): void {\n const win = getWindow(targetElement)!;\n\n if (this._immediateIds && this._immediateIds[id]) {\n win.clearTimeout(id);\n delete this._immediateIds[id];\n }\n }\n\n /**\n * SetInterval override, which will auto cancel the timeout during dispose.\n * @param callback - Callback to execute.\n * @param duration - Duration in milliseconds.\n * @returns The setTimeout id.\n */\n public setInterval(callback: () => void, duration: number): number {\n let intervalId = 0;\n\n if (!this._isDisposed) {\n if (!this._intervalIds) {\n this._intervalIds = {};\n }\n\n intervalId = setInterval(() => {\n // Time to execute the interval callback, enqueue it as a foreground task to be executed.\n try {\n callback.apply(this._parent);\n } catch (e) {\n this._logError(e);\n }\n }, duration);\n\n this._intervalIds[intervalId] = true;\n }\n\n return intervalId;\n }\n\n /**\n * Clears the interval.\n * @param id - Id to cancel.\n */\n public clearInterval(id: number): void {\n if (this._intervalIds && this._intervalIds[id]) {\n clearInterval(id);\n delete this._intervalIds[id];\n }\n }\n\n /**\n * Creates a function that, when executed, will only call the func function at most once per\n * every wait milliseconds. Provide an options object to indicate that func should be invoked\n * on the leading and/or trailing edge of the wait timeout. Subsequent calls to the throttled\n * function will return the result of the last func call.\n *\n * Note: If leading and trailing options are true func will be called on the trailing edge of\n * the timeout only if the throttled function is invoked more than once during the wait timeout.\n *\n * @param func - The function to throttle.\n * @param wait - The number of milliseconds to throttle executions to. Defaults to 0.\n * @param options - The options object.\n * @returns The new throttled function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public throttle any>(\n func: T,\n wait?: number,\n options?: {\n leading?: boolean;\n trailing?: boolean;\n },\n ): T {\n if (this._isDisposed) {\n return this._noop as T;\n }\n\n let waitMS = wait || 0;\n let leading = true;\n let trailing = true;\n let lastExecuteTime = 0;\n let lastResult: T;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let lastArgs: any[];\n let timeoutId: number | null = null;\n\n if (options && typeof options.leading === 'boolean') {\n leading = options.leading;\n }\n\n if (options && typeof options.trailing === 'boolean') {\n trailing = options.trailing;\n }\n\n let callback = (userCall?: boolean) => {\n let now = Date.now();\n let delta = now - lastExecuteTime;\n let waitLength = leading ? waitMS - delta : waitMS;\n if (delta >= waitMS && (!userCall || leading)) {\n lastExecuteTime = now;\n if (timeoutId) {\n this.clearTimeout(timeoutId);\n timeoutId = null;\n }\n lastResult = func.apply(this._parent, lastArgs);\n } else if (timeoutId === null && trailing) {\n timeoutId = this.setTimeout(callback, waitLength);\n }\n\n return lastResult;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let resultFunction = ((...args: any[]): any => {\n lastArgs = args;\n return callback(true);\n }) as T;\n\n return resultFunction;\n }\n\n /**\n * Creates a function that will delay the execution of func until after wait milliseconds have\n * elapsed since the last time it was invoked. Provide an options object to indicate that func\n * should be invoked on the leading and/or trailing edge of the wait timeout. Subsequent calls\n * to the debounced function will return the result of the last func call.\n *\n * Note: If leading and trailing options are true func will be called on the trailing edge of\n * the timeout only if the debounced function is invoked more than once during the wait\n * timeout.\n *\n * @param func - The function to debounce.\n * @param wait - The number of milliseconds to delay.\n * @param options - The options object.\n * @returns The new debounced function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public debounce any>(\n func: T,\n wait?: number,\n options?: {\n leading?: boolean;\n maxWait?: number;\n trailing?: boolean;\n },\n ): ICancelable & T {\n if (this._isDisposed) {\n let noOpFunction = (() => {\n /** Do nothing */\n }) as ICancelable & T;\n\n noOpFunction.cancel = () => {\n return;\n };\n noOpFunction.flush = ((() => null) as unknown) as () => ReturnType;\n noOpFunction.pending = () => false;\n\n return noOpFunction;\n }\n\n let waitMS = wait || 0;\n let leading = false;\n let trailing = true;\n let maxWait: number | null = null;\n let lastCallTime = 0;\n let lastExecuteTime = Date.now();\n let lastResult: ReturnType;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let lastArgs: any[];\n let timeoutId: number | null = null;\n\n if (options && typeof options.leading === 'boolean') {\n leading = options.leading;\n }\n\n if (options && typeof options.trailing === 'boolean') {\n trailing = options.trailing;\n }\n\n if (options && typeof options.maxWait === 'number' && !isNaN(options.maxWait)) {\n maxWait = options.maxWait;\n }\n\n let markExecuted = (time: number) => {\n if (timeoutId) {\n this.clearTimeout(timeoutId);\n timeoutId = null;\n }\n lastExecuteTime = time;\n };\n\n let invokeFunction = (time: number) => {\n markExecuted(time);\n lastResult = func.apply(this._parent, lastArgs);\n };\n\n let callback = (userCall?: boolean) => {\n let now = Date.now();\n let executeImmediately = false;\n if (userCall) {\n if (leading && now - lastCallTime >= waitMS) {\n executeImmediately = true;\n }\n lastCallTime = now;\n }\n let delta = now - lastCallTime;\n let waitLength = waitMS - delta;\n let maxWaitDelta = now - lastExecuteTime;\n let maxWaitExpired = false;\n\n if (maxWait !== null) {\n // maxWait only matters when there is a pending callback\n if (maxWaitDelta >= maxWait && timeoutId) {\n maxWaitExpired = true;\n } else {\n waitLength = Math.min(waitLength, maxWait - maxWaitDelta);\n }\n }\n\n if (delta >= waitMS || maxWaitExpired || executeImmediately) {\n invokeFunction(now);\n } else if ((timeoutId === null || !userCall) && trailing) {\n timeoutId = this.setTimeout(callback, waitLength);\n }\n\n return lastResult;\n };\n\n let pending = (): boolean => {\n return !!timeoutId;\n };\n\n let cancel = (): void => {\n if (pending()) {\n // Mark the debounced function as having executed\n markExecuted(Date.now());\n }\n };\n\n let flush = () => {\n if (pending()) {\n invokeFunction(Date.now());\n }\n\n return lastResult;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let resultFunction = ((...args: any[]) => {\n lastArgs = args;\n return callback(true);\n }) as ICancelable & T;\n\n resultFunction.cancel = cancel;\n resultFunction.flush = flush;\n resultFunction.pending = pending;\n\n return resultFunction;\n }\n\n public requestAnimationFrame(callback: () => void, targetElement?: Element | null): number {\n let animationFrameId = 0;\n const win = getWindow(targetElement)!;\n\n if (!this._isDisposed) {\n if (!this._animationFrameIds) {\n this._animationFrameIds = {};\n }\n\n let animationFrameCallback = () => {\n try {\n // Now delete the record and call the callback.\n if (this._animationFrameIds) {\n delete this._animationFrameIds[animationFrameId];\n }\n\n callback.apply(this._parent);\n } catch (e) {\n this._logError(e);\n }\n };\n\n animationFrameId = win.requestAnimationFrame\n ? win.requestAnimationFrame(animationFrameCallback)\n : win.setTimeout(animationFrameCallback, 0);\n\n this._animationFrameIds[animationFrameId] = true;\n }\n\n return animationFrameId;\n }\n\n public cancelAnimationFrame(id: number, targetElement?: Element | null): void {\n const win = getWindow(targetElement)!;\n\n if (this._animationFrameIds && this._animationFrameIds[id]) {\n win.cancelAnimationFrame ? win.cancelAnimationFrame(id) : win.clearTimeout(id);\n delete this._animationFrameIds[id];\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n protected _logError(e: any): void {\n if (this._onErrorHandler) {\n this._onErrorHandler(e);\n }\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type ICancelable any> = {\n flush: () => ReturnType;\n cancel: () => void;\n pending: () => boolean;\n};\n","export const DATA_PORTAL_ATTRIBUTE = 'data-portal-element';\n\n/**\n * Identify element as a portal by setting an attribute.\n * @param element - Element to mark as a portal.\n */\nexport function setPortalAttribute(element: HTMLElement): void {\n element.setAttribute(DATA_PORTAL_ATTRIBUTE, 'true');\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions,\n} from \"./requestPolicy\";\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { WebResourceLike } from \"../webResource\";\n\n/**\n * Options for how HTTP connections should be maintained for future\n * requests.\n */\nexport interface KeepAliveOptions {\n /**\n * When true, connections will be kept alive for multiple requests.\n * Defaults to true.\n */\n enable: boolean;\n}\n\n/**\n * By default, HTTP connections are maintained for future requests.\n */\nexport const DefaultKeepAliveOptions: KeepAliveOptions = {\n enable: true,\n};\n\n/**\n * Creates a policy that controls whether HTTP connections are maintained on future requests.\n * @param keepAliveOptions - Keep alive options. By default, HTTP connections are maintained for future requests.\n * @returns An instance of the {@link KeepAlivePolicy}\n */\nexport function keepAlivePolicy(keepAliveOptions?: KeepAliveOptions): RequestPolicyFactory {\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions) => {\n return new KeepAlivePolicy(nextPolicy, options, keepAliveOptions || DefaultKeepAliveOptions);\n },\n };\n}\n\n/**\n * KeepAlivePolicy is a policy used to control keep alive settings for every request.\n */\nexport class KeepAlivePolicy extends BaseRequestPolicy {\n /**\n * Creates an instance of KeepAlivePolicy.\n *\n * @param nextPolicy -\n * @param options -\n * @param keepAliveOptions -\n */\n constructor(\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions,\n private readonly keepAliveOptions: KeepAliveOptions\n ) {\n super(nextPolicy, options);\n }\n\n /**\n * Sends out request.\n *\n * @param request -\n * @returns\n */\n public async sendRequest(request: WebResourceLike): Promise {\n request.keepAlive = this.keepAliveOptions.enable;\n return this._nextPolicy.sendRequest(request);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions,\n} from \"./requestPolicy\";\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { WebResourceLike } from \"../webResource\";\n\n/**\n * Creates a policy that assigns a unique request id to outgoing requests.\n * @param requestIdHeaderName - The name of the header to use when assigning the unique id to the request.\n */\nexport function generateClientRequestIdPolicy(\n requestIdHeaderName = \"x-ms-client-request-id\"\n): RequestPolicyFactory {\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions) => {\n return new GenerateClientRequestIdPolicy(nextPolicy, options, requestIdHeaderName);\n },\n };\n}\n\nexport class GenerateClientRequestIdPolicy extends BaseRequestPolicy {\n constructor(\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions,\n private _requestIdHeaderName: string\n ) {\n super(nextPolicy, options);\n }\n\n public sendRequest(request: WebResourceLike): Promise {\n if (!request.headers.contains(this._requestIdHeaderName)) {\n request.headers.set(this._requestIdHeaderName, request.requestId);\n }\n return this._nextPolicy.sendRequest(request);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions,\n} from \"./requestPolicy\";\nimport { Debugger } from \"@azure/logger\";\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { Sanitizer } from \"../util/sanitizer\";\nimport { WebResourceLike } from \"../webResource\";\nimport { logger as coreLogger } from \"../log\";\n\n/**\n * Options to pass to the {@link logPolicy}.\n * By default only a set list of headers are logged, though this can be configured. Request and response bodies are never logged.\n */\nexport interface LogPolicyOptions {\n /**\n * Header names whose values will be logged when logging is enabled. Defaults to:\n * x-ms-client-request-id, x-ms-return-client-request-id, x-ms-useragent, x-ms-correlation-request-id,\n * x-ms-request-id, client-request-id, ms-cv, return-client-request-id, traceparent, Access-Control-Allow-Credentials,\n * Access-Control-Allow-Headers, Access-Control-Allow-Methods, Access-Control-Allow-Origin, Access-Control-Expose-Headers,\n * Access-Control-Max-Age, Access-Control-Request-Headers, Access-Control-Request-Method, Origin, Accept, Accept-Encoding,\n * Cache-Control, Connection, Content-Length, Content-Type, Date, ETag, Expires, If-Match, If-Modified-Since, If-None-Match,\n * If-Unmodified-Since, Last-Modified, Pragma, Request-Id, Retry-After, Server, Transfer-Encoding, and User-Agent.\n *\n * Any headers specified in this field will be added to that list.\n * Any other values will be written to logs as \"REDACTED\".\n */\n allowedHeaderNames?: string[];\n\n /**\n * Query string names whose values will be logged when logging is enabled. By default no\n * query string values are logged.\n */\n allowedQueryParameters?: string[];\n\n /**\n * The Debugger (logger) instance to use for writing pipeline logs.\n */\n logger?: Debugger;\n}\n\n/**\n * Creates a policy that logs information about the outgoing request and the incoming responses.\n * @param loggingOptions - Logging options.\n * @returns An instance of the {@link LogPolicy}\n */\nexport function logPolicy(loggingOptions: LogPolicyOptions = {}): RequestPolicyFactory {\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions) => {\n return new LogPolicy(nextPolicy, options, loggingOptions);\n },\n };\n}\n\n/**\n * A policy that logs information about the outgoing request and the incoming responses.\n */\nexport class LogPolicy extends BaseRequestPolicy {\n logger: Debugger;\n sanitizer: Sanitizer;\n\n /**\n * Header names whose values will be logged when logging is enabled. Defaults to\n * Date, traceparent, x-ms-client-request-id, and x-ms-request id. Any headers\n * specified in this field will be added to that list. Any other values will\n * be written to logs as \"REDACTED\".\n * @deprecated Pass these into the constructor instead.\n */\n public get allowedHeaderNames(): Set {\n return this.sanitizer.allowedHeaderNames;\n }\n\n /**\n * Header names whose values will be logged when logging is enabled. Defaults to\n * Date, traceparent, x-ms-client-request-id, and x-ms-request id. Any headers\n * specified in this field will be added to that list. Any other values will\n * be written to logs as \"REDACTED\".\n * @deprecated Pass these into the constructor instead.\n */\n public set allowedHeaderNames(allowedHeaderNames: Set) {\n this.sanitizer.allowedHeaderNames = allowedHeaderNames;\n }\n\n /**\n * Query string names whose values will be logged when logging is enabled. By default no\n * query string values are logged.\n * @deprecated Pass these into the constructor instead.\n */\n public get allowedQueryParameters(): Set {\n return this.sanitizer.allowedQueryParameters;\n }\n\n /**\n * Query string names whose values will be logged when logging is enabled. By default no\n * query string values are logged.\n * @deprecated Pass these into the constructor instead.\n */\n public set allowedQueryParameters(allowedQueryParameters: Set) {\n this.sanitizer.allowedQueryParameters = allowedQueryParameters;\n }\n\n constructor(\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions,\n {\n logger = coreLogger.info,\n allowedHeaderNames = [],\n allowedQueryParameters = [],\n }: LogPolicyOptions = {}\n ) {\n super(nextPolicy, options);\n this.logger = logger;\n this.sanitizer = new Sanitizer({ allowedHeaderNames, allowedQueryParameters });\n }\n\n public sendRequest(request: WebResourceLike): Promise {\n if (!this.logger.enabled) return this._nextPolicy.sendRequest(request);\n\n this.logRequest(request);\n return this._nextPolicy.sendRequest(request).then((response) => this.logResponse(response));\n }\n\n private logRequest(request: WebResourceLike): void {\n this.logger(`Request: ${this.sanitizer.sanitize(request)}`);\n }\n\n private logResponse(response: HttpOperationResponse): HttpOperationResponse {\n this.logger(`Response status code: ${response.status}`);\n this.logger(`Headers: ${this.sanitizer.sanitize(response.headers)}`);\n return response;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n// In browser, during webpack or browserify bundling, this module will be replaced by 'events'\n// https://github.com/Gozala/events\nimport { EventEmitter } from \"events\";\n\n/**\n * Operation is an async function to be executed and managed by Batch.\n */\nexport declare type Operation = () => Promise;\n\n/**\n * States for Batch.\n */\nenum BatchStates {\n Good,\n Error,\n}\n\n/**\n * Batch provides basic parallel execution with concurrency limits.\n * Will stop execute left operations when one of the executed operation throws an error.\n * But Batch cannot cancel ongoing operations, you need to cancel them by yourself.\n */\nexport class Batch {\n /**\n * Concurrency. Must be lager than 0.\n */\n private concurrency: number;\n\n /**\n * Number of active operations under execution.\n */\n private actives: number = 0;\n\n /**\n * Number of completed operations under execution.\n */\n private completed: number = 0;\n\n /**\n * Offset of next operation to be executed.\n */\n private offset: number = 0;\n\n /**\n * Operation array to be executed.\n */\n private operations: Operation[] = [];\n\n /**\n * States of Batch. When an error happens, state will turn into error.\n * Batch will stop execute left operations.\n */\n private state: BatchStates = BatchStates.Good;\n\n /**\n * A private emitter used to pass events inside this class.\n */\n private emitter: EventEmitter;\n\n /**\n * Creates an instance of Batch.\n * @param concurrency -\n */\n public constructor(concurrency: number = 5) {\n if (concurrency < 1) {\n throw new RangeError(\"concurrency must be larger than 0\");\n }\n this.concurrency = concurrency;\n this.emitter = new EventEmitter();\n }\n\n /**\n * Add a operation into queue.\n *\n * @param operation -\n */\n public addOperation(operation: Operation): void {\n this.operations.push(async () => {\n try {\n this.actives++;\n await operation();\n this.actives--;\n this.completed++;\n this.parallelExecute();\n } catch (error: any) {\n this.emitter.emit(\"error\", error);\n }\n });\n }\n\n /**\n * Start execute operations in the queue.\n *\n */\n public async do(): Promise {\n if (this.operations.length === 0) {\n return Promise.resolve();\n }\n\n this.parallelExecute();\n\n return new Promise((resolve, reject) => {\n this.emitter.on(\"finish\", resolve);\n\n this.emitter.on(\"error\", (error) => {\n this.state = BatchStates.Error;\n reject(error);\n });\n });\n }\n\n /**\n * Get next operation to be executed. Return null when reaching ends.\n *\n */\n private nextOperation(): Operation | null {\n if (this.offset < this.operations.length) {\n return this.operations[this.offset++];\n }\n return null;\n }\n\n /**\n * Start execute operations. One one the most important difference between\n * this method with do() is that do() wraps as an sync method.\n *\n */\n private parallelExecute(): void {\n if (this.state === BatchStates.Error) {\n return;\n }\n\n if (this.completed >= this.operations.length) {\n this.emitter.emit(\"finish\");\n return;\n }\n\n while (this.actives < this.concurrency) {\n const operation = this.nextOperation();\n if (operation) {\n operation();\n } else {\n return;\n }\n }\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nenum MutexLockStatus {\n LOCKED,\n UNLOCKED,\n}\n\ntype Callback = (...args: any[]) => any;\n\n/**\n * An async mutex lock.\n */\nexport class Mutex {\n /**\n * Lock for a specific key. If the lock has been acquired by another customer, then\n * will wait until getting the lock.\n *\n * @param key - lock key\n */\n public static async lock(key: string): Promise {\n return new Promise((resolve) => {\n if (this.keys[key] === undefined || this.keys[key] === MutexLockStatus.UNLOCKED) {\n this.keys[key] = MutexLockStatus.LOCKED;\n resolve();\n } else {\n this.onUnlockEvent(key, () => {\n this.keys[key] = MutexLockStatus.LOCKED;\n resolve();\n });\n }\n });\n }\n\n /**\n * Unlock a key.\n *\n * @param key -\n */\n public static async unlock(key: string): Promise {\n return new Promise((resolve) => {\n if (this.keys[key] === MutexLockStatus.LOCKED) {\n this.emitUnlockEvent(key);\n }\n delete this.keys[key];\n resolve();\n });\n }\n\n private static keys: { [key: string]: MutexLockStatus } = {};\n private static listeners: { [key: string]: Callback[] } = {};\n\n private static onUnlockEvent(key: string, handler: Callback) {\n if (this.listeners[key] === undefined) {\n this.listeners[key] = [handler];\n } else {\n this.listeners[key].push(handler);\n }\n }\n\n private static emitUnlockEvent(key: string) {\n if (this.listeners[key] !== undefined && this.listeners[key].length > 0) {\n const handler = this.listeners[key].shift();\n setImmediate(() => {\n handler!.call(this);\n });\n }\n }\n}\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","const REACT_LIFECYCLE_EXCLUSIONS = [\n 'setState',\n 'render',\n 'componentWillMount',\n 'UNSAFE_componentWillMount',\n 'componentDidMount',\n 'componentWillReceiveProps',\n 'UNSAFE_componentWillReceiveProps',\n 'shouldComponentUpdate',\n 'componentWillUpdate',\n 'getSnapshotBeforeUpdate',\n 'UNSAFE_componentWillUpdate',\n 'componentDidUpdate',\n 'componentWillUnmount',\n];\n\n/**\n * Allows you to hoist methods, except those in an exclusion set from a source object into a destination object.\n *\n * @public\n * @param destination - The instance of the object to hoist the methods onto.\n * @param source - The instance of the object where the methods are hoisted from.\n * @param exclusions - (Optional) What methods to exclude from being hoisted.\n * @returns An array of names of methods that were hoisted.\n */\nexport function hoistMethods(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n destination: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n source: any,\n exclusions: string[] = REACT_LIFECYCLE_EXCLUSIONS,\n): string[] {\n let hoisted: string[] = [];\n for (let methodName in source) {\n if (\n typeof source[methodName] === 'function' &&\n destination[methodName] === undefined &&\n (!exclusions || exclusions.indexOf(methodName) === -1)\n ) {\n hoisted.push(methodName);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n destination[methodName] = function (...args: any[]): void {\n source[methodName](...args);\n };\n }\n }\n\n return hoisted;\n}\n\n/**\n * Provides a method for convenience to unhoist hoisted methods.\n *\n * @public\n * @param source - The source object upon which methods were hoisted.\n * @param methodNames - An array of method names to unhoist.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function unhoistMethods(source: any, methodNames: string[]): void {\n methodNames.forEach((methodName: string) => delete source[methodName]);\n}\n","import * as React from 'react';\nimport { hoistMethods, unhoistMethods } from '../../Utilities';\n\nexport class BaseDecorator extends React.Component {\n protected _composedComponentInstance: React.Component;\n\n private _hoisted: string[];\n\n constructor(props: TProps) {\n super(props);\n this._updateComposedComponentRef = this._updateComposedComponentRef.bind(this);\n }\n\n /**\n * Updates the ref to the component composed by the decorator, which will also take care of hoisting\n * (and unhoisting as appropriate) methods from said component.\n *\n * Pass this method as the argument to the 'ref' property of the composed component.\n */\n protected _updateComposedComponentRef(composedComponentInstance: React.Component): void {\n this._composedComponentInstance = composedComponentInstance;\n if (composedComponentInstance) {\n this._hoisted = hoistMethods(this, composedComponentInstance);\n } else if (this._hoisted) {\n unhoistMethods(this, this._hoisted);\n }\n }\n}\n","import * as React from 'react';\nimport { BaseDecorator } from './BaseDecorator';\nimport { getWindow, hoistStatics, EventGroup } from '../../Utilities';\nimport { WindowContext } from '../../WindowProvider';\n\n/**\n * @deprecated Decorator usage is deprecated. Either call `getResponsiveMode` manually, or\n * use the `useResponsiveMode` hook within a function component.\n */\nexport interface IWithResponsiveModeState {\n responsiveMode?: ResponsiveMode;\n}\n\nexport enum ResponsiveMode {\n /** Width \\<= 479px */\n small = 0,\n /** Width \\> 479px and \\<= 639px */\n medium = 1,\n /** Width \\> 639px and \\<= 1023px */\n large = 2,\n /** Width \\> 1023px and \\<= 1365px */\n xLarge = 3,\n /** Width \\> 1365px and \\<= 1919px */\n xxLarge = 4,\n /** Width \\> 1919px */\n xxxLarge = 5,\n unknown = 999,\n}\n\nconst RESPONSIVE_MAX_CONSTRAINT = [479, 639, 1023, 1365, 1919, 99999999];\n\n/**\n * User specified mode to default to, useful for server side rendering scenarios.\n */\nlet _defaultMode: ResponsiveMode | undefined;\n\n/**\n * Tracking the last mode we successfully rendered, which allows us to\n * paint initial renders with the correct size.\n */\nlet _lastMode: ResponsiveMode | undefined;\n\n/**\n * Allows a server rendered scenario to provide a **default** responsive mode.\n * This WILL NOT trigger any updates to components that have already consumed the responsive mode!\n */\nexport function setResponsiveMode(responsiveMode: ResponsiveMode | undefined): void {\n _defaultMode = responsiveMode;\n}\n\n/**\n * Initializes the responsive mode to the current window size. This can be used to avoid\n * a re-render during first component mount since the window would otherwise not be measured\n * until after mounting.\n *\n * This WILL NOT trigger any updates to components that have already consumed the responsive mode!\n */\nexport function initializeResponsiveMode(element?: HTMLElement): void {\n const currentWindow = getWindow(element);\n\n if (currentWindow) {\n getResponsiveMode(currentWindow);\n }\n}\n\nexport function getInitialResponsiveMode(): ResponsiveMode {\n return _defaultMode ?? _lastMode ?? ResponsiveMode.large;\n}\n\n/**\n * @deprecated Decorator usage is deprecated. Either call `getResponsiveMode` manually, or\n * use the `useResponsiveMode` hook within a function component.\n */\nexport function withResponsiveMode(\n ComposedComponent: new (props: TProps, ...args: any[]) => React.Component,\n): any {\n // eslint-disable-next-line deprecation/deprecation\n const resultClass = class WithResponsiveMode extends BaseDecorator {\n public static contextType = WindowContext;\n public context: React.ContextType;\n\n private _events: EventGroup;\n\n constructor(props: TProps) {\n super(props);\n this._events = new EventGroup(this);\n this._updateComposedComponentRef = this._updateComposedComponentRef.bind(this);\n\n this.state = {\n responsiveMode: getInitialResponsiveMode(),\n };\n }\n\n public componentDidMount(): void {\n this._events.on(this.context.window, 'resize', this._onResize);\n this._onResize();\n }\n\n public componentWillUnmount(): void {\n this._events.dispose();\n }\n\n public render(): JSX.Element | null {\n const { responsiveMode } = this.state;\n\n return responsiveMode === ResponsiveMode.unknown ? null : (\n \n );\n }\n\n private _onResize = () => {\n const responsiveMode = getResponsiveMode(this.context.window);\n\n if (responsiveMode !== this.state.responsiveMode) {\n this.setState({\n responsiveMode,\n });\n }\n };\n };\n return hoistStatics(ComposedComponent, resultClass);\n}\n\nfunction getWidthOfCurrentWindow(currentWindow: Window): number {\n try {\n return currentWindow.document.documentElement.clientWidth;\n } catch (e) {\n return currentWindow.innerWidth;\n }\n}\n\n/**\n * Hook to get the current responsive mode (window size category).\n * @param currentWindow - Use this window when determining the responsive mode.\n */\nexport function getResponsiveMode(currentWindow: Window | undefined): ResponsiveMode {\n let responsiveMode = ResponsiveMode.small;\n\n if (currentWindow) {\n try {\n while (getWidthOfCurrentWindow(currentWindow) > RESPONSIVE_MAX_CONSTRAINT[responsiveMode]) {\n responsiveMode++;\n }\n } catch (e) {\n // Return a best effort result in cases where we're in the browser but it throws on getting innerWidth.\n responsiveMode = getInitialResponsiveMode();\n }\n\n // Tracking last mode just gives us a better default in future renders,\n // which avoids starting with the wrong value if we've measured once.\n _lastMode = responsiveMode;\n } else {\n if (_defaultMode !== undefined) {\n responsiveMode = _defaultMode;\n } else {\n throw new Error(\n 'Content was rendered in a server environment without providing a default responsive mode. ' +\n 'Call setResponsiveMode to define what the responsive mode is.',\n );\n }\n }\n\n return responsiveMode;\n}\n","import { extractStyleParts } from './extractStyleParts';\nimport { IStyle, IStyleBaseArray } from './IStyle';\nimport { IStyleOptions } from './IStyleOptions';\nimport { getStyleOptions } from './StyleOptionsState';\nimport { styleToClassName } from './styleToClassName';\n\n/**\n * Concatenation helper, which can merge class names together. Skips over falsey values.\n *\n * @public\n */\nexport function mergeStyles(...args: (IStyle | IStyleBaseArray | false | null | undefined)[]): string {\n return mergeCss(args, getStyleOptions());\n}\n\n/**\n * Concatenation helper, which can merge class names together. Skips over falsey values.\n * Accepts a set of options that will be used when calculating styles.\n *\n * @public\n */\nexport function mergeCss(\n args: (IStyle | IStyleBaseArray | false | null | undefined) | (IStyle | IStyleBaseArray | false | null | undefined)[],\n options?: IStyleOptions,\n): string {\n const styleArgs = args instanceof Array ? args : [args];\n const { classes, objects } = extractStyleParts(styleArgs);\n\n if (objects.length) {\n classes.push(styleToClassName(options || {}, objects));\n }\n\n return classes.join(' ');\n}\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreHttp from \"@azure/core-http\";\nimport * as Mappers from \"../models/mappers\";\nimport * as Parameters from \"../models/parameters\";\nimport { StorageClientContext } from \"../storageClientContext\";\nimport {\n BlobDownloadOptionalParams,\n BlobDownloadResponse,\n BlobGetPropertiesOptionalParams,\n BlobGetPropertiesResponse,\n BlobDeleteOptionalParams,\n BlobDeleteResponse,\n BlobUndeleteOptionalParams,\n BlobUndeleteResponse,\n BlobExpiryOptions,\n BlobSetExpiryOptionalParams,\n BlobSetExpiryResponse,\n BlobSetHttpHeadersOptionalParams,\n BlobSetHttpHeadersResponse,\n BlobSetImmutabilityPolicyOptionalParams,\n BlobSetImmutabilityPolicyResponse,\n BlobDeleteImmutabilityPolicyOptionalParams,\n BlobDeleteImmutabilityPolicyResponse,\n BlobSetLegalHoldOptionalParams,\n BlobSetLegalHoldResponse,\n BlobSetMetadataOptionalParams,\n BlobSetMetadataResponse,\n BlobAcquireLeaseOptionalParams,\n BlobAcquireLeaseResponse,\n BlobReleaseLeaseOptionalParams,\n BlobReleaseLeaseResponse,\n BlobRenewLeaseOptionalParams,\n BlobRenewLeaseResponse,\n BlobChangeLeaseOptionalParams,\n BlobChangeLeaseResponse,\n BlobBreakLeaseOptionalParams,\n BlobBreakLeaseResponse,\n BlobCreateSnapshotOptionalParams,\n BlobCreateSnapshotResponse,\n BlobStartCopyFromURLOptionalParams,\n BlobStartCopyFromURLResponse,\n BlobCopyFromURLOptionalParams,\n BlobCopyFromURLResponse,\n BlobAbortCopyFromURLOptionalParams,\n BlobAbortCopyFromURLResponse,\n AccessTier,\n BlobSetTierOptionalParams,\n BlobSetTierResponse,\n BlobGetAccountInfoResponse,\n BlobQueryOptionalParams,\n BlobQueryResponse,\n BlobGetTagsOptionalParams,\n BlobGetTagsResponse,\n BlobSetTagsOptionalParams,\n BlobSetTagsResponse\n} from \"../models\";\n\n/** Class representing a Blob. */\nexport class Blob {\n private readonly client: StorageClientContext;\n\n /**\n * Initialize a new instance of the class Blob class.\n * @param client Reference to the service client\n */\n constructor(client: StorageClientContext) {\n this.client = client;\n }\n\n /**\n * The Download operation reads or downloads a blob from the system, including its metadata and\n * properties. You can also call Download to read a snapshot.\n * @param options The options parameters.\n */\n download(\n options?: BlobDownloadOptionalParams\n ): Promise {\n const operationArguments: coreHttp.OperationArguments = {\n options: coreHttp.operationOptionsToRequestOptionsBase(options || {})\n };\n return this.client.sendOperationRequest(\n operationArguments,\n downloadOperationSpec\n ) as Promise;\n }\n\n /**\n * The Get Properties operation returns all user-defined metadata, standard HTTP properties, and system\n * properties for the blob. It does not return the content of the blob.\n * @param options The options parameters.\n */\n getProperties(\n options?: BlobGetPropertiesOptionalParams\n ): Promise {\n const operationArguments: coreHttp.OperationArguments = {\n options: coreHttp.operationOptionsToRequestOptionsBase(options || {})\n };\n return this.client.sendOperationRequest(\n operationArguments,\n getPropertiesOperationSpec\n ) as Promise;\n }\n\n /**\n * If the storage account's soft delete feature is disabled then, when a blob is deleted, it is\n * permanently removed from the storage account. If the storage account's soft delete feature is\n * enabled, then, when a blob is deleted, it is marked for deletion and becomes inaccessible\n * immediately. However, the blob service retains the blob or snapshot for the number of days specified\n * by the DeleteRetentionPolicy section of [Storage service properties]\n * (Set-Blob-Service-Properties.md). After the specified number of days has passed, the blob's data is\n * permanently removed from the storage account. Note that you continue to be charged for the\n * soft-deleted blob's storage until it is permanently removed. Use the List Blobs API and specify the\n * \"include=deleted\" query parameter to discover which blobs and snapshots have been soft deleted. You\n * can then use the Undelete Blob API to restore a soft-deleted blob. All other operations on a\n * soft-deleted blob or snapshot causes the service to return an HTTP status code of 404\n * (ResourceNotFound).\n * @param options The options parameters.\n */\n delete(options?: BlobDeleteOptionalParams): Promise {\n const operationArguments: coreHttp.OperationArguments = {\n options: coreHttp.operationOptionsToRequestOptionsBase(options || {})\n };\n return this.client.sendOperationRequest(\n operationArguments,\n deleteOperationSpec\n ) as Promise;\n }\n\n /**\n * Undelete a blob that was previously soft deleted\n * @param options The options parameters.\n */\n undelete(\n options?: BlobUndeleteOptionalParams\n ): Promise {\n const operationArguments: coreHttp.OperationArguments = {\n options: coreHttp.operationOptionsToRequestOptionsBase(options || {})\n };\n return this.client.sendOperationRequest(\n operationArguments,\n undeleteOperationSpec\n ) as Promise;\n }\n\n /**\n * Sets the time a blob will expire and be deleted.\n * @param expiryOptions Required. Indicates mode of the expiry time\n * @param options The options parameters.\n */\n setExpiry(\n expiryOptions: BlobExpiryOptions,\n options?: BlobSetExpiryOptionalParams\n ): Promise {\n const operationArguments: coreHttp.OperationArguments = {\n expiryOptions,\n options: coreHttp.operationOptionsToRequestOptionsBase(options || {})\n };\n return this.client.sendOperationRequest(\n operationArguments,\n setExpiryOperationSpec\n ) as Promise;\n }\n\n /**\n * The Set HTTP Headers operation sets system properties on the blob\n * @param options The options parameters.\n */\n setHttpHeaders(\n options?: BlobSetHttpHeadersOptionalParams\n ): Promise {\n const operationArguments: coreHttp.OperationArguments = {\n options: coreHttp.operationOptionsToRequestOptionsBase(options || {})\n };\n return this.client.sendOperationRequest(\n operationArguments,\n setHttpHeadersOperationSpec\n ) as Promise;\n }\n\n /**\n * The Set Immutability Policy operation sets the immutability policy on the blob\n * @param options The options parameters.\n */\n setImmutabilityPolicy(\n options?: BlobSetImmutabilityPolicyOptionalParams\n ): Promise {\n const operationArguments: coreHttp.OperationArguments = {\n options: coreHttp.operationOptionsToRequestOptionsBase(options || {})\n };\n return this.client.sendOperationRequest(\n operationArguments,\n setImmutabilityPolicyOperationSpec\n ) as Promise;\n }\n\n /**\n * The Delete Immutability Policy operation deletes the immutability policy on the blob\n * @param options The options parameters.\n */\n deleteImmutabilityPolicy(\n options?: BlobDeleteImmutabilityPolicyOptionalParams\n ): Promise {\n const operationArguments: coreHttp.OperationArguments = {\n options: coreHttp.operationOptionsToRequestOptionsBase(options || {})\n };\n return this.client.sendOperationRequest(\n operationArguments,\n deleteImmutabilityPolicyOperationSpec\n ) as Promise;\n }\n\n /**\n * The Set Legal Hold operation sets a legal hold on the blob.\n * @param legalHold Specified if a legal hold should be set on the blob.\n * @param options The options parameters.\n */\n setLegalHold(\n legalHold: boolean,\n options?: BlobSetLegalHoldOptionalParams\n ): Promise {\n const operationArguments: coreHttp.OperationArguments = {\n legalHold,\n options: coreHttp.operationOptionsToRequestOptionsBase(options || {})\n };\n return this.client.sendOperationRequest(\n operationArguments,\n setLegalHoldOperationSpec\n ) as Promise;\n }\n\n /**\n * The Set Blob Metadata operation sets user-defined metadata for the specified blob as one or more\n * name-value pairs\n * @param options The options parameters.\n */\n setMetadata(\n options?: BlobSetMetadataOptionalParams\n ): Promise {\n const operationArguments: coreHttp.OperationArguments = {\n options: coreHttp.operationOptionsToRequestOptionsBase(options || {})\n };\n return this.client.sendOperationRequest(\n operationArguments,\n setMetadataOperationSpec\n ) as Promise;\n }\n\n /**\n * [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete\n * operations\n * @param options The options parameters.\n */\n acquireLease(\n options?: BlobAcquireLeaseOptionalParams\n ): Promise {\n const operationArguments: coreHttp.OperationArguments = {\n options: coreHttp.operationOptionsToRequestOptionsBase(options || {})\n };\n return this.client.sendOperationRequest(\n operationArguments,\n acquireLeaseOperationSpec\n ) as Promise;\n }\n\n /**\n * [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete\n * operations\n * @param leaseId Specifies the current lease ID on the resource.\n * @param options The options parameters.\n */\n releaseLease(\n leaseId: string,\n options?: BlobReleaseLeaseOptionalParams\n ): Promise {\n const operationArguments: coreHttp.OperationArguments = {\n leaseId,\n options: coreHttp.operationOptionsToRequestOptionsBase(options || {})\n };\n return this.client.sendOperationRequest(\n operationArguments,\n releaseLeaseOperationSpec\n ) as Promise;\n }\n\n /**\n * [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete\n * operations\n * @param leaseId Specifies the current lease ID on the resource.\n * @param options The options parameters.\n */\n renewLease(\n leaseId: string,\n options?: BlobRenewLeaseOptionalParams\n ): Promise {\n const operationArguments: coreHttp.OperationArguments = {\n leaseId,\n options: coreHttp.operationOptionsToRequestOptionsBase(options || {})\n };\n return this.client.sendOperationRequest(\n operationArguments,\n renewLeaseOperationSpec\n ) as Promise;\n }\n\n /**\n * [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete\n * operations\n * @param leaseId Specifies the current lease ID on the resource.\n * @param proposedLeaseId Proposed lease ID, in a GUID string format. The Blob service returns 400\n * (Invalid request) if the proposed lease ID is not in the correct format. See Guid Constructor\n * (String) for a list of valid GUID string formats.\n * @param options The options parameters.\n */\n changeLease(\n leaseId: string,\n proposedLeaseId: string,\n options?: BlobChangeLeaseOptionalParams\n ): Promise {\n const operationArguments: coreHttp.OperationArguments = {\n leaseId,\n proposedLeaseId,\n options: coreHttp.operationOptionsToRequestOptionsBase(options || {})\n };\n return this.client.sendOperationRequest(\n operationArguments,\n changeLeaseOperationSpec\n ) as Promise;\n }\n\n /**\n * [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete\n * operations\n * @param options The options parameters.\n */\n breakLease(\n options?: BlobBreakLeaseOptionalParams\n ): Promise {\n const operationArguments: coreHttp.OperationArguments = {\n options: coreHttp.operationOptionsToRequestOptionsBase(options || {})\n };\n return this.client.sendOperationRequest(\n operationArguments,\n breakLeaseOperationSpec\n ) as Promise;\n }\n\n /**\n * The Create Snapshot operation creates a read-only snapshot of a blob\n * @param options The options parameters.\n */\n createSnapshot(\n options?: BlobCreateSnapshotOptionalParams\n ): Promise {\n const operationArguments: coreHttp.OperationArguments = {\n options: coreHttp.operationOptionsToRequestOptionsBase(options || {})\n };\n return this.client.sendOperationRequest(\n operationArguments,\n createSnapshotOperationSpec\n ) as Promise;\n }\n\n /**\n * The Start Copy From URL operation copies a blob or an internet resource to a new blob.\n * @param copySource Specifies the name of the source page blob snapshot. This value is a URL of up to\n * 2 KB in length that specifies a page blob snapshot. The value should be URL-encoded as it would\n * appear in a request URI. The source blob must either be public or must be authenticated via a shared\n * access signature.\n * @param options The options parameters.\n */\n startCopyFromURL(\n copySource: string,\n options?: BlobStartCopyFromURLOptionalParams\n ): Promise {\n const operationArguments: coreHttp.OperationArguments = {\n copySource,\n options: coreHttp.operationOptionsToRequestOptionsBase(options || {})\n };\n return this.client.sendOperationRequest(\n operationArguments,\n startCopyFromURLOperationSpec\n ) as Promise;\n }\n\n /**\n * The Copy From URL operation copies a blob or an internet resource to a new blob. It will not return\n * a response until the copy is complete.\n * @param copySource Specifies the name of the source page blob snapshot. This value is a URL of up to\n * 2 KB in length that specifies a page blob snapshot. The value should be URL-encoded as it would\n * appear in a request URI. The source blob must either be public or must be authenticated via a shared\n * access signature.\n * @param options The options parameters.\n */\n copyFromURL(\n copySource: string,\n options?: BlobCopyFromURLOptionalParams\n ): Promise {\n const operationArguments: coreHttp.OperationArguments = {\n copySource,\n options: coreHttp.operationOptionsToRequestOptionsBase(options || {})\n };\n return this.client.sendOperationRequest(\n operationArguments,\n copyFromURLOperationSpec\n ) as Promise;\n }\n\n /**\n * The Abort Copy From URL operation aborts a pending Copy From URL operation, and leaves a destination\n * blob with zero length and full metadata.\n * @param copyId The copy identifier provided in the x-ms-copy-id header of the original Copy Blob\n * operation.\n * @param options The options parameters.\n */\n abortCopyFromURL(\n copyId: string,\n options?: BlobAbortCopyFromURLOptionalParams\n ): Promise {\n const operationArguments: coreHttp.OperationArguments = {\n copyId,\n options: coreHttp.operationOptionsToRequestOptionsBase(options || {})\n };\n return this.client.sendOperationRequest(\n operationArguments,\n abortCopyFromURLOperationSpec\n ) as Promise;\n }\n\n /**\n * The Set Tier operation sets the tier on a blob. The operation is allowed on a page blob in a premium\n * storage account and on a block blob in a blob storage account (locally redundant storage only). A\n * premium page blob's tier determines the allowed size, IOPS, and bandwidth of the blob. A block\n * blob's tier determines Hot/Cool/Archive storage type. This operation does not update the blob's\n * ETag.\n * @param tier Indicates the tier to be set on the blob.\n * @param options The options parameters.\n */\n setTier(\n tier: AccessTier,\n options?: BlobSetTierOptionalParams\n ): Promise {\n const operationArguments: coreHttp.OperationArguments = {\n tier,\n options: coreHttp.operationOptionsToRequestOptionsBase(options || {})\n };\n return this.client.sendOperationRequest(\n operationArguments,\n setTierOperationSpec\n ) as Promise;\n }\n\n /**\n * Returns the sku name and account kind\n * @param options The options parameters.\n */\n getAccountInfo(\n options?: coreHttp.OperationOptions\n ): Promise {\n const operationArguments: coreHttp.OperationArguments = {\n options: coreHttp.operationOptionsToRequestOptionsBase(options || {})\n };\n return this.client.sendOperationRequest(\n operationArguments,\n getAccountInfoOperationSpec\n ) as Promise;\n }\n\n /**\n * The Query operation enables users to select/project on blob data by providing simple query\n * expressions.\n * @param options The options parameters.\n */\n query(options?: BlobQueryOptionalParams): Promise {\n const operationArguments: coreHttp.OperationArguments = {\n options: coreHttp.operationOptionsToRequestOptionsBase(options || {})\n };\n return this.client.sendOperationRequest(\n operationArguments,\n queryOperationSpec\n ) as Promise;\n }\n\n /**\n * The Get Tags operation enables users to get the tags associated with a blob.\n * @param options The options parameters.\n */\n getTags(options?: BlobGetTagsOptionalParams): Promise {\n const operationArguments: coreHttp.OperationArguments = {\n options: coreHttp.operationOptionsToRequestOptionsBase(options || {})\n };\n return this.client.sendOperationRequest(\n operationArguments,\n getTagsOperationSpec\n ) as Promise;\n }\n\n /**\n * The Set Tags operation enables users to set tags on a blob.\n * @param options The options parameters.\n */\n setTags(options?: BlobSetTagsOptionalParams): Promise {\n const operationArguments: coreHttp.OperationArguments = {\n options: coreHttp.operationOptionsToRequestOptionsBase(options || {})\n };\n return this.client.sendOperationRequest(\n operationArguments,\n setTagsOperationSpec\n ) as Promise;\n }\n}\n// Operation Specifications\nconst xmlSerializer = new coreHttp.Serializer(Mappers, /* isXml */ true);\n\nconst downloadOperationSpec: coreHttp.OperationSpec = {\n path: \"/{containerName}/{blob}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: {\n type: { name: \"Stream\" },\n serializedName: \"parsedResponse\"\n },\n headersMapper: Mappers.BlobDownloadHeaders\n },\n 206: {\n bodyMapper: {\n type: { name: \"Stream\" },\n serializedName: \"parsedResponse\"\n },\n headersMapper: Mappers.BlobDownloadHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobDownloadExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.snapshot,\n Parameters.versionId\n ],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1,\n Parameters.leaseId,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.range,\n Parameters.rangeGetContentMD5,\n Parameters.rangeGetContentCRC64,\n Parameters.encryptionKey,\n Parameters.encryptionKeySha256,\n Parameters.encryptionAlgorithm,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.ifTags\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst getPropertiesOperationSpec: coreHttp.OperationSpec = {\n path: \"/{containerName}/{blob}\",\n httpMethod: \"HEAD\",\n responses: {\n 200: {\n headersMapper: Mappers.BlobGetPropertiesHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobGetPropertiesExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.snapshot,\n Parameters.versionId\n ],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1,\n Parameters.leaseId,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.encryptionKey,\n Parameters.encryptionKeySha256,\n Parameters.encryptionAlgorithm,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.ifTags\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst deleteOperationSpec: coreHttp.OperationSpec = {\n path: \"/{containerName}/{blob}\",\n httpMethod: \"DELETE\",\n responses: {\n 202: {\n headersMapper: Mappers.BlobDeleteHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobDeleteExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.snapshot,\n Parameters.versionId,\n Parameters.blobDeleteType\n ],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1,\n Parameters.leaseId,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.ifTags,\n Parameters.deleteSnapshots\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst undeleteOperationSpec: coreHttp.OperationSpec = {\n path: \"/{containerName}/{blob}\",\n httpMethod: \"PUT\",\n responses: {\n 200: {\n headersMapper: Mappers.BlobUndeleteHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobUndeleteExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeoutInSeconds, Parameters.comp8],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst setExpiryOperationSpec: coreHttp.OperationSpec = {\n path: \"/{containerName}/{blob}\",\n httpMethod: \"PUT\",\n responses: {\n 200: {\n headersMapper: Mappers.BlobSetExpiryHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobSetExpiryExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeoutInSeconds, Parameters.comp11],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1,\n Parameters.expiryOptions,\n Parameters.expiresOn\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst setHttpHeadersOperationSpec: coreHttp.OperationSpec = {\n path: \"/{containerName}/{blob}\",\n httpMethod: \"PUT\",\n responses: {\n 200: {\n headersMapper: Mappers.BlobSetHttpHeadersHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobSetHttpHeadersExceptionHeaders\n }\n },\n queryParameters: [Parameters.comp, Parameters.timeoutInSeconds],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1,\n Parameters.leaseId,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.ifTags,\n Parameters.blobCacheControl,\n Parameters.blobContentType,\n Parameters.blobContentMD5,\n Parameters.blobContentEncoding,\n Parameters.blobContentLanguage,\n Parameters.blobContentDisposition\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst setImmutabilityPolicyOperationSpec: coreHttp.OperationSpec = {\n path: \"/{containerName}/{blob}\",\n httpMethod: \"PUT\",\n responses: {\n 200: {\n headersMapper: Mappers.BlobSetImmutabilityPolicyHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobSetImmutabilityPolicyExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeoutInSeconds, Parameters.comp12],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1,\n Parameters.ifUnmodifiedSince,\n Parameters.immutabilityPolicyExpiry,\n Parameters.immutabilityPolicyMode\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst deleteImmutabilityPolicyOperationSpec: coreHttp.OperationSpec = {\n path: \"/{containerName}/{blob}\",\n httpMethod: \"DELETE\",\n responses: {\n 200: {\n headersMapper: Mappers.BlobDeleteImmutabilityPolicyHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobDeleteImmutabilityPolicyExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeoutInSeconds, Parameters.comp12],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst setLegalHoldOperationSpec: coreHttp.OperationSpec = {\n path: \"/{containerName}/{blob}\",\n httpMethod: \"PUT\",\n responses: {\n 200: {\n headersMapper: Mappers.BlobSetLegalHoldHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobSetLegalHoldExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeoutInSeconds, Parameters.comp13],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1,\n Parameters.legalHold\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst setMetadataOperationSpec: coreHttp.OperationSpec = {\n path: \"/{containerName}/{blob}\",\n httpMethod: \"PUT\",\n responses: {\n 200: {\n headersMapper: Mappers.BlobSetMetadataHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobSetMetadataExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeoutInSeconds, Parameters.comp6],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1,\n Parameters.metadata,\n Parameters.leaseId,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.encryptionKey,\n Parameters.encryptionKeySha256,\n Parameters.encryptionAlgorithm,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.ifTags,\n Parameters.encryptionScope\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst acquireLeaseOperationSpec: coreHttp.OperationSpec = {\n path: \"/{containerName}/{blob}\",\n httpMethod: \"PUT\",\n responses: {\n 201: {\n headersMapper: Mappers.BlobAcquireLeaseHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobAcquireLeaseExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeoutInSeconds, Parameters.comp10],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.action,\n Parameters.duration,\n Parameters.proposedLeaseId,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.ifTags\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst releaseLeaseOperationSpec: coreHttp.OperationSpec = {\n path: \"/{containerName}/{blob}\",\n httpMethod: \"PUT\",\n responses: {\n 200: {\n headersMapper: Mappers.BlobReleaseLeaseHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobReleaseLeaseExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeoutInSeconds, Parameters.comp10],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.action1,\n Parameters.leaseId1,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.ifTags\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst renewLeaseOperationSpec: coreHttp.OperationSpec = {\n path: \"/{containerName}/{blob}\",\n httpMethod: \"PUT\",\n responses: {\n 200: {\n headersMapper: Mappers.BlobRenewLeaseHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobRenewLeaseExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeoutInSeconds, Parameters.comp10],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.leaseId1,\n Parameters.action2,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.ifTags\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst changeLeaseOperationSpec: coreHttp.OperationSpec = {\n path: \"/{containerName}/{blob}\",\n httpMethod: \"PUT\",\n responses: {\n 200: {\n headersMapper: Mappers.BlobChangeLeaseHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobChangeLeaseExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeoutInSeconds, Parameters.comp10],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.leaseId1,\n Parameters.action4,\n Parameters.proposedLeaseId1,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.ifTags\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst breakLeaseOperationSpec: coreHttp.OperationSpec = {\n path: \"/{containerName}/{blob}\",\n httpMethod: \"PUT\",\n responses: {\n 202: {\n headersMapper: Mappers.BlobBreakLeaseHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobBreakLeaseExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeoutInSeconds, Parameters.comp10],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.action3,\n Parameters.breakPeriod,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.ifTags\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst createSnapshotOperationSpec: coreHttp.OperationSpec = {\n path: \"/{containerName}/{blob}\",\n httpMethod: \"PUT\",\n responses: {\n 201: {\n headersMapper: Mappers.BlobCreateSnapshotHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobCreateSnapshotExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeoutInSeconds, Parameters.comp14],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1,\n Parameters.metadata,\n Parameters.leaseId,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.encryptionKey,\n Parameters.encryptionKeySha256,\n Parameters.encryptionAlgorithm,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.ifTags,\n Parameters.encryptionScope\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst startCopyFromURLOperationSpec: coreHttp.OperationSpec = {\n path: \"/{containerName}/{blob}\",\n httpMethod: \"PUT\",\n responses: {\n 202: {\n headersMapper: Mappers.BlobStartCopyFromURLHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobStartCopyFromURLExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeoutInSeconds],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1,\n Parameters.metadata,\n Parameters.leaseId,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.ifTags,\n Parameters.immutabilityPolicyExpiry,\n Parameters.immutabilityPolicyMode,\n Parameters.tier,\n Parameters.rehydratePriority,\n Parameters.sourceIfModifiedSince,\n Parameters.sourceIfUnmodifiedSince,\n Parameters.sourceIfMatch,\n Parameters.sourceIfNoneMatch,\n Parameters.sourceIfTags,\n Parameters.copySource,\n Parameters.blobTagsString,\n Parameters.sealBlob,\n Parameters.legalHold1\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst copyFromURLOperationSpec: coreHttp.OperationSpec = {\n path: \"/{containerName}/{blob}\",\n httpMethod: \"PUT\",\n responses: {\n 202: {\n headersMapper: Mappers.BlobCopyFromURLHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobCopyFromURLExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeoutInSeconds],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1,\n Parameters.metadata,\n Parameters.leaseId,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.ifTags,\n Parameters.immutabilityPolicyExpiry,\n Parameters.immutabilityPolicyMode,\n Parameters.encryptionScope,\n Parameters.tier,\n Parameters.sourceIfModifiedSince,\n Parameters.sourceIfUnmodifiedSince,\n Parameters.sourceIfMatch,\n Parameters.sourceIfNoneMatch,\n Parameters.copySource,\n Parameters.blobTagsString,\n Parameters.legalHold1,\n Parameters.xMsRequiresSync,\n Parameters.sourceContentMD5,\n Parameters.copySourceAuthorization,\n Parameters.copySourceTags\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst abortCopyFromURLOperationSpec: coreHttp.OperationSpec = {\n path: \"/{containerName}/{blob}\",\n httpMethod: \"PUT\",\n responses: {\n 204: {\n headersMapper: Mappers.BlobAbortCopyFromURLHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobAbortCopyFromURLExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.comp15,\n Parameters.copyId\n ],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1,\n Parameters.leaseId,\n Parameters.copyActionAbortConstant\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst setTierOperationSpec: coreHttp.OperationSpec = {\n path: \"/{containerName}/{blob}\",\n httpMethod: \"PUT\",\n responses: {\n 200: {\n headersMapper: Mappers.BlobSetTierHeaders\n },\n 202: {\n headersMapper: Mappers.BlobSetTierHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobSetTierExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.snapshot,\n Parameters.versionId,\n Parameters.comp16\n ],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1,\n Parameters.leaseId,\n Parameters.ifTags,\n Parameters.rehydratePriority,\n Parameters.tier1\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst getAccountInfoOperationSpec: coreHttp.OperationSpec = {\n path: \"/{containerName}/{blob}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n headersMapper: Mappers.BlobGetAccountInfoHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobGetAccountInfoExceptionHeaders\n }\n },\n queryParameters: [Parameters.comp, Parameters.restype1],\n urlParameters: [Parameters.url],\n headerParameters: [Parameters.version, Parameters.accept1],\n isXML: true,\n serializer: xmlSerializer\n};\nconst queryOperationSpec: coreHttp.OperationSpec = {\n path: \"/{containerName}/{blob}\",\n httpMethod: \"POST\",\n responses: {\n 200: {\n bodyMapper: {\n type: { name: \"Stream\" },\n serializedName: \"parsedResponse\"\n },\n headersMapper: Mappers.BlobQueryHeaders\n },\n 206: {\n bodyMapper: {\n type: { name: \"Stream\" },\n serializedName: \"parsedResponse\"\n },\n headersMapper: Mappers.BlobQueryHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobQueryExceptionHeaders\n }\n },\n requestBody: Parameters.queryRequest,\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.snapshot,\n Parameters.comp17\n ],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.contentType,\n Parameters.accept,\n Parameters.version,\n Parameters.requestId,\n Parameters.leaseId,\n Parameters.ifModifiedSince,\n Parameters.ifUnmodifiedSince,\n Parameters.encryptionKey,\n Parameters.encryptionKeySha256,\n Parameters.encryptionAlgorithm,\n Parameters.ifMatch,\n Parameters.ifNoneMatch,\n Parameters.ifTags\n ],\n isXML: true,\n contentType: \"application/xml; charset=utf-8\",\n mediaType: \"xml\",\n serializer: xmlSerializer\n};\nconst getTagsOperationSpec: coreHttp.OperationSpec = {\n path: \"/{containerName}/{blob}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.BlobTags,\n headersMapper: Mappers.BlobGetTagsHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobGetTagsExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.snapshot,\n Parameters.versionId,\n Parameters.comp18\n ],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1,\n Parameters.leaseId,\n Parameters.ifTags\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst setTagsOperationSpec: coreHttp.OperationSpec = {\n path: \"/{containerName}/{blob}\",\n httpMethod: \"PUT\",\n responses: {\n 204: {\n headersMapper: Mappers.BlobSetTagsHeaders\n },\n default: {\n bodyMapper: Mappers.StorageError,\n headersMapper: Mappers.BlobSetTagsExceptionHeaders\n }\n },\n requestBody: Parameters.tags,\n queryParameters: [\n Parameters.timeoutInSeconds,\n Parameters.versionId,\n Parameters.comp18\n ],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.contentType,\n Parameters.accept,\n Parameters.version,\n Parameters.requestId,\n Parameters.leaseId,\n Parameters.ifTags,\n Parameters.transactionalContentMD5,\n Parameters.transactionalContentCrc64\n ],\n isXML: true,\n contentType: \"application/xml; charset=utf-8\",\n mediaType: \"xml\",\n serializer: xmlSerializer\n};\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar transitionalDefaults = require('../defaults/transitional');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","module.exports = {\n \"version\": \"0.26.1\"\n};","import { ItEventType, ComponentType } from '../utils/Enum';\r\n\r\nexport class BusinessProcessEvent {\r\n\r\n private businessProcessName: string;\r\n private eventName: string;\r\n private targetEntityKey: string;\r\n private actionUri: string;\r\n private appAction: string;\r\n private eventType: ItEventType;\r\n private componentType: ComponentType;\r\n private xcv: string;\r\n private userRoleName: string;\r\n private startDateTime: Date;\r\n private endDateTime: Date;\r\n\r\n private senderId: string;\r\n private receiverId: string;\r\n private messageId: string;\r\n private eventOccurenceTime: Date;\r\n\r\n private templateType: string;\r\n\r\n constructor(businessProcessName: string, componentType: ComponentType)\r\n constructor(businessProcessName: string, componentType: ComponentType, startDateTime: Date, endDateTime: Date)\r\n constructor(businessProcessName: string, componentType: ComponentType, startDateTime: Date, endDateTime: Date, templateType: string)\r\n constructor(businessProcessName: string, componentType: ComponentType, startDateTime?: Date, endDateTime?: Date, templateType?: string) {\r\n this.BusinessProcessName = businessProcessName;\r\n this.eventName = businessProcessName;\r\n this.ComponentType = componentType;\r\n this.startDateTime = startDateTime;\r\n this.endDateTime = endDateTime;\r\n if (typeof this.templateType != 'undefined') {\r\n this.templateType = templateType;\r\n }\r\n else {\r\n this.templateType = \"Internal.BusinessProcessEvent\";\r\n }\r\n }\r\n\r\n public get BusinessProcessName(): string {\r\n return this.businessProcessName;\r\n }\r\n\r\n public set BusinessProcessName(value: string) {\r\n this.businessProcessName = value;\r\n }\r\n\r\n public get TargetEntityKey(): string {\r\n return this.targetEntityKey;\r\n }\r\n\r\n public set TargetEntityKey(value: string) {\r\n this.targetEntityKey = value;\r\n }\r\n\r\n public get ActionUri(): string {\r\n return this.actionUri;\r\n }\r\n\r\n public set ActionUri(value: string) {\r\n this.actionUri = value;\r\n }\r\n\r\n public get AppAction(): string {\r\n return this.appAction;\r\n }\r\n\r\n public set AppAction(value: string) {\r\n this.appAction = value;\r\n }\r\n\r\n public get EventType(): ItEventType {\r\n return this.eventType;\r\n }\r\n\r\n public set EventType(value: ItEventType) {\r\n this.eventType = value;\r\n }\r\n\r\n public get TemplateType(): string {\r\n return \"Internal.BusinessProcessEvent\";\r\n }\r\n\r\n public get ComponentType(): ComponentType {\r\n return this.componentType;\r\n }\r\n\r\n public set ComponentType(value: ComponentType) {\r\n this.componentType = value;\r\n }\r\n\r\n public get Xcv(): string {\r\n return this.xcv;\r\n }\r\n\r\n public set Xcv(value: string) {\r\n this.xcv = value;\r\n }\r\n\r\n public get UserRoleName(): string {\r\n return this.userRoleName;\r\n }\r\n\r\n public set UserRoleName(value: string) {\r\n this.userRoleName = value;\r\n }\r\n\r\n public get StartDateTime(): Date {\r\n return this.startDateTime;\r\n }\r\n\r\n public set StartDateTime(value: Date) {\r\n this.startDateTime = value;\r\n }\r\n\r\n public get EndDateTime(): Date {\r\n return this.endDateTime;\r\n }\r\n\r\n public set EndDateTime(value: Date) {\r\n this.endDateTime = value;\r\n }\r\n\r\n public get EventName(): string {\r\n return this.eventName;\r\n }\r\n\r\n public set EventName(value: string) {\r\n this.eventName = value;\r\n }\r\n\r\n public get SenderId(): string {\r\n return this.senderId;\r\n }\r\n\r\n public set SenderId(value: string) {\r\n this.senderId = value;\r\n }\r\n\r\n public get ReceiverId(): string {\r\n return this.receiverId;\r\n }\r\n\r\n public set ReceiverId(value: string) {\r\n this.receiverId = value;\r\n }\r\n\r\n public get MessageId(): string {\r\n return this.messageId;\r\n }\r\n\r\n public set MessageId(value: string) {\r\n this.messageId = value;\r\n }\r\n\r\n public get EventOccurrenceTime(): Date {\r\n return this.eventOccurenceTime;\r\n }\r\n\r\n public set EventOccurrenceTime(value: Date) {\r\n this.eventOccurenceTime = value;\r\n }\r\n\r\n public IsValidEvent(isValid: boolean): boolean {\r\n if (!isValid) {\r\n if (!this.businessProcessName || 0 === this.businessProcessName.length) {\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n else {\r\n return ((typeof this.appAction != \"undefined\" && 0 !== this.appAction.length) && (typeof this.businessProcessName != \"undefined\" && 0 !== this.businessProcessName.length) && (typeof this.receiverId != \"undefined\" && 0 !== this.receiverId.length) && (typeof this.senderId != \"undefined\" && 0 !== this.senderId.length) && (typeof this.eventOccurenceTime != \"undefined\"));\r\n }\r\n }\r\n}\r\n","import IUsageAttributes from '../interfaces/IUsageAttributes';\r\nimport { IUsageAttributeHandler } from '../interfaces/IUsageAttributeHandler';\r\nimport { Guid, SessionManager,Logger } from '../utils/utils';\r\nimport { ConstantStrings, ValueNotAvailable } from '../utils/Constants';\r\n\r\nvar pageID:any;\r\nvar pageName:any;\r\n\r\n\r\nexport function getUsageErrorDetails(properties: any): Array{\r\n let errors: string[] = [];\r\n if(properties[\"FeatureName\"] === ValueNotAvailable){\r\n errors.push(ConstantStrings.UsageErrorKeys.FeatureNameIsMandatory);\r\n }\r\n if(properties[\"ActionType\"] === ValueNotAvailable){\r\n errors.push(ConstantStrings.UsageErrorKeys.ActionTypeIsMandatory);\r\n }\r\n if(properties[\"ActionName\"] === ValueNotAvailable){\r\n errors.push(ConstantStrings.UsageErrorKeys.ActionNameIsMandatory);\r\n }\r\n if(properties[\"usageSessionTrackingId\"] === ValueNotAvailable){\r\n errors.push(ConstantStrings.UsageErrorKeys.UsageSessionTrackingIdIsMandatory);\r\n }\r\n if(properties[\"usagePageTrackingId\"] === ValueNotAvailable){\r\n errors.push(ConstantStrings.UsageErrorKeys.UsagePageTrackingIdIsMandatory);\r\n }\r\n if(properties[\"XCV\"] === null || properties[\"XCV\"] === undefined){\r\n errors.push(ConstantStrings.UsageErrorKeys.CorrelationIdNotExists);\r\n }\r\n \r\n return errors;\r\n}\r\n\r\n\r\nclass UsageAttributeHandler implements IUsageAttributeHandler{\r\n attributes: IUsageAttributes;\r\n session: SessionManager;\r\n \r\n initialize() { \r\n Logger.log(\"Session instance created\");\r\n SessionManager.init();\r\n } \r\n \r\n getUsageAttributes(): IUsageAttributes {\r\n Logger.log(\"Fetching page information\");\r\n let locationPath = \"\";\r\n let page = \"\";\r\n try{\r\n if(window!=null){\r\n locationPath = window.location.pathname;//for web scenario the window exists and getting the page name from the URL path\r\n page = locationPath.substring(locationPath.lastIndexOf('/') + 1);\r\n }\r\n }\r\n catch(error){\r\n Logger.log(\"Exception occured while accesing the window, this might be case in mobile application: \"+error);\r\n }\r\n \r\n if (pageID === null|| pageID === undefined || pageName === null || pageName ===undefined) {\r\n pageID = Guid.create();\r\n pageName = page;\r\n }\r\n else if(pageName != page){\r\n pageID = Guid.create();\r\n pageName = page;\r\n }\r\n Logger.log(\"Creating the UsageProperties\");\r\n let usageProperties: IUsageAttributes = {\r\n UsageSessionId: SessionManager.getValidSessionId(),\r\n UsagePageName: pageName,\r\n UsagePageTrackingId: pageID,\r\n UsageErrorDetails:\"\"\r\n }\r\n return usageProperties; \r\n }\r\n \r\n setUsageAttibutes(attributes: IUsageAttributes) {\r\n this.attributes = attributes;\r\n }\r\n\r\n getUsageErrorMessage(properties: any){\r\n return getUsageErrorDetails(properties).join();\r\n }\r\n\r\n refreshSessionAttribute(){\r\n SessionManager.refreshSession();\r\n }\r\n}\r\n\r\nexport default UsageAttributeHandler;\r\n\r\n\r\n\r\n\r\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Updates to this file should also be replicated to @opentelemetry/api-metrics and\n// @opentelemetry/core too.\n\n/**\n * - globalThis (New standard)\n * - self (Will return the current window instance for supported browsers)\n * - window (fallback for older browser implementations)\n * - global (NodeJS implementation)\n * - (When all else fails)\n */\n\n/** only globals that common to node and browsers are allowed */\n// eslint-disable-next-line node/no-unsupported-features/es-builtins, no-undef\nexport const _globalThis: typeof globalThis =\n typeof globalThis === 'object' ? globalThis :\n typeof self === 'object' ? self :\n typeof window === 'object' ? window :\n typeof global === 'object' ? global :\n {} as typeof globalThis;\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nconst denyList = new Set([\n\t'ENOTFOUND',\n\t'ENETUNREACH',\n\n\t// SSL errors from https://github.com/nodejs/node/blob/fc8e3e2cdc521978351de257030db0076d79e0ab/src/crypto/crypto_common.cc#L301-L328\n\t'UNABLE_TO_GET_ISSUER_CERT',\n\t'UNABLE_TO_GET_CRL',\n\t'UNABLE_TO_DECRYPT_CERT_SIGNATURE',\n\t'UNABLE_TO_DECRYPT_CRL_SIGNATURE',\n\t'UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY',\n\t'CERT_SIGNATURE_FAILURE',\n\t'CRL_SIGNATURE_FAILURE',\n\t'CERT_NOT_YET_VALID',\n\t'CERT_HAS_EXPIRED',\n\t'CRL_NOT_YET_VALID',\n\t'CRL_HAS_EXPIRED',\n\t'ERROR_IN_CERT_NOT_BEFORE_FIELD',\n\t'ERROR_IN_CERT_NOT_AFTER_FIELD',\n\t'ERROR_IN_CRL_LAST_UPDATE_FIELD',\n\t'ERROR_IN_CRL_NEXT_UPDATE_FIELD',\n\t'OUT_OF_MEM',\n\t'DEPTH_ZERO_SELF_SIGNED_CERT',\n\t'SELF_SIGNED_CERT_IN_CHAIN',\n\t'UNABLE_TO_GET_ISSUER_CERT_LOCALLY',\n\t'UNABLE_TO_VERIFY_LEAF_SIGNATURE',\n\t'CERT_CHAIN_TOO_LONG',\n\t'CERT_REVOKED',\n\t'INVALID_CA',\n\t'PATH_LENGTH_EXCEEDED',\n\t'INVALID_PURPOSE',\n\t'CERT_UNTRUSTED',\n\t'CERT_REJECTED',\n\t'HOSTNAME_MISMATCH'\n]);\n\n// TODO: Use `error?.code` when targeting Node.js 14\nmodule.exports = error => !denyList.has(error && error.code);\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _DYN_ADD_NOTIFICATION_LIS1, _DYN_IS_ASYNC, _DYN_IS_CHILD_EVT, _DYN_LISTENERS, _DYN_PUSH, _DYN_REMOVE_NOTIFICATION_2, _DYN_SPLICE } from \"../__DynamicConstants\";\r\nimport { arrForEach, arrIndexOf } from \"./HelperFuncs\";\r\nimport { STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_EVENTS_SENT, STR_PERF_EVENT } from \"./InternalConstants\";\r\nfunction _runListeners(listeners, name, isAsync, callback) {\r\n arrForEach(listeners, function (listener) {\r\n if (listener && listener[name]) {\r\n if (isAsync) {\r\n setTimeout(function () { return callback(listener); }, 0);\r\n }\r\n else {\r\n try {\r\n callback(listener);\r\n }\r\n catch (e) {\r\n // Catch errors to ensure we don't block sending the requests\r\n }\r\n }\r\n }\r\n });\r\n}\r\n/**\r\n * Class to manage sending notifications to all the listeners.\r\n */\r\nvar NotificationManager = /** @class */ (function () {\r\n function NotificationManager(config) {\r\n this.listeners = [];\r\n var perfEvtsSendAll = !!(config || {}).perfEvtsSendAll;\r\n dynamicProto(NotificationManager, this, function (_self) {\r\n _self[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */] = function (listener) {\r\n _self.listeners[_DYN_PUSH /* @min:%2epush */](listener);\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param {INotificationListener} listener - AWTNotificationListener to remove.\r\n */\r\n _self[_DYN_REMOVE_NOTIFICATION_2 /* @min:%2eremoveNotificationListener */] = function (listener) {\r\n var index = arrIndexOf(_self[_DYN_LISTENERS /* @min:%2elisteners */], listener);\r\n while (index > -1) {\r\n _self.listeners[_DYN_SPLICE /* @min:%2esplice */](index, 1);\r\n index = arrIndexOf(_self[_DYN_LISTENERS /* @min:%2elisteners */], listener);\r\n }\r\n };\r\n /**\r\n * Notification for events sent.\r\n * @param {ITelemetryItem[]} events - The array of events that have been sent.\r\n */\r\n _self[STR_EVENTS_SENT /* @min:%2eeventsSent */] = function (events) {\r\n _runListeners(_self[_DYN_LISTENERS /* @min:%2elisteners */], STR_EVENTS_SENT, true, function (listener) {\r\n listener[STR_EVENTS_SENT /* @min:%2eeventsSent */](events);\r\n });\r\n };\r\n /**\r\n * Notification for events being discarded.\r\n * @param {ITelemetryItem[]} events - The array of events that have been discarded by the SDK.\r\n * @param {number} reason - The reason for which the SDK discarded the events. The EventsDiscardedReason\r\n * constant should be used to check the different values.\r\n */\r\n _self[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */] = function (events, reason) {\r\n _runListeners(_self[_DYN_LISTENERS /* @min:%2elisteners */], STR_EVENTS_DISCARDED, true, function (listener) {\r\n listener[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */](events, reason);\r\n });\r\n };\r\n /**\r\n * [Optional] A function called when the events have been requested to be sent to the sever.\r\n * @param {number} sendReason - The reason why the event batch is being sent.\r\n * @param {boolean} isAsync - A flag which identifies whether the requests are being sent in an async or sync manner.\r\n */\r\n _self[STR_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */] = function (sendReason, isAsync) {\r\n _runListeners(_self[_DYN_LISTENERS /* @min:%2elisteners */], STR_EVENTS_SEND_REQUEST, isAsync, function (listener) {\r\n listener[STR_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */](sendReason, isAsync);\r\n });\r\n };\r\n _self[STR_PERF_EVENT /* @min:%2eperfEvent */] = function (perfEvent) {\r\n if (perfEvent) {\r\n // Send all events or only parent events\r\n if (perfEvtsSendAll || !perfEvent[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */]()) {\r\n _runListeners(_self[_DYN_LISTENERS /* @min:%2elisteners */], STR_PERF_EVENT, false, function (listener) {\r\n if (perfEvent[_DYN_IS_ASYNC /* @min:%2eisAsync */]) {\r\n setTimeout(function () { return listener[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent); }, 0);\r\n }\r\n else {\r\n listener[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n });\r\n }\r\n /**\r\n * Adds a notification listener.\r\n * @param {INotificationListener} listener - The notification listener to be added.\r\n */\r\n NotificationManager.prototype.addNotificationListener = function (listener) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param {INotificationListener} listener - AWTNotificationListener to remove.\r\n */\r\n NotificationManager.prototype.removeNotificationListener = function (listener) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Notification for events sent.\r\n * @param {ITelemetryItem[]} events - The array of events that have been sent.\r\n */\r\n NotificationManager.prototype.eventsSent = function (events) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Notification for events being discarded.\r\n * @param {ITelemetryItem[]} events - The array of events that have been discarded by the SDK.\r\n * @param {number} reason - The reason for which the SDK discarded the events. The EventsDiscardedReason\r\n * constant should be used to check the different values.\r\n */\r\n NotificationManager.prototype.eventsDiscarded = function (events, reason) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * [Optional] A function called when the events have been requested to be sent to the sever.\r\n * @param {number} sendReason - The reason why the event batch is being sent.\r\n * @param {boolean} isAsync - A flag which identifies whether the requests are being sent in an async or sync manner.\r\n */\r\n NotificationManager.prototype.eventsSendRequest = function (sendReason, isAsync) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return NotificationManager;\r\n}());\r\nexport { NotificationManager };\r\n//# sourceMappingURL=NotificationManager.js.map","import { getWindow } from './dom/getWindow';\n\n/**\n * Storing global state in local module variables has issues when more than one copy\n * if the module gets loaded on the page (due to a bundling error or simply by consuming\n * a prebundled script.)\n *\n * This file contains helpers to deal with the getting and setting local state, and allows\n * callers to get called back when it mutates.\n */\n\nconst GLOBAL_SETTINGS_PROP_NAME = '__globalSettings__';\nconst CALLBACK_STATE_PROP_NAME = '__callbacks__';\n\nlet _counter = 0;\n\n/**\n * Change description used for change callbacks in GlobalSettings.\n *\n * @public\n * {@docCategory IChangeDescription}\n */\nexport interface IChangeDescription {\n key: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n oldValue: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: any;\n}\n\n/**\n * Change event callback.\n *\n * @public\n * {@docCategory IChangeEventCallback}\n */\nexport interface IChangeEventCallback {\n __id__?: string;\n (changeDescription?: IChangeDescription): void;\n}\n\n/**\n * Global settings helper, which stores settings in the global (window) namespace.\n * If window is not provided, it will store settings in module scope. Provides a\n * way to observe changes as well when their values change.\n *\n * @public\n * {@docCategory GlobalSettings}\n */\nexport class GlobalSettings {\n public static getValue(key: string, defaultValue?: T | (() => T)): T {\n const globalSettings = _getGlobalSettings();\n\n if (globalSettings[key] === undefined) {\n globalSettings[key] = typeof defaultValue === 'function' ? (defaultValue as Function)() : defaultValue;\n }\n\n return globalSettings[key];\n }\n\n public static setValue(key: string, value: T): T {\n const globalSettings = _getGlobalSettings();\n const callbacks = globalSettings[CALLBACK_STATE_PROP_NAME];\n let oldValue = globalSettings[key];\n\n if (value !== oldValue) {\n globalSettings[key] = value;\n\n let changeDescription = {\n oldValue,\n value,\n key,\n };\n\n for (let id in callbacks) {\n if (callbacks.hasOwnProperty(id)) {\n callbacks[id](changeDescription);\n }\n }\n }\n\n return value;\n }\n\n public static addChangeListener(cb: IChangeEventCallback): void {\n // Note: we use generated ids on the callbacks to create a map of the callbacks, which optimizes removal.\n // (It's faster to delete a key than it is to look up the index of an object and splice an array.)\n let id = cb.__id__;\n const callbacks = _getCallbacks();\n\n if (!id) {\n id = cb.__id__ = String(_counter++);\n }\n\n callbacks[id] = cb;\n }\n\n public static removeChangeListener(cb: IChangeEventCallback): void {\n const callbacks = _getCallbacks();\n delete callbacks[cb.__id__ as string];\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _getGlobalSettings(): { [key: string]: any } {\n const win = getWindow();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const globalObj: { [key: string]: any } = win || {};\n\n if (!globalObj[GLOBAL_SETTINGS_PROP_NAME]) {\n globalObj[GLOBAL_SETTINGS_PROP_NAME] = {\n [CALLBACK_STATE_PROP_NAME]: {},\n };\n }\n\n return globalObj[GLOBAL_SETTINGS_PROP_NAME];\n}\n\nfunction _getCallbacks(): { [key: string]: () => void } {\n const globalSettings = _getGlobalSettings();\n return globalSettings[CALLBACK_STATE_PROP_NAME];\n}\n","import * as React from 'react';\nimport { classNames, MS_ICON } from './Icon.styles';\nimport { css, getNativeProps, htmlElementProperties, memoizeFunction } from '../../Utilities';\nimport { getIcon } from '../../Styling';\nimport type { IFontIconProps } from './Icon.types';\nimport type { IIconRecord, IIconSubsetRecord } from '../../Styling';\n\nexport interface IIconContent {\n children?: string | JSX.Element;\n iconClassName?: string;\n fontFamily?: string;\n mergeImageProps?: boolean;\n}\n\nexport const getIconContent = memoizeFunction(\n (iconName?: string): IIconContent | null => {\n const { code, subset }: Pick & { subset: Partial } = getIcon(iconName) || {\n subset: {},\n code: undefined,\n };\n\n if (!code) {\n return null;\n }\n\n return {\n children: code,\n iconClassName: subset.className,\n fontFamily: subset.fontFace && subset.fontFace.fontFamily,\n mergeImageProps: subset.mergeImageProps,\n };\n },\n undefined,\n true /*ignoreNullOrUndefinedResult */,\n);\n\n/**\n * Fast icon component which only supports font glyphs (not images) and can't be targeted by customizations.\n * To style the icon, use `className` or reference `ms-Icon` in CSS.\n * {@docCategory Icon}\n */\nexport const FontIcon: React.FunctionComponent = props => {\n const { iconName, className, style = {} } = props;\n const iconContent = getIconContent(iconName) || {};\n const { iconClassName, children, fontFamily, mergeImageProps } = iconContent;\n\n const nativeProps = getNativeProps>(props, htmlElementProperties);\n const accessibleName = props['aria-label'] || props.title;\n const containerProps =\n props['aria-label'] || props['aria-labelledby'] || props.title\n ? {\n role: mergeImageProps ? undefined : 'img',\n }\n : {\n 'aria-hidden': true,\n };\n\n let finalChildren = children;\n\n if (mergeImageProps) {\n if (typeof children === 'object' && typeof children.props === 'object' && accessibleName) {\n finalChildren = React.cloneElement(children, { alt: accessibleName });\n }\n }\n\n return (\n \n {finalChildren}\n \n );\n};\n\n/**\n * Memoized helper for rendering a FontIcon.\n * @param iconName - The name of the icon to use from the icon font.\n * @param className - Class name for styling the icon.\n * @param ariaLabel - Label for the icon for the benefit of screen readers.\n * {@docCategory Icon}\n */\nexport const getFontIcon = memoizeFunction((iconName: string, className?: string, ariaLabel?: string) => {\n return FontIcon({ iconName, className, 'aria-label': ariaLabel });\n});\n","import { warn } from './warn';\nimport type { ISettingsMap } from './warn';\n\n/**\n * Warns when a deprecated props are being used.\n *\n * @public\n * @param componentName - The name of the component being used.\n * @param props - The props passed into the component.\n * @param deprecationMap - The map of deprecations, where key is the prop name and the value is\n * either null or a replacement prop name.\n */\nexport function warnDeprecations

    (componentName: string, props: P, deprecationMap: ISettingsMap

    ): void {\n if (process.env.NODE_ENV !== 'production') {\n for (const propName in deprecationMap) {\n if (props && propName in props) {\n let deprecationMessage = `${componentName} property '${propName}' was used but has been deprecated.`;\n const replacementPropName = deprecationMap[propName];\n if (replacementPropName) {\n deprecationMessage += ` Use '${replacementPropName}' instead.`;\n }\n warn(deprecationMessage);\n }\n }\n }\n}\n","import * as React from 'react';\nimport { mergeCss } from '@fluentui/merge-styles';\nimport { IStyle, ITheme } from '@fluentui/style-utilities';\nimport { getRTL, memoizeFunction } from '@fluentui/utilities';\nimport { assign } from './utilities';\nimport { IFactoryOptions } from './IComponent';\nimport {\n ISlottableReactType,\n ISlot,\n ISlots,\n ISlotDefinition,\n ISlotFactory,\n ISlotProp,\n ISlottableProps,\n ISlotOptions,\n IDefaultSlotProps,\n IProcessedSlotProps,\n ValidProps,\n ValidShorthand,\n} from './ISlots';\n\n/**\n * This function is required for any module that uses slots.\n *\n * This function is a slot resolver that automatically evaluates slot functions to generate React elements.\n * A byproduct of this resolver is that it removes slots from the React hierarchy by bypassing React.createElement.\n *\n * To use this function on a per-file basis, use the jsx directive targeting withSlots.\n * This directive must be the FIRST LINE in the file to work correctly.\n * Usage of this pragma also requires withSlots import statement.\n *\n * See React.createElement\n */\n// Can't use typeof on React.createElement since it's overloaded. Approximate createElement's signature for now\n// and widen as needed.\nexport function withSlots

    (\n type: ISlot

    | React.FunctionComponent

    | string,\n props?: (React.Attributes & P) | null,\n ...children: React.ReactNode[]\n): ReturnType> {\n const slotType = type as ISlot

    ;\n if (slotType.isSlot) {\n // Since we are bypassing createElement, use React.Children.toArray to make sure children are\n // properly assigned keys.\n // TODO: should this be mutating? does React mutate children subprop with createElement?\n // TODO: will toArray clobber existing keys?\n // TODO: React generates warnings because it doesn't detect hidden member _store that is set in createElement.\n // Even children passed to createElement without keys don't generate this warning.\n // Is there a better way to prevent slots from appearing in hierarchy? toArray doesn't address root issue.\n children = React.Children.toArray(children);\n\n // TODO: There is something weird going on here with children embedded in props vs. rest args.\n // Comment out these lines to see. Make sure this function is doing the right things.\n if (children.length === 0) {\n return slotType(props);\n }\n\n return slotType({ ...(props as any), children });\n } else {\n // TODO: Are there some cases where children should NOT be spread? Also, spreading reraises perf question.\n // Children had to be spread to avoid breaking KeytipData in Toggle.view:\n // react-dom.development.js:18931 Uncaught TypeError: children is not a function\n // Without spread, function child is a child array of one element\n // TODO: is there a reason this can't be:\n // return React.createElement.apply(this, arguments);\n return React.createElement(type, props, ...children);\n }\n}\n\n/**\n * This function creates factories that render ouput depending on the user ISlotProp props passed in.\n * @param DefaultComponent - Base component to render when not overridden by user props.\n * @param options - Factory options, including defaultProp value for shorthand prop mapping.\n * @returns ISlotFactory function used for rendering slots.\n */\nexport function createFactory(\n DefaultComponent: React.ComponentType,\n options: IFactoryOptions = {},\n): ISlotFactory {\n const { defaultProp = 'children' } = options;\n\n const result: ISlotFactory = (\n componentProps,\n userProps,\n userSlotOptions,\n defaultStyles,\n theme,\n ) => {\n // If they passed in raw JSX, just return that.\n if (React.isValidElement(userProps)) {\n return userProps;\n }\n\n const flattenedUserProps: TProps | undefined = _translateShorthand(defaultProp as string, userProps);\n const finalProps = _constructFinalProps(defaultStyles, theme, componentProps, flattenedUserProps);\n\n if (userSlotOptions) {\n if (userSlotOptions.component) {\n // TODO: Remove cast if possible. This cast is needed because TS errors on the intrinsic portion of ReactType.\n // return ;\n const UserComponent = userSlotOptions.component as React.ComponentType;\n return ;\n }\n\n if (userSlotOptions.render) {\n return userSlotOptions.render(finalProps, DefaultComponent);\n }\n }\n\n return ;\n };\n\n return result;\n}\n\n/**\n * Default factory for components without explicit factories.\n */\nconst defaultFactory = memoizeFunction(type => createFactory(type));\n\n/**\n * This function generates slots that can be used in JSX given a definition of slots and their corresponding types.\n * @param userProps - Props as pass to component.\n * @param slots - Slot definition object defining the default slot component for each slot.\n * @returns A set of created slots that components can render in JSX.\n */\nexport function getSlots, TComponentSlots>(\n userProps: TComponentProps,\n slots: ISlotDefinition>,\n): ISlots> {\n const result: ISlots> = {} as ISlots>;\n\n // userProps already has default props mixed in by createComponent. Recast here to gain typing for this function.\n const mixedProps = userProps as TComponentProps & IDefaultSlotProps;\n\n for (const name in slots) {\n if (slots.hasOwnProperty(name)) {\n // This closure method requires the use of withSlots to prevent unnecessary rerenders. This is because React\n // detects each closure as a different component (since it is a new instance) from the previous one and then\n // forces a rerender of the entire slot subtree. For now, the only way to avoid this is to use withSlots, which\n // bypasses the call to React.createElement.\n const slot: ISlots>[keyof TComponentSlots] = (componentProps, ...args: any[]) => {\n if (args.length > 0) {\n // If React.createElement is being incorrectly used with slots, there will be additional arguments.\n // We can detect these additional arguments and error on their presence.\n throw new Error('Any module using getSlots must use withSlots. Please see withSlots javadoc for more info.');\n }\n // TODO: having TS infer types here seems to cause infinite loop.\n // use explicit types or casting to preserve typing if possible.\n // TODO: this should be a lookup on TProps property instead of being TProps directly, which is probably\n // causing the infinite loop\n return _renderSlot(\n slots[name],\n // TODO: this cast to any is hiding a relationship issue between the first two args\n componentProps as any,\n mixedProps[name],\n mixedProps.slots && mixedProps.slots[name],\n // _defaultStyles should always be present, but a check for existence is added to make view tests\n // easier to use.\n mixedProps._defaultStyles && mixedProps._defaultStyles[name],\n (mixedProps as any).theme,\n );\n };\n slot.isSlot = true;\n result[name] = slot;\n }\n }\n\n return result;\n}\n\n/**\n * Helper function that translates shorthand as needed.\n * @param defaultProp\n * @param slotProps\n */\nfunction _translateShorthand(\n defaultProp: string,\n slotProps: ISlotProp,\n): TProps | undefined {\n let transformedProps: TProps | undefined;\n\n if (typeof slotProps === 'string' || typeof slotProps === 'number' || typeof slotProps === 'boolean') {\n transformedProps = {\n [defaultProp]: slotProps as any,\n } as TProps;\n } else {\n transformedProps = slotProps as TProps;\n }\n\n return transformedProps;\n}\n\n/**\n * Helper function that constructs final styles and props given a series of props ordered by increasing priority.\n */\nfunction _constructFinalProps(\n defaultStyles: IStyle,\n theme?: ITheme,\n ...allProps: (TProps | undefined)[]\n): TProps {\n const finalProps: TProps = {} as any;\n const classNames: (string | undefined)[] = [];\n\n for (const props of allProps) {\n classNames.push(props && props.className);\n assign(finalProps, props);\n }\n\n finalProps.className = mergeCss([defaultStyles, classNames], { rtl: getRTL(theme) });\n\n return finalProps;\n}\n\n/**\n * Render a slot given component and user props. Uses component factory if available, otherwise falls back\n * to default factory.\n * @param ComponentType Factory component type.\n * @param componentProps The properties passed into slot from within the component.\n * @param userProps The user properties passed in from outside of the component.\n */\nfunction _renderSlot<\n TSlotComponent extends ISlottableReactType,\n TSlotProps extends ValidProps,\n TSlotShorthand extends ValidShorthand\n>(\n ComponentType: TSlotComponent,\n componentProps: TSlotProps,\n userProps: ISlotProp,\n slotOptions: ISlotOptions | undefined,\n defaultStyles: IStyle,\n theme?: ITheme,\n): ReturnType {\n if (ComponentType.create !== undefined) {\n return ComponentType.create(componentProps, userProps, slotOptions, defaultStyles);\n } else {\n // TODO: need to resolve typing / generic issues passing through memoizeFunction. for now, cast to 'unknown'\n return ((defaultFactory(ComponentType) as unknown) as ISlotFactory)(\n componentProps,\n userProps,\n slotOptions,\n defaultStyles,\n theme,\n );\n }\n}\n","/**\n * Helper to find the index of an item within an array, using a callback to\n * determine the match.\n *\n * @public\n * @param array - Array to search.\n * @param cb - Callback which returns true on matches.\n * @param fromIndex - Optional index to start from (defaults to 0)\n */\nexport function findIndex(array: T[], cb: (item: T, index: number) => boolean, fromIndex: number = 0): number {\n let index = -1;\n\n for (let i = fromIndex; array && i < array.length; i++) {\n if (cb(array[i], i)) {\n index = i;\n break;\n }\n }\n\n return index;\n}\n\n/**\n * Helper to find the first item within an array that satisfies the callback.\n * @param array - Array to search\n * @param cb - Callback which returns true on matches\n */\nexport function find(array: T[], cb: (item: T, index: number) => boolean): T | undefined {\n let index = findIndex(array, cb);\n\n if (index < 0) {\n return undefined;\n }\n\n return array[index];\n}\n\n/**\n * Creates an array of a given size and helper method to populate.\n *\n * @public\n * @param size - Size of array.\n * @param getItem - Callback to populate given cell index.\n */\nexport function createArray(size: number, getItem: (index: number) => T): T[] {\n let array: T[] = [];\n\n for (let i = 0; i < size; i++) {\n array.push(getItem(i));\n }\n\n return array;\n}\n\n/**\n * Convert the given array to a matrix with columnCount number\n * of columns.\n *\n * @public\n * @param items - The array to convert\n * @param columnCount - The number of columns for the resulting matrix\n * @returns A matrix of items\n */\nexport function toMatrix(items: T[], columnCount: number): T[][] {\n return items.reduce((rows: T[][], currentValue: T, index: number) => {\n if (index % columnCount === 0) {\n rows.push([currentValue]);\n } else {\n rows[rows.length - 1].push(currentValue);\n }\n return rows;\n }, [] as T[][]);\n}\n\n/**\n * Given an array, it returns a new array that does not contain the item at the given index.\n * @param array - The array to operate on\n * @param index - The index of the element to remove\n */\nexport function removeIndex(array: T[], index: number): T[] {\n return array.filter((_: T, i: number) => index !== i);\n}\n\n/**\n * Given an array, this function returns a new array where the element at a given index has been replaced.\n * @param array - The array to operate on\n * @param newElement - The element that will be placed in the new array\n * @param index - The index of the element that should be replaced\n */\nexport function replaceElement(array: T[], newElement: T, index: number): T[] {\n const copy = array.slice();\n copy[index] = newElement;\n return copy;\n}\n\n/**\n * Given an array, this function returns a new array where an element has been inserted at the given index.\n * @param array - The array to operate on\n * @param index - The index where an element should be inserted\n * @param itemToAdd - The element to insert\n */\nexport function addElementAtIndex(array: T[], index: number, itemToAdd: T): T[] {\n const copy = array.slice();\n copy.splice(index, 0, itemToAdd);\n return copy;\n}\n\n/**\n * Given an array where each element is of type T or T[], flatten it into an array of T\n * @param array - The array where each element can optionally also be an array\n */\nexport function flatten(array: (T | T[])[]): T[] {\n let result: T[] = [];\n array.forEach((item: T | T[]): T[] => (result = result.concat(item)));\n return result;\n}\n\n/**\n * Returns a boolean indicating if the two given arrays are equal in length and values.\n *\n * @param array1 - First array to compare\n * @param array2 - Second array to compare\n * @returns True if the arrays are the same length and have the same values in the same positions, false otherwise.\n */\nexport function arraysEqual(array1: T[], array2: T[]): boolean {\n if (array1.length !== array2.length) {\n return false;\n }\n for (let i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n}\n","/**\n * Compares a to b and b to a.\n *\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function shallowCompare(a: TA, b: TB): boolean {\n for (let propName in a) {\n if ((a as Object).hasOwnProperty(propName)) {\n if (!(b as Object).hasOwnProperty(propName) || (b as { [key: string]: unknown })[propName] !== a[propName]) {\n return false;\n }\n }\n }\n for (let propName in b) {\n if ((b as Object).hasOwnProperty(propName)) {\n if (!(a as Object).hasOwnProperty(propName)) {\n return false;\n }\n }\n }\n return true;\n}\n\n/**\n * Makes a resulting merge of a bunch of objects. Pass in the target object followed by 1 or more\n * objects as arguments and they will be merged sequentially into the target. Note that this will\n * shallow merge; it will not create new cloned values for target members.\n *\n * @public\n * @param target - Target object to merge following object arguments into.\n * @param args - One or more objects that will be mixed into the target in the order they are provided.\n * @returns Resulting merged target.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function assign(this: any, target: any, ...args: any[]): any {\n return filteredAssign.apply(this, [null, target].concat(args));\n}\n\n/**\n * Makes a resulting merge of a bunch of objects, but allows a filter function to be passed in to filter\n * the resulting merges. This allows for scenarios where you want to merge \"everything except that one thing\"\n * or \"properties that start with data-\". Note that this will shallow merge; it will not create new cloned\n * values for target members.\n *\n * @public\n * @param isAllowed - Callback to determine if the given propName is allowed in the result.\n * @param target - Target object to merge following object arguments into.\n * @param args - One or more objects that will be mixed into the target in the order they are provided.\n * @returns Resulting merged target.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function filteredAssign(isAllowed: (propName: string) => boolean, target: any, ...args: any[]): any {\n target = target || {};\n\n for (let sourceObject of args) {\n if (sourceObject) {\n for (let propName in sourceObject) {\n if (sourceObject.hasOwnProperty(propName) && (!isAllowed || isAllowed(propName))) {\n target[propName] = sourceObject[propName];\n }\n }\n }\n }\n\n return target;\n}\n\n/**\n * Takes an enum and iterates over each value of the enum (as a string), running the callback on each,\n * returning a mapped array.\n * @param theEnum - Enum to iterate over\n * @param callback - The first parameter the name of the entry, and the second parameter is the value\n * of that entry, which is the value you'd normally use when using the enum (usually a number).\n */\nexport function mapEnumByName(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n theEnum: any,\n callback: (name?: string, value?: string | number) => T | undefined,\n): (T | undefined)[] | undefined {\n // map to satisfy compiler since it doesn't realize we strip out undefineds in the .filter() call\n return Object.keys(theEnum)\n .map((p: string | number) => {\n // map on each property name as a string\n if (String(Number(p)) !== p) {\n // if the property is not just a number (because enums in TypeScript will map both ways)\n return callback(p as string, theEnum[p]);\n }\n return undefined;\n })\n .filter((v: T | undefined) => !!v); // only return elements with values\n}\n\n/**\n * Get all values in an object dictionary\n *\n * @param obj - The dictionary to get values for\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function values(obj: any): T[] {\n return Object.keys(obj).reduce((arr: T[], key: string): T[] => {\n arr.push(obj[key]);\n return arr;\n }, []);\n}\n\n/**\n * Tiny helper to do the minimal amount of work in duplicating an object but omitting some\n * props. This ends up faster than using object ...rest or reduce to filter.\n *\n * This behaves very much like filteredAssign, but does not merge many objects together,\n * uses an exclusion object map, and avoids spreads all for optimal performance.\n *\n * See perf test for background:\n * https://jsperf.com/omit-vs-rest-vs-reduce/1\n *\n * @param obj - The object to clone\n * @param exclusions - The array of keys to exclude\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function omit>(obj: TObj, exclusions: (keyof TObj)[]): TObj {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const result: Record = {};\n\n for (const key in obj) {\n if (exclusions.indexOf(key) === -1 && obj.hasOwnProperty(key)) {\n result[key] = obj[key];\n }\n }\n\n return result as TObj;\n}\n","import { assign } from './object';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * @internal\n */\nexport interface IEventRecord {\n target: any;\n eventName: string;\n parent: any;\n callback: (args?: any) => void;\n elementCallback?: (...args: any[]) => void;\n objectCallback?: (args?: any) => void;\n options?: boolean | AddEventListenerOptions;\n}\n\n/**\n * @internal\n */\nexport interface IEventRecordsByName {\n [eventName: string]: IEventRecordList;\n}\n\n/**\n * @internal\n */\nexport interface IEventRecordList {\n [id: string]: IEventRecord[] | number;\n count: number;\n}\n\n/**\n * @internal\n */\nexport interface IDeclaredEventsByName {\n [eventName: string]: boolean;\n}\n\n/** An instance of EventGroup allows anything with a handle to it to trigger events on it.\n * If the target is an HTMLElement, the event will be attached to the element and can be\n * triggered as usual (like clicking for onClick).\n * The event can be triggered by calling EventGroup.raise() here. If the target is an\n * HTMLElement, the event gets raised and is handled by the browser. Otherwise, it gets\n * handled here in EventGroup, and the handler is called in the context of the parent\n * (which is passed in in the constructor).\n *\n * @public\n * {@docCategory EventGroup}\n */\nexport class EventGroup {\n private static _uniqueId: number = 0;\n private _parent: any;\n private _eventRecords: IEventRecord[];\n private _id: number = EventGroup._uniqueId++;\n private _isDisposed!: boolean;\n\n /** For IE8, bubbleEvent is ignored here and must be dealt with by the handler.\n * Events raised here by default have bubbling set to false and cancelable set to true.\n * This applies also to built-in events being raised manually here on HTMLElements,\n * which may lead to unexpected behavior if it differs from the defaults.\n *\n */\n public static raise(target: any, eventName: string, eventArgs?: any, bubbleEvent?: boolean): boolean | undefined {\n let retVal;\n\n if (EventGroup._isElement(target)) {\n if (typeof document !== 'undefined' && document.createEvent) {\n let ev = document.createEvent('HTMLEvents');\n\n ev.initEvent(eventName, bubbleEvent || false, true);\n\n assign(ev, eventArgs);\n\n retVal = target.dispatchEvent(ev);\n } else if (typeof document !== 'undefined' && (document as any).createEventObject) {\n // IE8\n let evObj = (document as any).createEventObject(eventArgs);\n // cannot set cancelBubble on evObj, fireEvent will overwrite it\n target.fireEvent('on' + eventName, evObj);\n }\n } else {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore -- FIXME: strictBindCallApply error - https://github.com/microsoft/fluentui/issues/17331\n while (target && retVal !== false) {\n let events = target.__events__;\n let eventRecords = events ? events[eventName] : null;\n\n if (eventRecords) {\n for (let id in eventRecords) {\n if (eventRecords.hasOwnProperty(id)) {\n let eventRecordList = eventRecords[id];\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore -- FIXME: strictBindCallApply error - https://github.com/microsoft/fluentui/issues/17331\n for (let listIndex = 0; retVal !== false && listIndex < eventRecordList.length; listIndex++) {\n let record = eventRecordList[listIndex];\n\n if (record.objectCallback) {\n retVal = record.objectCallback.call(record.parent, eventArgs);\n }\n }\n }\n }\n }\n\n // If the target has a parent, bubble the event up.\n target = bubbleEvent ? target.parent : null;\n }\n }\n\n return retVal;\n }\n\n public static isObserved(target: any, eventName: string): boolean {\n let events = target && target.__events__;\n\n return !!events && !!events[eventName];\n }\n\n /** Check to see if the target has declared support of the given event. */\n public static isDeclared(target: any, eventName: string): boolean {\n let declaredEvents = target && target.__declaredEvents;\n\n return !!declaredEvents && !!declaredEvents[eventName];\n }\n\n public static stopPropagation(event: any): void {\n if (event.stopPropagation) {\n event.stopPropagation();\n } else {\n // IE8\n event.cancelBubble = true;\n }\n }\n\n private static _isElement(target: HTMLElement): boolean {\n return (\n !!target && (!!target.addEventListener || (typeof HTMLElement !== 'undefined' && target instanceof HTMLElement))\n );\n }\n\n /** parent: the context in which events attached to non-HTMLElements are called */\n public constructor(parent: any) {\n this._parent = parent;\n this._eventRecords = [];\n }\n\n public dispose(): void {\n if (!this._isDisposed) {\n this._isDisposed = true;\n\n this.off();\n this._parent = null;\n }\n }\n\n /** On the target, attach a set of events, where the events object is a name to function mapping. */\n public onAll(target: any, events: { [key: string]: (args?: any) => void }, useCapture?: boolean): void {\n for (let eventName in events) {\n if (events.hasOwnProperty(eventName)) {\n this.on(target, eventName, events[eventName], useCapture);\n }\n }\n }\n\n /**\n * On the target, attach an event whose handler will be called in the context of the parent\n * of this instance of EventGroup.\n */\n public on(\n target: any,\n eventName: string,\n callback: (args?: any) => void,\n options?: boolean | AddEventListenerOptions,\n ): void {\n if (eventName.indexOf(',') > -1) {\n let events = eventName.split(/[ ,]+/);\n\n for (let i = 0; i < events.length; i++) {\n this.on(target, events[i], callback, options);\n }\n } else {\n let parent = this._parent;\n let eventRecord: IEventRecord = {\n target: target,\n eventName: eventName,\n parent: parent,\n callback: callback,\n options,\n };\n\n // Initialize and wire up the record on the target, so that it can call the callback if the event fires.\n let events = (target.__events__ = target.__events__ || {});\n events[eventName] =\n events[eventName] ||\n {\n count: 0,\n };\n events[eventName][this._id] = events[eventName][this._id] || [];\n (events[eventName][this._id]).push(eventRecord);\n events[eventName].count++;\n\n if (EventGroup._isElement(target)) {\n let processElementEvent = (...args: any[]) => {\n if (this._isDisposed) {\n return;\n }\n\n let result;\n try {\n result = callback.apply(parent, args);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore -- FIXME: strictBindCallApply error - https://github.com/microsoft/fluentui/issues/17331\n if (result === false && args[0]) {\n let e = args[0];\n\n if (e.preventDefault) {\n e.preventDefault();\n }\n\n if (e.stopPropagation) {\n e.stopPropagation();\n }\n\n e.cancelBubble = true;\n }\n } catch (e) {\n // ignore\n }\n\n return result;\n };\n\n eventRecord.elementCallback = processElementEvent;\n\n if (target.addEventListener) {\n (target).addEventListener(eventName, processElementEvent, options);\n } else if (target.attachEvent) {\n // IE8\n target.attachEvent('on' + eventName, processElementEvent);\n }\n } else {\n let processObjectEvent = (...args: any[]) => {\n if (this._isDisposed) {\n return;\n }\n\n return callback.apply(parent, args);\n };\n\n eventRecord.objectCallback = processObjectEvent;\n }\n\n // Remember the record locally, so that it can be removed.\n this._eventRecords.push(eventRecord);\n }\n }\n\n public off(\n target?: any,\n eventName?: string,\n callback?: (args?: any) => void,\n options?: boolean | AddEventListenerOptions,\n ): void {\n for (let i = 0; i < this._eventRecords.length; i++) {\n let eventRecord = this._eventRecords[i];\n if (\n (!target || target === eventRecord.target) &&\n (!eventName || eventName === eventRecord.eventName) &&\n (!callback || callback === eventRecord.callback) &&\n (typeof options !== 'boolean' || options === eventRecord.options)\n ) {\n let events = eventRecord.target.__events__;\n let targetArrayLookup = events[eventRecord.eventName];\n let targetArray = targetArrayLookup ? targetArrayLookup[this._id] : null;\n\n // We may have already target's entries, so check for null.\n if (targetArray) {\n if (targetArray.length === 1 || !callback) {\n targetArrayLookup.count -= targetArray.length;\n delete events[eventRecord.eventName][this._id];\n } else {\n targetArrayLookup.count--;\n targetArray.splice(targetArray.indexOf(eventRecord), 1);\n }\n\n if (!targetArrayLookup.count) {\n delete events[eventRecord.eventName];\n }\n }\n\n if (eventRecord.elementCallback) {\n if (eventRecord.target.removeEventListener) {\n eventRecord.target.removeEventListener(\n eventRecord.eventName,\n eventRecord.elementCallback,\n eventRecord.options,\n );\n } else if (eventRecord.target.detachEvent) {\n // IE8\n eventRecord.target.detachEvent('on' + eventRecord.eventName, eventRecord.elementCallback);\n }\n }\n\n this._eventRecords.splice(i--, 1);\n }\n }\n }\n\n /** Trigger the given event in the context of this instance of EventGroup. */\n public raise(eventName: string, eventArgs?: any, bubbleEvent?: boolean): boolean | undefined {\n return EventGroup.raise(this._parent, eventName, eventArgs, bubbleEvent);\n }\n\n /** Declare an event as being supported by this instance of EventGroup. */\n public declare(event: string | string[]): void {\n let declaredEvents = (this._parent.__declaredEvents = this._parent.__declaredEvents || {});\n\n if (typeof event === 'string') {\n declaredEvents[event] = true;\n } else {\n for (let i = 0; i < event.length; i++) {\n declaredEvents[event[i]] = true;\n }\n }\n }\n}\n","/**\n * Allows you to hoist static functions in components.\n * Created for the purpose of fixing broken static functions in classes\n * that utilize decorators.\n *\n * @public\n * @param source - The object where the methods are hoisted from.\n * @param dest - The object to hoist the methods onto.\n * @returns The dest object with methods added\n */\n\nexport function hoistStatics(source: TSource, dest: TDest): TDest {\n for (const name in source) {\n if (source.hasOwnProperty(name)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (dest as any)[name] = source[name];\n }\n }\n\n return dest;\n}\n","import { warn } from './warn';\n/**\n * Warns when props are required if a condition is met.\n *\n * @public\n * @param componentName - The name of the component being used.\n * @param props - The props passed into the component.\n * @param requiredProps - The name of the props that are required when the condition is met.\n * @param conditionalPropName - The name of the prop that the condition is based on.\n * @param condition - Whether the condition is met.\n */\nexport function warnConditionallyRequiredProps

    (\n componentName: string,\n props: P,\n requiredProps: string[],\n conditionalPropName: string,\n condition: boolean,\n): void {\n if (condition === true && process.env.NODE_ENV !== 'production') {\n for (const requiredPropName of requiredProps) {\n if (!(requiredPropName in props)) {\n warn(`${componentName} property '${requiredPropName}' is required when '${conditionalPropName}' is used.'`);\n }\n }\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n isNode,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions,\n UserAgentOptions,\n} from \"@azure/core-http\";\nimport * as os from \"os\";\n\nimport { TelemetryPolicy } from \"./policies/TelemetryPolicy\";\nimport { SDK_VERSION } from \"./utils/constants\";\n\n/**\n * TelemetryPolicyFactory is a factory class helping generating {@link TelemetryPolicy} objects.\n */\nexport class TelemetryPolicyFactory implements RequestPolicyFactory {\n /**\n * @internal\n */\n public readonly telemetryString: string;\n\n /**\n * Creates an instance of TelemetryPolicyFactory.\n * @param telemetry -\n */\n constructor(telemetry?: UserAgentOptions) {\n const userAgentInfo: string[] = [];\n\n if (isNode) {\n if (telemetry) {\n const telemetryString = telemetry.userAgentPrefix || \"\";\n if (telemetryString.length > 0 && userAgentInfo.indexOf(telemetryString) === -1) {\n userAgentInfo.push(telemetryString);\n }\n }\n\n // e.g. azsdk-js-storageblob/10.0.0\n const libInfo = `azsdk-js-storageblob/${SDK_VERSION}`;\n if (userAgentInfo.indexOf(libInfo) === -1) {\n userAgentInfo.push(libInfo);\n }\n\n // e.g. (NODE-VERSION 4.9.1; Windows_NT 10.0.16299)\n let runtimeInfo = `(NODE-VERSION ${process.version})`;\n if (os) {\n runtimeInfo = `(NODE-VERSION ${process.version}; ${os.type()} ${os.release()})`;\n }\n if (userAgentInfo.indexOf(runtimeInfo) === -1) {\n userAgentInfo.push(runtimeInfo);\n }\n }\n\n this.telemetryString = userAgentInfo.join(\" \");\n }\n\n /**\n * Creates a TelemetryPolicy object.\n *\n * @param nextPolicy -\n * @param options -\n */\n public create(nextPolicy: RequestPolicy, options: RequestPolicyOptions): TelemetryPolicy {\n return new TelemetryPolicy(nextPolicy, options, this.telemetryString);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n BaseRequestPolicy,\n HttpHeaders,\n HttpOperationResponse,\n isNode,\n RequestPolicy,\n RequestPolicyOptions,\n WebResource,\n} from \"@azure/core-http\";\n\nimport { HeaderConstants } from \"../utils/constants\";\n\n/**\n * TelemetryPolicy is a policy used to tag user-agent header for every requests.\n */\nexport class TelemetryPolicy extends BaseRequestPolicy {\n /**\n * Telemetry string.\n */\n public readonly telemetry: string;\n\n /**\n * Creates an instance of TelemetryPolicy.\n * @param nextPolicy -\n * @param options -\n * @param telemetry -\n */\n constructor(nextPolicy: RequestPolicy, options: RequestPolicyOptions, telemetry: string) {\n super(nextPolicy, options);\n this.telemetry = telemetry;\n }\n\n /**\n * Sends out request.\n *\n * @param request -\n */\n public async sendRequest(request: WebResource): Promise {\n if (isNode) {\n if (!request.headers) {\n request.headers = new HttpHeaders();\n }\n if (!request.headers.get(HeaderConstants.USER_AGENT)) {\n request.headers.set(HeaderConstants.USER_AGENT, this.telemetry);\n }\n }\n\n return this._nextPolicy.sendRequest(request);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport function log(...args: any[]): void {\n if (args.length > 0) {\n const firstArg = String(args[0]);\n if (firstArg.includes(\":error\")) {\n console.error(...args);\n } else if (firstArg.includes(\":warning\")) {\n console.warn(...args);\n } else if (firstArg.includes(\":info\")) {\n console.info(...args);\n } else if (firstArg.includes(\":verbose\")) {\n console.debug(...args);\n } else {\n console.debug(...args);\n }\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/*\n * NOTE: When moving this file, please update \"browser\" section in package.json\n */\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions,\n} from \"./requestPolicy\";\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { WebResource } from \"../webResource\";\n\nconst DisbleResponseDecompressionNotSupportedInBrowser = new Error(\n \"DisableResponseDecompressionPolicy is not supported in browser environment\"\n);\n\n/**\n * {@link DisableResponseDecompressionPolicy} is not supported in browser and attempting\n * to use it will results in error being thrown.\n */\nexport function disableResponseDecompressionPolicy(): RequestPolicyFactory {\n return {\n create: (_nextPolicy: RequestPolicy, _options: RequestPolicyOptions) => {\n throw DisbleResponseDecompressionNotSupportedInBrowser;\n },\n };\n}\n\nexport class DisableResponseDecompressionPolicy extends BaseRequestPolicy {\n constructor(nextPolicy: RequestPolicy, options: RequestPolicyOptions) {\n super(nextPolicy, options);\n throw DisbleResponseDecompressionNotSupportedInBrowser;\n }\n\n public async sendRequest(_request: WebResource): Promise {\n throw DisbleResponseDecompressionNotSupportedInBrowser;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n// This file is used as a shim of \"BlobDownloadResponse\" for some browser bundlers\n// when trying to bundle \"BlobDownloadResponse\"\n// \"BlobDownloadResponse\" class is only available in Node.js runtime\nexport const BlobDownloadResponse = 1;\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { AccessToken, GetTokenOptions, TokenCredential } from \"@azure/core-auth\";\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions,\n} from \"../policies/requestPolicy\";\nimport { Constants } from \"../util/constants\";\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { WebResourceLike } from \"../webResource\";\nimport { delay } from \"../util/delay\";\n\n// #region Access Token Cycler\n\n/**\n * A function that gets a promise of an access token and allows providing\n * options.\n *\n * @param options - the options to pass to the underlying token provider\n */\ntype AccessTokenGetter = (options: GetTokenOptions) => Promise;\n\ninterface TokenCyclerOptions {\n /**\n * The window of time before token expiration during which the token will be\n * considered unusable due to risk of the token expiring before sending the\n * request.\n *\n * This will only become meaningful if the refresh fails for over\n * (refreshWindow - forcedRefreshWindow) milliseconds.\n */\n forcedRefreshWindowInMs: number;\n /**\n * Interval in milliseconds to retry failed token refreshes.\n */\n retryIntervalInMs: number;\n /**\n * The window of time before token expiration during which\n * we will attempt to refresh the token.\n */\n refreshWindowInMs: number;\n}\n\n// Default options for the cycler if none are provided\nexport const DEFAULT_CYCLER_OPTIONS: TokenCyclerOptions = {\n forcedRefreshWindowInMs: 1000, // Force waiting for a refresh 1s before the token expires\n retryIntervalInMs: 3000, // Allow refresh attempts every 3s\n refreshWindowInMs: 1000 * 60 * 2, // Start refreshing 2m before expiry\n};\n\n/**\n * Converts an an unreliable access token getter (which may resolve with null)\n * into an AccessTokenGetter by retrying the unreliable getter in a regular\n * interval.\n *\n * @param getAccessToken - a function that produces a promise of an access\n * token that may fail by returning null\n * @param retryIntervalInMs - the time (in milliseconds) to wait between retry\n * attempts\n * @param timeoutInMs - the timestamp after which the refresh attempt will fail,\n * throwing an exception\n * @returns - a promise that, if it resolves, will resolve with an access token\n */\nasync function beginRefresh(\n getAccessToken: () => Promise,\n retryIntervalInMs: number,\n timeoutInMs: number\n): Promise {\n // This wrapper handles exceptions gracefully as long as we haven't exceeded\n // the timeout.\n async function tryGetAccessToken(): Promise {\n if (Date.now() < timeoutInMs) {\n try {\n return await getAccessToken();\n } catch {\n return null;\n }\n } else {\n const finalToken = await getAccessToken();\n\n // Timeout is up, so throw if it's still null\n if (finalToken === null) {\n throw new Error(\"Failed to refresh access token.\");\n }\n\n return finalToken;\n }\n }\n\n let token: AccessToken | null = await tryGetAccessToken();\n\n while (token === null) {\n await delay(retryIntervalInMs);\n\n token = await tryGetAccessToken();\n }\n\n return token;\n}\n\n/**\n * Creates a token cycler from a credential, scopes, and optional settings.\n *\n * A token cycler represents a way to reliably retrieve a valid access token\n * from a TokenCredential. It will handle initializing the token, refreshing it\n * when it nears expiration, and synchronizes refresh attempts to avoid\n * concurrency hazards.\n *\n * @param credential - the underlying TokenCredential that provides the access\n * token\n * @param scopes - the scopes to request authorization for\n * @param tokenCyclerOptions - optionally override default settings for the cycler\n *\n * @returns - a function that reliably produces a valid access token\n */\nfunction createTokenCycler(\n credential: TokenCredential,\n scopes: string | string[],\n tokenCyclerOptions?: Partial\n): AccessTokenGetter {\n let refreshWorker: Promise | null = null;\n let token: AccessToken | null = null;\n\n const options = {\n ...DEFAULT_CYCLER_OPTIONS,\n ...tokenCyclerOptions,\n };\n\n /**\n * This little holder defines several predicates that we use to construct\n * the rules of refreshing the token.\n */\n const cycler = {\n /**\n * Produces true if a refresh job is currently in progress.\n */\n get isRefreshing(): boolean {\n return refreshWorker !== null;\n },\n /**\n * Produces true if the cycler SHOULD refresh (we are within the refresh\n * window and not already refreshing)\n */\n get shouldRefresh(): boolean {\n return (\n !cycler.isRefreshing &&\n (token?.expiresOnTimestamp ?? 0) - options.refreshWindowInMs < Date.now()\n );\n },\n /**\n * Produces true if the cycler MUST refresh (null or nearly-expired\n * token).\n */\n get mustRefresh(): boolean {\n return (\n token === null || token.expiresOnTimestamp - options.forcedRefreshWindowInMs < Date.now()\n );\n },\n };\n\n /**\n * Starts a refresh job or returns the existing job if one is already\n * running.\n */\n function refresh(getTokenOptions: GetTokenOptions): Promise {\n if (!cycler.isRefreshing) {\n // We bind `scopes` here to avoid passing it around a lot\n const tryGetAccessToken = (): Promise =>\n credential.getToken(scopes, getTokenOptions);\n\n // Take advantage of promise chaining to insert an assignment to `token`\n // before the refresh can be considered done.\n refreshWorker = beginRefresh(\n tryGetAccessToken,\n options.retryIntervalInMs,\n // If we don't have a token, then we should timeout immediately\n token?.expiresOnTimestamp ?? Date.now()\n )\n .then((_token) => {\n refreshWorker = null;\n token = _token;\n return token;\n })\n .catch((reason) => {\n // We also should reset the refresher if we enter a failed state. All\n // existing awaiters will throw, but subsequent requests will start a\n // new retry chain.\n refreshWorker = null;\n token = null;\n throw reason;\n });\n }\n\n return refreshWorker as Promise;\n }\n\n return async (tokenOptions: GetTokenOptions): Promise => {\n //\n // Simple rules:\n // - If we MUST refresh, then return the refresh task, blocking\n // the pipeline until a token is available.\n // - If we SHOULD refresh, then run refresh but don't return it\n // (we can still use the cached token).\n // - Return the token, since it's fine if we didn't return in\n // step 1.\n //\n\n if (cycler.mustRefresh) return refresh(tokenOptions);\n\n if (cycler.shouldRefresh) {\n refresh(tokenOptions);\n }\n\n return token as AccessToken;\n };\n}\n\n// #endregion\n\n/**\n * Creates a new factory for a RequestPolicy that applies a bearer token to\n * the requests' `Authorization` headers.\n *\n * @param credential - The TokenCredential implementation that can supply the bearer token.\n * @param scopes - The scopes for which the bearer token applies.\n */\nexport function bearerTokenAuthenticationPolicy(\n credential: TokenCredential,\n scopes: string | string[]\n): RequestPolicyFactory {\n // This simple function encapsulates the entire process of reliably retrieving the token\n const getToken = createTokenCycler(credential, scopes /* , options */);\n\n class BearerTokenAuthenticationPolicy extends BaseRequestPolicy {\n public constructor(nextPolicy: RequestPolicy, options: RequestPolicyOptions) {\n super(nextPolicy, options);\n }\n\n public async sendRequest(webResource: WebResourceLike): Promise {\n if (!webResource.url.toLowerCase().startsWith(\"https://\")) {\n throw new Error(\n \"Bearer token authentication is not permitted for non-TLS protected (non-https) URLs.\"\n );\n }\n\n const { token } = await getToken({\n abortSignal: webResource.abortSignal,\n tracingOptions: {\n tracingContext: webResource.tracingContext,\n },\n });\n webResource.headers.set(Constants.HeaderConstants.AUTHORIZATION, `Bearer ${token}`);\n return this._nextPolicy.sendRequest(webResource);\n }\n }\n\n return {\n create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions) => {\n return new BearerTokenAuthenticationPolicy(nextPolicy, options);\n },\n };\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { HttpResponse } from \"@azure/core-http\";\n\nimport {\n BlobDownloadResponseModel,\n BlobType,\n CopyStatusType,\n LeaseDurationType,\n LeaseStateType,\n LeaseStatusType,\n BlobDownloadHeaders,\n BlobQueryResponseModel,\n} from \"./generatedModels\";\nimport { Metadata } from \"./models\";\nimport { BlobQuickQueryStreamOptions } from \"./utils/BlobQuickQueryStream\";\n\n/**\n * ONLY AVAILABLE IN BROWSER RUNTIME.\n *\n * BlobQueryResponse implements BlobDownloadResponseModel interface, and in browser runtime it will\n * parse avor data returned by blob query.\n */\nexport class BlobQueryResponse implements BlobDownloadResponseModel {\n /**\n * Indicates that the service supports\n * requests for partial file content.\n *\n * @readonly\n */\n public get acceptRanges(): string | undefined {\n return this.originalResponse.acceptRanges;\n }\n\n /**\n * Returns if it was previously specified\n * for the file.\n *\n * @readonly\n */\n public get cacheControl(): string | undefined {\n return this.originalResponse.cacheControl;\n }\n\n /**\n * Returns the value that was specified\n * for the 'x-ms-content-disposition' header and specifies how to process the\n * response.\n *\n * @readonly\n */\n public get contentDisposition(): string | undefined {\n return this.originalResponse.contentDisposition;\n }\n\n /**\n * Returns the value that was specified\n * for the Content-Encoding request header.\n *\n * @readonly\n */\n public get contentEncoding(): string | undefined {\n return this.originalResponse.contentEncoding;\n }\n\n /**\n * Returns the value that was specified\n * for the Content-Language request header.\n *\n * @readonly\n */\n public get contentLanguage(): string | undefined {\n return this.originalResponse.contentLanguage;\n }\n\n /**\n * The current sequence number for a\n * page blob. This header is not returned for block blobs or append blobs.\n *\n * @readonly\n */\n public get blobSequenceNumber(): number | undefined {\n return this.originalResponse.blobSequenceNumber;\n }\n\n /**\n * The blob's type. Possible values include:\n * 'BlockBlob', 'PageBlob', 'AppendBlob'.\n *\n * @readonly\n */\n public get blobType(): BlobType | undefined {\n return this.originalResponse.blobType;\n }\n\n /**\n * The number of bytes present in the\n * response body.\n *\n * @readonly\n */\n public get contentLength(): number | undefined {\n return this.originalResponse.contentLength;\n }\n\n /**\n * If the file has an MD5 hash and the\n * request is to read the full file, this response header is returned so that\n * the client can check for message content integrity. If the request is to\n * read a specified range and the 'x-ms-range-get-content-md5' is set to\n * true, then the request returns an MD5 hash for the range, as long as the\n * range size is less than or equal to 4 MB. If neither of these sets of\n * conditions is true, then no value is returned for the 'Content-MD5'\n * header.\n *\n * @readonly\n */\n public get contentMD5(): Uint8Array | undefined {\n return this.originalResponse.contentMD5;\n }\n\n /**\n * Indicates the range of bytes returned if\n * the client requested a subset of the file by setting the Range request\n * header.\n *\n * @readonly\n */\n public get contentRange(): string | undefined {\n return this.originalResponse.contentRange;\n }\n\n /**\n * The content type specified for the file.\n * The default content type is 'application/octet-stream'\n *\n * @readonly\n */\n public get contentType(): string | undefined {\n return this.originalResponse.contentType;\n }\n\n /**\n * Conclusion time of the last attempted\n * Copy File operation where this file was the destination file. This value\n * can specify the time of a completed, aborted, or failed copy attempt.\n *\n * @readonly\n */\n public get copyCompletedOn(): Date | undefined {\n return undefined;\n }\n\n /**\n * String identifier for the last attempted Copy\n * File operation where this file was the destination file.\n *\n * @readonly\n */\n public get copyId(): string | undefined {\n return this.originalResponse.copyId;\n }\n\n /**\n * Contains the number of bytes copied and\n * the total bytes in the source in the last attempted Copy File operation\n * where this file was the destination file. Can show between 0 and\n * Content-Length bytes copied.\n *\n * @readonly\n */\n public get copyProgress(): string | undefined {\n return this.originalResponse.copyProgress;\n }\n\n /**\n * URL up to 2KB in length that specifies the\n * source file used in the last attempted Copy File operation where this file\n * was the destination file.\n *\n * @readonly\n */\n public get copySource(): string | undefined {\n return this.originalResponse.copySource;\n }\n\n /**\n * State of the copy operation\n * identified by 'x-ms-copy-id'. Possible values include: 'pending',\n * 'success', 'aborted', 'failed'\n *\n * @readonly\n */\n public get copyStatus(): CopyStatusType | undefined {\n return this.originalResponse.copyStatus;\n }\n\n /**\n * Only appears when\n * x-ms-copy-status is failed or pending. Describes cause of fatal or\n * non-fatal copy operation failure.\n *\n * @readonly\n */\n public get copyStatusDescription(): string | undefined {\n return this.originalResponse.copyStatusDescription;\n }\n\n /**\n * When a blob is leased,\n * specifies whether the lease is of infinite or fixed duration. Possible\n * values include: 'infinite', 'fixed'.\n *\n * @readonly\n */\n public get leaseDuration(): LeaseDurationType | undefined {\n return this.originalResponse.leaseDuration;\n }\n\n /**\n * Lease state of the blob. Possible\n * values include: 'available', 'leased', 'expired', 'breaking', 'broken'.\n *\n * @readonly\n */\n public get leaseState(): LeaseStateType | undefined {\n return this.originalResponse.leaseState;\n }\n\n /**\n * The current lease status of the\n * blob. Possible values include: 'locked', 'unlocked'.\n *\n * @readonly\n */\n public get leaseStatus(): LeaseStatusType | undefined {\n return this.originalResponse.leaseStatus;\n }\n\n /**\n * A UTC date/time value generated by the service that\n * indicates the time at which the response was initiated.\n *\n * @readonly\n */\n public get date(): Date | undefined {\n return this.originalResponse.date;\n }\n\n /**\n * The number of committed blocks\n * present in the blob. This header is returned only for append blobs.\n *\n * @readonly\n */\n public get blobCommittedBlockCount(): number | undefined {\n return this.originalResponse.blobCommittedBlockCount;\n }\n\n /**\n * The ETag contains a value that you can use to\n * perform operations conditionally, in quotes.\n *\n * @readonly\n */\n public get etag(): string | undefined {\n return this.originalResponse.etag;\n }\n\n /**\n * The error code.\n *\n * @readonly\n */\n public get errorCode(): string | undefined {\n return this.originalResponse.errorCode;\n }\n\n /**\n * The value of this header is set to\n * true if the file data and application metadata are completely encrypted\n * using the specified algorithm. Otherwise, the value is set to false (when\n * the file is unencrypted, or if only parts of the file/application metadata\n * are encrypted).\n *\n * @readonly\n */\n public get isServerEncrypted(): boolean | undefined {\n return this.originalResponse.isServerEncrypted;\n }\n\n /**\n * If the blob has a MD5 hash, and if\n * request contains range header (Range or x-ms-range), this response header\n * is returned with the value of the whole blob's MD5 value. This value may\n * or may not be equal to the value returned in Content-MD5 header, with the\n * latter calculated from the requested range.\n *\n * @readonly\n */\n public get blobContentMD5(): Uint8Array | undefined {\n return this.originalResponse.blobContentMD5;\n }\n\n /**\n * Returns the date and time the file was last\n * modified. Any operation that modifies the file or its properties updates\n * the last modified time.\n *\n * @readonly\n */\n public get lastModified(): Date | undefined {\n return this.originalResponse.lastModified;\n }\n\n /**\n * A name-value pair\n * to associate with a file storage object.\n *\n * @readonly\n */\n public get metadata(): Metadata | undefined {\n return this.originalResponse.metadata;\n }\n\n /**\n * This header uniquely identifies the request\n * that was made and can be used for troubleshooting the request.\n *\n * @readonly\n */\n public get requestId(): string | undefined {\n return this.originalResponse.requestId;\n }\n\n /**\n * If a client request id header is sent in the request, this header will be present in the\n * response with the same value.\n *\n * @readonly\n */\n public get clientRequestId(): string | undefined {\n return this.originalResponse.clientRequestId;\n }\n\n /**\n * Indicates the version of the File service used\n * to execute the request.\n *\n * @readonly\n */\n public get version(): string | undefined {\n return this.originalResponse.version;\n }\n\n /**\n * The SHA-256 hash of the encryption key used to encrypt the blob. This value is only returned\n * when the blob was encrypted with a customer-provided key.\n *\n * @readonly\n */\n public get encryptionKeySha256(): string | undefined {\n return this.originalResponse.encryptionKeySha256;\n }\n\n /**\n * If the request is to read a specified range and the x-ms-range-get-content-crc64 is set to\n * true, then the request returns a crc64 for the range, as long as the range size is less than\n * or equal to 4 MB. If both x-ms-range-get-content-crc64 & x-ms-range-get-content-md5 is\n * specified in the same request, it will fail with 400(Bad Request)\n */\n public get contentCrc64(): Uint8Array | undefined {\n return this.originalResponse.contentCrc64;\n }\n\n /**\n * The response body as a browser Blob.\n * Always undefined in node.js.\n *\n * @readonly\n */\n public get blobBody(): Promise | undefined {\n throw Error(`Quick query in browser is not supported yet.`);\n }\n\n /**\n * The response body as a node.js Readable stream.\n * Always undefined in the browser.\n *\n * @readonly\n */\n public get readableStreamBody(): NodeJS.ReadableStream | undefined {\n return undefined;\n }\n\n /**\n * The HTTP response.\n */\n public get _response(): HttpResponse & {\n parsedHeaders: BlobDownloadHeaders;\n } {\n return this.originalResponse._response;\n }\n\n private originalResponse: BlobQueryResponseModel;\n\n /**\n * Creates an instance of BlobQueryResponse.\n *\n * @param originalResponse -\n * @param options -\n */\n public constructor(\n originalResponse: BlobQueryResponseModel,\n _options: BlobQuickQueryStreamOptions = {}\n ) {\n this.originalResponse = originalResponse;\n }\n}\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n const method = (replace || isDuplicateNavigation) ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\", // TODO: deprecate\n activeStyle, // TODO: deprecate\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n let className =\n typeof classNameProp === \"function\"\n ? classNameProp(isActive)\n : classNameProp;\n\n let style =\n typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = { ...style, ...activeStyle };\n }\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\",\n \"false\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n };\n}\n\nexport default NavLink;\n","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// // Licensed under the MIT License.\r\nimport { _DYN_CONFIG, _DYN_CREATE_NEW, _DYN_FLUSH, _DYN_IDENTIFIER, _DYN_LENGTH, _DYN_ON_COMPLETE, _DYN_PROCESS_NEXT, _DYN_PUSH } from \"../__DynamicConstants\";\r\nimport { arrForEach, isArray, objFreeze, throwError } from \"./HelperFuncs\";\r\nimport { STR_PRIORITY } from \"./InternalConstants\";\r\nimport { createProcessTelemetryContext, createTelemetryProxyChain } from \"./ProcessTelemetryContext\";\r\nimport { initializePlugins } from \"./TelemetryHelpers\";\r\nexport var ChannelControllerPriority = 500;\r\nvar ChannelValidationMessage = \"Channel has invalid priority - \";\r\nfunction _addChannelQueue(channelQueue, queue, core) {\r\n if (queue && isArray(queue) && queue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n queue = queue.sort(function (a, b) {\r\n return a[STR_PRIORITY /* @min:%2epriority */] - b[STR_PRIORITY /* @min:%2epriority */];\r\n });\r\n arrForEach(queue, function (queueItem) {\r\n if (queueItem[STR_PRIORITY /* @min:%2epriority */] < ChannelControllerPriority) {\r\n throwError(ChannelValidationMessage + queueItem[_DYN_IDENTIFIER /* @min:%2eidentifier */]);\r\n }\r\n });\r\n channelQueue[_DYN_PUSH /* @min:%2epush */]({\r\n queue: objFreeze(queue),\r\n chain: createTelemetryProxyChain(queue, core[_DYN_CONFIG /* @min:%2econfig */], core)\r\n });\r\n }\r\n}\r\nexport function createChannelControllerPlugin(channelQueue, core) {\r\n function _getTelCtx() {\r\n return createProcessTelemetryContext(null, core[_DYN_CONFIG /* @min:%2econfig */], core, null);\r\n }\r\n function _processChannelQueue(theChannels, itemCtx, processFn, onComplete) {\r\n var waiting = theChannels ? (theChannels[_DYN_LENGTH /* @min:%2elength */] + 1) : 1;\r\n function _runChainOnComplete() {\r\n waiting--;\r\n if (waiting === 0) {\r\n onComplete && onComplete();\r\n onComplete = null;\r\n }\r\n }\r\n if (waiting > 0) {\r\n arrForEach(theChannels, function (channels) {\r\n // pass on to first item in queue\r\n if (channels && channels.queue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var channelChain = channels.chain;\r\n var chainCtx = itemCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](channelChain);\r\n chainCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](_runChainOnComplete);\r\n // Cause this chain to start processing\r\n processFn(chainCtx);\r\n }\r\n else {\r\n waiting--;\r\n }\r\n });\r\n }\r\n _runChainOnComplete();\r\n }\r\n function _doUpdate(updateCtx, updateState) {\r\n var theUpdateState = updateState || {\r\n reason: 0 /* TelemetryUpdateReason.Unknown */\r\n };\r\n _processChannelQueue(channelQueue, updateCtx, function (chainCtx) {\r\n chainCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](theUpdateState);\r\n }, function () {\r\n updateCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](theUpdateState);\r\n });\r\n return true;\r\n }\r\n function _doTeardown(unloadCtx, unloadState) {\r\n var theUnloadState = unloadState || {\r\n reason: 0 /* TelemetryUnloadReason.ManualTeardown */,\r\n isAsync: false\r\n };\r\n _processChannelQueue(channelQueue, unloadCtx, function (chainCtx) {\r\n chainCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](theUnloadState);\r\n }, function () {\r\n unloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](theUnloadState);\r\n isInitialized = false;\r\n });\r\n return true;\r\n }\r\n function _getChannel(pluginIdentifier) {\r\n var thePlugin = null;\r\n if (channelQueue && channelQueue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(channelQueue, function (channels) {\r\n // pass on to first item in queue\r\n if (channels && channels.queue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(channels.queue, function (ext) {\r\n if (ext[_DYN_IDENTIFIER /* @min:%2eidentifier */] === pluginIdentifier) {\r\n thePlugin = ext;\r\n // Cause arrForEach to stop iterating\r\n return -1;\r\n }\r\n });\r\n if (thePlugin) {\r\n // Cause arrForEach to stop iterating\r\n return -1;\r\n }\r\n }\r\n });\r\n }\r\n return thePlugin;\r\n }\r\n var isInitialized = false;\r\n var channelController = {\r\n identifier: \"ChannelControllerPlugin\",\r\n priority: ChannelControllerPriority,\r\n initialize: function (config, core, extensions, pluginChain) {\r\n isInitialized = true;\r\n arrForEach(channelQueue, function (channels) {\r\n if (channels && channels.queue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n initializePlugins(createProcessTelemetryContext(channels.chain, config, core), extensions);\r\n }\r\n });\r\n },\r\n isInitialized: function () {\r\n return isInitialized;\r\n },\r\n processTelemetry: function (item, itemCtx) {\r\n _processChannelQueue(channelQueue, itemCtx || _getTelCtx(), function (chainCtx) {\r\n chainCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](item);\r\n }, function () {\r\n itemCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](item);\r\n });\r\n },\r\n update: _doUpdate,\r\n pause: function () {\r\n _processChannelQueue(channelQueue, _getTelCtx(), function (chainCtx) {\r\n chainCtx.iterate(function (plugin) {\r\n plugin.pause && plugin.pause();\r\n });\r\n }, null);\r\n },\r\n resume: function () {\r\n _processChannelQueue(channelQueue, _getTelCtx(), function (chainCtx) {\r\n chainCtx.iterate(function (plugin) {\r\n plugin.resume && plugin.resume();\r\n });\r\n }, null);\r\n },\r\n teardown: _doTeardown,\r\n getChannel: _getChannel,\r\n flush: function (isAsync, callBack, sendReason, cbTimeout) {\r\n // Setting waiting to one so that we don't call the callBack until we finish iterating\r\n var waiting = 1;\r\n var doneIterating = false;\r\n var cbTimer = null;\r\n cbTimeout = cbTimeout || 5000;\r\n function doCallback() {\r\n waiting--;\r\n if (doneIterating && waiting === 0) {\r\n if (cbTimer) {\r\n clearTimeout(cbTimer);\r\n cbTimer = null;\r\n }\r\n callBack && callBack(doneIterating);\r\n callBack = null;\r\n }\r\n }\r\n _processChannelQueue(channelQueue, _getTelCtx(), function (chainCtx) {\r\n chainCtx.iterate(function (plugin) {\r\n if (plugin[_DYN_FLUSH /* @min:%2eflush */]) {\r\n waiting++;\r\n var handled_1 = false;\r\n // Not all channels will call this callback for every scenario\r\n if (!plugin[_DYN_FLUSH /* @min:%2eflush */](isAsync, function () {\r\n handled_1 = true;\r\n doCallback();\r\n }, sendReason)) {\r\n if (!handled_1) {\r\n // If any channel doesn't return true and it didn't call the callback, then we should assume that the callback\r\n // will never be called, so use a timeout to allow the channel(s) some time to \"finish\" before triggering any\r\n // followup function (such as unloading)\r\n if (isAsync && cbTimer == null) {\r\n cbTimer = setTimeout(function () {\r\n cbTimer = null;\r\n doCallback();\r\n }, cbTimeout);\r\n }\r\n else {\r\n doCallback();\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }, function () {\r\n doneIterating = true;\r\n doCallback();\r\n });\r\n return true;\r\n },\r\n _setQueue: function (queue) {\r\n channelQueue = queue;\r\n }\r\n };\r\n return channelController;\r\n}\r\nexport function createChannelQueues(channels, extensions, core) {\r\n var channelQueue = [];\r\n if (channels) {\r\n // Add and sort the configuration channel queues\r\n arrForEach(channels, function (queue) { return _addChannelQueue(channelQueue, queue, core); });\r\n }\r\n if (extensions) {\r\n // Create a new channel queue for any extensions with a priority > the ChannelControllerPriority\r\n var extensionQueue_1 = [];\r\n arrForEach(extensions, function (plugin) {\r\n if (plugin[STR_PRIORITY /* @min:%2epriority */] > ChannelControllerPriority) {\r\n extensionQueue_1[_DYN_PUSH /* @min:%2epush */](plugin);\r\n }\r\n });\r\n _addChannelQueue(channelQueue, extensionQueue_1, core);\r\n }\r\n return channelQueue;\r\n}\r\n//# sourceMappingURL=ChannelController.js.map","// // Copyright (c) Microsoft Corporation. All rights reserved.\r\n// // Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _DYN_APPLY, _DYN_DIAG_LOG, _DYN_LENGTH, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_SPLICE, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { BaseTelemetryPlugin } from \"./BaseTelemetryPlugin\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { dumpObj } from \"./EnvUtils\";\r\nimport { arrForEach, getExceptionName } from \"./HelperFuncs\";\r\nimport { STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nvar TelemetryInitializerPlugin = /** @class */ (function (_super) {\r\n __extends(TelemetryInitializerPlugin, _super);\r\n function TelemetryInitializerPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = \"TelemetryInitializerPlugin\";\r\n _this.priority = 199;\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _id;\r\n var _initializers;\r\n _initDefaults();\r\n dynamicProto(TelemetryInitializerPlugin, _this, function (_self, _base) {\r\n _self.addTelemetryInitializer = function (telemetryInitializer) {\r\n var theInitializer = {\r\n id: _id++,\r\n fn: telemetryInitializer\r\n };\r\n _initializers[_DYN_PUSH /* @min:%2epush */](theInitializer);\r\n var handler = {\r\n remove: function () {\r\n arrForEach(_initializers, function (initializer, idx) {\r\n if (initializer.id === theInitializer.id) {\r\n _initializers[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n return -1;\r\n }\r\n });\r\n }\r\n };\r\n return handler;\r\n };\r\n _self[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */] = function (item, itemCtx) {\r\n var doNotSendItem = false;\r\n var telemetryInitializersCount = _initializers[_DYN_LENGTH /* @min:%2elength */];\r\n for (var i = 0; i < telemetryInitializersCount; ++i) {\r\n var telemetryInitializer = _initializers[i];\r\n if (telemetryInitializer) {\r\n try {\r\n if (telemetryInitializer.fn[_DYN_APPLY /* @min:%2eapply */](null, [item]) === false) {\r\n doNotSendItem = true;\r\n break;\r\n }\r\n }\r\n catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n _throwInternal(itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"One of telemetry initializers failed, telemetry item will not be sent: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n }\r\n }\r\n if (!doNotSendItem) {\r\n _self[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](item, itemCtx);\r\n }\r\n };\r\n _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] = function () {\r\n _initDefaults();\r\n };\r\n });\r\n function _initDefaults() {\r\n _id = 0;\r\n _initializers = [];\r\n }\r\n return _this;\r\n }\r\n /**\r\n * Add a telemetry processor to decorate or drop telemetry events.\r\n * @param telemetryInitializer - The Telemetry Initializer function\r\n * @returns - A ITelemetryInitializerHandler to enable the initializer to be removed\r\n */\r\n TelemetryInitializerPlugin.prototype.addTelemetryInitializer = function (telemetryInitializer) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n TelemetryInitializerPlugin.prototype.processTelemetry = function (env, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return TelemetryInitializerPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { TelemetryInitializerPlugin };\r\n//# sourceMappingURL=TelemetryInitializerPlugin.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { __spreadArray } from \"tslib\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { objCreateFn } from \"@microsoft/applicationinsights-shims\";\r\nimport { _DYN_ADD_NOTIFICATION_LIS1, _DYN_CONFIG, _DYN_FLUSH, _DYN_GET_NOTIFY_MGR, _DYN_GET_PLUGIN, _DYN_GET_PROCESS_TEL_CONT0, _DYN_IDENTIFIER, _DYN_INITIALIZE, _DYN_INSTRUMENTATION_KEY, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_LOGGER, _DYN_MESSAGE, _DYN_MESSAGE_ID, _DYN_NAME, _DYN_ON_COMPLETE, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_REMOVE_NOTIFICATION_2, _DYN_SET_ENABLED, _DYN_SPLICE, _DYN_STOP_POLLING_INTERNA3, _DYN_TEARDOWN, _DYN_TIME, _DYN__EXTENSIONS } from \"../__DynamicConstants\";\r\nimport { ChannelControllerPriority, createChannelControllerPlugin, createChannelQueues } from \"./ChannelController\";\r\nimport { createCookieMgr } from \"./CookieMgr\";\r\nimport { createUniqueNamespace } from \"./DataCacheHelper\";\r\nimport { getDebugListener } from \"./DbgExtensionUtils\";\r\nimport { DiagnosticLogger, _InternalLogMessage, _throwInternal, _warnToConsole } from \"./DiagnosticLogger\";\r\nimport { arrForEach, arrIndexOf, getCfgValue, getSetValue, isFunction, isNullOrUndefined, objExtend, objFreeze, proxyFunctionAs, proxyFunctions, throwError, toISOString } from \"./HelperFuncs\";\r\nimport { STR_CHANNELS, STR_CORE, STR_CREATE_PERF_MGR, STR_DISABLED, STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_EVENTS_SENT, STR_EXTENSIONS, STR_EXTENSION_CONFIG, STR_GET_PERF_MGR, STR_PRIORITY } from \"./InternalConstants\";\r\nimport { PerfManager, getGblPerfMgr } from \"./PerfManager\";\r\nimport { createProcessTelemetryContext, createProcessTelemetryUnloadContext, createProcessTelemetryUpdateContext, createTelemetryProxyChain } from \"./ProcessTelemetryContext\";\r\nimport { _getPluginState, createDistributedTraceContext, initializePlugins, sortPlugins } from \"./TelemetryHelpers\";\r\nimport { TelemetryInitializerPlugin } from \"./TelemetryInitializerPlugin\";\r\nimport { createUnloadHandlerContainer } from \"./UnloadHandlerContainer\";\r\nvar strValidationError = \"Plugins must provide initialize method\";\r\nvar strNotificationManager = \"_notificationManager\";\r\nvar strSdkUnloadingError = \"SDK is still unloading...\";\r\nvar strSdkNotInitialized = \"SDK is not initialized\";\r\n// const strPluginUnloadFailed = \"Failed to unload plugin\";\r\nvar defaultInitConfig = {\r\n // Have the Diagnostic Logger default to log critical errors to the console\r\n loggingLevelConsole: 1 /* eLoggingSeverity.CRITICAL */\r\n};\r\n/**\r\n * Helper to create the default performance manager\r\n * @param core\r\n * @param notificationMgr\r\n */\r\nfunction _createPerfManager(core, notificationMgr) {\r\n return new PerfManager(notificationMgr);\r\n}\r\nfunction _validateExtensions(logger, channelPriority, allExtensions) {\r\n var _a;\r\n // Concat all available extensions\r\n var coreExtensions = [];\r\n // Check if any two extensions have the same priority, then warn to console\r\n // And extract the local extensions from the\r\n var extPriorities = {};\r\n // Extension validation\r\n arrForEach(allExtensions, function (ext) {\r\n // Check for ext.initialize\r\n if (isNullOrUndefined(ext) || isNullOrUndefined(ext[_DYN_INITIALIZE /* @min:%2einitialize */])) {\r\n throwError(strValidationError);\r\n }\r\n var extPriority = ext[STR_PRIORITY /* @min:%2epriority */];\r\n var identifier = ext[_DYN_IDENTIFIER /* @min:%2eidentifier */];\r\n if (ext && extPriority) {\r\n if (!isNullOrUndefined(extPriorities[extPriority])) {\r\n _warnToConsole(logger, \"Two extensions have same priority #\" + extPriority + \" - \" + extPriorities[extPriority] + \", \" + identifier);\r\n }\r\n else {\r\n // set a value\r\n extPriorities[extPriority] = identifier;\r\n }\r\n }\r\n // Split extensions to core and channelController\r\n if (!extPriority || extPriority < channelPriority) {\r\n // Add to core extension that will be managed by BaseCore\r\n coreExtensions[_DYN_PUSH /* @min:%2epush */](ext);\r\n }\r\n });\r\n return _a = {\r\n all: allExtensions\r\n },\r\n _a[STR_CORE /* @min:core */] = coreExtensions,\r\n _a;\r\n}\r\nfunction _isPluginPresent(thePlugin, plugins) {\r\n var exists = false;\r\n arrForEach(plugins, function (plugin) {\r\n if (plugin === thePlugin) {\r\n exists = true;\r\n return -1;\r\n }\r\n });\r\n return exists;\r\n}\r\nfunction _createDummyNotificationManager() {\r\n var _a;\r\n return objCreateFn((_a = {},\r\n _a[_DYN_ADD_NOTIFICATION_LIS1 /* @min:addNotificationListener */] = function (listener) { },\r\n _a[_DYN_REMOVE_NOTIFICATION_2 /* @min:removeNotificationListener */] = function (listener) { },\r\n _a[STR_EVENTS_SENT /* @min:eventsSent */] = function (events) { },\r\n _a[STR_EVENTS_DISCARDED /* @min:eventsDiscarded */] = function (events, reason) { },\r\n _a[STR_EVENTS_SEND_REQUEST /* @min:eventsSendRequest */] = function (sendReason, isAsync) { },\r\n _a));\r\n}\r\nvar BaseCore = /** @class */ (function () {\r\n function BaseCore() {\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _config;\r\n var _isInitialized;\r\n var _eventQueue;\r\n var _notificationManager;\r\n var _perfManager;\r\n var _cfgPerfManager;\r\n var _cookieManager;\r\n var _pluginChain;\r\n var _configExtensions;\r\n var _coreExtensions;\r\n var _channelControl;\r\n var _channelConfig;\r\n var _channelQueue;\r\n var _isUnloading;\r\n var _telemetryInitializerPlugin;\r\n var _internalLogsEventName;\r\n var _evtNamespace;\r\n var _unloadHandlers;\r\n var _debugListener;\r\n var _traceCtx;\r\n /**\r\n * Internal log poller\r\n */\r\n var _internalLogPoller = 0;\r\n dynamicProto(BaseCore, this, function (_self) {\r\n // Set the default values (also called during teardown)\r\n _initDefaults();\r\n _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = function () { return _isInitialized; };\r\n // Creating the self.initialize = ()\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, extensions, logger, notificationManager) {\r\n if (_isUnloading) {\r\n throwError(strSdkUnloadingError);\r\n }\r\n // Make sure core is only initialized once\r\n if (_self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]()) {\r\n throwError(\"Core should not be initialized more than once\");\r\n }\r\n _config = config || {};\r\n _self[_DYN_CONFIG /* @min:%2econfig */] = _config;\r\n if (isNullOrUndefined(config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */])) {\r\n throwError(\"Please provide instrumentation key\");\r\n }\r\n _notificationManager = notificationManager;\r\n // For backward compatibility only\r\n _self[strNotificationManager] = notificationManager;\r\n _initDebugListener();\r\n _initPerfManager();\r\n // add notification to the extensions in the config so other plugins can access it\r\n _initExtConfig();\r\n if (logger) {\r\n _self[_DYN_LOGGER /* @min:%2elogger */] = logger;\r\n }\r\n var cfgExtensions = getSetValue(_config, STR_EXTENSIONS, []);\r\n // Extension validation\r\n _configExtensions = [];\r\n _configExtensions[_DYN_PUSH /* @min:%2epush */].apply(_configExtensions, __spreadArray(__spreadArray([], extensions, false), cfgExtensions, false));\r\n _channelConfig = getSetValue(_config, STR_CHANNELS, []);\r\n _initPluginChain(null);\r\n if (!_channelQueue || _channelQueue[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n throwError(\"No \" + STR_CHANNELS + \" available\");\r\n }\r\n _isInitialized = true;\r\n _self.releaseQueue();\r\n };\r\n _self.getTransmissionControls = function () {\r\n var controls = [];\r\n if (_channelQueue) {\r\n arrForEach(_channelQueue, function (channels) {\r\n controls[_DYN_PUSH /* @min:%2epush */](channels.queue);\r\n });\r\n }\r\n return objFreeze(controls);\r\n };\r\n _self.track = function (telemetryItem) {\r\n // setup default iKey if not passed in\r\n telemetryItem.iKey = telemetryItem.iKey || _config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n // add default timestamp if not passed in\r\n telemetryItem[_DYN_TIME /* @min:%2etime */] = telemetryItem[_DYN_TIME /* @min:%2etime */] || toISOString(new Date());\r\n // Common Schema 4.0\r\n telemetryItem.ver = telemetryItem.ver || \"4.0\";\r\n if (!_isUnloading && _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]()) {\r\n // Process the telemetry plugin chain\r\n _createTelCtx()[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](telemetryItem);\r\n }\r\n else {\r\n // Queue events until all extensions are initialized\r\n _eventQueue[_DYN_PUSH /* @min:%2epush */](telemetryItem);\r\n }\r\n };\r\n _self[_DYN_GET_PROCESS_TEL_CONT0 /* @min:%2egetProcessTelContext */] = _createTelCtx;\r\n _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */] = function () {\r\n if (!_notificationManager) {\r\n // Create Dummy notification manager\r\n _notificationManager = _createDummyNotificationManager();\r\n // For backward compatibility only\r\n _self[strNotificationManager] = _notificationManager;\r\n }\r\n return _notificationManager;\r\n };\r\n /**\r\n * Adds a notification listener. The SDK calls methods on the listener when an appropriate notification is raised.\r\n * The added plugins must raise notifications. If the plugins do not implement the notifications, then no methods will be\r\n * called.\r\n * @param {INotificationListener} listener - An INotificationListener object.\r\n */\r\n _self[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */] = function (listener) {\r\n if (_notificationManager) {\r\n _notificationManager[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */](listener);\r\n }\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param {INotificationListener} listener - INotificationListener to remove.\r\n */\r\n _self[_DYN_REMOVE_NOTIFICATION_2 /* @min:%2eremoveNotificationListener */] = function (listener) {\r\n if (_notificationManager) {\r\n _notificationManager[_DYN_REMOVE_NOTIFICATION_2 /* @min:%2eremoveNotificationListener */](listener);\r\n }\r\n };\r\n _self.getCookieMgr = function () {\r\n if (!_cookieManager) {\r\n _cookieManager = createCookieMgr(_config, _self[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return _cookieManager;\r\n };\r\n _self.setCookieMgr = function (cookieMgr) {\r\n _cookieManager = cookieMgr;\r\n };\r\n _self[STR_GET_PERF_MGR /* @min:%2egetPerfMgr */] = function () {\r\n if (!_perfManager && !_cfgPerfManager) {\r\n if (getCfgValue(_config.enablePerfMgr)) {\r\n var createPerfMgr = getCfgValue(_config[STR_CREATE_PERF_MGR /* @min:%2ecreatePerfMgr */]);\r\n if (isFunction(createPerfMgr)) {\r\n _cfgPerfManager = createPerfMgr(_self, _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */]());\r\n }\r\n }\r\n }\r\n return _perfManager || _cfgPerfManager || getGblPerfMgr();\r\n };\r\n _self.setPerfMgr = function (perfMgr) {\r\n _perfManager = perfMgr;\r\n };\r\n _self.eventCnt = function () {\r\n return _eventQueue[_DYN_LENGTH /* @min:%2elength */];\r\n };\r\n _self.releaseQueue = function () {\r\n if (_isInitialized && _eventQueue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var eventQueue = _eventQueue;\r\n _eventQueue = [];\r\n arrForEach(eventQueue, function (event) {\r\n _createTelCtx()[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](event);\r\n });\r\n }\r\n };\r\n /**\r\n * Periodically check logger.queue for log messages to be flushed\r\n */\r\n _self.pollInternalLogs = function (eventName) {\r\n _internalLogsEventName = eventName || null;\r\n var interval = getCfgValue(_config.diagnosticLogInterval);\r\n if (!interval || !(interval > 0)) {\r\n interval = 10000;\r\n }\r\n if (_internalLogPoller) {\r\n clearInterval(_internalLogPoller);\r\n }\r\n _internalLogPoller = setInterval(function () {\r\n _flushInternalLogs();\r\n }, interval);\r\n return _internalLogPoller;\r\n };\r\n /**\r\n * Stop polling log messages from logger.queue\r\n */\r\n _self[_DYN_STOP_POLLING_INTERNA3 /* @min:%2estopPollingInternalLogs */] = function () {\r\n if (_internalLogPoller) {\r\n clearInterval(_internalLogPoller);\r\n _internalLogPoller = 0;\r\n _flushInternalLogs();\r\n }\r\n };\r\n // Add addTelemetryInitializer\r\n proxyFunctions(_self, function () { return _telemetryInitializerPlugin; }, [\"addTelemetryInitializer\"]);\r\n _self.unload = function (isAsync, unloadComplete, cbTimeout) {\r\n var _a;\r\n if (isAsync === void 0) { isAsync = true; }\r\n if (!_isInitialized) {\r\n // The SDK is not initialized\r\n throwError(strSdkNotInitialized);\r\n }\r\n // Check if the SDK still unloading so throw\r\n if (_isUnloading) {\r\n // The SDK is already unloading\r\n throwError(strSdkUnloadingError);\r\n }\r\n var unloadState = (_a = {\r\n reason: 50 /* TelemetryUnloadReason.SdkUnload */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = isAsync,\r\n _a.flushComplete = false,\r\n _a);\r\n var processUnloadCtx = createProcessTelemetryUnloadContext(_getPluginChain(), _self);\r\n processUnloadCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](function () {\r\n _initDefaults();\r\n unloadComplete && unloadComplete(unloadState);\r\n }, _self);\r\n function _doUnload(flushComplete) {\r\n unloadState.flushComplete = flushComplete;\r\n _isUnloading = true;\r\n // Run all of the unload handlers first (before unloading the plugins)\r\n _unloadHandlers.run(processUnloadCtx, unloadState);\r\n // Stop polling the internal logs\r\n _self[_DYN_STOP_POLLING_INTERNA3 /* @min:%2estopPollingInternalLogs */]();\r\n // Start unloading the components, from this point onwards the SDK should be considered to be in an unstable state\r\n processUnloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n if (!_flushChannels(isAsync, _doUnload, 6 /* SendRequestReason.SdkUnload */, cbTimeout)) {\r\n _doUnload(false);\r\n }\r\n };\r\n _self[_DYN_GET_PLUGIN /* @min:%2egetPlugin */] = _getPlugin;\r\n _self.addPlugin = function (plugin, replaceExisting, isAsync, addCb) {\r\n if (!plugin) {\r\n addCb && addCb(false);\r\n _logOrThrowError(strValidationError);\r\n return;\r\n }\r\n var existingPlugin = _getPlugin(plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */]);\r\n if (existingPlugin && !replaceExisting) {\r\n addCb && addCb(false);\r\n _logOrThrowError(\"Plugin [\" + plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"] is already loaded!\");\r\n return;\r\n }\r\n var updateState = {\r\n reason: 16 /* TelemetryUpdateReason.PluginAdded */\r\n };\r\n function _addPlugin(removed) {\r\n _configExtensions[_DYN_PUSH /* @min:%2epush */](plugin);\r\n updateState.added = [plugin];\r\n // Re-Initialize the plugin chain\r\n _initPluginChain(updateState);\r\n addCb && addCb(true);\r\n }\r\n if (existingPlugin) {\r\n var removedPlugins_1 = [existingPlugin.plugin];\r\n var unloadState = {\r\n reason: 2 /* TelemetryUnloadReason.PluginReplace */,\r\n isAsync: !!isAsync\r\n };\r\n _removePlugins(removedPlugins_1, unloadState, function (removed) {\r\n if (!removed) {\r\n // Previous plugin was successfully removed or was not installed\r\n addCb && addCb(false);\r\n }\r\n else {\r\n updateState.removed = removedPlugins_1;\r\n updateState.reason |= 32 /* TelemetryUpdateReason.PluginRemoved */;\r\n _addPlugin(true);\r\n }\r\n });\r\n }\r\n else {\r\n _addPlugin(false);\r\n }\r\n };\r\n _self.evtNamespace = function () {\r\n return _evtNamespace;\r\n };\r\n _self[_DYN_FLUSH /* @min:%2eflush */] = _flushChannels;\r\n _self.getTraceCtx = function (createNew) {\r\n if (!_traceCtx) {\r\n _traceCtx = createDistributedTraceContext();\r\n }\r\n return _traceCtx;\r\n };\r\n _self.setTraceCtx = function (traceCtx) {\r\n _traceCtx = traceCtx || null;\r\n };\r\n // Create the addUnloadCb\r\n proxyFunctionAs(_self, \"addUnloadCb\", function () { return _unloadHandlers; }, \"add\");\r\n function _initDefaults() {\r\n _isInitialized = false;\r\n // Use a default logger so initialization errors are not dropped on the floor with full logging\r\n _config = objExtend(true, {}, defaultInitConfig);\r\n _self[_DYN_CONFIG /* @min:%2econfig */] = _config;\r\n _self[_DYN_LOGGER /* @min:%2elogger */] = new DiagnosticLogger(_config);\r\n _self[_DYN__EXTENSIONS /* @min:%2e_extensions */] = [];\r\n _telemetryInitializerPlugin = new TelemetryInitializerPlugin();\r\n _eventQueue = [];\r\n _notificationManager = null;\r\n _perfManager = null;\r\n _cfgPerfManager = null;\r\n _cookieManager = null;\r\n _pluginChain = null;\r\n _coreExtensions = null;\r\n _configExtensions = [];\r\n _channelControl = null;\r\n _channelConfig = null;\r\n _channelQueue = null;\r\n _isUnloading = false;\r\n _internalLogsEventName = null;\r\n _evtNamespace = createUniqueNamespace(\"AIBaseCore\", true);\r\n _unloadHandlers = createUnloadHandlerContainer();\r\n _traceCtx = null;\r\n }\r\n function _createTelCtx() {\r\n return createProcessTelemetryContext(_getPluginChain(), _config, _self);\r\n }\r\n // Initialize or Re-initialize the plugins\r\n function _initPluginChain(updateState) {\r\n // Extension validation\r\n var theExtensions = _validateExtensions(_self[_DYN_LOGGER /* @min:%2elogger */], ChannelControllerPriority, _configExtensions);\r\n _coreExtensions = theExtensions[STR_CORE /* @min:%2ecore */];\r\n _pluginChain = null;\r\n // Sort the complete set of extensions by priority\r\n var allExtensions = theExtensions.all;\r\n // Initialize the Channel Queues and the channel plugins first\r\n _channelQueue = objFreeze(createChannelQueues(_channelConfig, allExtensions, _self));\r\n if (_channelControl) {\r\n // During add / remove of a plugin this may get called again, so don't re-add if already present\r\n // But we also want the controller as the last, so remove if already present\r\n // And reusing the existing instance, just in case an installed plugin has a reference and\r\n // is using it.\r\n var idx = arrIndexOf(allExtensions, _channelControl);\r\n if (idx !== -1) {\r\n allExtensions[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n }\r\n idx = arrIndexOf(_coreExtensions, _channelControl);\r\n if (idx !== -1) {\r\n _coreExtensions[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n }\r\n _channelControl._setQueue(_channelQueue);\r\n }\r\n else {\r\n _channelControl = createChannelControllerPlugin(_channelQueue, _self);\r\n }\r\n // Add on \"channelController\" as the last \"plugin\"\r\n allExtensions[_DYN_PUSH /* @min:%2epush */](_channelControl);\r\n _coreExtensions[_DYN_PUSH /* @min:%2epush */](_channelControl);\r\n // Required to allow plugins to call core.getPlugin() during their own initialization\r\n _self[_DYN__EXTENSIONS /* @min:%2e_extensions */] = sortPlugins(allExtensions);\r\n // Initialize the controls\r\n _channelControl[_DYN_INITIALIZE /* @min:%2einitialize */](_config, _self, allExtensions);\r\n initializePlugins(_createTelCtx(), allExtensions);\r\n // Now reset the extensions to just those being managed by Basecore\r\n _self[_DYN__EXTENSIONS /* @min:%2e_extensions */] = objFreeze(sortPlugins(_coreExtensions || [])).slice();\r\n if (updateState) {\r\n _doUpdate(updateState);\r\n }\r\n }\r\n function _getPlugin(pluginIdentifier) {\r\n var _a;\r\n var theExt = null;\r\n var thePlugin = null;\r\n arrForEach(_self[_DYN__EXTENSIONS /* @min:%2e_extensions */], function (ext) {\r\n if (ext[_DYN_IDENTIFIER /* @min:%2eidentifier */] === pluginIdentifier && ext !== _channelControl && ext !== _telemetryInitializerPlugin) {\r\n thePlugin = ext;\r\n return -1;\r\n }\r\n });\r\n if (!thePlugin && _channelControl) {\r\n // Check the channel Controller\r\n thePlugin = _channelControl.getChannel(pluginIdentifier);\r\n }\r\n if (thePlugin) {\r\n theExt = (_a = {\r\n plugin: thePlugin\r\n },\r\n _a[_DYN_SET_ENABLED /* @min:setEnabled */] = function (enabled) {\r\n _getPluginState(thePlugin)[STR_DISABLED] = !enabled;\r\n },\r\n _a.isEnabled = function () {\r\n var pluginState = _getPluginState(thePlugin);\r\n return !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] && !pluginState[STR_DISABLED];\r\n },\r\n _a.remove = function (isAsync, removeCb) {\r\n var _a;\r\n if (isAsync === void 0) { isAsync = true; }\r\n var pluginsToRemove = [thePlugin];\r\n var unloadState = (_a = {\r\n reason: 1 /* TelemetryUnloadReason.PluginUnload */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = isAsync,\r\n _a);\r\n _removePlugins(pluginsToRemove, unloadState, function (removed) {\r\n if (removed) {\r\n // Re-Initialize the plugin chain\r\n _initPluginChain({\r\n reason: 32 /* TelemetryUpdateReason.PluginRemoved */,\r\n removed: pluginsToRemove\r\n });\r\n }\r\n removeCb && removeCb(removed);\r\n });\r\n },\r\n _a);\r\n }\r\n return theExt;\r\n }\r\n function _getPluginChain() {\r\n if (!_pluginChain) {\r\n // copy the collection of extensions\r\n var extensions = (_coreExtensions || []).slice();\r\n // During add / remove this may get called again, so don't readd if already present\r\n if (arrIndexOf(extensions, _telemetryInitializerPlugin) === -1) {\r\n extensions[_DYN_PUSH /* @min:%2epush */](_telemetryInitializerPlugin);\r\n }\r\n _pluginChain = createTelemetryProxyChain(sortPlugins(extensions), _config, _self);\r\n }\r\n return _pluginChain;\r\n }\r\n function _removePlugins(thePlugins, unloadState, removeComplete) {\r\n if (thePlugins && thePlugins[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var unloadChain = createTelemetryProxyChain(thePlugins, _config, _self);\r\n var unloadCtx = createProcessTelemetryUnloadContext(unloadChain, _self);\r\n unloadCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](function () {\r\n var removed = false;\r\n // Remove the listed config extensions\r\n var newConfigExtensions = [];\r\n arrForEach(_configExtensions, function (plugin, idx) {\r\n if (!_isPluginPresent(plugin, thePlugins)) {\r\n newConfigExtensions[_DYN_PUSH /* @min:%2epush */](plugin);\r\n }\r\n else {\r\n removed = true;\r\n }\r\n });\r\n _configExtensions = newConfigExtensions;\r\n // Re-Create the channel config\r\n var newChannelConfig = [];\r\n if (_channelConfig) {\r\n arrForEach(_channelConfig, function (queue, idx) {\r\n var newQueue = [];\r\n arrForEach(queue, function (channel) {\r\n if (!_isPluginPresent(channel, thePlugins)) {\r\n newQueue[_DYN_PUSH /* @min:%2epush */](channel);\r\n }\r\n else {\r\n removed = true;\r\n }\r\n });\r\n newChannelConfig[_DYN_PUSH /* @min:%2epush */](newQueue);\r\n });\r\n _channelConfig = newChannelConfig;\r\n }\r\n removeComplete && removeComplete(removed);\r\n });\r\n unloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n else {\r\n removeComplete(false);\r\n }\r\n }\r\n function _flushInternalLogs() {\r\n var queue = _self[_DYN_LOGGER /* @min:%2elogger */] ? _self[_DYN_LOGGER /* @min:%2elogger */].queue : [];\r\n if (queue) {\r\n arrForEach(queue, function (logMessage) {\r\n var _a;\r\n var item = (_a = {},\r\n _a[_DYN_NAME /* @min:name */] = _internalLogsEventName ? _internalLogsEventName : \"InternalMessageId: \" + logMessage[_DYN_MESSAGE_ID /* @min:%2emessageId */],\r\n _a.iKey = getCfgValue(_config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */]),\r\n _a.time = toISOString(new Date()),\r\n _a.baseType = _InternalLogMessage.dataType,\r\n _a.baseData = { message: logMessage[_DYN_MESSAGE /* @min:%2emessage */] },\r\n _a);\r\n _self.track(item);\r\n });\r\n queue[_DYN_LENGTH /* @min:%2elength */] = 0;\r\n }\r\n }\r\n function _flushChannels(isAsync, callBack, sendReason, cbTimeout) {\r\n if (_channelControl) {\r\n return _channelControl[_DYN_FLUSH /* @min:%2eflush */](isAsync, callBack, sendReason || 6 /* SendRequestReason.SdkUnload */, cbTimeout);\r\n }\r\n callBack && callBack(false);\r\n return true;\r\n }\r\n function _initDebugListener() {\r\n var disableDbgExt = getCfgValue(_config.disableDbgExt);\r\n if (disableDbgExt === true && _debugListener) {\r\n // Remove any previously loaded debug listener\r\n _notificationManager[_DYN_REMOVE_NOTIFICATION_2 /* @min:%2eremoveNotificationListener */](_debugListener);\r\n _debugListener = null;\r\n }\r\n if (_notificationManager && !_debugListener && disableDbgExt !== true) {\r\n _debugListener = getDebugListener(_config);\r\n _notificationManager[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */](_debugListener);\r\n }\r\n }\r\n function _initPerfManager() {\r\n var enablePerfMgr = getCfgValue(_config.enablePerfMgr);\r\n if (!enablePerfMgr && _cfgPerfManager) {\r\n // Remove any existing config based performance manager\r\n _cfgPerfManager = null;\r\n }\r\n if (enablePerfMgr) {\r\n // Set the performance manager creation function if not defined\r\n getSetValue(_config, STR_CREATE_PERF_MGR, _createPerfManager);\r\n }\r\n }\r\n function _initExtConfig() {\r\n var extConfig = getSetValue(_config, STR_EXTENSION_CONFIG, {});\r\n extConfig.NotificationManager = _notificationManager;\r\n }\r\n function _doUpdate(updateState) {\r\n var updateCtx = createProcessTelemetryUpdateContext(_getPluginChain(), _self);\r\n if (!_self._updateHook || _self._updateHook(updateCtx, updateState) !== true) {\r\n updateCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](updateState);\r\n }\r\n }\r\n function _logOrThrowError(message) {\r\n var logger = _self[_DYN_LOGGER /* @min:%2elogger */];\r\n if (logger) {\r\n // there should always be a logger\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, message);\r\n }\r\n else {\r\n throwError(message);\r\n }\r\n }\r\n });\r\n }\r\n BaseCore.prototype.initialize = function (config, extensions, logger, notificationManager) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n BaseCore.prototype.getTransmissionControls = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n BaseCore.prototype.track = function (telemetryItem) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n BaseCore.prototype.getProcessTelContext = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n BaseCore.prototype.getNotifyMgr = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Adds a notification listener. The SDK calls methods on the listener when an appropriate notification is raised.\r\n * The added plugins must raise notifications. If the plugins do not implement the notifications, then no methods will be\r\n * called.\r\n * @param {INotificationListener} listener - An INotificationListener object.\r\n */\r\n BaseCore.prototype.addNotificationListener = function (listener) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param {INotificationListener} listener - INotificationListener to remove.\r\n */\r\n BaseCore.prototype.removeNotificationListener = function (listener) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Get the current cookie manager for this instance\r\n */\r\n BaseCore.prototype.getCookieMgr = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Set the current cookie manager for this instance\r\n * @param cookieMgr - The manager, if set to null/undefined will cause the default to be created\r\n */\r\n BaseCore.prototype.setCookieMgr = function (cookieMgr) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n BaseCore.prototype.getPerfMgr = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n BaseCore.prototype.setPerfMgr = function (perfMgr) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n BaseCore.prototype.eventCnt = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 0;\r\n };\r\n /**\r\n * Periodically check logger.queue for\r\n */\r\n BaseCore.prototype.pollInternalLogs = function (eventName) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 0;\r\n };\r\n /**\r\n * Periodically check logger.queue for\r\n */\r\n BaseCore.prototype.stopPollingInternalLogs = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Add a telemetry processor to decorate or drop telemetry events.\r\n * @param telemetryInitializer - The Telemetry Initializer function\r\n * @returns - A ITelemetryInitializerHandler to enable the initializer to be removed\r\n */\r\n BaseCore.prototype.addTelemetryInitializer = function (telemetryInitializer) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Unload and Tear down the SDK and any initialized plugins, after calling this the SDK will be considered\r\n * to be un-initialized and non-operational, re-initializing the SDK should only be attempted if the previous\r\n * unload call return `true` stating that all plugins reported that they also unloaded, the recommended\r\n * approach is to create a new instance and initialize that instance.\r\n * This is due to possible unexpected side effects caused by plugins not supporting unload / teardown, unable\r\n * to successfully remove any global references or they may just be completing the unload process asynchronously.\r\n * @param isAsync - Can the unload be performed asynchronously (default)\r\n * @param unloadComplete - An optional callback that will be called once the unload has completed\r\n * @param cbTimeout - An optional timeout to wait for any flush operations to complete before proceeding with the unload. Defaults to 5 seconds.\r\n */\r\n BaseCore.prototype.unload = function (isAsync, unloadComplete, cbTimeout) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n BaseCore.prototype.getPlugin = function (pluginIdentifier) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Add a new plugin to the installation\r\n * @param plugin - The new plugin to add\r\n * @param replaceExisting - should any existing plugin be replaced, default is false\r\n * @param doAsync - Should the add be performed asynchronously\r\n * @param addCb - [Optional] callback to call after the plugin has been added\r\n */\r\n BaseCore.prototype.addPlugin = function (plugin, replaceExisting, doAsync, addCb) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Returns the unique event namespace that should be used\r\n */\r\n BaseCore.prototype.evtNamespace = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Add an unload handler that will be called when the SDK is being unloaded\r\n * @param handler - the handler\r\n */\r\n BaseCore.prototype.addUnloadCb = function (handler) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Flush and send any batched / cached data immediately\r\n * @param async - send data asynchronously when true (defaults to true)\r\n * @param callBack - if specified, notify caller when send is complete, the channel should return true to indicate to the caller that it will be called.\r\n * If the caller doesn't return true the caller should assume that it may never be called.\r\n * @param sendReason - specify the reason that you are calling \"flush\" defaults to ManualFlush (1) if not specified\r\n * @returns - true if the callback will be return after the flush is complete otherwise the caller should assume that any provided callback will never be called\r\n */\r\n BaseCore.prototype.flush = function (isAsync, callBack, sendReason) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Gets the current distributed trace context for this instance if available\r\n * @param createNew - Optional flag to create a new instance if one doesn't currently exist, defaults to true\r\n */\r\n BaseCore.prototype.getTraceCtx = function (createNew) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Sets the current distributed trace context for this instance if available\r\n */\r\n BaseCore.prototype.setTraceCtx = function (newTracectx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n BaseCore.prototype.releaseQueue = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Hook for Core extensions to allow them to update their own configuration before updating all of the plugins.\r\n * @param updateCtx - The plugin update context\r\n * @param updateState - The Update State\r\n * @returns boolean - True means the extension class will call updateState otherwise the Core will\r\n */\r\n BaseCore.prototype._updateHook = function (updateCtx, updateState) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return false;\r\n };\r\n return BaseCore;\r\n}());\r\nexport { BaseCore };\r\n//# sourceMappingURL=BaseCore.js.map","import { concatStyleSets, FontWeights } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nimport { getStyles as getSplitButtonStyles } from '../SplitButton/SplitButton.styles';\n\nimport { primaryStyles, standardStyles } from '../ButtonThemes';\nimport type { IButtonStyles } from '../Button.types';\nimport type { ITheme } from '../../../Styling';\n\nconst DEFAULT_BUTTON_HEIGHT = '32px';\nconst DEFAULT_BUTTON_MIN_WIDTH = '80px';\n\nexport const getStyles = memoizeFunction(\n (theme: ITheme, customStyles?: IButtonStyles, primary?: boolean): IButtonStyles => {\n const baseButtonStyles: IButtonStyles = getBaseButtonStyles(theme);\n const splitButtonStyles: IButtonStyles = getSplitButtonStyles(theme);\n const defaultButtonStyles: IButtonStyles = {\n root: {\n minWidth: DEFAULT_BUTTON_MIN_WIDTH,\n height: DEFAULT_BUTTON_HEIGHT,\n },\n label: {\n fontWeight: FontWeights.semibold,\n },\n };\n\n return concatStyleSets(\n baseButtonStyles,\n defaultButtonStyles,\n primary ? primaryStyles(theme) : standardStyles(theme),\n splitButtonStyles,\n customStyles,\n )!;\n },\n);\n","import { HighContrastSelector, getHighContrastNoAdjustStyle } from '../../Styling';\nimport { IsFocusVisibleClassName } from '../../Utilities';\nimport type { IButtonStyles } from './Button.types';\nimport type { ITheme, IRawStyle } from '../../Styling';\n\nconst splitButtonDividerBaseStyles = (): IRawStyle => {\n return {\n position: 'absolute',\n width: 1,\n right: 31,\n top: 8,\n bottom: 8,\n };\n};\n\nexport function standardStyles(theme: ITheme): IButtonStyles {\n const { semanticColors: s, palette: p } = theme;\n\n const buttonBackground = s.buttonBackground;\n const buttonBackgroundPressed = s.buttonBackgroundPressed;\n const buttonBackgroundHovered = s.buttonBackgroundHovered;\n const buttonBackgroundDisabled = s.buttonBackgroundDisabled;\n\n const buttonText = s.buttonText;\n const buttonTextHovered = s.buttonTextHovered;\n const buttonTextDisabled = s.buttonTextDisabled;\n const buttonTextChecked = s.buttonTextChecked;\n const buttonTextCheckedHovered = s.buttonTextCheckedHovered;\n\n return {\n root: {\n backgroundColor: buttonBackground,\n color: buttonText,\n },\n\n rootHovered: {\n backgroundColor: buttonBackgroundHovered,\n color: buttonTextHovered,\n selectors: {\n [HighContrastSelector]: {\n borderColor: 'Highlight',\n color: 'Highlight',\n },\n },\n },\n\n rootPressed: {\n backgroundColor: buttonBackgroundPressed,\n color: buttonTextChecked,\n },\n\n rootExpanded: {\n backgroundColor: buttonBackgroundPressed,\n color: buttonTextChecked,\n },\n\n rootChecked: {\n backgroundColor: buttonBackgroundPressed,\n color: buttonTextChecked,\n },\n\n rootCheckedHovered: {\n backgroundColor: buttonBackgroundPressed,\n color: buttonTextCheckedHovered,\n },\n\n rootDisabled: {\n color: buttonTextDisabled,\n backgroundColor: buttonBackgroundDisabled,\n selectors: {\n [HighContrastSelector]: {\n color: 'GrayText',\n borderColor: 'GrayText',\n backgroundColor: 'Window',\n },\n },\n },\n\n // Split button styles\n splitButtonContainer: {\n selectors: {\n [HighContrastSelector]: {\n border: 'none',\n },\n },\n },\n\n splitButtonMenuButton: {\n color: p.white,\n backgroundColor: 'transparent',\n selectors: {\n ':hover': {\n backgroundColor: p.neutralLight,\n selectors: {\n [HighContrastSelector]: {\n color: 'Highlight',\n },\n },\n },\n },\n },\n\n splitButtonMenuButtonDisabled: {\n backgroundColor: s.buttonBackgroundDisabled,\n selectors: {\n ':hover': {\n backgroundColor: s.buttonBackgroundDisabled,\n },\n },\n },\n\n splitButtonDivider: {\n ...splitButtonDividerBaseStyles(),\n backgroundColor: p.neutralTertiaryAlt,\n selectors: {\n [HighContrastSelector]: {\n backgroundColor: 'WindowText',\n },\n },\n },\n\n splitButtonDividerDisabled: {\n backgroundColor: theme.palette.neutralTertiaryAlt,\n },\n\n splitButtonMenuButtonChecked: {\n backgroundColor: p.neutralQuaternaryAlt,\n selectors: {\n ':hover': {\n backgroundColor: p.neutralQuaternaryAlt,\n },\n },\n },\n\n splitButtonMenuButtonExpanded: {\n backgroundColor: p.neutralQuaternaryAlt,\n selectors: {\n ':hover': {\n backgroundColor: p.neutralQuaternaryAlt,\n },\n },\n },\n\n splitButtonMenuIcon: {\n color: s.buttonText,\n },\n\n splitButtonMenuIconDisabled: {\n color: s.buttonTextDisabled,\n },\n };\n}\n\nexport function primaryStyles(theme: ITheme): IButtonStyles {\n const { palette: p, semanticColors: s } = theme;\n\n return {\n root: {\n backgroundColor: s.primaryButtonBackground,\n border: `1px solid ${s.primaryButtonBackground}`,\n color: s.primaryButtonText,\n selectors: {\n [HighContrastSelector]: {\n color: 'Window',\n backgroundColor: 'WindowText',\n borderColor: 'WindowText',\n ...getHighContrastNoAdjustStyle(),\n },\n [`.${IsFocusVisibleClassName} &:focus`]: {\n selectors: {\n ':after': {\n border: `none`,\n outlineColor: p.white,\n },\n },\n },\n },\n },\n\n rootHovered: {\n backgroundColor: s.primaryButtonBackgroundHovered,\n border: `1px solid ${s.primaryButtonBackgroundHovered}`,\n color: s.primaryButtonTextHovered,\n selectors: {\n [HighContrastSelector]: {\n color: 'Window',\n backgroundColor: 'Highlight',\n borderColor: 'Highlight',\n },\n },\n },\n\n rootPressed: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n border: `1px solid ${s.primaryButtonBackgroundPressed}`,\n color: s.primaryButtonTextPressed,\n selectors: {\n [HighContrastSelector]: {\n color: 'Window',\n backgroundColor: 'WindowText',\n borderColor: 'WindowText',\n ...getHighContrastNoAdjustStyle(),\n },\n },\n },\n\n rootExpanded: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n color: s.primaryButtonTextPressed,\n },\n\n rootChecked: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n color: s.primaryButtonTextPressed,\n },\n\n rootCheckedHovered: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n color: s.primaryButtonTextPressed,\n },\n\n rootDisabled: {\n color: s.primaryButtonTextDisabled,\n backgroundColor: s.primaryButtonBackgroundDisabled,\n selectors: {\n [HighContrastSelector]: {\n color: 'GrayText',\n borderColor: 'GrayText',\n backgroundColor: 'Window',\n },\n },\n },\n\n // Split button styles\n splitButtonContainer: {\n selectors: {\n [HighContrastSelector]: {\n border: 'none',\n },\n },\n },\n\n splitButtonDivider: {\n ...splitButtonDividerBaseStyles(),\n backgroundColor: p.white,\n selectors: {\n [HighContrastSelector]: {\n backgroundColor: 'Window',\n },\n },\n },\n\n splitButtonMenuButton: {\n backgroundColor: s.primaryButtonBackground,\n color: s.primaryButtonText,\n selectors: {\n [HighContrastSelector]: {\n backgroundColor: 'WindowText',\n },\n ':hover': {\n backgroundColor: s.primaryButtonBackgroundHovered,\n selectors: {\n [HighContrastSelector]: {\n color: 'Highlight',\n },\n },\n },\n },\n },\n\n splitButtonMenuButtonDisabled: {\n backgroundColor: s.primaryButtonBackgroundDisabled,\n selectors: {\n ':hover': {\n backgroundColor: s.primaryButtonBackgroundDisabled,\n },\n },\n },\n\n splitButtonMenuButtonChecked: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n selectors: {\n ':hover': {\n backgroundColor: s.primaryButtonBackgroundPressed,\n },\n },\n },\n\n splitButtonMenuButtonExpanded: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n selectors: {\n ':hover': {\n backgroundColor: s.primaryButtonBackgroundPressed,\n },\n },\n },\n\n splitButtonMenuIcon: {\n color: s.primaryButtonText,\n },\n\n splitButtonMenuIconDisabled: {\n color: p.neutralTertiary,\n\n selectors: {\n [HighContrastSelector]: {\n color: 'GrayText',\n },\n },\n },\n };\n}\n","import * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { getStyles } from './DefaultButton.styles';\nimport type { IButtonProps } from '../Button.types';\n\n/**\n * {@docCategory Button}\n */\n@customizable('DefaultButton', ['theme', 'styles'], true)\nexport class DefaultButton extends React.Component {\n public render(): JSX.Element {\n const { primary = false, styles, theme } = this.props;\n\n return (\n \n );\n }\n}\n","import * as React from 'react';\nimport { classNamesFunction, initializeComponentRef } from '../../Utilities';\nimport type { IDialogFooterProps, IDialogFooterStyleProps, IDialogFooterStyles } from './DialogFooter.types';\nimport type { IProcessedStyleSet } from '../../Styling';\n\nconst getClassNames = classNamesFunction();\n\nexport class DialogFooterBase extends React.Component {\n private _classNames: IProcessedStyleSet;\n\n constructor(props: IDialogFooterProps) {\n super(props);\n\n initializeComponentRef(this);\n }\n\n public render(): JSX.Element {\n const { className, styles, theme } = this.props;\n\n this._classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n });\n\n return (\n

    \n );\n }\n\n private _renderChildrenAsActions(): (JSX.Element | null)[] | null | undefined {\n return React.Children.map(this.props.children, child =>\n child ? {child} : null,\n );\n }\n}\n","import { getGlobalClassNames } from '../../Styling';\nimport type { IDialogFooterStyleProps, IDialogFooterStyles } from './DialogFooter.types';\n\nconst GlobalClassNames = {\n actions: 'ms-Dialog-actions',\n action: 'ms-Dialog-action',\n actionsRight: 'ms-Dialog-actionsRight',\n};\n\nexport const getStyles = (props: IDialogFooterStyleProps): IDialogFooterStyles => {\n const { className, theme } = props;\n\n const classNames = getGlobalClassNames(GlobalClassNames, theme);\n\n return {\n actions: [\n classNames.actions,\n {\n position: 'relative',\n width: '100%',\n minHeight: '24px',\n lineHeight: '24px',\n margin: '16px 0 0',\n fontSize: '0',\n\n selectors: {\n '.ms-Button': {\n lineHeight: 'normal',\n },\n },\n },\n className,\n ],\n\n action: [\n classNames.action,\n {\n margin: '0 4px',\n },\n ],\n\n actionsRight: [\n classNames.actionsRight,\n {\n textAlign: 'right',\n marginRight: '-4px',\n fontSize: '0',\n },\n ],\n };\n};\n","import * as React from 'react';\nimport { styled } from '../../Utilities';\nimport { DialogFooterBase } from './DialogFooter.base';\nimport { getStyles } from './DialogFooter.styles';\nimport type { IDialogFooterProps, IDialogFooterStyleProps, IDialogFooterStyles } from './DialogFooter.types';\n\nexport const DialogFooter: React.FunctionComponent = styled<\n IDialogFooterProps,\n IDialogFooterStyleProps,\n IDialogFooterStyles\n>(DialogFooterBase, getStyles, undefined, { scope: 'DialogFooter' });\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n BaseRequestPolicy,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptions,\n} from \"./requestPolicy\";\nimport {\n Span,\n SpanKind,\n SpanStatusCode,\n createSpanFunction,\n getTraceParentHeader,\n isSpanContextValid,\n} from \"@azure/core-tracing\";\nimport { HttpOperationResponse } from \"../httpOperationResponse\";\nimport { WebResourceLike } from \"../webResource\";\nimport { logger } from \"../log\";\n\nconst createSpan = createSpanFunction({\n packagePrefix: \"\",\n namespace: \"\",\n});\n\n/**\n * Options to customize the tracing policy.\n */\nexport interface TracingPolicyOptions {\n /**\n * User agent used to better identify the outgoing requests traced by the tracing policy.\n */\n userAgent?: string;\n}\n\n/**\n * Creates a policy that wraps outgoing requests with a tracing span.\n * @param tracingOptions - Tracing options.\n * @returns An instance of the {@link TracingPolicy} class.\n */\nexport function tracingPolicy(tracingOptions: TracingPolicyOptions = {}): RequestPolicyFactory {\n return {\n create(nextPolicy: RequestPolicy, options: RequestPolicyOptions) {\n return new TracingPolicy(nextPolicy, options, tracingOptions);\n },\n };\n}\n\n/**\n * A policy that wraps outgoing requests with a tracing span.\n */\nexport class TracingPolicy extends BaseRequestPolicy {\n private userAgent?: string;\n\n constructor(\n nextPolicy: RequestPolicy,\n options: RequestPolicyOptions,\n tracingOptions: TracingPolicyOptions\n ) {\n super(nextPolicy, options);\n this.userAgent = tracingOptions.userAgent;\n }\n\n public async sendRequest(request: WebResourceLike): Promise {\n if (!request.tracingContext) {\n return this._nextPolicy.sendRequest(request);\n }\n\n const span = this.tryCreateSpan(request);\n\n if (!span) {\n return this._nextPolicy.sendRequest(request);\n }\n\n try {\n const response = await this._nextPolicy.sendRequest(request);\n this.tryProcessResponse(span, response);\n return response;\n } catch (err: any) {\n this.tryProcessError(span, err);\n throw err;\n }\n }\n\n tryCreateSpan(request: WebResourceLike): Span | undefined {\n try {\n // Passing spanOptions as part of tracingOptions to maintain compatibility @azure/core-tracing@preview.13 and earlier.\n // We can pass this as a separate parameter once we upgrade to the latest core-tracing.\n const { span } = createSpan(`HTTP ${request.method}`, {\n tracingOptions: {\n spanOptions: {\n ...(request as any).spanOptions,\n kind: SpanKind.CLIENT,\n },\n tracingContext: request.tracingContext,\n },\n });\n\n // If the span is not recording, don't do any more work.\n if (!span.isRecording()) {\n span.end();\n return undefined;\n }\n\n const namespaceFromContext = request.tracingContext?.getValue(Symbol.for(\"az.namespace\"));\n\n if (typeof namespaceFromContext === \"string\") {\n span.setAttribute(\"az.namespace\", namespaceFromContext);\n }\n\n span.setAttributes({\n \"http.method\": request.method,\n \"http.url\": request.url,\n requestId: request.requestId,\n });\n\n if (this.userAgent) {\n span.setAttribute(\"http.user_agent\", this.userAgent);\n }\n\n // set headers\n const spanContext = span.spanContext();\n const traceParentHeader = getTraceParentHeader(spanContext);\n if (traceParentHeader && isSpanContextValid(spanContext)) {\n request.headers.set(\"traceparent\", traceParentHeader);\n const traceState = spanContext.traceState && spanContext.traceState.serialize();\n // if tracestate is set, traceparent MUST be set, so only set tracestate after traceparent\n if (traceState) {\n request.headers.set(\"tracestate\", traceState);\n }\n }\n return span;\n } catch (error: any) {\n logger.warning(`Skipping creating a tracing span due to an error: ${error.message}`);\n return undefined;\n }\n }\n\n private tryProcessError(span: Span, err: any): void {\n try {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: err.message,\n });\n\n if (err.statusCode) {\n span.setAttribute(\"http.status_code\", err.statusCode);\n }\n span.end();\n } catch (error: any) {\n logger.warning(`Skipping tracing span processing due to an error: ${error.message}`);\n }\n }\n\n private tryProcessResponse(span: Span, response: HttpOperationResponse): void {\n try {\n span.setAttribute(\"http.status_code\", response.status);\n const serviceRequestId = response.headers.get(\"x-ms-request-id\");\n if (serviceRequestId) {\n span.setAttribute(\"serviceRequestId\", serviceRequestId);\n }\n span.setStatus({\n code: SpanStatusCode.OK,\n });\n span.end();\n } catch (error: any) {\n logger.warning(`Skipping tracing span processing due to an error: ${error.message}`);\n }\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { SpanContext, TraceFlags } from \"../interfaces\";\n\nconst VERSION = \"00\";\n\n/**\n * Generates a `SpanContext` given a `traceparent` header value.\n * @param traceParent - Serialized span context data as a `traceparent` header value.\n * @returns The `SpanContext` generated from the `traceparent` value.\n */\nexport function extractSpanContextFromTraceParentHeader(\n traceParentHeader: string\n): SpanContext | undefined {\n const parts = traceParentHeader.split(\"-\");\n\n if (parts.length !== 4) {\n return;\n }\n\n const [version, traceId, spanId, traceOptions] = parts;\n\n if (version !== VERSION) {\n return;\n }\n\n const traceFlags = parseInt(traceOptions, 16);\n\n const spanContext: SpanContext = {\n spanId,\n traceId,\n traceFlags\n };\n\n return spanContext;\n}\n\n/**\n * Generates a `traceparent` value given a span context.\n * @param spanContext - Contains context for a specific span.\n * @returns The `spanContext` represented as a `traceparent` value.\n */\nexport function getTraceParentHeader(spanContext: SpanContext): string | undefined {\n const missingFields: string[] = [];\n if (!spanContext.traceId) {\n missingFields.push(\"traceId\");\n }\n if (!spanContext.spanId) {\n missingFields.push(\"spanId\");\n }\n\n if (missingFields.length) {\n return;\n }\n\n const flags = spanContext.traceFlags || TraceFlags.NONE;\n const hexFlags = flags.toString(16);\n const traceFlags = hexFlags.length === 1 ? `0${hexFlags}` : hexFlags;\n\n // https://www.w3.org/TR/trace-context/#traceparent-header-field-values\n return `${VERSION}-${spanContext.traceId}-${spanContext.spanId}-${traceFlags}`;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { PollOperation, PollOperationState } from \"./pollOperation\";\nimport { AbortSignalLike } from \"@azure/abort-controller\";\n\n/**\n * CancelOnProgress is used as the return value of a Poller's onProgress method.\n * When a user invokes onProgress, they're required to pass in a function that will be\n * called as a callback with the new data received each time the poll operation is updated.\n * onProgress returns a function that will prevent any further update to reach the original callback.\n */\nexport type CancelOnProgress = () => void;\n\n/**\n * PollProgressCallback is the type of the callback functions sent to onProgress.\n * These functions will receive a TState that is defined by your implementation of\n * the Poller class.\n */\nexport type PollProgressCallback = (state: TState) => void;\n\n/**\n * When a poller is manually stopped through the `stopPolling` method,\n * the poller will be rejected with an instance of the PollerStoppedError.\n */\nexport class PollerStoppedError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"PollerStoppedError\";\n Object.setPrototypeOf(this, PollerStoppedError.prototype);\n }\n}\n\n/**\n * When the operation is cancelled, the poller will be rejected with an instance\n * of the PollerCancelledError.\n */\nexport class PollerCancelledError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"PollerCancelledError\";\n Object.setPrototypeOf(this, PollerCancelledError.prototype);\n }\n}\n\n/**\n * Abstract representation of a poller, intended to expose just the minimal API that the user needs to work with.\n */\n// eslint-disable-next-line no-use-before-define\nexport interface PollerLike, TResult> {\n /**\n * Returns a promise that will resolve once a single polling request finishes.\n * It does this by calling the update method of the Poller's operation.\n */\n poll(options?: { abortSignal?: AbortSignalLike }): Promise;\n /**\n * Returns a promise that will resolve once the underlying operation is completed.\n */\n pollUntilDone(): Promise;\n /**\n * Invokes the provided callback after each polling is completed,\n * sending the current state of the poller's operation.\n *\n * It returns a method that can be used to stop receiving updates on the given callback function.\n */\n onProgress(callback: (state: TState) => void): CancelOnProgress;\n /**\n * Returns true if the poller has finished polling.\n */\n isDone(): boolean;\n /**\n * Stops the poller. After this, no manual or automated requests can be sent.\n */\n stopPolling(): void;\n /**\n * Returns true if the poller is stopped.\n */\n isStopped(): boolean;\n /**\n * Attempts to cancel the underlying operation.\n */\n cancelOperation(options?: { abortSignal?: AbortSignalLike }): Promise;\n /**\n * Returns the state of the operation.\n * The TState defined in PollerLike can be a subset of the TState defined in\n * the Poller implementation.\n */\n getOperationState(): TState;\n /**\n * Returns the result value of the operation,\n * regardless of the state of the poller.\n * It can return undefined or an incomplete form of the final TResult value\n * depending on the implementation.\n */\n getResult(): TResult | undefined;\n /**\n * Returns a serialized version of the poller's operation\n * by invoking the operation's toString method.\n */\n toString(): string;\n}\n\n/**\n * A class that represents the definition of a program that polls through consecutive requests\n * until it reaches a state of completion.\n *\n * A poller can be executed manually, by polling request by request by calling to the `poll()` method repeatedly, until its operation is completed.\n * It also provides a way to wait until the operation completes, by calling `pollUntilDone()` and waiting until the operation finishes.\n * Pollers can also request the cancellation of the ongoing process to whom is providing the underlying long running operation.\n *\n * ```ts\n * const poller = new MyPoller();\n *\n * // Polling just once:\n * await poller.poll();\n *\n * // We can try to cancel the request here, by calling:\n * //\n * // await poller.cancelOperation();\n * //\n *\n * // Getting the final result:\n * const result = await poller.pollUntilDone();\n * ```\n *\n * The Poller is defined by two types, a type representing the state of the poller, which\n * must include a basic set of properties from `PollOperationState`,\n * and a return type defined by `TResult`, which can be anything.\n *\n * The Poller class implements the `PollerLike` interface, which allows poller implementations to avoid having\n * to export the Poller's class directly, and instead only export the already instantiated poller with the PollerLike type.\n *\n * ```ts\n * class Client {\n * public async makePoller: PollerLike {\n * const poller = new MyPoller({});\n * // It might be preferred to return the poller after the first request is made,\n * // so that some information can be obtained right away.\n * await poller.poll();\n * return poller;\n * }\n * }\n *\n * const poller: PollerLike = myClient.makePoller();\n * ```\n *\n * A poller can be created through its constructor, then it can be polled until it's completed.\n * At any point in time, the state of the poller can be obtained without delay through the getOperationState method.\n * At any point in time, the intermediate forms of the result type can be requested without delay.\n * Once the underlying operation is marked as completed, the poller will stop and the final value will be returned.\n *\n * ```ts\n * const poller = myClient.makePoller();\n * const state: MyOperationState = poller.getOperationState();\n *\n * // The intermediate result can be obtained at any time.\n * const result: MyResult | undefined = poller.getResult();\n *\n * // The final result can only be obtained after the poller finishes.\n * const result: MyResult = await poller.pollUntilDone();\n * ```\n *\n */\n// eslint-disable-next-line no-use-before-define\nexport abstract class Poller, TResult>\n implements PollerLike\n{\n private stopped: boolean = true;\n private resolve?: (value: TResult) => void;\n private reject?: (error: PollerStoppedError | PollerCancelledError | Error) => void;\n private pollOncePromise?: Promise;\n private cancelPromise?: Promise;\n private promise: Promise;\n private pollProgressCallbacks: PollProgressCallback[] = [];\n\n /**\n * The poller's operation is available in full to any of the methods of the Poller class\n * and any class extending the Poller class.\n */\n protected operation: PollOperation;\n\n /**\n * A poller needs to be initialized by passing in at least the basic properties of the `PollOperation`.\n *\n * When writing an implementation of a Poller, this implementation needs to deal with the initialization\n * of any custom state beyond the basic definition of the poller. The basic poller assumes that the poller's\n * operation has already been defined, at least its basic properties. The code below shows how to approach\n * the definition of the constructor of a new custom poller.\n *\n * ```ts\n * export class MyPoller extends Poller {\n * constructor({\n * // Anything you might need outside of the basics\n * }) {\n * let state: MyOperationState = {\n * privateProperty: private,\n * publicProperty: public,\n * };\n *\n * const operation = {\n * state,\n * update,\n * cancel,\n * toString\n * }\n *\n * // Sending the operation to the parent's constructor.\n * super(operation);\n *\n * // You can assign more local properties here.\n * }\n * }\n * ```\n *\n * Inside of this constructor, a new promise is created. This will be used to\n * tell the user when the poller finishes (see `pollUntilDone()`). The promise's\n * resolve and reject methods are also used internally to control when to resolve\n * or reject anyone waiting for the poller to finish.\n *\n * The constructor of a custom implementation of a poller is where any serialized version of\n * a previous poller's operation should be deserialized into the operation sent to the\n * base constructor. For example:\n *\n * ```ts\n * export class MyPoller extends Poller {\n * constructor(\n * baseOperation: string | undefined\n * ) {\n * let state: MyOperationState = {};\n * if (baseOperation) {\n * state = {\n * ...JSON.parse(baseOperation).state,\n * ...state\n * };\n * }\n * const operation = {\n * state,\n * // ...\n * }\n * super(operation);\n * }\n * }\n * ```\n *\n * @param operation - Must contain the basic properties of `PollOperation`.\n */\n constructor(operation: PollOperation) {\n this.operation = operation;\n this.promise = new Promise(\n (\n resolve: (result: TResult) => void,\n reject: (error: PollerStoppedError | PollerCancelledError | Error) => void\n ) => {\n this.resolve = resolve;\n this.reject = reject;\n }\n );\n // This prevents the UnhandledPromiseRejectionWarning in node.js from being thrown.\n // The above warning would get thrown if `poller.poll` is called, it returns an error,\n // and pullUntilDone did not have a .catch or await try/catch on it's return value.\n this.promise.catch(() => {\n /* intentionally blank */\n });\n }\n\n /**\n * Defines how much to wait between each poll request.\n * This has to be implemented by your custom poller.\n *\n * \\@azure/core-http has a simple implementation of a delay function that waits as many milliseconds as specified.\n * This can be used as follows:\n *\n * ```ts\n * import { delay } from \"@azure/core-http\";\n *\n * export class MyPoller extends Poller {\n * // The other necessary definitions.\n *\n * async delay(): Promise {\n * const milliseconds = 1000;\n * return delay(milliseconds);\n * }\n * }\n * ```\n *\n */\n protected abstract delay(): Promise;\n\n /**\n * Starts a loop that will break only if the poller is done\n * or if the poller is stopped.\n */\n private async startPolling(): Promise {\n if (this.stopped) {\n this.stopped = false;\n }\n while (!this.isStopped() && !this.isDone()) {\n await this.poll();\n await this.delay();\n }\n }\n\n /**\n * pollOnce does one polling, by calling to the update method of the underlying\n * poll operation to make any relevant change effective.\n *\n * It only optionally receives an object with an abortSignal property, from \\@azure/abort-controller's AbortSignalLike.\n *\n * @param options - Optional properties passed to the operation's update method.\n */\n private async pollOnce(options: { abortSignal?: AbortSignalLike } = {}): Promise {\n if (!this.isDone()) {\n try {\n this.operation = await this.operation.update({\n abortSignal: options.abortSignal,\n fireProgress: this.fireProgress.bind(this),\n });\n } catch (e: any) {\n this.operation.state.error = e;\n }\n }\n this.processUpdatedState();\n }\n\n /**\n * fireProgress calls the functions passed in via onProgress the method of the poller.\n *\n * It loops over all of the callbacks received from onProgress, and executes them, sending them\n * the current operation state.\n *\n * @param state - The current operation state.\n */\n private fireProgress(state: TState): void {\n for (const callback of this.pollProgressCallbacks) {\n callback(state);\n }\n }\n\n /**\n * Invokes the underlying operation's cancel method.\n */\n private async cancelOnce(options: { abortSignal?: AbortSignalLike } = {}): Promise {\n this.operation = await this.operation.cancel(options);\n }\n\n /**\n * Returns a promise that will resolve once a single polling request finishes.\n * It does this by calling the update method of the Poller's operation.\n *\n * It only optionally receives an object with an abortSignal property, from \\@azure/abort-controller's AbortSignalLike.\n *\n * @param options - Optional properties passed to the operation's update method.\n */\n public poll(options: { abortSignal?: AbortSignalLike } = {}): Promise {\n if (!this.pollOncePromise) {\n this.pollOncePromise = this.pollOnce(options);\n const clearPollOncePromise = (): void => {\n this.pollOncePromise = undefined;\n };\n this.pollOncePromise.then(clearPollOncePromise, clearPollOncePromise).catch(this.reject);\n }\n return this.pollOncePromise;\n }\n\n private processUpdatedState(): void {\n if (this.operation.state.error) {\n this.stopped = true;\n this.reject!(this.operation.state.error);\n throw this.operation.state.error;\n }\n if (this.operation.state.isCancelled) {\n this.stopped = true;\n const error = new PollerCancelledError(\"Poller cancelled\");\n this.reject!(error);\n throw error;\n } else if (this.isDone() && this.resolve) {\n // If the poller has finished polling, this means we now have a result.\n // However, it can be the case that TResult is instantiated to void, so\n // we are not expecting a result anyway. To assert that we might not\n // have a result eventually after finishing polling, we cast the result\n // to TResult.\n this.resolve(this.operation.state.result as TResult);\n }\n }\n\n /**\n * Returns a promise that will resolve once the underlying operation is completed.\n */\n public async pollUntilDone(): Promise {\n if (this.stopped) {\n this.startPolling().catch(this.reject);\n }\n // This is needed because the state could have been updated by\n // `cancelOperation`, e.g. the operation is canceled or an error occurred.\n this.processUpdatedState();\n return this.promise;\n }\n\n /**\n * Invokes the provided callback after each polling is completed,\n * sending the current state of the poller's operation.\n *\n * It returns a method that can be used to stop receiving updates on the given callback function.\n */\n public onProgress(callback: (state: TState) => void): CancelOnProgress {\n this.pollProgressCallbacks.push(callback);\n return (): void => {\n this.pollProgressCallbacks = this.pollProgressCallbacks.filter((c) => c !== callback);\n };\n }\n\n /**\n * Returns true if the poller has finished polling.\n */\n public isDone(): boolean {\n const state: PollOperationState = this.operation.state;\n return Boolean(state.isCompleted || state.isCancelled || state.error);\n }\n\n /**\n * Stops the poller from continuing to poll.\n */\n public stopPolling(): void {\n if (!this.stopped) {\n this.stopped = true;\n if (this.reject) {\n this.reject(new PollerStoppedError(\"This poller is already stopped\"));\n }\n }\n }\n\n /**\n * Returns true if the poller is stopped.\n */\n public isStopped(): boolean {\n return this.stopped;\n }\n\n /**\n * Attempts to cancel the underlying operation.\n *\n * It only optionally receives an object with an abortSignal property, from \\@azure/abort-controller's AbortSignalLike.\n *\n * If it's called again before it finishes, it will throw an error.\n *\n * @param options - Optional properties passed to the operation's update method.\n */\n public cancelOperation(options: { abortSignal?: AbortSignalLike } = {}): Promise {\n if (!this.cancelPromise) {\n this.cancelPromise = this.cancelOnce(options);\n } else if (options.abortSignal) {\n throw new Error(\"A cancel request is currently pending\");\n }\n return this.cancelPromise;\n }\n\n /**\n * Returns the state of the operation.\n *\n * Even though TState will be the same type inside any of the methods of any extension of the Poller class,\n * implementations of the pollers can customize what's shared with the public by writing their own\n * version of the `getOperationState` method, and by defining two types, one representing the internal state of the poller\n * and a public type representing a safe to share subset of the properties of the internal state.\n * Their definition of getOperationState can then return their public type.\n *\n * Example:\n *\n * ```ts\n * // Let's say we have our poller's operation state defined as:\n * interface MyOperationState extends PollOperationState {\n * privateProperty?: string;\n * publicProperty?: string;\n * }\n *\n * // To allow us to have a true separation of public and private state, we have to define another interface:\n * interface PublicState extends PollOperationState {\n * publicProperty?: string;\n * }\n *\n * // Then, we define our Poller as follows:\n * export class MyPoller extends Poller {\n * // ... More content is needed here ...\n *\n * public getOperationState(): PublicState {\n * const state: PublicState = this.operation.state;\n * return {\n * // Properties from PollOperationState\n * isStarted: state.isStarted,\n * isCompleted: state.isCompleted,\n * isCancelled: state.isCancelled,\n * error: state.error,\n * result: state.result,\n *\n * // The only other property needed by PublicState.\n * publicProperty: state.publicProperty\n * }\n * }\n * }\n * ```\n *\n * You can see this in the tests of this repository, go to the file:\n * `../test/utils/testPoller.ts`\n * and look for the getOperationState implementation.\n */\n public getOperationState(): TState {\n return this.operation.state;\n }\n\n /**\n * Returns the result value of the operation,\n * regardless of the state of the poller.\n * It can return undefined or an incomplete form of the final TResult value\n * depending on the implementation.\n */\n public getResult(): TResult | undefined {\n const state: PollOperationState = this.operation.state;\n return state.result;\n }\n\n /**\n * Returns a serialized version of the poller's operation\n * by invoking the operation's toString method.\n */\n public toString(): string {\n return this.operation.toString();\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { delay } from \"@azure/core-http\";\nimport { PollOperation, PollOperationState, Poller } from \"@azure/core-lro\";\nimport { BlobClient, BlobStartCopyFromURLOptions, BlobBeginCopyFromURLResponse } from \"../Clients\";\n\n/**\n * Defines the operations from a {@link BlobClient} that are needed for the poller\n * returned by {@link BlobClient.beginCopyFromURL} to work.\n */\nexport type CopyPollerBlobClient = Pick & {\n startCopyFromURL(\n copySource: string,\n options?: BlobStartCopyFromURLOptions\n ): Promise;\n};\n\n/**\n * The state used by the poller returned from {@link BlobClient.beginCopyFromURL}.\n *\n * This state is passed into the user-specified `onProgress` callback\n * whenever copy progress is detected.\n */\nexport interface BlobBeginCopyFromUrlPollState\n extends PollOperationState {\n /**\n * The instance of {@link BlobClient} that was used when calling {@link BlobClient.beginCopyFromURL}.\n */\n readonly blobClient: CopyPollerBlobClient;\n /**\n * The copyId that identifies the in-progress blob copy.\n */\n copyId?: string;\n /**\n * the progress of the blob copy as reported by the service.\n */\n copyProgress?: string;\n /**\n * The source URL provided in {@link BlobClient.beginCopyFromURL}.\n */\n copySource: string;\n /**\n * The options that were passed to the initial {@link BlobClient.beginCopyFromURL} call.\n * This is exposed for the poller and should not be modified directly.\n */\n readonly startCopyFromURLOptions?: BlobStartCopyFromURLOptions;\n}\n\n/**\n * The PollOperation responsible for:\n * - performing the initial startCopyFromURL\n * - checking the copy status via getProperties\n * - cancellation via abortCopyFromURL\n * @hidden\n */\nexport interface BlobBeginCopyFromURLPollOperation\n extends PollOperation {}\n\n/**\n * The set of options used to configure the poller.\n * This is an internal interface populated by {@link BlobClient.beginCopyFromURL}.\n *\n * @hidden\n */\nexport interface BlobBeginCopyFromUrlPollerOptions {\n blobClient: CopyPollerBlobClient;\n copySource: string;\n intervalInMs?: number;\n onProgress?: (state: BlobBeginCopyFromUrlPollState) => void;\n resumeFrom?: string;\n startCopyFromURLOptions?: BlobStartCopyFromURLOptions;\n}\n\n/**\n * This is the poller returned by {@link BlobClient.beginCopyFromURL}.\n * This can not be instantiated directly outside of this package.\n *\n * @hidden\n */\nexport class BlobBeginCopyFromUrlPoller extends Poller<\n BlobBeginCopyFromUrlPollState,\n BlobBeginCopyFromURLResponse\n> {\n public intervalInMs: number;\n\n constructor(options: BlobBeginCopyFromUrlPollerOptions) {\n const {\n blobClient,\n copySource,\n intervalInMs = 15000,\n onProgress,\n resumeFrom,\n startCopyFromURLOptions,\n } = options;\n\n let state: BlobBeginCopyFromUrlPollState | undefined;\n\n if (resumeFrom) {\n state = JSON.parse(resumeFrom).state;\n }\n\n const operation = makeBlobBeginCopyFromURLPollOperation({\n ...state,\n blobClient,\n copySource,\n startCopyFromURLOptions,\n });\n\n super(operation);\n\n if (typeof onProgress === \"function\") {\n this.onProgress(onProgress);\n }\n\n this.intervalInMs = intervalInMs;\n }\n\n public delay(): Promise {\n return delay(this.intervalInMs);\n }\n}\n\n/**\n * Note: Intentionally using function expression over arrow function expression\n * so that the function can be invoked with a different context.\n * This affects what `this` refers to.\n * @hidden\n */\nconst cancel: BlobBeginCopyFromURLPollOperation[\"cancel\"] = async function cancel(\n this: BlobBeginCopyFromURLPollOperation,\n options = {}\n) {\n const state = this.state;\n const { copyId } = state;\n if (state.isCompleted) {\n return makeBlobBeginCopyFromURLPollOperation(state);\n }\n\n if (!copyId) {\n state.isCancelled = true;\n return makeBlobBeginCopyFromURLPollOperation(state);\n }\n\n // if abortCopyFromURL throws, it will bubble up to user's poller.cancelOperation call\n await state.blobClient.abortCopyFromURL(copyId, {\n abortSignal: options.abortSignal,\n });\n state.isCancelled = true;\n\n return makeBlobBeginCopyFromURLPollOperation(state);\n};\n\n/**\n * Note: Intentionally using function expression over arrow function expression\n * so that the function can be invoked with a different context.\n * This affects what `this` refers to.\n * @hidden\n */\nconst update: BlobBeginCopyFromURLPollOperation[\"update\"] = async function update(\n this: BlobBeginCopyFromURLPollOperation,\n options = {}\n): Promise {\n const state = this.state;\n const { blobClient, copySource, startCopyFromURLOptions } = state;\n\n if (!state.isStarted) {\n state.isStarted = true;\n const result = await blobClient.startCopyFromURL(copySource, startCopyFromURLOptions);\n\n // copyId is needed to abort\n state.copyId = result.copyId;\n if (result.copyStatus === \"success\") {\n state.result = result;\n state.isCompleted = true;\n }\n } else if (!state.isCompleted) {\n try {\n const result = await state.blobClient.getProperties({ abortSignal: options.abortSignal });\n const { copyStatus, copyProgress } = result;\n const prevCopyProgress = state.copyProgress;\n if (copyProgress) {\n state.copyProgress = copyProgress;\n }\n if (\n copyStatus === \"pending\" &&\n copyProgress !== prevCopyProgress &&\n typeof options.fireProgress === \"function\"\n ) {\n // trigger in setTimeout, or swallow error?\n options.fireProgress(state);\n } else if (copyStatus === \"success\") {\n state.result = result;\n state.isCompleted = true;\n } else if (copyStatus === \"failed\") {\n state.error = new Error(\n `Blob copy failed with reason: \"${result.copyStatusDescription || \"unknown\"}\"`\n );\n state.isCompleted = true;\n }\n } catch (err: any) {\n state.error = err;\n state.isCompleted = true;\n }\n }\n\n return makeBlobBeginCopyFromURLPollOperation(state);\n};\n\n/**\n * Note: Intentionally using function expression over arrow function expression\n * so that the function can be invoked with a different context.\n * This affects what `this` refers to.\n * @hidden\n */\nconst toString: BlobBeginCopyFromURLPollOperation[\"toString\"] = function toString(\n this: BlobBeginCopyFromURLPollOperation\n) {\n return JSON.stringify({ state: this.state }, (key, value) => {\n // remove blobClient from serialized state since a client can't be hydrated from this info.\n if (key === \"blobClient\") {\n return undefined;\n }\n return value;\n });\n};\n\n/**\n * Creates a poll operation given the provided state.\n * @hidden\n */\nfunction makeBlobBeginCopyFromURLPollOperation(\n state: BlobBeginCopyFromUrlPollState\n): BlobBeginCopyFromURLPollOperation {\n return {\n state: { ...state },\n cancel,\n toString,\n update,\n };\n}\n","/**\n * Dictionary of booleans.\n *\n * @internal\n */\nexport interface IDictionary {\n [className: string]: boolean;\n}\n\n/**\n * Serializable object.\n *\n * @internal\n */\nexport interface ISerializableObject {\n toString?: () => string;\n}\n\n/**\n * css input type.\n *\n * @internal\n */\nexport type ICssInput = string | ISerializableObject | IDictionary | null | undefined | boolean;\n\n/**\n * Concatination helper, which can merge class names together. Skips over falsey values.\n *\n * @public\n */\nexport function css(...args: ICssInput[]): string {\n let classes = [];\n\n for (let arg of args) {\n if (arg) {\n if (typeof arg === 'string') {\n classes.push(arg);\n } else if (arg.hasOwnProperty('toString') && typeof arg.toString === 'function') {\n classes.push(arg.toString());\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n for (let key in arg as any) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if ((arg as any)[key]) {\n classes.push(key);\n }\n }\n }\n }\n }\n\n return classes.join(' ');\n}\n","import { getWindow } from './dom/getWindow';\nimport { Stylesheet } from '@fluentui/merge-styles';\n\n// Initialize global window id.\nconst CURRENT_ID_PROPERTY = '__currentId__';\nconst DEFAULT_ID_STRING = 'id__';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nlet _global: any = getWindow() || {};\n\nif (_global[CURRENT_ID_PROPERTY] === undefined) {\n _global[CURRENT_ID_PROPERTY] = 0;\n}\n\nlet _initializedStylesheetResets = false;\n\n/**\n * Generates a unique id in the global scope (this spans across duplicate copies of the same library.)\n *\n * @public\n */\nexport function getId(prefix?: string): string {\n if (!_initializedStylesheetResets) {\n // Configure ids to reset on stylesheet resets.\n const stylesheet = Stylesheet.getInstance();\n\n if (stylesheet && stylesheet.onReset) {\n stylesheet.onReset(resetIds);\n }\n _initializedStylesheetResets = true;\n }\n\n let index = _global[CURRENT_ID_PROPERTY]++;\n\n return (prefix === undefined ? DEFAULT_ID_STRING : prefix) + index;\n}\n\n/**\n * Resets id counter to an (optional) number.\n *\n * @public\n */\nexport function resetIds(counter: number = 0): void {\n _global[CURRENT_ID_PROPERTY] = counter;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \n\ntype AbortEventListener = (this: AbortSignalLike, ev?: any) => any;\n\nconst listenersMap = new WeakMap();\nconst abortedMap = new WeakMap();\n\n/**\n * Allows the request to be aborted upon firing of the \"abort\" event.\n * Compatible with the browser built-in AbortSignal and common polyfills.\n */\nexport interface AbortSignalLike {\n /**\n * Indicates if the signal has already been aborted.\n */\n readonly aborted: boolean;\n /**\n * Add new \"abort\" event listener, only support \"abort\" event.\n */\n addEventListener(\n type: \"abort\",\n listener: (this: AbortSignalLike, ev: any) => any,\n options?: any\n ): void;\n /**\n * Remove \"abort\" event listener, only support \"abort\" event.\n */\n removeEventListener(\n type: \"abort\",\n listener: (this: AbortSignalLike, ev: any) => any,\n options?: any\n ): void;\n}\n\n/**\n * An aborter instance implements AbortSignal interface, can abort HTTP requests.\n *\n * - Call AbortSignal.none to create a new AbortSignal instance that cannot be cancelled.\n * Use `AbortSignal.none` when you are required to pass a cancellation token but the operation\n * cannot or will not ever be cancelled.\n *\n * @example\n * Abort without timeout\n * ```ts\n * await doAsyncWork(AbortSignal.none);\n * ```\n */\nexport class AbortSignal implements AbortSignalLike {\n constructor() {\n listenersMap.set(this, []);\n abortedMap.set(this, false);\n }\n\n /**\n * Status of whether aborted or not.\n *\n * @readonly\n */\n public get aborted(): boolean {\n if (!abortedMap.has(this)) {\n throw new TypeError(\"Expected `this` to be an instance of AbortSignal.\");\n }\n\n return abortedMap.get(this)!;\n }\n\n /**\n * Creates a new AbortSignal instance that will never be aborted.\n *\n * @readonly\n */\n public static get none(): AbortSignal {\n return new AbortSignal();\n }\n\n /**\n * onabort event listener.\n */\n public onabort: ((ev?: Event) => any) | null = null;\n\n /**\n * Added new \"abort\" event listener, only support \"abort\" event.\n *\n * @param _type - Only support \"abort\" event\n * @param listener - The listener to be added\n */\n public addEventListener(\n // tslint:disable-next-line:variable-name\n _type: \"abort\",\n listener: (this: AbortSignalLike, ev: any) => any\n ): void {\n if (!listenersMap.has(this)) {\n throw new TypeError(\"Expected `this` to be an instance of AbortSignal.\");\n }\n\n const listeners = listenersMap.get(this)!;\n listeners.push(listener);\n }\n\n /**\n * Remove \"abort\" event listener, only support \"abort\" event.\n *\n * @param _type - Only support \"abort\" event\n * @param listener - The listener to be removed\n */\n public removeEventListener(\n // tslint:disable-next-line:variable-name\n _type: \"abort\",\n listener: (this: AbortSignalLike, ev: any) => any\n ): void {\n if (!listenersMap.has(this)) {\n throw new TypeError(\"Expected `this` to be an instance of AbortSignal.\");\n }\n\n const listeners = listenersMap.get(this)!;\n\n const index = listeners.indexOf(listener);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n }\n\n /**\n * Dispatches a synthetic event to the AbortSignal.\n */\n dispatchEvent(_event: Event): boolean {\n throw new Error(\n \"This is a stub dispatchEvent implementation that should not be used. It only exists for type-checking purposes.\"\n );\n }\n}\n\n/**\n * Helper to trigger an abort event immediately, the onabort and all abort event listeners will be triggered.\n * Will try to trigger abort event for all linked AbortSignal nodes.\n *\n * - If there is a timeout, the timer will be cancelled.\n * - If aborted is true, nothing will happen.\n *\n * @internal\n */\n// eslint-disable-next-line @azure/azure-sdk/ts-use-interface-parameters\nexport function abortSignal(signal: AbortSignal): void {\n if (signal.aborted) {\n return;\n }\n\n if (signal.onabort) {\n signal.onabort.call(signal);\n }\n\n const listeners = listenersMap.get(signal)!;\n if (listeners) {\n // Create a copy of listeners so mutations to the array\n // (e.g. via removeListener calls) don't affect the listeners\n // we invoke.\n listeners.slice().forEach((listener) => {\n listener.call(signal, { type: \"abort\" });\n });\n }\n\n abortedMap.set(signal, true);\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { AbortSignal, AbortSignalLike, abortSignal } from \"./AbortSignal\";\n\n/**\n * This error is thrown when an asynchronous operation has been aborted.\n * Check for this error by testing the `name` that the name property of the\n * error matches `\"AbortError\"`.\n *\n * @example\n * ```ts\n * const controller = new AbortController();\n * controller.abort();\n * try {\n * doAsyncWork(controller.signal)\n * } catch (e) {\n * if (e.name === 'AbortError') {\n * // handle abort error here.\n * }\n * }\n * ```\n */\nexport class AbortError extends Error {\n constructor(message?: string) {\n super(message);\n this.name = \"AbortError\";\n }\n}\n\n/**\n * An AbortController provides an AbortSignal and the associated controls to signal\n * that an asynchronous operation should be aborted.\n *\n * @example\n * Abort an operation when another event fires\n * ```ts\n * const controller = new AbortController();\n * const signal = controller.signal;\n * doAsyncWork(signal);\n * button.addEventListener('click', () => controller.abort());\n * ```\n *\n * @example\n * Share aborter cross multiple operations in 30s\n * ```ts\n * // Upload the same data to 2 different data centers at the same time,\n * // abort another when any of them is finished\n * const controller = AbortController.withTimeout(30 * 1000);\n * doAsyncWork(controller.signal).then(controller.abort);\n * doAsyncWork(controller.signal).then(controller.abort);\n *```\n *\n * @example\n * Cascaded aborting\n * ```ts\n * // All operations can't take more than 30 seconds\n * const aborter = Aborter.timeout(30 * 1000);\n *\n * // Following 2 operations can't take more than 25 seconds\n * await doAsyncWork(aborter.withTimeout(25 * 1000));\n * await doAsyncWork(aborter.withTimeout(25 * 1000));\n * ```\n */\nexport class AbortController {\n private _signal: AbortSignal;\n\n /**\n * @param parentSignals - The AbortSignals that will signal aborted on the AbortSignal associated with this controller.\n */\n constructor(parentSignals?: AbortSignalLike[]);\n /**\n * @param parentSignals - The AbortSignals that will signal aborted on the AbortSignal associated with this controller.\n */\n constructor(...parentSignals: AbortSignalLike[]);\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n constructor(parentSignals?: any) {\n this._signal = new AbortSignal();\n\n if (!parentSignals) {\n return;\n }\n // coerce parentSignals into an array\n if (!Array.isArray(parentSignals)) {\n // eslint-disable-next-line prefer-rest-params\n parentSignals = arguments;\n }\n for (const parentSignal of parentSignals) {\n // if the parent signal has already had abort() called,\n // then call abort on this signal as well.\n if (parentSignal.aborted) {\n this.abort();\n } else {\n // when the parent signal aborts, this signal should as well.\n parentSignal.addEventListener(\"abort\", () => {\n this.abort();\n });\n }\n }\n }\n\n /**\n * The AbortSignal associated with this controller that will signal aborted\n * when the abort method is called on this controller.\n *\n * @readonly\n */\n public get signal(): AbortSignal {\n return this._signal;\n }\n\n /**\n * Signal that any operations passed this controller's associated abort signal\n * to cancel any remaining work and throw an `AbortError`.\n */\n abort(): void {\n abortSignal(this._signal);\n }\n\n /**\n * Creates a new AbortSignal instance that will abort after the provided ms.\n * @param ms - Elapsed time in milliseconds to trigger an abort.\n */\n public static timeout(ms: number): AbortSignal {\n const signal = new AbortSignal();\n const timer = setTimeout(abortSignal, ms, signal);\n // Prevent the active Timer from keeping the Node.js event loop active.\n if (typeof timer.unref === \"function\") {\n timer.unref();\n }\n return signal;\n }\n}\n","/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","import { ComponentType, EventName, ItEventType, ActionType, TaskStatus, ActionStatus } from '../utils/Enum';\r\n\r\n/**\r\n * FeatureUsageEventV2 is used to populate heart-metrics related data\r\n * featureName - Name of the functionality\r\n * subFeatureName - Sub feature name\r\n * actionName - actionName like create/rupdate etc\r\n * eventName - Is a Enum (EventName)\r\n * actionType - Is a Enum (ActionType)\r\n * componentType - Is a Enum (ComponentType)\r\n * componentUri -\r\n * userRoleName - Logged in user role name\r\n * entityId - The reference id of the operation for ex: orderId/transactionId\r\n * templateType - This is for Internal use, field used to identify the model\r\n * startDateTime - Event start DateTime\r\n * endDateTime - Event end DateTime\r\n * experienceResult - Task sucess or failure\r\n * experimentationConfigId - Flighting id\r\n * experimentationConfigName - Flighting name\r\n * experimentationConfigResult - \r\n * capabilityType - Capability type\r\n * isEmbeddedExperience - Is embedded experience\r\n * embeddedExpereinceName - Embedded expereince name\r\n */\r\nexport class FeatureUsageEventV2 {\r\n //declaring the attributes which will be populated by user when they use the SDK\r\n private duration: number;\r\n private componentUri: string;\r\n private componentType: ComponentType;\r\n private userRoleName: string;\r\n private startDateTime: Date;\r\n private endDateTime: Date;\r\n private templateType: string;\r\n private featureName: string;\r\n private subFeatureName: string;\r\n private actionName: string;\r\n private eventName:EventName;\r\n private eventType:ItEventType;\r\n private actionType:ActionType;\r\n private experimentationConfigId:string;\r\n private experimentationConfigName:string;\r\n private experimentationConfigResult:boolean;\r\n private entityId: string;\r\n private capabilityType: string;\r\n private isEmbeddedExperience: boolean;\r\n private embeddedExpereinceName: string;\r\n private taskName: string;\r\n private taskStatus: TaskStatus;\r\n private actionStatus: ActionStatus;\r\n \r\n constructor(featureName: string, actionType: ActionType, actionName: string,eventName: EventName, componentType: ComponentType){\r\n this.featureName = featureName;\r\n this.actionName = actionName;\r\n this.eventName = eventName;\r\n this.actionType = actionType;\r\n this.componentType = componentType; \r\n this.eventType = ItEventType.FeatureUsageEvent; \r\n }\r\n\r\n public get TaskName(): string {\r\n return this.taskName;\r\n }\r\n\r\n public set TaskName(value: string) {\r\n this.taskName = value;\r\n }\r\n\r\n public get TaskStatus(): TaskStatus {\r\n return this.taskStatus;\r\n }\r\n\r\n public set TaskStatus(value: TaskStatus) {\r\n this.taskStatus = value;\r\n }\r\n\r\n public get ActionStatus(): ActionStatus {\r\n return this.actionStatus;\r\n }\r\n\r\n public set ActionStatus(value: ActionStatus) {\r\n this.actionStatus = value;\r\n }\r\n\r\n public get CapabilityType(): string {\r\n return this.capabilityType;\r\n }\r\n\r\n public set CapabilityType(value: string) {\r\n this.capabilityType = value;\r\n }\r\n\r\n public get EmbeddedExpereinceName(): string {\r\n return this.embeddedExpereinceName;\r\n }\r\n\r\n public set EmbeddedExpereinceName(value: string) {\r\n this.embeddedExpereinceName = value;\r\n }\r\n\r\n public set IsEmbeddedExperience(value: boolean) {\r\n this.isEmbeddedExperience= value;\r\n }\r\n\r\n public get IsEmbeddedExperience(): boolean {\r\n return this.isEmbeddedExperience;\r\n }\r\n\r\n public get EventName(): EventName {\r\n return this.eventName;\r\n }\r\n\r\n public set EventName(value: EventName) {\r\n this.eventName = value;\r\n }\r\n\r\n public get EventType(): ItEventType {\r\n return this.eventType;\r\n }\r\n\r\n public set EventType(value: ItEventType) {\r\n this.eventType = value;\r\n }\r\n\r\n public get Duration(): number {\r\n return this.duration;\r\n }\r\n\r\n public set Duration(value: number) {\r\n this.duration = value;\r\n }\r\n\r\n public get FeatureName(): string {\r\n return this.featureName;\r\n }\r\n\r\n public set FeatureName(value: string) {\r\n this.featureName = value;\r\n }\r\n\r\n public get SubFeatureName(): string {\r\n return this.subFeatureName;\r\n }\r\n\r\n public set SubFeatureName(value: string) {\r\n this.subFeatureName = value;\r\n }\r\n\r\n public get ActionName(): string {\r\n return this.actionName;\r\n }\r\n\r\n public set ActionName(value: string) {\r\n this.actionName = value;\r\n }\r\n\r\n public set ActionType(value: ActionType) {\r\n this.actionType = value;\r\n }\r\n\r\n \r\n public get ActionType(): ActionType {\r\n return this.actionType;\r\n }\r\n\r\n public set ExperimentationConfigId(value: string) {\r\n this.experimentationConfigId = value;\r\n }\r\n\r\n public get ExperimentationConfigId(): string {\r\n return this.experimentationConfigId;\r\n }\r\n\r\n public set ExperimentationConfigName(value: string) {\r\n this.experimentationConfigName= value;\r\n }\r\n\r\n public get ExperimentationConfigName(): string {\r\n return this.experimentationConfigName;\r\n }\r\n\r\n public set ExperimentationConfigResult(value: boolean) {\r\n this.experimentationConfigResult= value;\r\n }\r\n\r\n public get ExperimentationConfigResult(): boolean {\r\n return this.experimentationConfigResult;\r\n }\r\n\r\n public get TemplateType(): string {\r\n return \"Internal.FeatureUsageEventV2\";\r\n }\r\n\r\n public get ComponentType(): ComponentType {\r\n return this.componentType;\r\n }\r\n\r\n public set ComponentType(value: ComponentType) {\r\n this.componentType = value;\r\n } \r\n\r\n public get UserRoleName(): string {\r\n return this.userRoleName;\r\n }\r\n\r\n public set UserRoleName(value: string) {\r\n this.userRoleName = value;\r\n }\r\n\r\n public get StartDateTime(): Date {\r\n return this.startDateTime;\r\n }\r\n\r\n public set StartDateTime(value: Date) {\r\n this.startDateTime = value;\r\n }\r\n\r\n public get EndDateTime(): Date {\r\n return this.endDateTime;\r\n }\r\n\r\n public set EndDateTime(value: Date) {\r\n this.endDateTime = value;\r\n }\r\n\r\n public get ComponentUri(): string {\r\n return this.componentUri;\r\n }\r\n\r\n public set ComponentUri(value: string) {\r\n this.componentUri = value;\r\n }\r\n\r\n public get EntityId(): string{\r\n return this.entityId;\r\n }\r\n\r\n public set EntityId(value: string){\r\n this.entityId = value;\r\n }\r\n\r\n public getFeatureUsageName(eventProperties: any){\r\n if (eventProperties.SubFeatureName != null && eventProperties.SubFeatureName !== \"\" && eventProperties.SubFeatureName !== undefined)\r\n return `${eventProperties.FeatureName}.${eventProperties.SubFeatureName}-${eventProperties.ActionName}-${eventProperties.EventName}-${eventProperties.ActionType}`;\r\n else\r\n return `${eventProperties.FeatureName}-${eventProperties.ActionName}-${eventProperties.EventName}-${eventProperties.ActionType}`;\r\n }\r\n\r\n public IsValidEvent(): boolean {\r\n if (!this.eventName || 0 === this.eventName.length) {\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n} \r\n","import { BusinessProcessEvent } from './BusinessProcessEvent';\r\nimport { ComponentType, ItEventType } from '../utils/Enum';\r\n\r\nexport class SystemEvent extends BusinessProcessEvent {\r\n\r\n private systemMessage: string;\r\n\r\n constructor(businessProcessName: string, componentType: ComponentType)\r\n constructor(businessProcessName: string, componentType: ComponentType, systemMessage: string)\r\n constructor(businessProcessName: string, componentType: ComponentType, systemMessage?: string) {\r\n super(businessProcessName, componentType, null, null);\r\n this.systemMessage = systemMessage;\r\n this.EventType = ItEventType.SystemEvent;\r\n }\r\n\r\n public get SystemMessage(): string {\r\n return this.systemMessage;\r\n }\r\n\r\n public set SystemMessage(value: string) {\r\n this.systemMessage = value;\r\n }\r\n\r\n public IsValidEvent(isValid: boolean): boolean {\r\n if (!this.EventName || 0 === this.EventName.length) {\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n}\r\n","export class EnvironmentValues {\r\n /// Plain string that names the environment of the component. Default value is: Production. \r\n ///IMPORTANT: The only valid value for this property in production is \"Production\".\r\n ///If this attribute value is something else other than \"Production\" data won't be pushed \r\n ///to production clusters of MSIT Telemetry Store. -->\r\n public EnvironmetName: string;\r\n // Plain string, value contains Level 1 hierarchy of Service Tree (also known as ServiceGroup).\r\n public ServiceOffering: string;\r\n // Plain string, value contains Level 2 hierarchy of Service Tree (also known as TeamGroup).\r\n public ServiceLine: string;\r\n // Plain string, value contains Level 3 hierarchy of Service Tree.\r\n public Service: string;\r\n // Plain string, value contains Level 4 hierarchy of Service Tree.\r\n public ComponentName: string;\r\n // Plain string, value contains Service Tree Component Id (Guid) value.\r\n public ComponentId: string;\r\n // Plain string, value contains ictoId\r\n public IctoId: string\r\n // Plain string, value contains experiment RandomizationUnitId\r\n public RandomizationUnitId: string\r\n // Plain string, value contains experiment Assignment Context\r\n public AssignmentContext: string\r\n // Plain string, value contains experiment ExperimentId\r\n public ExperimentId: string\r\n\r\n constructor(environmentName: string, serviceOffering: string, serviceLine: string, service: string, componentName: string, \r\n componentId: string, ictoId: string, randomizationUnitId?: string, assignmentContext?: string,experimentId?: string) {\r\n this.EnvironmetName = environmentName;\r\n this.ServiceOffering = serviceOffering;\r\n this.ServiceLine = serviceLine;\r\n this.Service = service;\r\n this.ComponentName = componentName;\r\n this.ComponentId = componentId;\r\n this.IctoId = ictoId;\r\n this.RandomizationUnitId = randomizationUnitId;\r\n this.AssignmentContext = assignmentContext;\r\n this.ExperimentId = experimentId;\r\n }\r\n}","import { Guid } from '../utils/utils';\r\nimport { ICorelator } from '../interfaces/ICorelator';\r\nimport $ from \"jquery\";\r\n\r\nexport class Correlator implements ICorelator{\r\ncorrelationId: string;\r\nsubCorelationId: string;\r\n\r\n constructor() {\r\n if(this.correlationId === null || this.correlationId === undefined){\r\n this.correlationId = Guid.create();\r\n if($!=null && $!=undefined && $.ajaxSetup!=null && $.ajaxSetup!=undefined){\r\n $.ajaxSetup({\r\n headers: { \"X-CorrelationId\": this.correlationId }\r\n });\r\n } \r\n }\r\n }\r\n \r\n /*\r\n * method to get correation-id\r\n */\r\n getCorrelationId():string\r\n {\r\n return this.correlationId;\r\n }\r\n\r\n /*\r\n * method to set correation-id\r\n */\r\n setCorrelationId(newId:string)\r\n {\r\n this.correlationId = newId;\r\n }\r\n\r\n /*\r\n * method to renew correation-id\r\n */\r\n renewCorrelationId()\r\n {\r\n var tmp = Guid.create();\r\n this.setCorrelationId(tmp);\r\n if($!=null && $!=undefined && $.ajaxSetup!=null && $.ajaxSetup!= undefined){\r\n $.ajaxSetup({\r\n headers: { \"X-CorrelationId\": this.correlationId }\r\n });\r\n }\r\n return this.correlationId;\r\n }\r\n\r\n /*\r\n * method to get sub-corelation-id\r\n */\r\n getSubCorrelationId():string\r\n {\r\n return this.subCorelationId;\r\n }\r\n\r\n /*\r\n * method to set sub-corelation-id\r\n */\r\n setSubCorrelationId(newId:string)\r\n {\r\n this.subCorelationId = newId;\r\n }\r\n\r\n /*\r\n * method to renew sub-corelation-id\r\n */\r\n renewSubCorrelationId(): string\r\n {\r\n var tmp = Guid.create();\r\n this.setSubCorrelationId(tmp);\r\n return this.subCorelationId;\r\n }\r\n}\r\n\r\n\r\n","/*!\n * jQuery JavaScript Library v3.6.0\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2021-03-02T17:08Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.6.0\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.6\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2021-02-16\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem && elem.namespaceURI,\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces \";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting or other required elements.\n\tthead: [ 1, \"\", \"
    \" ],\n\tcol: [ 2, \"\", \"
    \" ],\n\ttr: [ 2, \"\", \"
    \" ],\n\ttd: [ 3, \"\", \"
    \" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Support: Chrome 86+\n\t\t\t\t\t\t// In Chrome, if an element having a focusout handler is blurred by\n\t\t\t\t\t\t// clicking outside of it, it invokes the handler synchronously. If\n\t\t\t\t\t\t// that handler calls `.remove()` on the element, the data is cleared,\n\t\t\t\t\t\t// leaving `result` undefined. We need to guard against this.\n\t\t\t\t\t\treturn result && result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\t// Suppress native focus or blur as it's already being fired\n\t\t// in leverageNative.\n\t\t_default: function() {\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is display: block\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, #12537)\n\t// .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"