{"version":3,"file":"static/js/main.5a5d51df.js","mappings":"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,KAC3BA,IAAW,GAAOA,GAAU,KAC5BA,IAAW,GAAOA,GAAU,MAC5BA,EAASC,EAAWD,EAASE,EAAWD,EAASC,GACrD,EAEFK,EAASD,EACTA,EAASD,EACTA,EAASD,EACTA,EAAUD,EAASQ,EAAM,EACzBR,EAASD,EACTA,EAASD,EACTA,EAASD,EACTA,EAAUW,EAAKE,EAAM,EAGvB9C,EAAM,IAAMiC,EACZjC,EAAM,IAAMkC,EACZlC,EAAM,IAAMmC,EACZnC,EAAM,IAAMoC,EACZpC,EAAM,IAAMqC,EACZrC,EAAM,IAAMsC,EACZtC,EAAM,IAAMuC,EACZvC,EAAM,IAAMwC,CACd,EACFzC,CAAA,CAxJA,GAAagD,EAAAA,UAAAhD,2JCRAgD,EAAAA,WAAqB,GAKrBA,EAAAA,cAAwB,GAKxBA,EAAAA,IAAM,IAAIC,YAAY,CACjC,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,aAMWD,EAAAA,KAAO,CAClB,WACA,WACA,WACA,WACA,WACA,WACA,UACA,YAMWA,EAAAA,oBAAsBlB,KAAAoB,IAAA,EAAK,IAAK,6FCjG7CC,aAAApD,EAAA,MAAAiD,oHCAAlD,EAAAC,EAAA,MACAqD,EAAArD,EAAA,MAEAsD,EAAAtD,EAAA,MAEAuD,EAAA,WAME,SAAAA,EAAYC,GACVzC,KAAKyC,OAASA,EACdzC,KAAK0C,KAAO,IAAIJ,EAAApD,UAChBc,KAAK6O,OACP,CAgEF,OA9DErM,EAAA3C,UAAAC,OAAA,SAAOoD,GACL,KAAI,EAAAX,EAAAY,aAAYD,KAAWlD,KAAKoD,MAIhC,IACEpD,KAAK0C,KAAK5C,QAAO,EAAAyC,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AY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,SAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,SAAY,WACpC,WAAY,WAAY,SAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,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","sources":["../node_modules/@aws-crypto/sha256-js/src/RawSha256.ts","../node_modules/@aws-crypto/sha256-js/src/constants.ts","../node_modules/@aws-crypto/sha256-js/src/index.ts","../node_modules/@aws-crypto/sha256-js/src/jsSha256.ts","../node_modules/@aws-crypto/sha256-js/node_modules/@aws-crypto/util/src/convertToBuffer.ts","../node_modules/@aws-crypto/sha256-js/node_modules/@aws-crypto/util/src/index.ts","../node_modules/@aws-crypto/sha256-js/node_modules/@aws-crypto/util/src/isEmptyData.ts","../node_modules/@aws-crypto/sha256-js/node_modules/@aws-crypto/util/src/numToUint8.ts","../node_modules/@aws-crypto/sha256-js/node_modules/@aws-crypto/util/src/uint32ArrayFrom.ts","../node_modules/@aws-crypto/sha256-js/node_modules/@aws-sdk/util-utf8-browser/dist-es/index.js","../node_modules/@aws-crypto/sha256-js/node_modules/@aws-sdk/util-utf8-browser/dist-es/whatwgEncodingApi.js","../node_modules/@aws-crypto/sha256-js/node_modules/@aws-sdk/util-utf8-browser/dist-es/pureJs.js","../node_modules/@aws-crypto/sha256-js/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-crypto/ie11-detection/src/MsWindow.ts","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-crypto/ie11-detection/src/index.ts","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-crypto/ie11-detection/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-crypto/sha256-browser/src/constants.ts","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-crypto/sha256-browser/src/crossPlatformSha256.ts","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-crypto/sha256-browser/src/ie11Sha256.ts","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-crypto/sha256-browser/src/index.ts","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-crypto/sha256-browser/src/isEmptyData.ts","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-crypto/sha256-browser/src/webCryptoSha256.ts","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-crypto/sha256-browser/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-crypto/sha256-js/src/RawSha256.ts","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-crypto/sha256-js/src/constants.ts","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-crypto/sha256-js/src/index.ts","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-crypto/sha256-js/src/jsSha256.ts","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-crypto/sha256-js/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-crypto/supports-web-crypto/src/index.ts","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-crypto/supports-web-crypto/src/supportsWebCrypto.ts","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-crypto/util/src/convertToBuffer.ts","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-crypto/util/src/index.ts","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-crypto/util/src/isEmptyData.ts","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-crypto/util/src/numToUint8.ts","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-crypto/util/src/uint32ArrayFrom.ts","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-sdk/util-utf8-browser/dist-es/index.js","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-sdk/util-utf8-browser/dist-es/whatwgEncodingApi.js","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-sdk/util-utf8-browser/dist-es/pureJs.js","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-crypto/ie11-detection/src/MsWindow.ts","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-crypto/ie11-detection/src/index.ts","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-crypto/ie11-detection/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-crypto/sha256-browser/src/constants.ts","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-crypto/sha256-browser/src/crossPlatformSha256.ts","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-crypto/sha256-browser/src/ie11Sha256.ts","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-crypto/sha256-browser/src/index.ts","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-crypto/sha256-browser/src/isEmptyData.ts","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-crypto/sha256-browser/src/webCryptoSha256.ts","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-crypto/sha256-browser/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-crypto/sha256-js/src/RawSha256.ts","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-crypto/sha256-js/src/constants.ts","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-crypto/sha256-js/src/index.ts","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-crypto/sha256-js/src/jsSha256.ts","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-crypto/sha256-js/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-crypto/supports-web-crypto/src/index.ts","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-crypto/supports-web-crypto/src/supportsWebCrypto.ts","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-crypto/util/src/convertToBuffer.ts","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-crypto/util/src/index.ts","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-crypto/util/src/isEmptyData.ts","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-crypto/util/src/numToUint8.ts","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-crypto/util/src/uint32ArrayFrom.ts","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/util-utf8-browser/dist-es/index.js","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/util-utf8-browser/dist-es/whatwgEncodingApi.js","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/util-utf8-browser/dist-es/pureJs.js","../node_modules/@aws-sdk/util-locate-window/dist-es/index.js","../node_modules/@smithy/eventstream-codec/node_modules/@aws-crypto/crc32/src/aws_crc32.ts","../node_modules/@smithy/eventstream-codec/node_modules/@aws-crypto/crc32/src/index.ts","../node_modules/@smithy/eventstream-codec/node_modules/@aws-crypto/crc32/node_modules/tslib/tslib.es6.js","../node_modules/@smithy/eventstream-codec/node_modules/@aws-crypto/util/src/convertToBuffer.ts","../node_modules/@smithy/eventstream-codec/node_modules/@aws-crypto/util/src/index.ts","../node_modules/@smithy/eventstream-codec/node_modules/@aws-crypto/util/src/isEmptyData.ts","../node_modules/@smithy/eventstream-codec/node_modules/@aws-crypto/util/src/numToUint8.ts","../node_modules/@smithy/eventstream-codec/node_modules/@aws-crypto/util/src/uint32ArrayFrom.ts","../node_modules/@smithy/eventstream-codec/node_modules/@aws-sdk/util-utf8-browser/dist-es/index.js","../node_modules/@smithy/eventstream-codec/node_modules/@aws-sdk/util-utf8-browser/dist-es/whatwgEncodingApi.js","../node_modules/@smithy/eventstream-codec/node_modules/@aws-sdk/util-utf8-browser/dist-es/pureJs.js","../node_modules/ably/build/ably-commonjs.js","../node_modules/bowser/es5.js","../node_modules/contentstack/dist/web/contentstack.js","../node_modules/cookie/index.js","../node_modules/lodash/lodash.js","../node_modules/moment/moment.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/@babel/runtime/helpers/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/typeof.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","reportWebVitals.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@remix-run/router/history.ts","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.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","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router/index.ts","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","assets/logoRed.svg","assets/logoYellow.svg","assets/logoOrange.svg","assets/logoBlue.svg","assets/logoGreen.svg","assets/tiktok.svg","assets/youtube.svg","assets/insta.svg","assets/twitter.svg","assets/hamburger.svg","assets/close.svg","components/button.tsx","assets/logoHover.svg","components/header.tsx","components/footer.tsx","assets/eye.svg","assets/error.svg","assets/eye-closed.svg","components/loader.tsx","components/login-modal.tsx","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/@babel/runtime/helpers/esm/superPropBase.js","../node_modules/@smithy/protocol-http/dist-es/extensions/httpExtensionConfiguration.js","../node_modules/@smithy/types/dist-es/auth.js","../node_modules/@smithy/types/dist-es/endpoint.js","../node_modules/@smithy/types/dist-es/extensions/checksum.js","../node_modules/@smithy/types/dist-es/http.js","../node_modules/@smithy/types/dist-es/transfer.js","../node_modules/@smithy/protocol-http/dist-es/Field.js","../node_modules/@smithy/protocol-http/dist-es/httpRequest.js","../node_modules/@smithy/protocol-http/dist-es/httpResponse.js","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/middleware-host-header/dist-es/index.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@smithy/util-hex-encoding/dist-es/index.js","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/middleware-logger/dist-es/loggerMiddleware.js","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/middleware-recursion-detection/dist-es/index.js","../node_modules/@smithy/property-provider/dist-es/memoize.js","../node_modules/@smithy/eventstream-codec/dist-es/Int64.js","../node_modules/@smithy/eventstream-codec/dist-es/HeaderMarshaller.js","../node_modules/@babel/runtime/helpers/esm/OverloadYield.js","../node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js","../node_modules/@smithy/eventstream-codec/dist-es/MessageDecoderStream.js","../node_modules/@smithy/util-middleware/dist-es/normalizeProvider.js","../node_modules/@smithy/util-utf8/dist-es/toUtf8.browser.js","../node_modules/@smithy/util-utf8/dist-es/fromUtf8.browser.js","../node_modules/@smithy/util-utf8/dist-es/toUint8Array.js","../node_modules/@smithy/signature-v4/dist-es/constants.js","../node_modules/@smithy/signature-v4/dist-es/credentialDerivation.js","../node_modules/@smithy/signature-v4/dist-es/getCanonicalHeaders.js","../node_modules/@smithy/util-uri-escape/dist-es/escape-uri.js","../node_modules/@smithy/signature-v4/dist-es/getPayloadHash.js","../node_modules/@smithy/is-array-buffer/dist-es/index.js","../node_modules/@smithy/signature-v4/dist-es/headerUtil.js","../node_modules/@smithy/signature-v4/dist-es/cloneRequest.js","../node_modules/@smithy/signature-v4/dist-es/moveHeadersToQuery.js","../node_modules/@smithy/signature-v4/dist-es/prepareRequest.js","../node_modules/@smithy/signature-v4/dist-es/utilDate.js","../node_modules/@smithy/signature-v4/dist-es/SignatureV4.js","../node_modules/@smithy/signature-v4/dist-es/getCanonicalQuery.js","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/middleware-signing/dist-es/awsAuthConfiguration.js","../node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/partition.js","../node_modules/@aws-sdk/util-endpoints/dist-es/debug/debugId.js","../node_modules/@aws-sdk/util-endpoints/dist-es/debug/toDebugString.js","../node_modules/@aws-sdk/util-endpoints/dist-es/types/EndpointError.js","../node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types/dist-es/dns.js","../node_modules/@aws-sdk/util-endpoints/dist-es/lib/isIpAddress.js","../node_modules/@aws-sdk/util-endpoints/dist-es/lib/isValidHostLabel.js","../node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/isVirtualHostableS3Bucket.js","../node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/parseArn.js","../node_modules/@aws-sdk/util-endpoints/dist-es/lib/booleanEquals.js","../node_modules/@aws-sdk/util-endpoints/dist-es/lib/getAttr.js","../node_modules/@aws-sdk/util-endpoints/dist-es/lib/getAttrPathList.js","../node_modules/@aws-sdk/util-endpoints/dist-es/lib/isSet.js","../node_modules/@aws-sdk/util-endpoints/dist-es/lib/not.js","../node_modules/@aws-sdk/util-endpoints/dist-es/lib/parseURL.js","../node_modules/@smithy/util-config-provider/dist-es/booleanSelector.js","../node_modules/@aws-sdk/util-endpoints/dist-es/lib/stringEquals.js","../node_modules/@aws-sdk/util-endpoints/dist-es/lib/substring.js","../node_modules/@aws-sdk/util-endpoints/dist-es/lib/uriEncode.js","../node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateTemplate.js","../node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateExpression.js","../node_modules/@aws-sdk/util-endpoints/dist-es/utils/getReferenceValue.js","../node_modules/@aws-sdk/util-endpoints/dist-es/utils/callFunction.js","../node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateCondition.js","../node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateConditions.js","../node_modules/@aws-sdk/util-endpoints/dist-es/utils/getEndpointHeaders.js","../node_modules/@aws-sdk/util-endpoints/dist-es/utils/getEndpointProperty.js","../node_modules/@aws-sdk/util-endpoints/dist-es/utils/getEndpointProperties.js","../node_modules/@aws-sdk/util-endpoints/dist-es/utils/getEndpointUrl.js","../node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateEndpointRule.js","../node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateErrorRule.js","../node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateTreeRule.js","../node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateRules.js","../node_modules/@aws-sdk/util-endpoints/dist-es/resolveEndpoint.js","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/middleware-user-agent/dist-es/constants.js","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/middleware-user-agent/dist-es/user-agent-middleware.js","../node_modules/@smithy/config-resolver/dist-es/regionConfig/isFipsRegion.js","../node_modules/@smithy/config-resolver/dist-es/regionConfig/getRealRegion.js","../node_modules/@smithy/config-resolver/dist-es/regionConfig/resolveRegionConfig.js","../node_modules/@smithy/middleware-content-length/dist-es/index.js","../node_modules/@smithy/middleware-serde/dist-es/serdePlugin.js","../node_modules/@smithy/middleware-serde/dist-es/deserializerMiddleware.js","../node_modules/@smithy/middleware-serde/dist-es/serializerMiddleware.js","../node_modules/@smithy/middleware-endpoint/dist-es/service-customizations/s3.js","../node_modules/@smithy/middleware-endpoint/dist-es/adaptors/createConfigValueProvider.js","../node_modules/@smithy/middleware-endpoint/dist-es/adaptors/getEndpointFromInstructions.js","../node_modules/@smithy/middleware-endpoint/dist-es/getEndpointPlugin.js","../node_modules/@smithy/middleware-endpoint/dist-es/endpointMiddleware.js","../node_modules/@smithy/url-parser/dist-es/index.js","../node_modules/@smithy/util-retry/dist-es/config.js","../node_modules/@smithy/querystring-parser/dist-es/index.js","../node_modules/@smithy/middleware-endpoint/dist-es/adaptors/toEndpointV1.js","../node_modules/@smithy/middleware-endpoint/dist-es/resolveEndpointConfig.js","../node_modules/@smithy/middleware-retry/node_modules/uuid/dist/esm-browser/rng.js","../node_modules/@smithy/service-error-classification/dist-es/constants.js","../node_modules/@smithy/service-error-classification/dist-es/index.js","../node_modules/@smithy/util-retry/dist-es/DefaultRateLimiter.js","../node_modules/@smithy/util-retry/dist-es/defaultRetryToken.js","../node_modules/@smithy/util-retry/dist-es/constants.js","../node_modules/@smithy/util-retry/dist-es/StandardRetryStrategy.js","../node_modules/@smithy/util-retry/dist-es/defaultRetryBackoffStrategy.js","../node_modules/@smithy/util-retry/dist-es/AdaptiveRetryStrategy.js","../node_modules/@smithy/middleware-retry/dist-es/configurations.js","../node_modules/@smithy/middleware-retry/node_modules/uuid/dist/esm-browser/regex.js","../node_modules/@smithy/middleware-retry/node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/@smithy/middleware-retry/node_modules/uuid/dist/esm-browser/validate.js","../node_modules/@smithy/util-base64/dist-es/constants.browser.js","../node_modules/@smithy/middleware-retry/node_modules/uuid/dist/esm-browser/v4.js","../node_modules/@smithy/middleware-retry/dist-es/util.js","../node_modules/@smithy/middleware-retry/dist-es/retryMiddleware.js","../node_modules/@smithy/smithy-client/dist-es/NoOpLogger.js","../node_modules/@smithy/middleware-stack/dist-es/MiddlewareStack.js","../node_modules/@smithy/smithy-client/dist-es/client.js","../node_modules/@smithy/util-base64/dist-es/fromBase64.browser.js","../node_modules/@smithy/util-base64/dist-es/toBase64.browser.js","../node_modules/@smithy/util-stream/dist-es/blob/transforms.js","../node_modules/@smithy/util-stream/dist-es/blob/Uint8ArrayBlobAdapter.js","../node_modules/@smithy/querystring-builder/dist-es/index.js","../node_modules/@smithy/fetch-http-handler/dist-es/request-timeout.js","../node_modules/@smithy/fetch-http-handler/dist-es/fetch-http-handler.js","../node_modules/@smithy/fetch-http-handler/dist-es/stream-collector.js","../node_modules/@smithy/util-stream/dist-es/sdk-stream-mixin.browser.js","../node_modules/@smithy/smithy-client/dist-es/collect-stream-body.js","../node_modules/@smithy/smithy-client/dist-es/command.js","../node_modules/@smithy/smithy-client/dist-es/constants.js","../node_modules/@smithy/smithy-client/dist-es/parse-utils.js","../node_modules/@smithy/smithy-client/dist-es/date-utils.js","../node_modules/@smithy/smithy-client/dist-es/exceptions.js","../node_modules/@smithy/smithy-client/dist-es/default-error-handler.js","../node_modules/@smithy/smithy-client/dist-es/defaults-mode.js","../node_modules/@smithy/smithy-client/dist-es/extensions/defaultExtensionConfiguration.js","../node_modules/@smithy/smithy-client/dist-es/extensions/checksum.js","../node_modules/@smithy/smithy-client/dist-es/extensions/retry.js","../node_modules/@smithy/smithy-client/dist-es/lazy-json.js","../node_modules/@smithy/smithy-client/dist-es/object-mapping.js","../node_modules/@smithy/smithy-client/dist-es/serde-json.js","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/util-user-agent-browser/dist-es/index.js","../node_modules/@smithy/invalid-dependency/dist-es/invalidProvider.js","../node_modules/@smithy/util-body-length-browser/dist-es/calculateBodyLength.js","../node_modules/@aws-sdk/client-cognito-identity/dist-es/endpoint/ruleset.js","../node_modules/@aws-sdk/client-cognito-identity/dist-es/endpoint/endpointResolver.js","../node_modules/@smithy/util-defaults-mode-browser/dist-es/constants.js","../node_modules/@smithy/util-defaults-mode-browser/dist-es/resolveDefaultsModeConfig.js","../node_modules/@aws-sdk/client-cognito-identity/dist-es/runtimeConfig.browser.js","../node_modules/@aws-sdk/client-cognito-identity/dist-es/runtimeConfig.shared.js","../node_modules/@smithy/config-resolver/dist-es/endpointsConfig/NodeUseDualstackEndpointConfigOptions.js","../node_modules/@smithy/config-resolver/dist-es/endpointsConfig/NodeUseFipsEndpointConfigOptions.js","../node_modules/@aws-sdk/region-config-resolver/dist-es/extensions/index.js","../node_modules/@aws-sdk/client-cognito-identity/dist-es/CognitoIdentityClient.js","../node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/middleware-user-agent/dist-es/configurations.js","../node_modules/@aws-sdk/client-cognito-identity/dist-es/endpoint/EndpointParameters.js","../node_modules/@aws-sdk/client-cognito-identity/dist-es/runtimeExtensions.js","../node_modules/@aws-sdk/client-cognito-identity/dist-es/models/CognitoIdentityServiceException.js","../node_modules/@aws-sdk/client-cognito-identity/dist-es/models/models_0.js","../node_modules/@aws-sdk/client-cognito-identity/dist-es/protocols/Aws_json1_1.js","../node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/GetIdCommand.js","../node_modules/@aws-sdk/client-cognito-identity/dist-es/commands/GetCredentialsForIdentityCommand.js","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-sdk/middleware-host-header/dist-es/index.js","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-sdk/middleware-logger/dist-es/loggerMiddleware.js","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-sdk/middleware-recursion-detection/dist-es/index.js","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-sdk/middleware-signing/dist-es/awsAuthConfiguration.js","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-sdk/middleware-user-agent/dist-es/constants.js","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-sdk/middleware-user-agent/dist-es/user-agent-middleware.js","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-sdk/util-user-agent-browser/dist-es/index.js","../node_modules/@aws-sdk/client-cognito-identity-provider/dist-es/endpoint/ruleset.js","../node_modules/@aws-sdk/client-cognito-identity-provider/dist-es/endpoint/endpointResolver.js","../node_modules/@aws-sdk/client-cognito-identity-provider/dist-es/runtimeConfig.browser.js","../node_modules/@aws-sdk/client-cognito-identity-provider/dist-es/runtimeConfig.shared.js","../node_modules/@aws-sdk/client-cognito-identity-provider/dist-es/CognitoIdentityProviderClient.js","../node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@aws-sdk/middleware-user-agent/dist-es/configurations.js","../node_modules/@aws-sdk/client-cognito-identity-provider/dist-es/endpoint/EndpointParameters.js","../node_modules/@aws-sdk/client-cognito-identity-provider/dist-es/runtimeExtensions.js","../node_modules/@aws-sdk/client-cognito-identity-provider/dist-es/models/CognitoIdentityProviderServiceException.js","../node_modules/@aws-sdk/client-cognito-identity-provider/dist-es/models/models_0.js","../node_modules/@aws-sdk/client-cognito-identity-provider/dist-es/protocols/Aws_json1_1.js","../node_modules/@aws-sdk/client-cognito-identity-provider/dist-es/commands/InitiateAuthCommand.js","../node_modules/@aws-sdk/client-cognito-identity-provider/dist-es/commands/GetUserCommand.js","../node_modules/@aws-sdk/client-cognito-identity-provider/dist-es/commands/ForgotPasswordCommand.js","../node_modules/@aws-sdk/client-cognito-identity-provider/dist-es/commands/ConfirmForgotPasswordCommand.js","../node_modules/@aws-sdk/client-cognito-identity-provider/dist-es/commands/ConfirmSignUpCommand.js","../node_modules/@aws-sdk/client-cognito-identity-provider/dist-es/commands/ResendConfirmationCodeCommand.js","../node_modules/@aws-sdk/fetch-http-handler/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/protocol-http/src/httpResponse.ts","../node_modules/@aws-sdk/protocol-http/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/protocol-http/src/httpRequest.ts","../node_modules/@aws-sdk/fetch-http-handler/node_modules/@aws-sdk/util-uri-escape/src/escape-uri.ts","../node_modules/@aws-sdk/util-base64-browser/src/index.ts","../node_modules/@aws-sdk/fetch-http-handler/src/fetch-http-handler.ts","../node_modules/@aws-sdk/fetch-http-handler/node_modules/@aws-sdk/querystring-builder/src/index.ts","../node_modules/@aws-sdk/fetch-http-handler/src/request-timeout.ts","../node_modules/@aws-sdk/util-hex-encoding/src/index.ts","../node_modules/@aws-amplify/core/lib-esm/Util/DateUtils.js","../node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSignedHeaders.js","../node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/constants.js","../node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSigningValues.js","../node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCredentialScope.js","../node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getFormattedDates.js","../node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/utils/dataHashHelpers.js","../node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalHeaders.js","../node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalQueryString.js","../node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalUri.js","../node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getHashedPayload.js","../node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSignature.js","../node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalRequest.js","../node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getStringToSign.js","../node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSigningKey.js","../node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/signRequest.js","../node_modules/@aws-amplify/core/lib-esm/clients/middleware/signing/signer/signatureV4/presignUrl.js","../node_modules/@aws-amplify/core/lib-esm/Signer.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.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/isURLSameOrigin.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","lib/cognito.ts","../node_modules/universal-cookie/es6/utils.js","../node_modules/universal-cookie/es6/Cookies.js","../node_modules/universal-cookie/es6/index.js","../node_modules/react-cookie/es6/Cookies.js","../node_modules/react-cookie/es6/CookiesContext.js","../node_modules/react-cookie/es6/useCookies.js","../node_modules/react-cookie/es6/utils.js","../node_modules/react-cookie/es6/CookiesProvider.js","lib/ably.ts","routes/root.tsx","routes/error-page.tsx","assets/mail.svg","../node_modules/gsap/gsap-core.js","../node_modules/gsap/CSSPlugin.js","../node_modules/gsap/index.js","components/background.tsx","components/anchor.tsx","routes/landing.tsx","assets/arrow-left.svg","routes/contact.tsx","assets/chart.svg","assets/chevronRight.svg","assets/trend.svg","assets/graph.svg","assets/chart-active.svg","assets/trend-active.svg","assets/graph-active.svg","routes/partners.tsx","assets/location.svg","assets/trophy.svg","assets/document.svg","assets/education.svg","assets/sparkle.svg","routes/about-us.tsx","routes/faq.tsx","routes/legal/privacy-policy.tsx","routes/watch.tsx","routes/host-application.tsx","routes/download.tsx","index.tsx"],"sourcesContent":["import {\n BLOCK_SIZE,\n DIGEST_LENGTH,\n INIT,\n KEY,\n MAX_HASHABLE_LENGTH\n} from \"./constants\";\n\n/**\n * @internal\n */\nexport class RawSha256 {\n private state: Int32Array = Int32Array.from(INIT);\n private temp: Int32Array = new Int32Array(64);\n private buffer: Uint8Array = new Uint8Array(64);\n private bufferLength: number = 0;\n private bytesHashed: number = 0;\n\n /**\n * @internal\n */\n finished: boolean = false;\n\n update(data: Uint8Array): void {\n if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n\n let position = 0;\n let { byteLength } = data;\n this.bytesHashed += byteLength;\n\n if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) {\n throw new Error(\"Cannot hash more than 2^53 - 1 bits\");\n }\n\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n }\n\n digest(): Uint8Array {\n if (!this.finished) {\n const bitsHashed = this.bytesHashed * 8;\n const bufferView = new DataView(\n this.buffer.buffer,\n this.buffer.byteOffset,\n this.buffer.byteLength\n );\n\n const undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (let i = this.bufferLength; i < BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n\n for (let i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(\n BLOCK_SIZE - 8,\n Math.floor(bitsHashed / 0x100000000),\n true\n );\n bufferView.setUint32(BLOCK_SIZE - 4, bitsHashed);\n\n this.hashBuffer();\n\n this.finished = true;\n }\n\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n const out = new Uint8Array(DIGEST_LENGTH);\n for (let i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n\n return out;\n }\n\n private hashBuffer(): void {\n const { buffer, state } = this;\n\n let state0 = state[0],\n state1 = state[1],\n state2 = state[2],\n state3 = state[3],\n state4 = state[4],\n state5 = state[5],\n state6 = state[6],\n state7 = state[7];\n\n for (let i = 0; i < BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] =\n ((buffer[i * 4] & 0xff) << 24) |\n ((buffer[i * 4 + 1] & 0xff) << 16) |\n ((buffer[i * 4 + 2] & 0xff) << 8) |\n (buffer[i * 4 + 3] & 0xff);\n } else {\n let u = this.temp[i - 2];\n const t1 =\n ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);\n\n u = this.temp[i - 15];\n const t2 =\n ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);\n\n this.temp[i] =\n ((t1 + this.temp[i - 7]) | 0) + ((t2 + this.temp[i - 16]) | 0);\n }\n\n const t1 =\n ((((((state4 >>> 6) | (state4 << 26)) ^\n ((state4 >>> 11) | (state4 << 21)) ^\n ((state4 >>> 25) | (state4 << 7))) +\n ((state4 & state5) ^ (~state4 & state6))) |\n 0) +\n ((state7 + ((KEY[i] + this.temp[i]) | 0)) | 0)) |\n 0;\n\n const t2 =\n ((((state0 >>> 2) | (state0 << 30)) ^\n ((state0 >>> 13) | (state0 << 19)) ^\n ((state0 >>> 22) | (state0 << 10))) +\n ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |\n 0;\n\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n }\n}\n","/**\n * @internal\n */\nexport const BLOCK_SIZE: number = 64;\n\n/**\n * @internal\n */\nexport const DIGEST_LENGTH: number = 32;\n\n/**\n * @internal\n */\nexport const KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n\n/**\n * @internal\n */\nexport const INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n];\n\n/**\n * @internal\n */\nexport const MAX_HASHABLE_LENGTH = 2 ** 53 - 1;\n","export * from \"./jsSha256\";\n","import { BLOCK_SIZE } from \"./constants\";\nimport { RawSha256 } from \"./RawSha256\";\nimport { Hash, SourceData } from \"@aws-sdk/types\";\nimport { isEmptyData, convertToBuffer } from \"@aws-crypto/util\";\n\nexport class Sha256 implements Hash {\n private readonly hash = new RawSha256();\n private readonly outer?: RawSha256;\n private error: any;\n\n constructor(secret?: SourceData) {\n if (secret) {\n this.outer = new RawSha256();\n const inner = bufferFromSecret(secret);\n const outer = new Uint8Array(BLOCK_SIZE);\n outer.set(inner);\n\n for (let i = 0; i < BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n\n this.hash.update(inner);\n this.outer.update(outer);\n\n // overwrite the copied key in memory\n for (let i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n }\n }\n\n update(toHash: SourceData): void {\n if (isEmptyData(toHash) || this.error) {\n return;\n }\n\n try {\n this.hash.update(convertToBuffer(toHash));\n } catch (e) {\n this.error = e;\n }\n }\n\n /* This synchronous method keeps compatibility\n * with the v2 aws-sdk.\n */\n digestSync(): Uint8Array {\n if (this.error) {\n throw this.error;\n }\n\n if (this.outer) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n\n return this.outer.digest();\n }\n\n return this.hash.digest();\n }\n\n /* The underlying digest method here is synchronous.\n * To keep the same interface with the other hash functions\n * the default is to expose this as an async method.\n * However, it can sometimes be useful to have a sync method.\n */\n async digest(): Promise<Uint8Array> {\n return this.digestSync();\n }\n}\n\nfunction bufferFromSecret(secret: SourceData): Uint8Array {\n let input = convertToBuffer(secret);\n\n if (input.byteLength > BLOCK_SIZE) {\n const bufferHash = new RawSha256();\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n\n const buffer = new Uint8Array(BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\nimport { fromUtf8 as fromUtf8Browser } from \"@aws-sdk/util-utf8-browser\";\n\n// Quick polyfill\nconst fromUtf8 =\n typeof Buffer !== \"undefined\" && Buffer.from\n ? (input: string) => Buffer.from(input, \"utf8\")\n : fromUtf8Browser;\n\nexport function convertToBuffer(data: SourceData): Uint8Array {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array) return data;\n\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(\n data.buffer,\n data.byteOffset,\n data.byteLength / Uint8Array.BYTES_PER_ELEMENT\n );\n }\n\n return new Uint8Array(data);\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport { convertToBuffer } from \"./convertToBuffer\";\nexport { isEmptyData } from \"./isEmptyData\";\nexport { numToUint8 } from \"./numToUint8\";\nexport {uint32ArrayFrom} from './uint32ArrayFrom';\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\n\nexport function isEmptyData(data: SourceData): boolean {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function numToUint8(num: number) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n// IE 11 does not support Array.from, so we do it manually\nexport function uint32ArrayFrom(a_lookUpTable: Array<number>): Uint32Array {\n if (!Array.from) {\n const return_array = new Uint32Array(a_lookUpTable.length)\n let a_index = 0\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index]\n }\n return return_array\n }\n return Uint32Array.from(a_lookUpTable)\n}\n","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport const fromUtf8 = (input) => typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\nexport const toUtf8 = (input) => typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\n","export const fromUtf8 = (input) => {\n const bytes = [];\n for (let i = 0, len = input.length; i < len; i++) {\n const value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 0b11000000, (value & 0b111111) | 0b10000000);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n const surrogatePair = 0x10000 + ((value & 0b1111111111) << 10) + (input.charCodeAt(++i) & 0b1111111111);\n bytes.push((surrogatePair >> 18) | 0b11110000, ((surrogatePair >> 12) & 0b111111) | 0b10000000, ((surrogatePair >> 6) & 0b111111) | 0b10000000, (surrogatePair & 0b111111) | 0b10000000);\n }\n else {\n bytes.push((value >> 12) | 0b11100000, ((value >> 6) & 0b111111) | 0b10000000, (value & 0b111111) | 0b10000000);\n }\n }\n return Uint8Array.from(bytes);\n};\nexport const toUtf8 = (input) => {\n let decoded = \"\";\n for (let i = 0, len = input.length; i < len; i++) {\n const byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (0b11000000 <= byte && byte < 0b11100000) {\n const nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 0b11111) << 6) | (nextByte & 0b111111));\n }\n else if (0b11110000 <= byte && byte < 0b101101101) {\n const surrogatePair = [byte, input[++i], input[++i], input[++i]];\n const encoded = \"%\" + surrogatePair.map((byteValue) => byteValue.toString(16)).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 0b1111) << 12) | ((input[++i] & 0b111111) << 6) | (input[++i] & 0b111111));\n }\n }\n return decoded;\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 function __createBinding(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, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = 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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { MsSubtleCrypto } from \"./MsSubtleCrypto\";\n\ntype SubtleCryptoMethod =\n | \"decrypt\"\n | \"digest\"\n | \"encrypt\"\n | \"exportKey\"\n | \"generateKey\"\n | \"importKey\"\n | \"sign\"\n | \"verify\";\n\nconst msSubtleCryptoMethods: Array<SubtleCryptoMethod> = [\n \"decrypt\",\n \"digest\",\n \"encrypt\",\n \"exportKey\",\n \"generateKey\",\n \"importKey\",\n \"sign\",\n \"verify\"\n];\n\n/**\n * The value accessible as `window.msCrypto` in Internet Explorer 11.\n */\nexport interface MsCrypto {\n getRandomValues: (toFill: Uint8Array) => void;\n subtle: MsSubtleCrypto;\n}\n\n/**\n * The `window` object in Internet Explorer 11. This interface does not\n * exhaustively document the prefixed features of `window` in IE11.\n */\nexport interface MsWindow extends Window {\n MSInputMethodContext: any;\n msCrypto: MsCrypto;\n}\n\nfunction quacksLikeAnMsWindow(window: Window): window is MsWindow {\n return \"MSInputMethodContext\" in window && \"msCrypto\" in window;\n}\n\n/**\n * Determines if the provided window is (or is like) the window object one would\n * expect to encounter in Internet Explorer 11.\n */\nexport function isMsWindow(window: Window): window is MsWindow {\n if (quacksLikeAnMsWindow(window) && window.msCrypto.subtle !== undefined) {\n const { getRandomValues, subtle } = window.msCrypto;\n return msSubtleCryptoMethods\n .map<Function>(methodName => subtle[methodName])\n .concat(getRandomValues)\n .every(method => typeof method === \"function\");\n }\n\n return false;\n}\n","export * from \"./CryptoOperation\";\nexport * from \"./Key\";\nexport * from \"./KeyOperation\";\nexport * from \"./MsSubtleCrypto\";\nexport * from \"./MsWindow\";\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 function __createBinding(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, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = 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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export const SHA_256_HASH: { name: \"SHA-256\" } = { name: \"SHA-256\" };\n\nexport const SHA_256_HMAC_ALGO: { name: \"HMAC\"; hash: { name: \"SHA-256\" } } = {\n name: \"HMAC\",\n hash: SHA_256_HASH\n};\n\nexport const EMPTY_DATA_SHA_256 = new Uint8Array([\n 227,\n 176,\n 196,\n 66,\n 152,\n 252,\n 28,\n 20,\n 154,\n 251,\n 244,\n 200,\n 153,\n 111,\n 185,\n 36,\n 39,\n 174,\n 65,\n 228,\n 100,\n 155,\n 147,\n 76,\n 164,\n 149,\n 153,\n 27,\n 120,\n 82,\n 184,\n 85\n]);\n","import { Sha256 as Ie11Sha256 } from \"./ie11Sha256\";\nimport { Sha256 as WebCryptoSha256 } from \"./webCryptoSha256\";\nimport { Sha256 as JsSha256 } from \"@aws-crypto/sha256-js\";\nimport { Checksum, SourceData } from \"@aws-sdk/types\";\nimport { supportsWebCrypto } from \"@aws-crypto/supports-web-crypto\";\nimport { isMsWindow } from \"@aws-crypto/ie11-detection\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\nimport { convertToBuffer } from \"@aws-crypto/util\";\n\nexport class Sha256 implements Checksum {\n private hash: Checksum;\n\n constructor(secret?: SourceData) {\n if (supportsWebCrypto(locateWindow())) {\n this.hash = new WebCryptoSha256(secret);\n } else if (isMsWindow(locateWindow())) {\n this.hash = new Ie11Sha256(secret);\n } else {\n this.hash = new JsSha256(secret);\n }\n }\n\n update(data: SourceData, encoding?: \"utf8\" | \"ascii\" | \"latin1\"): void {\n this.hash.update(convertToBuffer(data));\n }\n\n digest(): Promise<Uint8Array> {\n return this.hash.digest();\n }\n\n reset(): void {\n this.hash.reset();\n }\n}\n","import { isEmptyData } from \"./isEmptyData\";\nimport { SHA_256_HMAC_ALGO } from \"./constants\";\nimport { Checksum, SourceData } from \"@aws-sdk/types\";\nimport { fromUtf8 } from \"@aws-sdk/util-utf8-browser\";\nimport { CryptoOperation, Key, MsWindow } from \"@aws-crypto/ie11-detection\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\n\nexport class Sha256 implements Checksum {\n private readonly secret?: SourceData;\n private operation!: Promise<CryptoOperation>;\n\n constructor(secret?: SourceData) {\n this.secret = secret;\n this.reset();\n }\n\n update(toHash: SourceData): void {\n if (isEmptyData(toHash)) {\n return;\n }\n\n this.operation = this.operation.then(operation => {\n operation.onerror = () => {\n this.operation = Promise.reject(\n new Error(\"Error encountered updating hash\")\n );\n };\n operation.process(toArrayBufferView(toHash));\n\n return operation;\n });\n this.operation.catch(() => {});\n }\n\n digest(): Promise<Uint8Array> {\n return this.operation.then<Uint8Array>(\n operation =>\n new Promise((resolve, reject) => {\n operation.onerror = () => {\n reject(new Error(\"Error encountered finalizing hash\"));\n };\n operation.oncomplete = () => {\n if (operation.result) {\n resolve(new Uint8Array(operation.result));\n }\n reject(new Error(\"Error encountered finalizing hash\"));\n };\n\n operation.finish();\n })\n );\n }\n\n reset(): void {\n if (this.secret) {\n this.operation = getKeyPromise(this.secret).then(keyData =>\n (locateWindow() as MsWindow).msCrypto.subtle.sign(\n SHA_256_HMAC_ALGO,\n keyData\n )\n );\n this.operation.catch(() => {});\n } else {\n this.operation = Promise.resolve(\n (locateWindow() as MsWindow).msCrypto.subtle.digest(\"SHA-256\")\n );\n }\n }\n}\n\nfunction getKeyPromise(secret: SourceData): Promise<Key> {\n return new Promise((resolve, reject) => {\n const keyOperation = (locateWindow() as MsWindow).msCrypto.subtle.importKey(\n \"raw\",\n toArrayBufferView(secret),\n SHA_256_HMAC_ALGO,\n false,\n [\"sign\"]\n );\n\n keyOperation.oncomplete = () => {\n if (keyOperation.result) {\n resolve(keyOperation.result);\n }\n\n reject(new Error(\"ImportKey completed without importing key.\"));\n };\n keyOperation.onerror = () => {\n reject(new Error(\"ImportKey failed to import key.\"));\n };\n });\n}\n\nfunction toArrayBufferView(data: SourceData): Uint8Array {\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(\n data.buffer,\n data.byteOffset,\n data.byteLength / Uint8Array.BYTES_PER_ELEMENT\n );\n }\n\n return new Uint8Array(data);\n}\n","export * from \"./crossPlatformSha256\";\nexport { Sha256 as Ie11Sha256 } from \"./ie11Sha256\";\nexport { Sha256 as WebCryptoSha256 } from \"./webCryptoSha256\";\n","import { SourceData } from \"@aws-sdk/types\";\n\nexport function isEmptyData(data: SourceData): boolean {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n","import { Checksum, SourceData } from \"@aws-sdk/types\";\nimport { isEmptyData, convertToBuffer } from \"@aws-crypto/util\";\nimport {\n EMPTY_DATA_SHA_256,\n SHA_256_HASH,\n SHA_256_HMAC_ALGO,\n} from \"./constants\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\n\nexport class Sha256 implements Checksum {\n private readonly secret?: SourceData;\n private key: Promise<CryptoKey> | undefined;\n private toHash: Uint8Array = new Uint8Array(0);\n\n constructor(secret?: SourceData) {\n this.secret = secret;\n this.reset();\n }\n\n update(data: SourceData): void {\n if (isEmptyData(data)) {\n return;\n }\n\n const update = convertToBuffer(data);\n const typedArray = new Uint8Array(\n this.toHash.byteLength + update.byteLength\n );\n typedArray.set(this.toHash, 0);\n typedArray.set(update, this.toHash.byteLength);\n this.toHash = typedArray;\n }\n\n digest(): Promise<Uint8Array> {\n if (this.key) {\n return this.key.then((key) =>\n locateWindow()\n .crypto.subtle.sign(SHA_256_HMAC_ALGO, key, this.toHash)\n .then((data) => new Uint8Array(data))\n );\n }\n\n if (isEmptyData(this.toHash)) {\n return Promise.resolve(EMPTY_DATA_SHA_256);\n }\n\n return Promise.resolve()\n .then(() =>\n locateWindow().crypto.subtle.digest(SHA_256_HASH, this.toHash)\n )\n .then((data) => Promise.resolve(new Uint8Array(data)));\n }\n\n reset(): void {\n this.toHash = new Uint8Array(0);\n if (this.secret && this.secret !== void 0) {\n this.key = new Promise((resolve, reject) => {\n locateWindow()\n .crypto.subtle.importKey(\n \"raw\",\n convertToBuffer(this.secret as SourceData),\n SHA_256_HMAC_ALGO,\n false,\n [\"sign\"]\n )\n .then(resolve, reject);\n });\n this.key.catch(() => {});\n }\n }\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 function __createBinding(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, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = 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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import {\n BLOCK_SIZE,\n DIGEST_LENGTH,\n INIT,\n KEY,\n MAX_HASHABLE_LENGTH\n} from \"./constants\";\n\n/**\n * @internal\n */\nexport class RawSha256 {\n private state: Int32Array = Int32Array.from(INIT);\n private temp: Int32Array = new Int32Array(64);\n private buffer: Uint8Array = new Uint8Array(64);\n private bufferLength: number = 0;\n private bytesHashed: number = 0;\n\n /**\n * @internal\n */\n finished: boolean = false;\n\n update(data: Uint8Array): void {\n if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n\n let position = 0;\n let { byteLength } = data;\n this.bytesHashed += byteLength;\n\n if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) {\n throw new Error(\"Cannot hash more than 2^53 - 1 bits\");\n }\n\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n }\n\n digest(): Uint8Array {\n if (!this.finished) {\n const bitsHashed = this.bytesHashed * 8;\n const bufferView = new DataView(\n this.buffer.buffer,\n this.buffer.byteOffset,\n this.buffer.byteLength\n );\n\n const undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (let i = this.bufferLength; i < BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n\n for (let i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(\n BLOCK_SIZE - 8,\n Math.floor(bitsHashed / 0x100000000),\n true\n );\n bufferView.setUint32(BLOCK_SIZE - 4, bitsHashed);\n\n this.hashBuffer();\n\n this.finished = true;\n }\n\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n const out = new Uint8Array(DIGEST_LENGTH);\n for (let i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n\n return out;\n }\n\n private hashBuffer(): void {\n const { buffer, state } = this;\n\n let state0 = state[0],\n state1 = state[1],\n state2 = state[2],\n state3 = state[3],\n state4 = state[4],\n state5 = state[5],\n state6 = state[6],\n state7 = state[7];\n\n for (let i = 0; i < BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] =\n ((buffer[i * 4] & 0xff) << 24) |\n ((buffer[i * 4 + 1] & 0xff) << 16) |\n ((buffer[i * 4 + 2] & 0xff) << 8) |\n (buffer[i * 4 + 3] & 0xff);\n } else {\n let u = this.temp[i - 2];\n const t1 =\n ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);\n\n u = this.temp[i - 15];\n const t2 =\n ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);\n\n this.temp[i] =\n ((t1 + this.temp[i - 7]) | 0) + ((t2 + this.temp[i - 16]) | 0);\n }\n\n const t1 =\n ((((((state4 >>> 6) | (state4 << 26)) ^\n ((state4 >>> 11) | (state4 << 21)) ^\n ((state4 >>> 25) | (state4 << 7))) +\n ((state4 & state5) ^ (~state4 & state6))) |\n 0) +\n ((state7 + ((KEY[i] + this.temp[i]) | 0)) | 0)) |\n 0;\n\n const t2 =\n ((((state0 >>> 2) | (state0 << 30)) ^\n ((state0 >>> 13) | (state0 << 19)) ^\n ((state0 >>> 22) | (state0 << 10))) +\n ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |\n 0;\n\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n }\n}\n","/**\n * @internal\n */\nexport const BLOCK_SIZE: number = 64;\n\n/**\n * @internal\n */\nexport const DIGEST_LENGTH: number = 32;\n\n/**\n * @internal\n */\nexport const KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n\n/**\n * @internal\n */\nexport const INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n];\n\n/**\n * @internal\n */\nexport const MAX_HASHABLE_LENGTH = 2 ** 53 - 1;\n","export * from \"./jsSha256\";\n","import { BLOCK_SIZE } from \"./constants\";\nimport { RawSha256 } from \"./RawSha256\";\nimport { Checksum, SourceData } from \"@aws-sdk/types\";\nimport { isEmptyData, convertToBuffer } from \"@aws-crypto/util\";\n\nexport class Sha256 implements Checksum {\n private readonly secret?: SourceData;\n private hash: RawSha256;\n private outer?: RawSha256;\n private error: any;\n\n constructor(secret?: SourceData) {\n this.secret = secret;\n this.hash = new RawSha256();\n this.reset();\n }\n\n update(toHash: SourceData): void {\n if (isEmptyData(toHash) || this.error) {\n return;\n }\n\n try {\n this.hash.update(convertToBuffer(toHash));\n } catch (e) {\n this.error = e;\n }\n }\n\n /* This synchronous method keeps compatibility\n * with the v2 aws-sdk.\n */\n digestSync(): Uint8Array {\n if (this.error) {\n throw this.error;\n }\n\n if (this.outer) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n\n return this.outer.digest();\n }\n\n return this.hash.digest();\n }\n\n /* The underlying digest method here is synchronous.\n * To keep the same interface with the other hash functions\n * the default is to expose this as an async method.\n * However, it can sometimes be useful to have a sync method.\n */\n async digest(): Promise<Uint8Array> {\n return this.digestSync();\n }\n\n reset(): void {\n this.hash = new RawSha256();\n if (this.secret) {\n this.outer = new RawSha256();\n const inner = bufferFromSecret(this.secret);\n const outer = new Uint8Array(BLOCK_SIZE);\n outer.set(inner);\n\n for (let i = 0; i < BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n\n this.hash.update(inner);\n this.outer.update(outer);\n\n // overwrite the copied key in memory\n for (let i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n }\n }\n}\n\nfunction bufferFromSecret(secret: SourceData): Uint8Array {\n let input = convertToBuffer(secret);\n\n if (input.byteLength > BLOCK_SIZE) {\n const bufferHash = new RawSha256();\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n\n const buffer = new Uint8Array(BLOCK_SIZE);\n buffer.set(input);\n return buffer;\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 function __createBinding(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, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = 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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export * from \"./supportsWebCrypto\";\n","type SubtleCryptoMethod =\n | \"decrypt\"\n | \"digest\"\n | \"encrypt\"\n | \"exportKey\"\n | \"generateKey\"\n | \"importKey\"\n | \"sign\"\n | \"verify\";\n\nconst subtleCryptoMethods: Array<SubtleCryptoMethod> = [\n \"decrypt\",\n \"digest\",\n \"encrypt\",\n \"exportKey\",\n \"generateKey\",\n \"importKey\",\n \"sign\",\n \"verify\"\n];\n\nexport function supportsWebCrypto(window: Window): boolean {\n if (\n supportsSecureRandom(window) &&\n typeof window.crypto.subtle === \"object\"\n ) {\n const { subtle } = window.crypto;\n\n return supportsSubtleCrypto(subtle);\n }\n\n return false;\n}\n\nexport function supportsSecureRandom(window: Window): boolean {\n if (typeof window === \"object\" && typeof window.crypto === \"object\") {\n const { getRandomValues } = window.crypto;\n\n return typeof getRandomValues === \"function\";\n }\n\n return false;\n}\n\nexport function supportsSubtleCrypto(subtle: SubtleCrypto) {\n return (\n subtle &&\n subtleCryptoMethods.every(\n methodName => typeof subtle[methodName] === \"function\"\n )\n );\n}\n\nexport async function supportsZeroByteGCM(subtle: SubtleCrypto) {\n if (!supportsSubtleCrypto(subtle)) return false;\n try {\n const key = await subtle.generateKey(\n { name: \"AES-GCM\", length: 128 },\n false,\n [\"encrypt\"]\n );\n const zeroByteAuthTag = await subtle.encrypt(\n {\n name: \"AES-GCM\",\n iv: new Uint8Array(Array(12)),\n additionalData: new Uint8Array(Array(16)),\n tagLength: 128\n },\n key,\n new Uint8Array(0)\n );\n return zeroByteAuthTag.byteLength === 16;\n } catch {\n return false;\n }\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 function __createBinding(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, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = 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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\nimport { fromUtf8 as fromUtf8Browser } from \"@aws-sdk/util-utf8-browser\";\n\n// Quick polyfill\nconst fromUtf8 =\n typeof Buffer !== \"undefined\" && Buffer.from\n ? (input: string) => Buffer.from(input, \"utf8\")\n : fromUtf8Browser;\n\nexport function convertToBuffer(data: SourceData): Uint8Array {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array) return data;\n\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(\n data.buffer,\n data.byteOffset,\n data.byteLength / Uint8Array.BYTES_PER_ELEMENT\n );\n }\n\n return new Uint8Array(data);\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport { convertToBuffer } from \"./convertToBuffer\";\nexport { isEmptyData } from \"./isEmptyData\";\nexport { numToUint8 } from \"./numToUint8\";\nexport {uint32ArrayFrom} from './uint32ArrayFrom';\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\n\nexport function isEmptyData(data: SourceData): boolean {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function numToUint8(num: number) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n// IE 11 does not support Array.from, so we do it manually\nexport function uint32ArrayFrom(a_lookUpTable: Array<number>): Uint32Array {\n if (!Uint32Array.from) {\n const return_array = new Uint32Array(a_lookUpTable.length)\n let a_index = 0\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index]\n a_index += 1\n }\n return return_array\n }\n return Uint32Array.from(a_lookUpTable)\n}\n","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport const fromUtf8 = (input) => typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\nexport const toUtf8 = (input) => typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\n","export const fromUtf8 = (input) => {\n const bytes = [];\n for (let i = 0, len = input.length; i < len; i++) {\n const value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 0b11000000, (value & 0b111111) | 0b10000000);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n const surrogatePair = 0x10000 + ((value & 0b1111111111) << 10) + (input.charCodeAt(++i) & 0b1111111111);\n bytes.push((surrogatePair >> 18) | 0b11110000, ((surrogatePair >> 12) & 0b111111) | 0b10000000, ((surrogatePair >> 6) & 0b111111) | 0b10000000, (surrogatePair & 0b111111) | 0b10000000);\n }\n else {\n bytes.push((value >> 12) | 0b11100000, ((value >> 6) & 0b111111) | 0b10000000, (value & 0b111111) | 0b10000000);\n }\n }\n return Uint8Array.from(bytes);\n};\nexport const toUtf8 = (input) => {\n let decoded = \"\";\n for (let i = 0, len = input.length; i < len; i++) {\n const byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (0b11000000 <= byte && byte < 0b11100000) {\n const nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 0b11111) << 6) | (nextByte & 0b111111));\n }\n else if (0b11110000 <= byte && byte < 0b101101101) {\n const surrogatePair = [byte, input[++i], input[++i], input[++i]];\n const encoded = \"%\" + surrogatePair.map((byteValue) => byteValue.toString(16)).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 0b1111) << 12) | ((input[++i] & 0b111111) << 6) | (input[++i] & 0b111111));\n }\n }\n return decoded;\n};\n","import { MsSubtleCrypto } from \"./MsSubtleCrypto\";\n\ntype SubtleCryptoMethod =\n | \"decrypt\"\n | \"digest\"\n | \"encrypt\"\n | \"exportKey\"\n | \"generateKey\"\n | \"importKey\"\n | \"sign\"\n | \"verify\";\n\nconst msSubtleCryptoMethods: Array<SubtleCryptoMethod> = [\n \"decrypt\",\n \"digest\",\n \"encrypt\",\n \"exportKey\",\n \"generateKey\",\n \"importKey\",\n \"sign\",\n \"verify\"\n];\n\n/**\n * The value accessible as `window.msCrypto` in Internet Explorer 11.\n */\nexport interface MsCrypto {\n getRandomValues: (toFill: Uint8Array) => void;\n subtle: MsSubtleCrypto;\n}\n\n/**\n * The `window` object in Internet Explorer 11. This interface does not\n * exhaustively document the prefixed features of `window` in IE11.\n */\nexport interface MsWindow extends Window {\n MSInputMethodContext: any;\n msCrypto: MsCrypto;\n}\n\nfunction quacksLikeAnMsWindow(window: Window): window is MsWindow {\n return \"MSInputMethodContext\" in window && \"msCrypto\" in window;\n}\n\n/**\n * Determines if the provided window is (or is like) the window object one would\n * expect to encounter in Internet Explorer 11.\n */\nexport function isMsWindow(window: Window): window is MsWindow {\n if (quacksLikeAnMsWindow(window) && window.msCrypto.subtle !== undefined) {\n const { getRandomValues, subtle } = window.msCrypto;\n return msSubtleCryptoMethods\n .map<Function>(methodName => subtle[methodName])\n .concat(getRandomValues)\n .every(method => typeof method === \"function\");\n }\n\n return false;\n}\n","export * from \"./CryptoOperation\";\nexport * from \"./Key\";\nexport * from \"./KeyOperation\";\nexport * from \"./MsSubtleCrypto\";\nexport * from \"./MsWindow\";\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 function __createBinding(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, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = 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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export const SHA_256_HASH: { name: \"SHA-256\" } = { name: \"SHA-256\" };\n\nexport const SHA_256_HMAC_ALGO: { name: \"HMAC\"; hash: { name: \"SHA-256\" } } = {\n name: \"HMAC\",\n hash: SHA_256_HASH\n};\n\nexport const EMPTY_DATA_SHA_256 = new Uint8Array([\n 227,\n 176,\n 196,\n 66,\n 152,\n 252,\n 28,\n 20,\n 154,\n 251,\n 244,\n 200,\n 153,\n 111,\n 185,\n 36,\n 39,\n 174,\n 65,\n 228,\n 100,\n 155,\n 147,\n 76,\n 164,\n 149,\n 153,\n 27,\n 120,\n 82,\n 184,\n 85\n]);\n","import { Sha256 as Ie11Sha256 } from \"./ie11Sha256\";\nimport { Sha256 as WebCryptoSha256 } from \"./webCryptoSha256\";\nimport { Sha256 as JsSha256 } from \"@aws-crypto/sha256-js\";\nimport { Checksum, SourceData } from \"@aws-sdk/types\";\nimport { supportsWebCrypto } from \"@aws-crypto/supports-web-crypto\";\nimport { isMsWindow } from \"@aws-crypto/ie11-detection\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\nimport { convertToBuffer } from \"@aws-crypto/util\";\n\nexport class Sha256 implements Checksum {\n private hash: Checksum;\n\n constructor(secret?: SourceData) {\n if (supportsWebCrypto(locateWindow())) {\n this.hash = new WebCryptoSha256(secret);\n } else if (isMsWindow(locateWindow())) {\n this.hash = new Ie11Sha256(secret);\n } else {\n this.hash = new JsSha256(secret);\n }\n }\n\n update(data: SourceData, encoding?: \"utf8\" | \"ascii\" | \"latin1\"): void {\n this.hash.update(convertToBuffer(data));\n }\n\n digest(): Promise<Uint8Array> {\n return this.hash.digest();\n }\n\n reset(): void {\n this.hash.reset();\n }\n}\n","import { isEmptyData } from \"./isEmptyData\";\nimport { SHA_256_HMAC_ALGO } from \"./constants\";\nimport { Checksum, SourceData } from \"@aws-sdk/types\";\nimport { fromUtf8 } from \"@aws-sdk/util-utf8-browser\";\nimport { CryptoOperation, Key, MsWindow } from \"@aws-crypto/ie11-detection\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\n\nexport class Sha256 implements Checksum {\n private readonly secret?: SourceData;\n private operation!: Promise<CryptoOperation>;\n\n constructor(secret?: SourceData) {\n this.secret = secret;\n this.reset();\n }\n\n update(toHash: SourceData): void {\n if (isEmptyData(toHash)) {\n return;\n }\n\n this.operation = this.operation.then(operation => {\n operation.onerror = () => {\n this.operation = Promise.reject(\n new Error(\"Error encountered updating hash\")\n );\n };\n operation.process(toArrayBufferView(toHash));\n\n return operation;\n });\n this.operation.catch(() => {});\n }\n\n digest(): Promise<Uint8Array> {\n return this.operation.then<Uint8Array>(\n operation =>\n new Promise((resolve, reject) => {\n operation.onerror = () => {\n reject(new Error(\"Error encountered finalizing hash\"));\n };\n operation.oncomplete = () => {\n if (operation.result) {\n resolve(new Uint8Array(operation.result));\n }\n reject(new Error(\"Error encountered finalizing hash\"));\n };\n\n operation.finish();\n })\n );\n }\n\n reset(): void {\n if (this.secret) {\n this.operation = getKeyPromise(this.secret).then(keyData =>\n (locateWindow() as MsWindow).msCrypto.subtle.sign(\n SHA_256_HMAC_ALGO,\n keyData\n )\n );\n this.operation.catch(() => {});\n } else {\n this.operation = Promise.resolve(\n (locateWindow() as MsWindow).msCrypto.subtle.digest(\"SHA-256\")\n );\n }\n }\n}\n\nfunction getKeyPromise(secret: SourceData): Promise<Key> {\n return new Promise((resolve, reject) => {\n const keyOperation = (locateWindow() as MsWindow).msCrypto.subtle.importKey(\n \"raw\",\n toArrayBufferView(secret),\n SHA_256_HMAC_ALGO,\n false,\n [\"sign\"]\n );\n\n keyOperation.oncomplete = () => {\n if (keyOperation.result) {\n resolve(keyOperation.result);\n }\n\n reject(new Error(\"ImportKey completed without importing key.\"));\n };\n keyOperation.onerror = () => {\n reject(new Error(\"ImportKey failed to import key.\"));\n };\n });\n}\n\nfunction toArrayBufferView(data: SourceData): Uint8Array {\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(\n data.buffer,\n data.byteOffset,\n data.byteLength / Uint8Array.BYTES_PER_ELEMENT\n );\n }\n\n return new Uint8Array(data);\n}\n","export * from \"./crossPlatformSha256\";\nexport { Sha256 as Ie11Sha256 } from \"./ie11Sha256\";\nexport { Sha256 as WebCryptoSha256 } from \"./webCryptoSha256\";\n","import { SourceData } from \"@aws-sdk/types\";\n\nexport function isEmptyData(data: SourceData): boolean {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n","import { Checksum, SourceData } from \"@aws-sdk/types\";\nimport { isEmptyData, convertToBuffer } from \"@aws-crypto/util\";\nimport {\n EMPTY_DATA_SHA_256,\n SHA_256_HASH,\n SHA_256_HMAC_ALGO,\n} from \"./constants\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\n\nexport class Sha256 implements Checksum {\n private readonly secret?: SourceData;\n private key: Promise<CryptoKey> | undefined;\n private toHash: Uint8Array = new Uint8Array(0);\n\n constructor(secret?: SourceData) {\n this.secret = secret;\n this.reset();\n }\n\n update(data: SourceData): void {\n if (isEmptyData(data)) {\n return;\n }\n\n const update = convertToBuffer(data);\n const typedArray = new Uint8Array(\n this.toHash.byteLength + update.byteLength\n );\n typedArray.set(this.toHash, 0);\n typedArray.set(update, this.toHash.byteLength);\n this.toHash = typedArray;\n }\n\n digest(): Promise<Uint8Array> {\n if (this.key) {\n return this.key.then((key) =>\n locateWindow()\n .crypto.subtle.sign(SHA_256_HMAC_ALGO, key, this.toHash)\n .then((data) => new Uint8Array(data))\n );\n }\n\n if (isEmptyData(this.toHash)) {\n return Promise.resolve(EMPTY_DATA_SHA_256);\n }\n\n return Promise.resolve()\n .then(() =>\n locateWindow().crypto.subtle.digest(SHA_256_HASH, this.toHash)\n )\n .then((data) => Promise.resolve(new Uint8Array(data)));\n }\n\n reset(): void {\n this.toHash = new Uint8Array(0);\n if (this.secret && this.secret !== void 0) {\n this.key = new Promise((resolve, reject) => {\n locateWindow()\n .crypto.subtle.importKey(\n \"raw\",\n convertToBuffer(this.secret as SourceData),\n SHA_256_HMAC_ALGO,\n false,\n [\"sign\"]\n )\n .then(resolve, reject);\n });\n this.key.catch(() => {});\n }\n }\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 function __createBinding(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, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = 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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import {\n BLOCK_SIZE,\n DIGEST_LENGTH,\n INIT,\n KEY,\n MAX_HASHABLE_LENGTH\n} from \"./constants\";\n\n/**\n * @internal\n */\nexport class RawSha256 {\n private state: Int32Array = Int32Array.from(INIT);\n private temp: Int32Array = new Int32Array(64);\n private buffer: Uint8Array = new Uint8Array(64);\n private bufferLength: number = 0;\n private bytesHashed: number = 0;\n\n /**\n * @internal\n */\n finished: boolean = false;\n\n update(data: Uint8Array): void {\n if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n\n let position = 0;\n let { byteLength } = data;\n this.bytesHashed += byteLength;\n\n if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) {\n throw new Error(\"Cannot hash more than 2^53 - 1 bits\");\n }\n\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n }\n\n digest(): Uint8Array {\n if (!this.finished) {\n const bitsHashed = this.bytesHashed * 8;\n const bufferView = new DataView(\n this.buffer.buffer,\n this.buffer.byteOffset,\n this.buffer.byteLength\n );\n\n const undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (let i = this.bufferLength; i < BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n\n for (let i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(\n BLOCK_SIZE - 8,\n Math.floor(bitsHashed / 0x100000000),\n true\n );\n bufferView.setUint32(BLOCK_SIZE - 4, bitsHashed);\n\n this.hashBuffer();\n\n this.finished = true;\n }\n\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n const out = new Uint8Array(DIGEST_LENGTH);\n for (let i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n\n return out;\n }\n\n private hashBuffer(): void {\n const { buffer, state } = this;\n\n let state0 = state[0],\n state1 = state[1],\n state2 = state[2],\n state3 = state[3],\n state4 = state[4],\n state5 = state[5],\n state6 = state[6],\n state7 = state[7];\n\n for (let i = 0; i < BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] =\n ((buffer[i * 4] & 0xff) << 24) |\n ((buffer[i * 4 + 1] & 0xff) << 16) |\n ((buffer[i * 4 + 2] & 0xff) << 8) |\n (buffer[i * 4 + 3] & 0xff);\n } else {\n let u = this.temp[i - 2];\n const t1 =\n ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);\n\n u = this.temp[i - 15];\n const t2 =\n ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);\n\n this.temp[i] =\n ((t1 + this.temp[i - 7]) | 0) + ((t2 + this.temp[i - 16]) | 0);\n }\n\n const t1 =\n ((((((state4 >>> 6) | (state4 << 26)) ^\n ((state4 >>> 11) | (state4 << 21)) ^\n ((state4 >>> 25) | (state4 << 7))) +\n ((state4 & state5) ^ (~state4 & state6))) |\n 0) +\n ((state7 + ((KEY[i] + this.temp[i]) | 0)) | 0)) |\n 0;\n\n const t2 =\n ((((state0 >>> 2) | (state0 << 30)) ^\n ((state0 >>> 13) | (state0 << 19)) ^\n ((state0 >>> 22) | (state0 << 10))) +\n ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |\n 0;\n\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n }\n}\n","/**\n * @internal\n */\nexport const BLOCK_SIZE: number = 64;\n\n/**\n * @internal\n */\nexport const DIGEST_LENGTH: number = 32;\n\n/**\n * @internal\n */\nexport const KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n\n/**\n * @internal\n */\nexport const INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n];\n\n/**\n * @internal\n */\nexport const MAX_HASHABLE_LENGTH = 2 ** 53 - 1;\n","export * from \"./jsSha256\";\n","import { BLOCK_SIZE } from \"./constants\";\nimport { RawSha256 } from \"./RawSha256\";\nimport { Checksum, SourceData } from \"@aws-sdk/types\";\nimport { isEmptyData, convertToBuffer } from \"@aws-crypto/util\";\n\nexport class Sha256 implements Checksum {\n private readonly secret?: SourceData;\n private hash: RawSha256;\n private outer?: RawSha256;\n private error: any;\n\n constructor(secret?: SourceData) {\n this.secret = secret;\n this.hash = new RawSha256();\n this.reset();\n }\n\n update(toHash: SourceData): void {\n if (isEmptyData(toHash) || this.error) {\n return;\n }\n\n try {\n this.hash.update(convertToBuffer(toHash));\n } catch (e) {\n this.error = e;\n }\n }\n\n /* This synchronous method keeps compatibility\n * with the v2 aws-sdk.\n */\n digestSync(): Uint8Array {\n if (this.error) {\n throw this.error;\n }\n\n if (this.outer) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n\n return this.outer.digest();\n }\n\n return this.hash.digest();\n }\n\n /* The underlying digest method here is synchronous.\n * To keep the same interface with the other hash functions\n * the default is to expose this as an async method.\n * However, it can sometimes be useful to have a sync method.\n */\n async digest(): Promise<Uint8Array> {\n return this.digestSync();\n }\n\n reset(): void {\n this.hash = new RawSha256();\n if (this.secret) {\n this.outer = new RawSha256();\n const inner = bufferFromSecret(this.secret);\n const outer = new Uint8Array(BLOCK_SIZE);\n outer.set(inner);\n\n for (let i = 0; i < BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n\n this.hash.update(inner);\n this.outer.update(outer);\n\n // overwrite the copied key in memory\n for (let i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n }\n }\n}\n\nfunction bufferFromSecret(secret: SourceData): Uint8Array {\n let input = convertToBuffer(secret);\n\n if (input.byteLength > BLOCK_SIZE) {\n const bufferHash = new RawSha256();\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n\n const buffer = new Uint8Array(BLOCK_SIZE);\n buffer.set(input);\n return buffer;\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 function __createBinding(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, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = 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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export * from \"./supportsWebCrypto\";\n","type SubtleCryptoMethod =\n | \"decrypt\"\n | \"digest\"\n | \"encrypt\"\n | \"exportKey\"\n | \"generateKey\"\n | \"importKey\"\n | \"sign\"\n | \"verify\";\n\nconst subtleCryptoMethods: Array<SubtleCryptoMethod> = [\n \"decrypt\",\n \"digest\",\n \"encrypt\",\n \"exportKey\",\n \"generateKey\",\n \"importKey\",\n \"sign\",\n \"verify\"\n];\n\nexport function supportsWebCrypto(window: Window): boolean {\n if (\n supportsSecureRandom(window) &&\n typeof window.crypto.subtle === \"object\"\n ) {\n const { subtle } = window.crypto;\n\n return supportsSubtleCrypto(subtle);\n }\n\n return false;\n}\n\nexport function supportsSecureRandom(window: Window): boolean {\n if (typeof window === \"object\" && typeof window.crypto === \"object\") {\n const { getRandomValues } = window.crypto;\n\n return typeof getRandomValues === \"function\";\n }\n\n return false;\n}\n\nexport function supportsSubtleCrypto(subtle: SubtleCrypto) {\n return (\n subtle &&\n subtleCryptoMethods.every(\n methodName => typeof subtle[methodName] === \"function\"\n )\n );\n}\n\nexport async function supportsZeroByteGCM(subtle: SubtleCrypto) {\n if (!supportsSubtleCrypto(subtle)) return false;\n try {\n const key = await subtle.generateKey(\n { name: \"AES-GCM\", length: 128 },\n false,\n [\"encrypt\"]\n );\n const zeroByteAuthTag = await subtle.encrypt(\n {\n name: \"AES-GCM\",\n iv: new Uint8Array(Array(12)),\n additionalData: new Uint8Array(Array(16)),\n tagLength: 128\n },\n key,\n new Uint8Array(0)\n );\n return zeroByteAuthTag.byteLength === 16;\n } catch {\n return false;\n }\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 function __createBinding(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, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = 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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\nimport { fromUtf8 as fromUtf8Browser } from \"@aws-sdk/util-utf8-browser\";\n\n// Quick polyfill\nconst fromUtf8 =\n typeof Buffer !== \"undefined\" && Buffer.from\n ? (input: string) => Buffer.from(input, \"utf8\")\n : fromUtf8Browser;\n\nexport function convertToBuffer(data: SourceData): Uint8Array {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array) return data;\n\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(\n data.buffer,\n data.byteOffset,\n data.byteLength / Uint8Array.BYTES_PER_ELEMENT\n );\n }\n\n return new Uint8Array(data);\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport { convertToBuffer } from \"./convertToBuffer\";\nexport { isEmptyData } from \"./isEmptyData\";\nexport { numToUint8 } from \"./numToUint8\";\nexport {uint32ArrayFrom} from './uint32ArrayFrom';\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\n\nexport function isEmptyData(data: SourceData): boolean {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function numToUint8(num: number) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n// IE 11 does not support Array.from, so we do it manually\nexport function uint32ArrayFrom(a_lookUpTable: Array<number>): Uint32Array {\n if (!Uint32Array.from) {\n const return_array = new Uint32Array(a_lookUpTable.length)\n let a_index = 0\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index]\n a_index += 1\n }\n return return_array\n }\n return Uint32Array.from(a_lookUpTable)\n}\n","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport const fromUtf8 = (input) => typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\nexport const toUtf8 = (input) => typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\n","export const fromUtf8 = (input) => {\n const bytes = [];\n for (let i = 0, len = input.length; i < len; i++) {\n const value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 0b11000000, (value & 0b111111) | 0b10000000);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n const surrogatePair = 0x10000 + ((value & 0b1111111111) << 10) + (input.charCodeAt(++i) & 0b1111111111);\n bytes.push((surrogatePair >> 18) | 0b11110000, ((surrogatePair >> 12) & 0b111111) | 0b10000000, ((surrogatePair >> 6) & 0b111111) | 0b10000000, (surrogatePair & 0b111111) | 0b10000000);\n }\n else {\n bytes.push((value >> 12) | 0b11100000, ((value >> 6) & 0b111111) | 0b10000000, (value & 0b111111) | 0b10000000);\n }\n }\n return Uint8Array.from(bytes);\n};\nexport const toUtf8 = (input) => {\n let decoded = \"\";\n for (let i = 0, len = input.length; i < len; i++) {\n const byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (0b11000000 <= byte && byte < 0b11100000) {\n const nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 0b11111) << 6) | (nextByte & 0b111111));\n }\n else if (0b11110000 <= byte && byte < 0b101101101) {\n const surrogatePair = [byte, input[++i], input[++i], input[++i]];\n const encoded = \"%\" + surrogatePair.map((byteValue) => byteValue.toString(16)).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 0b1111) << 12) | ((input[++i] & 0b111111) << 6) | (input[++i] & 0b111111));\n }\n }\n return decoded;\n};\n","const fallbackWindow = {};\nexport function locateWindow() {\n if (typeof window !== \"undefined\") {\n return window;\n }\n else if (typeof self !== \"undefined\") {\n return self;\n }\n return fallbackWindow;\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData, Checksum } from \"@aws-sdk/types\";\nimport { convertToBuffer, isEmptyData, numToUint8 } from \"@aws-crypto/util\";\nimport { Crc32 } from \"./index\";\n\nexport class AwsCrc32 implements Checksum {\n private crc32 = new Crc32();\n\n update(toHash: SourceData) {\n if (isEmptyData(toHash)) return;\n\n this.crc32.update(convertToBuffer(toHash));\n }\n\n async digest(): Promise<Uint8Array> {\n return numToUint8(this.crc32.digest());\n }\n\n reset(): void {\n this.crc32 = new Crc32();\n }\n}\n","import {uint32ArrayFrom} from \"@aws-crypto/util\";\n\nexport function crc32(data: Uint8Array): number {\n return new Crc32().update(data).digest();\n}\n\nexport class Crc32 {\n private checksum = 0xffffffff;\n\n update(data: Uint8Array): this {\n for (const byte of data) {\n this.checksum =\n (this.checksum >>> 8) ^ lookupTable[(this.checksum ^ byte) & 0xff];\n }\n\n return this;\n }\n\n digest(): number {\n return (this.checksum ^ 0xffffffff) >>> 0;\n }\n}\n\n// prettier-ignore\nconst a_lookUpTable = [\n 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,\n 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,\n 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,\n 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,\n 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,\n 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,\n 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,\n 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,\n 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,\n 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,\n 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,\n 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,\n 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,\n 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,\n 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,\n 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,\n 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,\n 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,\n 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,\n 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,\n 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,\n 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,\n 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,\n 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,\n 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,\n 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,\n 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,\n 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,\n 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,\n 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,\n 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,\n 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,\n 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,\n 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,\n 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,\n 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,\n 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,\n 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,\n 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,\n 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,\n 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,\n 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,\n 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,\n 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,\n 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,\n 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,\n 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,\n 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,\n 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,\n 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,\n 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,\n 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,\n 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,\n 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,\n 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,\n 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,\n 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,\n 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,\n 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,\n 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,\n 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,\n 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,\n 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,\n 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D,\n];\nconst lookupTable: Uint32Array = uint32ArrayFrom(a_lookUpTable)\nexport { AwsCrc32 } from \"./aws_crc32\";\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 function __createBinding(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, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = 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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\nimport { fromUtf8 as fromUtf8Browser } from \"@aws-sdk/util-utf8-browser\";\n\n// Quick polyfill\nconst fromUtf8 =\n typeof Buffer !== \"undefined\" && Buffer.from\n ? (input: string) => Buffer.from(input, \"utf8\")\n : fromUtf8Browser;\n\nexport function convertToBuffer(data: SourceData): Uint8Array {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array) return data;\n\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(\n data.buffer,\n data.byteOffset,\n data.byteLength / Uint8Array.BYTES_PER_ELEMENT\n );\n }\n\n return new Uint8Array(data);\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport { convertToBuffer } from \"./convertToBuffer\";\nexport { isEmptyData } from \"./isEmptyData\";\nexport { numToUint8 } from \"./numToUint8\";\nexport {uint32ArrayFrom} from './uint32ArrayFrom';\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\n\nexport function isEmptyData(data: SourceData): boolean {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function numToUint8(num: number) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n// IE 11 does not support Array.from, so we do it manually\nexport function uint32ArrayFrom(a_lookUpTable: Array<number>): Uint32Array {\n if (!Uint32Array.from) {\n const return_array = new Uint32Array(a_lookUpTable.length)\n let a_index = 0\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index]\n a_index += 1\n }\n return return_array\n }\n return Uint32Array.from(a_lookUpTable)\n}\n","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport const fromUtf8 = (input) => typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\nexport const toUtf8 = (input) => typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\n","export const fromUtf8 = (input) => {\n const bytes = [];\n for (let i = 0, len = input.length; i < len; i++) {\n const value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 0b11000000, (value & 0b111111) | 0b10000000);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n const surrogatePair = 0x10000 + ((value & 0b1111111111) << 10) + (input.charCodeAt(++i) & 0b1111111111);\n bytes.push((surrogatePair >> 18) | 0b11110000, ((surrogatePair >> 12) & 0b111111) | 0b10000000, ((surrogatePair >> 6) & 0b111111) | 0b10000000, (surrogatePair & 0b111111) | 0b10000000);\n }\n else {\n bytes.push((value >> 12) | 0b11100000, ((value >> 6) & 0b111111) | 0b10000000, (value & 0b111111) | 0b10000000);\n }\n }\n return Uint8Array.from(bytes);\n};\nexport const toUtf8 = (input) => {\n let decoded = \"\";\n for (let i = 0, len = input.length; i < len; i++) {\n const byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (0b11000000 <= byte && byte < 0b11100000) {\n const nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 0b11111) << 6) | (nextByte & 0b111111));\n }\n else if (0b11110000 <= byte && byte < 0b101101101) {\n const surrogatePair = [byte, input[++i], input[++i], input[++i]];\n const encoded = \"%\" + surrogatePair.map((byteValue) => byteValue.toString(16)).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 0b1111) << 12) | ((input[++i] & 0b111111) << 6) | (input[++i] & 0b111111));\n }\n }\n return decoded;\n};\n","/*!\n * @license Copyright 2015-2022 Ably Real-time Ltd (ably.com)\n * \n * Ably JavaScript Library v1.2.45\n * https://github.com/ably/ably-js\n * \n * Released under the Apache Licence v2.0\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Ably\"] = factory();\n\telse\n\t\troot[\"Ably\"] = factory();\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 42);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__extends\", function() { return __extends; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__assign\", function() { return __assign; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__rest\", function() { return __rest; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__decorate\", function() { return __decorate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__param\", function() { return __param; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__metadata\", function() { return __metadata; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__awaiter\", function() { return __awaiter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__generator\", function() { return __generator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__createBinding\", function() { return __createBinding; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__exportStar\", function() { return __exportStar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__values\", function() { return __values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__read\", function() { return __read; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__spread\", function() { return __spread; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__spreadArrays\", function() { return __spreadArrays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__spreadArray\", function() { return __spreadArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__await\", function() { return __await; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncGenerator\", function() { return __asyncGenerator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncDelegator\", function() { return __asyncDelegator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncValues\", function() { return __asyncValues; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__makeTemplateObject\", function() { return __makeTemplateObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__importStar\", function() { return __importStar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__importDefault\", function() { return __importDefault; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__classPrivateFieldGet\", function() { return __classPrivateFieldGet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__classPrivateFieldSet\", function() { return __classPrivateFieldSet; });\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\nfunction __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\nvar __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\nfunction __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\nfunction __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\nfunction __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nfunction __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nfunction __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\nfunction __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\nvar __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\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\nfunction __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\nfunction __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\nfunction __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\nfunction __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\nfunction __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\nfunction __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\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __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\nfunction __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\nfunction __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\nfunction __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\nfunction __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\nfunction __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nfunction __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\nfunction __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\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.allToUpperCase = exports.allToLowerCase = exports.encodeBody = exports.decodeBody = exports.Format = exports.promisify = exports.trim = exports.arrChooseN = exports.randomHexString = exports.randomString = exports.cheapRandStr = exports.dataSizeBytes = exports.inspectBody = exports.inspectError = exports.isErrorInfoOrPartialErrorInfo = exports.now = exports.parseQueryString = exports.toQueryString = exports.arrPopRandomElement = exports.defaultPostHeaders = exports.defaultGetHeaders = exports.allSame = exports.arrEvery = exports.arrFilter = exports.arrMap = exports.safeArrForEach = exports.arrForEach = exports.forInOwnNonNullProperties = exports.valuesArray = exports.keysArray = exports.arrWithoutValue = exports.arrDeleteValue = exports.arrIn = exports.arrIndexOf = exports.arrSubtract = exports.arrIntersectOb = exports.arrIntersect = exports.intersect = exports.containsValue = exports.inherits = exports.prototypicalClone = exports.shallowClone = exports.isEmptyArg = exports.isOnlyPropIn = exports.isEmpty = exports.isObject = exports.ensureArray = exports.isArray = exports.copy = exports.mixin = void 0;\nexports.toBase64 = exports.matchDerivedChannel = exports.shallowEquals = exports.getGlobalObject = exports.getRetryTime = exports.getJitterCoefficient = exports.getBackoffCoefficient = void 0;\nvar tslib_1 = __webpack_require__(0);\nvar platform_1 = tslib_1.__importDefault(__webpack_require__(3));\nvar defaults_1 = tslib_1.__importStar(__webpack_require__(8));\nvar errorinfo_1 = tslib_1.__importDefault(__webpack_require__(4));\nvar enc_base64_1 = __webpack_require__(11);\nvar enc_utf8_1 = __webpack_require__(31);\nfunction randomPosn(arrOrStr) {\n return Math.floor(Math.random() * arrOrStr.length);\n}\n/*\n * Add a set of properties to a target object\n * target: the target object\n * props: an object whose enumerable properties are\n * added, by reference only\n */\nfunction mixin(target) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n for (var i = 0; i < args.length; i++) {\n var source = args[i];\n if (!source) {\n break;\n }\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n for (var key in source) {\n if (!hasOwnProperty || hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n}\nexports.mixin = mixin;\n/*\n * Add a set of properties to a target object\n * target: the target object\n * props: an object whose enumerable properties are\n * added, by reference only\n */\nfunction copy(src) {\n return mixin({}, src);\n}\nexports.copy = copy;\n/*\n * Determine whether or not a given object is\n * an array.\n */\nexports.isArray = Array.isArray ||\n function (value) {\n return Object.prototype.toString.call(value) == '[object Array]';\n };\n/*\n * Ensures that an Array object is always returned\n * returning the original Array of obj is an Array\n * else wrapping the obj in a single element Array\n */\nfunction ensureArray(obj) {\n if (isEmptyArg(obj)) {\n return [];\n }\n if ((0, exports.isArray)(obj)) {\n return obj;\n }\n return [obj];\n}\nexports.ensureArray = ensureArray;\nfunction isObject(ob) {\n return Object.prototype.toString.call(ob) == '[object Object]';\n}\nexports.isObject = isObject;\n/*\n * Determine whether or not an object contains\n * any enumerable properties.\n * ob: the object\n */\nfunction isEmpty(ob) {\n for (var prop in ob)\n return false;\n return true;\n}\nexports.isEmpty = isEmpty;\nfunction isOnlyPropIn(ob, property) {\n for (var prop in ob) {\n if (prop !== property) {\n return false;\n }\n }\n return true;\n}\nexports.isOnlyPropIn = isOnlyPropIn;\n/*\n * Determine whether or not an argument to an overloaded function is\n * undefined (missing) or null.\n * This method is useful when constructing functions such as (WebIDL terminology):\n * off([TreatUndefinedAs=Null] DOMString? event)\n * as you can then confirm the argument using:\n * Utils.isEmptyArg(event)\n */\nfunction isEmptyArg(arg) {\n return arg === null || arg === undefined;\n}\nexports.isEmptyArg = isEmptyArg;\n/*\n * Perform a simple shallow clone of an object.\n * Result is an object irrespective of whether\n * the input is an object or array. All\n * enumerable properties are copied.\n * ob: the object\n */\nfunction shallowClone(ob) {\n var result = new Object();\n for (var prop in ob)\n result[prop] = ob[prop];\n return result;\n}\nexports.shallowClone = shallowClone;\n/*\n * Clone an object by creating a new object with the\n * given object as its prototype. Optionally\n * a set of additional own properties can be\n * supplied to be added to the newly created clone.\n * ob: the object to be cloned\n * ownProperties: optional object with additional\n * properties to add\n */\nfunction prototypicalClone(ob, ownProperties) {\n var F = /** @class */ (function () {\n function F() {\n }\n return F;\n }());\n F.prototype = ob;\n var result = new F();\n if (ownProperties)\n mixin(result, ownProperties);\n return result;\n}\nexports.prototypicalClone = prototypicalClone;\n/*\n * Declare a constructor to represent a subclass\n * of another constructor\n * If platform has a built-in version we use that from Platform, else we\n * define here (so can make use of other Utils fns)\n * See node.js util.inherits\n */\nvar inherits = function (ctor, superCtor) {\n if (platform_1.default.Config.inherits) {\n platform_1.default.Config.inherits(ctor, superCtor);\n return;\n }\n ctor.super_ = superCtor;\n ctor.prototype = prototypicalClone(superCtor.prototype, { constructor: ctor });\n};\nexports.inherits = inherits;\n/*\n * Determine whether or not an object has an enumerable\n * property whose value equals a given value.\n * ob: the object\n * val: the value to find\n */\nfunction containsValue(ob, val) {\n for (var i in ob) {\n if (ob[i] == val)\n return true;\n }\n return false;\n}\nexports.containsValue = containsValue;\nfunction intersect(arr, ob) {\n return (0, exports.isArray)(ob) ? arrIntersect(arr, ob) : arrIntersectOb(arr, ob);\n}\nexports.intersect = intersect;\nfunction arrIntersect(arr1, arr2) {\n var result = [];\n for (var i = 0; i < arr1.length; i++) {\n var member = arr1[i];\n if ((0, exports.arrIndexOf)(arr2, member) != -1)\n result.push(member);\n }\n return result;\n}\nexports.arrIntersect = arrIntersect;\nfunction arrIntersectOb(arr, ob) {\n var result = [];\n for (var i = 0; i < arr.length; i++) {\n var member = arr[i];\n if (member in ob)\n result.push(member);\n }\n return result;\n}\nexports.arrIntersectOb = arrIntersectOb;\nfunction arrSubtract(arr1, arr2) {\n var result = [];\n for (var i = 0; i < arr1.length; i++) {\n var element = arr1[i];\n if ((0, exports.arrIndexOf)(arr2, element) == -1)\n result.push(element);\n }\n return result;\n}\nexports.arrSubtract = arrSubtract;\nexports.arrIndexOf = Array.prototype.indexOf\n ? function (arr, elem, fromIndex) {\n return arr.indexOf(elem, fromIndex);\n }\n : function (arr, elem, fromIndex) {\n fromIndex = fromIndex || 0;\n var len = arr.length;\n for (; fromIndex < len; fromIndex++) {\n if (arr[fromIndex] === elem) {\n return fromIndex;\n }\n }\n return -1;\n };\nfunction arrIn(arr, val) {\n return (0, exports.arrIndexOf)(arr, val) !== -1;\n}\nexports.arrIn = arrIn;\nfunction arrDeleteValue(arr, val) {\n var idx = (0, exports.arrIndexOf)(arr, val);\n var res = idx != -1;\n if (res)\n arr.splice(idx, 1);\n return res;\n}\nexports.arrDeleteValue = arrDeleteValue;\nfunction arrWithoutValue(arr, val) {\n var newArr = arr.slice();\n arrDeleteValue(newArr, val);\n return newArr;\n}\nexports.arrWithoutValue = arrWithoutValue;\n/*\n * Construct an array of the keys of the enumerable\n * properties of a given object, optionally limited\n * to only the own properties.\n * ob: the object\n * ownOnly: boolean, get own properties only\n */\nfunction keysArray(ob, ownOnly) {\n var result = [];\n for (var prop in ob) {\n if (ownOnly && !Object.prototype.hasOwnProperty.call(ob, prop))\n continue;\n result.push(prop);\n }\n return result;\n}\nexports.keysArray = keysArray;\n/*\n * Construct an array of the values of the enumerable\n * properties of a given object, optionally limited\n * to only the own properties.\n * ob: the object\n * ownOnly: boolean, get own properties only\n */\nfunction valuesArray(ob, ownOnly) {\n var result = [];\n for (var prop in ob) {\n if (ownOnly && !Object.prototype.hasOwnProperty.call(ob, prop))\n continue;\n result.push(ob[prop]);\n }\n return result;\n}\nexports.valuesArray = valuesArray;\nfunction forInOwnNonNullProperties(ob, fn) {\n for (var prop in ob) {\n if (Object.prototype.hasOwnProperty.call(ob, prop) && ob[prop]) {\n fn(prop);\n }\n }\n}\nexports.forInOwnNonNullProperties = forInOwnNonNullProperties;\nexports.arrForEach = Array.prototype.forEach\n ? function (arr, fn) {\n arr.forEach(fn);\n }\n : function (arr, fn) {\n var len = arr.length;\n for (var i = 0; i < len; i++) {\n fn(arr[i], i, arr);\n }\n };\n/* Useful when the function may mutate the array */\nfunction safeArrForEach(arr, fn) {\n return (0, exports.arrForEach)(arr.slice(), fn);\n}\nexports.safeArrForEach = safeArrForEach;\nexports.arrMap = Array.prototype.map\n ? function (arr, fn) {\n return arr.map(fn);\n }\n : function (arr, fn) {\n var result = [];\n var len = arr.length;\n for (var i = 0; i < len; i++) {\n result.push(fn(arr[i], i, arr));\n }\n return result;\n };\nexports.arrFilter = Array.prototype.filter\n ? function (arr, fn) {\n return arr.filter(fn);\n }\n : function (arr, fn) {\n var result = [], len = arr.length;\n for (var i = 0; i < len; i++) {\n if (fn(arr[i])) {\n result.push(arr[i]);\n }\n }\n return result;\n };\nexports.arrEvery = Array.prototype.every\n ? function (arr, fn) {\n return arr.every(fn);\n }\n : function (arr, fn) {\n var len = arr.length;\n for (var i = 0; i < len; i++) {\n if (!fn(arr[i], i, arr)) {\n return false;\n }\n }\n return true;\n };\nfunction allSame(arr, prop) {\n if (arr.length === 0) {\n return true;\n }\n var first = arr[0][prop];\n return (0, exports.arrEvery)(arr, function (item) {\n return item[prop] === first;\n });\n}\nexports.allSame = allSame;\nvar contentTypes = {\n json: 'application/json',\n jsonp: 'application/javascript',\n xml: 'application/xml',\n html: 'text/html',\n msgpack: 'application/x-msgpack',\n};\nfunction defaultGetHeaders(options, format) {\n var accept = contentTypes[format || Format.json];\n return {\n accept: accept,\n 'X-Ably-Version': defaults_1.default.protocolVersion.toString(),\n 'Ably-Agent': (0, defaults_1.getAgentString)(options),\n };\n}\nexports.defaultGetHeaders = defaultGetHeaders;\nfunction defaultPostHeaders(options, format) {\n var contentType;\n var accept = (contentType = contentTypes[format || Format.json]);\n return {\n accept: accept,\n 'content-type': contentType,\n 'X-Ably-Version': defaults_1.default.protocolVersion.toString(),\n 'Ably-Agent': (0, defaults_1.getAgentString)(options),\n };\n}\nexports.defaultPostHeaders = defaultPostHeaders;\nfunction arrPopRandomElement(arr) {\n return arr.splice(randomPosn(arr), 1)[0];\n}\nexports.arrPopRandomElement = arrPopRandomElement;\nfunction toQueryString(params) {\n var parts = [];\n if (params) {\n for (var key in params)\n parts.push(encodeURIComponent(key) + '=' + encodeURIComponent(params[key]));\n }\n return parts.length ? '?' + parts.join('&') : '';\n}\nexports.toQueryString = toQueryString;\nfunction parseQueryString(query) {\n var match;\n var search = /([^?&=]+)=?([^&]*)/g;\n var result = {};\n while ((match = search.exec(query)))\n result[decodeURIComponent(match[1])] = decodeURIComponent(match[2]);\n return result;\n}\nexports.parseQueryString = parseQueryString;\nexports.now = Date.now ||\n function () {\n /* IE 8 */\n return new Date().getTime();\n };\nfunction isErrorInfoOrPartialErrorInfo(err) {\n return (typeof err == 'object' &&\n err !== null &&\n (err.constructor.name == 'ErrorInfo' || err.constructor.name == 'PartialErrorInfo'));\n}\nexports.isErrorInfoOrPartialErrorInfo = isErrorInfoOrPartialErrorInfo;\nfunction inspectError(err) {\n var _a, _b;\n if (err instanceof Error ||\n ((_a = err === null || err === void 0 ? void 0 : err.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ErrorInfo' ||\n ((_b = err === null || err === void 0 ? void 0 : err.constructor) === null || _b === void 0 ? void 0 : _b.name) === 'PartialErrorInfo')\n return err.toString();\n return platform_1.default.Config.inspect(err);\n}\nexports.inspectError = inspectError;\nfunction inspectBody(body) {\n if (platform_1.default.BufferUtils.isBuffer(body)) {\n return body.toString();\n }\n else if (typeof body === 'string') {\n return body;\n }\n else {\n return platform_1.default.Config.inspect(body);\n }\n}\nexports.inspectBody = inspectBody;\n/* Data is assumed to be either a string or a buffer. */\nfunction dataSizeBytes(data) {\n if (platform_1.default.BufferUtils.isBuffer(data)) {\n return platform_1.default.BufferUtils.byteLength(data);\n }\n if (typeof data === 'string') {\n return platform_1.default.Config.stringByteSize(data);\n }\n throw new Error('Expected input of Utils.dataSizeBytes to be a buffer or string, but was: ' + typeof data);\n}\nexports.dataSizeBytes = dataSizeBytes;\nfunction cheapRandStr() {\n return String(Math.random()).substr(2);\n}\nexports.cheapRandStr = cheapRandStr;\n/* Takes param the minimum number of bytes of entropy the string must\n * include, not the length of the string. String length produced is not\n * guaranteed. */\nvar randomString = function (numBytes) {\n if (platform_1.default.Config.getRandomValues && typeof Uint8Array !== 'undefined') {\n var uIntArr = new Uint8Array(numBytes);\n platform_1.default.Config.getRandomValues(uIntArr);\n return platform_1.default.BufferUtils.base64Encode(uIntArr);\n }\n /* Old browser; fall back to Math.random. Could just use a\n * CryptoJS version of the above, but want this to still work in nocrypto\n * versions of the library */\n var charset = platform_1.default.BufferUtils.base64CharSet;\n /* base64 has 33% overhead; round length up */\n var length = Math.round((numBytes * 4) / 3);\n var result = '';\n for (var i = 0; i < length; i++) {\n result += charset[randomPosn(charset)];\n }\n return result;\n};\nexports.randomString = randomString;\nvar randomHexString = function (numBytes) {\n if (platform_1.default.Config.getRandomValues && typeof Uint8Array !== 'undefined') {\n var uIntArr = new Uint8Array(numBytes);\n platform_1.default.Config.getRandomValues(uIntArr);\n return platform_1.default.BufferUtils.hexEncode(uIntArr);\n }\n var charset = platform_1.default.BufferUtils.hexCharSet;\n var length = numBytes * 2;\n var result = '';\n for (var i = 0; i < length; i++) {\n result += charset[randomPosn(charset)];\n }\n return result;\n};\nexports.randomHexString = randomHexString;\n/* Pick n elements at random without replacement from an array */\nfunction arrChooseN(arr, n) {\n var numItems = Math.min(n, arr.length), mutableArr = arr.slice(), result = [];\n for (var i = 0; i < numItems; i++) {\n result.push(arrPopRandomElement(mutableArr));\n }\n return result;\n}\nexports.arrChooseN = arrChooseN;\nexports.trim = String.prototype.trim\n ? function (str) {\n return str.trim();\n }\n : function (str) {\n return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n };\nfunction promisify(ob, fnName, args) {\n return new Promise(function (resolve, reject) {\n ob[fnName].apply(ob, tslib_1.__spreadArray(tslib_1.__spreadArray([], args, false), [function (err, res) {\n err ? reject(err) : resolve(res);\n }], false));\n });\n}\nexports.promisify = promisify;\nvar Format;\n(function (Format) {\n Format[\"msgpack\"] = \"msgpack\";\n Format[\"json\"] = \"json\";\n})(Format = exports.Format || (exports.Format = {}));\nfunction decodeBody(body, format) {\n return format == 'msgpack' ? platform_1.default.Config.msgpack.decode(body) : JSON.parse(String(body));\n}\nexports.decodeBody = decodeBody;\nfunction encodeBody(body, format) {\n return format == 'msgpack' ? platform_1.default.Config.msgpack.encode(body, true) : JSON.stringify(body);\n}\nexports.encodeBody = encodeBody;\nfunction allToLowerCase(arr) {\n return arr.map(function (element) {\n return element && element.toLowerCase();\n });\n}\nexports.allToLowerCase = allToLowerCase;\nfunction allToUpperCase(arr) {\n return arr.map(function (element) {\n return element && element.toUpperCase();\n });\n}\nexports.allToUpperCase = allToUpperCase;\nfunction getBackoffCoefficient(count) {\n return Math.min((count + 2) / 3, 2);\n}\nexports.getBackoffCoefficient = getBackoffCoefficient;\nfunction getJitterCoefficient() {\n return 1 - Math.random() * 0.2;\n}\nexports.getJitterCoefficient = getJitterCoefficient;\n/**\n *\n * @param initialTimeout initial timeout value\n * @param retryAttempt integer indicating retryAttempt\n * @returns RetryTimeout value for given timeout and retryAttempt.\n * If x is the value generated then,\n * Upper bound = min((retryAttempt + 2) / 3, 2) * initialTimeout,\n * Lower bound = 0.8 * Upper bound,\n * Lower bound < x < Upper bound\n */\nfunction getRetryTime(initialTimeout, retryAttempt) {\n return initialTimeout * getBackoffCoefficient(retryAttempt) * getJitterCoefficient();\n}\nexports.getRetryTime = getRetryTime;\nfunction getGlobalObject() {\n if (global) {\n return global;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n return self;\n}\nexports.getGlobalObject = getGlobalObject;\nfunction shallowEquals(source, target) {\n return (Object.keys(source).every(function (key) { return source[key] === target[key]; }) &&\n Object.keys(target).every(function (key) { return target[key] === source[key]; }));\n}\nexports.shallowEquals = shallowEquals;\nfunction matchDerivedChannel(name) {\n /**\n * This regex check is to retain existing channel params if any e.g [?rewind=1]foo to\n * [filter=xyz?rewind=1]foo. This is to keep channel compatibility around use of\n * channel params that work with derived channels.\n *\n * This eslint unsafe regex warning is triggered because the RegExp uses nested quantifiers,\n * but it does not create any situation where the regex engine has to\n * explore a large number of possible matches so it’s safe to ignore\n */\n var regex = /^(\\[([^?]*)(?:(.*))\\])?(.+)$/; // eslint-disable-line\n var match = name.match(regex);\n if (!match || !match.length || match.length < 5) {\n throw new errorinfo_1.default('regex match failed', 400, 40010);\n }\n // Fail if there is already a channel qualifier, eg [meta]foo should fail instead of just overriding with [filter=xyz]foo\n if (match[2]) {\n throw new errorinfo_1.default(\"cannot use a derived option with a \".concat(match[2], \" channel\"), 400, 40010);\n }\n // Return match values to be added to derive channel quantifier.\n return {\n qualifierParam: match[3] || '',\n channelName: match[4],\n };\n}\nexports.matchDerivedChannel = matchDerivedChannel;\nfunction toBase64(str) {\n if (platform_1.default.Config.createHmac) {\n return Buffer.from(str, 'ascii').toString('base64');\n }\n return (0, enc_base64_1.stringify)((0, enc_utf8_1.parse)(str));\n}\nexports.toBase64 = toBase64;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(13)))\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\nvar platform_1 = tslib_1.__importDefault(__webpack_require__(3));\n// Workaround for salesforce lightning locker compatibility\n// This is a shorthand version of Utils.getGlobalObject (which we can't use here without creating a circular import)\nvar globalObject = global || (typeof window !== 'undefined' ? window : self);\nvar LogLevels;\n(function (LogLevels) {\n LogLevels[LogLevels[\"None\"] = 0] = \"None\";\n LogLevels[LogLevels[\"Error\"] = 1] = \"Error\";\n LogLevels[LogLevels[\"Major\"] = 2] = \"Major\";\n LogLevels[LogLevels[\"Minor\"] = 3] = \"Minor\";\n LogLevels[LogLevels[\"Micro\"] = 4] = \"Micro\";\n})(LogLevels || (LogLevels = {}));\nfunction pad(timeSegment, three) {\n return \"\".concat(timeSegment).padStart(three ? 3 : 2, '0');\n}\nfunction getHandler(logger) {\n return platform_1.default.Config.logTimestamps\n ? function (msg) {\n var time = new Date();\n logger(pad(time.getHours()) +\n ':' +\n pad(time.getMinutes()) +\n ':' +\n pad(time.getSeconds()) +\n '.' +\n pad(time.getMilliseconds(), 1) +\n ' ' +\n msg);\n }\n : logger;\n}\nvar getDefaultLoggers = function () {\n var _a, _b;\n var consoleLogger;\n var errorLogger;\n /* Can't just check for console && console.log; fails in IE <=9 */\n if ((typeof Window === 'undefined' && typeof WorkerGlobalScope === 'undefined') /* node */ ||\n typeof ((_b = (_a = globalObject === null || globalObject === void 0 ? void 0 : globalObject.console) === null || _a === void 0 ? void 0 : _a.log) === null || _b === void 0 ? void 0 : _b.apply) === 'function' /* sensible browsers */) {\n consoleLogger = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n console.log.apply(console, args);\n };\n errorLogger = console.warn\n ? function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n console.warn.apply(console, args);\n }\n : consoleLogger;\n }\n else if (globalObject === null || globalObject === void 0 ? void 0 : globalObject.console.log) {\n /* IE <= 9 with the console open -- console.log does not\n * inherit from Function, so has no apply method */\n consoleLogger = errorLogger = function () {\n Function.prototype.apply.call(console.log, console, arguments);\n };\n }\n else {\n /* IE <= 9 when dev tools are closed - window.console not even defined */\n consoleLogger = errorLogger = function () { };\n }\n return [consoleLogger, errorLogger].map(getHandler);\n};\nvar Logger = /** @class */ (function () {\n function Logger() {\n Logger.logLevel = Logger.LOG_DEFAULT;\n }\n Logger.initLogHandlers = function () {\n var _a = getDefaultLoggers(), logHandler = _a[0], logErrorHandler = _a[1];\n this.logHandler = logHandler;\n this.logErrorHandler = logErrorHandler;\n };\n Logger.logLevel = LogLevels.Error; // default logLevel\n // public constants\n Logger.LOG_NONE = LogLevels.None;\n Logger.LOG_ERROR = LogLevels.Error;\n Logger.LOG_MAJOR = LogLevels.Major;\n Logger.LOG_MINOR = LogLevels.Minor;\n Logger.LOG_MICRO = LogLevels.Micro;\n // aliases\n Logger.LOG_DEFAULT = LogLevels.Error;\n Logger.LOG_DEBUG = LogLevels.Micro;\n /* public static functions */\n Logger.logAction = function (level, action, message) {\n if (Logger.shouldLog(level)) {\n (level === LogLevels.Error ? Logger.logErrorHandler : Logger.logHandler)('Ably: ' + action + ': ' + message);\n }\n };\n Logger.deprecated = function (original, replacement) {\n Logger.deprecatedWithMsg(original, \"Please use '\" + replacement + \"' instead.\");\n };\n Logger.deprecatedWithMsg = function (funcName, msg) {\n if (Logger.shouldLog(LogLevels.Error)) {\n Logger.logErrorHandler(\"Ably: Deprecation warning - '\" + funcName + \"' is deprecated and will be removed from a future version. \" + msg);\n }\n };\n /* Where a logging operation is expensive, such as serialisation of data, use shouldLog will prevent\n the object being serialised if the log level will not output the message */\n Logger.shouldLog = function (level) {\n return level <= Logger.logLevel;\n };\n Logger.setLog = function (level, handler) {\n if (level !== undefined)\n Logger.logLevel = level;\n if (handler !== undefined)\n Logger.logHandler = Logger.logErrorHandler = handler;\n };\n return Logger;\n}());\nexports.default = Logger;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(13)))\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Platform = /** @class */ (function () {\n function Platform() {\n }\n return Platform;\n}());\nexports.default = Platform;\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PartialErrorInfo = void 0;\nvar tslib_1 = __webpack_require__(0);\nvar platform_1 = tslib_1.__importDefault(__webpack_require__(3));\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\nfunction toString(err) {\n var result = '[' + err.constructor.name;\n if (err.message)\n result += ': ' + err.message;\n if (err.statusCode)\n result += '; statusCode=' + err.statusCode;\n if (err.code)\n result += '; code=' + err.code;\n if (err.cause)\n result += '; cause=' + Utils.inspectError(err.cause);\n if (err.href && !(err.message && err.message.indexOf('help.ably.io') > -1))\n result += '; see ' + err.href + ' ';\n result += ']';\n return result;\n}\nvar ErrorInfo = /** @class */ (function (_super) {\n tslib_1.__extends(ErrorInfo, _super);\n function ErrorInfo(message, code, statusCode, cause) {\n var _this = _super.call(this, message) || this;\n if (typeof Object.setPrototypeOf !== 'undefined') {\n Object.setPrototypeOf(_this, ErrorInfo.prototype);\n }\n _this.code = code;\n _this.statusCode = statusCode;\n _this.cause = cause;\n return _this;\n }\n ErrorInfo.prototype.toString = function () {\n return toString(this);\n };\n ErrorInfo.fromValues = function (values) {\n var _a = values, message = _a.message, code = _a.code, statusCode = _a.statusCode;\n if (typeof message !== 'string' || typeof code !== 'number' || typeof statusCode !== 'number') {\n throw new Error('ErrorInfo.fromValues(): invalid values: ' + platform_1.default.Config.inspect(values));\n }\n var result = Object.assign(new ErrorInfo(message, code, statusCode), values);\n if (result.code && !result.href) {\n result.href = 'https://help.ably.io/error/' + result.code;\n }\n return result;\n };\n return ErrorInfo;\n}(Error));\nexports.default = ErrorInfo;\nvar PartialErrorInfo = /** @class */ (function (_super) {\n tslib_1.__extends(PartialErrorInfo, _super);\n function PartialErrorInfo(message, code, statusCode, cause) {\n var _this = _super.call(this, message) || this;\n if (typeof Object.setPrototypeOf !== 'undefined') {\n Object.setPrototypeOf(_this, PartialErrorInfo.prototype);\n }\n _this.code = code;\n _this.statusCode = statusCode;\n _this.cause = cause;\n return _this;\n }\n PartialErrorInfo.prototype.toString = function () {\n return toString(this);\n };\n return PartialErrorInfo;\n}(Error));\nexports.PartialErrorInfo = PartialErrorInfo;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(6));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Check if typed arrays are supported\n\t if (typeof ArrayBuffer != 'function') {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\n\t // Reference original init\n\t var superInit = WordArray.init;\n\n\t // Augment WordArray.init to handle typed arrays\n\t var subInit = WordArray.init = function (typedArray) {\n\t // Convert buffers to uint8\n\t if (typedArray instanceof ArrayBuffer) {\n\t typedArray = new Uint8Array(typedArray);\n\t }\n\n\t // Convert other array views to uint8\n\t if (\n\t typedArray instanceof Int8Array ||\n\t (typeof Uint8ClampedArray !== \"undefined\" && typedArray instanceof Uint8ClampedArray) ||\n\t typedArray instanceof Int16Array ||\n\t typedArray instanceof Uint16Array ||\n\t typedArray instanceof Int32Array ||\n\t typedArray instanceof Uint32Array ||\n\t typedArray instanceof Float32Array ||\n\t typedArray instanceof Float64Array\n\t ) {\n\t typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\n\t }\n\n\t // Handle Uint8Array\n\t if (typedArray instanceof Uint8Array) {\n\t // Shortcut\n\t var typedArrayByteLength = typedArray.byteLength;\n\n\t // Extract bytes\n\t var words = [];\n\t for (var i = 0; i < typedArrayByteLength; i++) {\n\t words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);\n\t }\n\n\t // Initialize this word array\n\t superInit.call(this, words, typedArrayByteLength);\n\t } else {\n\t // Else call normal init\n\t superInit.apply(this, arguments);\n\t }\n\t };\n\n\t subInit.prototype = WordArray;\n\t}());\n\n\n\treturn CryptoJS.lib.WordArray;\n\n}));\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {;(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse {}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t var crypto;\n\n\t // Native crypto from window (Browser)\n\t if (typeof window !== 'undefined' && window.crypto) {\n\t crypto = window.crypto;\n\t }\n\n\t // Native (experimental IE 11) crypto from window (Browser)\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t crypto = window.msCrypto;\n\t }\n\n\t // Native crypto from global (NodeJS)\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t crypto = global.crypto;\n\t }\n\n\t // Native crypto import via require (NodeJS)\n\t if (!crypto && \"function\" === 'function') {\n\t try {\n\t crypto = __webpack_require__(44);\n\t } catch (err) {}\n\t }\n\n\t /*\n\t * Cryptographically secure pseudorandom number generator\n\t *\n\t * As Math.random() is cryptographically not safe to use\n\t */\n\t var cryptoSecureRandomInt = function () {\n\t if (crypto) {\n\t // Use getRandomValues method (Browser)\n\t if (typeof crypto.getRandomValues === 'function') {\n\t try {\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\n\t } catch (err) {}\n\t }\n\n\t // Use randomBytes method (NodeJS)\n\t if (typeof crypto.randomBytes === 'function') {\n\t try {\n\t return crypto.randomBytes(4).readInt32LE();\n\t } catch (err) {}\n\t }\n\t }\n\n\t throw new Error('Native crypto module could not be used to get secure random number.');\n\t };\n\n\t /*\n\t * Local polyfill of Object.create\n\n\t */\n\t var create = Object.create || (function () {\n\t function F() {}\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }())\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var i = 0; i < thatSigBytes; i += 4) {\n\t thisWords[(thisSigBytes + i) >>> 2] = thatWords[i >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(13)))\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\nvar logger_1 = tslib_1.__importDefault(__webpack_require__(2));\nvar platform_1 = tslib_1.__importDefault(__webpack_require__(3));\n/* Call the listener, catch any exceptions and log, but continue operation*/\nfunction callListener(eventThis, listener, args) {\n try {\n listener.apply(eventThis, args);\n }\n catch (e) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'EventEmitter.emit()', 'Unexpected listener exception: ' + e + '; stack = ' + (e && e.stack));\n }\n}\n/**\n * Remove listeners that match listener\n * @param targetListeners is an array of listener arrays or event objects with arrays of listeners\n * @param listener the listener callback to remove\n * @param eventFilter (optional) event name instructing the function to only remove listeners for the specified event\n */\nfunction removeListener(targetListeners, listener, eventFilter) {\n var listeners;\n var index;\n var eventName;\n for (var targetListenersIndex = 0; targetListenersIndex < targetListeners.length; targetListenersIndex++) {\n listeners = targetListeners[targetListenersIndex];\n if (eventFilter) {\n listeners = listeners[eventFilter];\n }\n if (Utils.isArray(listeners)) {\n while ((index = Utils.arrIndexOf(listeners, listener)) !== -1) {\n listeners.splice(index, 1);\n }\n /* If events object has an event name key with no listeners then\n remove the key to stop the list growing indefinitely */\n if (eventFilter && listeners.length === 0) {\n delete targetListeners[targetListenersIndex][eventFilter];\n }\n }\n else if (Utils.isObject(listeners)) {\n /* events */\n for (eventName in listeners) {\n if (Object.prototype.hasOwnProperty.call(listeners, eventName) && Utils.isArray(listeners[eventName])) {\n removeListener([listeners], listener, eventName);\n }\n }\n }\n }\n}\nvar EventEmitter = /** @class */ (function () {\n function EventEmitter() {\n this.any = [];\n this.events = Object.create(null);\n this.anyOnce = [];\n this.eventsOnce = Object.create(null);\n }\n EventEmitter.prototype.on = function () {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (args.length === 1) {\n var listener = args[0];\n if (typeof listener === 'function') {\n this.any.push(listener);\n }\n else {\n throw new Error('EventListener.on(): Invalid arguments: ' + platform_1.default.Config.inspect(args));\n }\n }\n if (args.length === 2) {\n var event_1 = args[0], listener_1 = args[1];\n if (typeof listener_1 !== 'function') {\n throw new Error('EventListener.on(): Invalid arguments: ' + platform_1.default.Config.inspect(args));\n }\n if (Utils.isEmptyArg(event_1)) {\n this.any.push(listener_1);\n }\n else if (Utils.isArray(event_1)) {\n event_1.forEach(function (eventName) {\n _this.on(eventName, listener_1);\n });\n }\n else {\n if (typeof event_1 !== 'string') {\n throw new Error('EventListener.on(): Invalid arguments: ' + platform_1.default.Config.inspect(args));\n }\n var listeners = this.events[event_1] || (this.events[event_1] = []);\n listeners.push(listener_1);\n }\n }\n };\n EventEmitter.prototype.off = function () {\n var _a;\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (args.length == 0 || (Utils.isEmptyArg(args[0]) && Utils.isEmptyArg(args[1]))) {\n this.any = [];\n this.events = Object.create(null);\n this.anyOnce = [];\n this.eventsOnce = Object.create(null);\n return;\n }\n var firstArg = args[0], secondArg = args[1];\n var listener = null;\n var event = null;\n if (args.length === 1 || !secondArg) {\n if (typeof firstArg === 'function') {\n /* we take this to be the listener and treat the event as \"any\" .. */\n listener = firstArg;\n }\n else {\n event = firstArg;\n }\n /* ... or we take event to be the actual event name and listener to be all */\n }\n else {\n if (typeof secondArg !== 'function') {\n throw new Error('EventEmitter.off(): invalid arguments:' + platform_1.default.Config.inspect(args));\n }\n _a = [firstArg, secondArg], event = _a[0], listener = _a[1];\n }\n if (listener && Utils.isEmptyArg(event)) {\n removeListener([this.any, this.events, this.anyOnce, this.eventsOnce], listener);\n return;\n }\n if (Utils.isArray(event)) {\n event.forEach(function (eventName) {\n _this.off(eventName, listener);\n });\n return;\n }\n /* \"normal\" case where event is an actual event */\n if (typeof event !== 'string') {\n throw new Error('EventEmitter.off(): invalid arguments:' + platform_1.default.Config.inspect(args));\n }\n if (listener) {\n removeListener([this.events, this.eventsOnce], listener, event);\n }\n else {\n delete this.events[event];\n delete this.eventsOnce[event];\n }\n };\n /**\n * Get the array of listeners for a given event; excludes once events\n * @param event (optional) the name of the event, or none for 'any'\n * @return array of events, or null if none\n */\n EventEmitter.prototype.listeners = function (event) {\n if (event) {\n var listeners = this.events[event] || [];\n if (this.eventsOnce[event])\n Array.prototype.push.apply(listeners, this.eventsOnce[event]);\n return listeners.length ? listeners : null;\n }\n return this.any.length ? this.any : null;\n };\n /**\n * Emit an event\n * @param event the event name\n * @param args the arguments to pass to the listener\n */\n EventEmitter.prototype.emit = function (event) {\n var args = []; /* , args... */\n for (var _i = 1 /* , args... */; _i < arguments.length /* , args... */; _i++ /* , args... */) {\n args[_i - 1] = arguments[_i]; /* , args... */\n }\n var eventThis = { event: event };\n var listeners = [];\n if (this.anyOnce.length) {\n Array.prototype.push.apply(listeners, this.anyOnce);\n this.anyOnce = [];\n }\n if (this.any.length) {\n Array.prototype.push.apply(listeners, this.any);\n }\n var eventsOnceListeners = this.eventsOnce[event];\n if (eventsOnceListeners) {\n Array.prototype.push.apply(listeners, eventsOnceListeners);\n delete this.eventsOnce[event];\n }\n var eventsListeners = this.events[event];\n if (eventsListeners) {\n Array.prototype.push.apply(listeners, eventsListeners);\n }\n Utils.arrForEach(listeners, function (listener) {\n callListener(eventThis, listener, args);\n });\n };\n EventEmitter.prototype.once = function () {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var argCount = args.length;\n if ((argCount === 0 || (argCount === 1 && typeof args[0] !== 'function')) && platform_1.default.Config.Promise) {\n var event_2 = args[0];\n return new platform_1.default.Config.Promise(function (resolve) {\n _this.once(event_2, resolve);\n });\n }\n var firstArg = args[0], secondArg = args[1];\n if (args.length === 1 && typeof firstArg === 'function') {\n this.anyOnce.push(firstArg);\n }\n else if (Utils.isEmptyArg(firstArg)) {\n if (typeof secondArg !== 'function') {\n throw new Error('EventEmitter.once(): Invalid arguments:' + platform_1.default.Config.inspect(args));\n }\n this.anyOnce.push(secondArg);\n }\n else if (Utils.isArray(firstArg)) {\n var self_1 = this;\n var listenerWrapper_1 = function () {\n var innerArgs = Array.prototype.slice.call(arguments);\n Utils.arrForEach(firstArg, function (eventName) {\n self_1.off(eventName, listenerWrapper_1);\n });\n if (typeof secondArg !== 'function') {\n throw new Error('EventEmitter.once(): Invalid arguments:' + platform_1.default.Config.inspect(args));\n }\n secondArg.apply(this, innerArgs);\n };\n Utils.arrForEach(firstArg, function (eventName) {\n self_1.on(eventName, listenerWrapper_1);\n });\n }\n else {\n if (typeof firstArg !== 'string') {\n throw new Error('EventEmitter.once(): Invalid arguments:' + platform_1.default.Config.inspect(args));\n }\n var listeners = this.eventsOnce[firstArg] || (this.eventsOnce[firstArg] = []);\n if (secondArg) {\n if (typeof secondArg !== 'function') {\n throw new Error('EventEmitter.once(): Invalid arguments:' + platform_1.default.Config.inspect(args));\n }\n listeners.push(secondArg);\n }\n }\n };\n /**\n * Private API\n *\n * Listen for a single occurrence of a state event and fire immediately if currentState matches targetState\n * @param targetState the name of the state event to listen to\n * @param currentState the name of the current state of this object\n * @param listener the listener to be called\n * @param listenerArgs\n */\n EventEmitter.prototype.whenState = function (targetState, currentState, listener) {\n var _this = this;\n var listenerArgs = [];\n for (var _i = 3; _i < arguments.length; _i++) {\n listenerArgs[_i - 3] = arguments[_i];\n }\n var eventThis = { event: targetState };\n if (typeof targetState !== 'string' || typeof currentState !== 'string') {\n throw 'whenState requires a valid event String argument';\n }\n if (typeof listener !== 'function' && platform_1.default.Config.Promise) {\n return new platform_1.default.Config.Promise(function (resolve) {\n EventEmitter.prototype.whenState.apply(_this, [targetState, currentState, resolve].concat(listenerArgs));\n });\n }\n if (targetState === currentState) {\n callListener(eventThis, listener, listenerArgs);\n }\n else {\n this.once(targetState, listener);\n }\n };\n return EventEmitter;\n}());\nexports.default = EventEmitter;\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getDefaults = exports.normaliseOptions = exports.objectifyOptions = exports.getAgentString = exports.getHosts = exports.getFallbackHosts = exports.environmentFallbackHosts = exports.getHttpScheme = exports.getPort = exports.getHost = void 0;\nvar tslib_1 = __webpack_require__(0);\nvar platform_1 = tslib_1.__importDefault(__webpack_require__(3));\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\nvar logger_1 = tslib_1.__importDefault(__webpack_require__(2));\nvar errorinfo_1 = tslib_1.__importDefault(__webpack_require__(4));\nvar package_json_1 = __webpack_require__(43);\nvar agent = 'ably-js/' + package_json_1.version;\nvar Defaults = {\n ENVIRONMENT: '',\n REST_HOST: 'rest.ably.io',\n REALTIME_HOST: 'realtime.ably.io',\n FALLBACK_HOSTS: [\n 'A.ably-realtime.com',\n 'B.ably-realtime.com',\n 'C.ably-realtime.com',\n 'D.ably-realtime.com',\n 'E.ably-realtime.com',\n ],\n PORT: 80,\n TLS_PORT: 443,\n TIMEOUTS: {\n /* Documented as options params: */\n disconnectedRetryTimeout: 15000,\n suspendedRetryTimeout: 30000,\n /* Undocumented, but part of the api and can be used by customers: */\n httpRequestTimeout: 15000,\n channelRetryTimeout: 15000,\n fallbackRetryTimeout: 600000,\n /* For internal / test use only: */\n connectionStateTtl: 120000,\n realtimeRequestTimeout: 10000,\n recvTimeout: 90000,\n preferenceConnectTimeout: 6000,\n parallelUpgradeDelay: 6000,\n },\n httpMaxRetryCount: 3,\n maxMessageSize: 65536,\n version: package_json_1.version,\n protocolVersion: 2,\n agent: agent,\n getHost: getHost,\n getPort: getPort,\n getHttpScheme: getHttpScheme,\n environmentFallbackHosts: environmentFallbackHosts,\n getFallbackHosts: getFallbackHosts,\n getHosts: getHosts,\n checkHost: checkHost,\n objectifyOptions: objectifyOptions,\n normaliseOptions: normaliseOptions,\n};\nfunction getHost(options, host, ws) {\n if (ws)\n host = (host == options.restHost && options.realtimeHost) || host || options.realtimeHost;\n else\n host = host || options.restHost;\n return host;\n}\nexports.getHost = getHost;\nfunction getPort(options, tls) {\n return tls || options.tls ? options.tlsPort : options.port;\n}\nexports.getPort = getPort;\nfunction getHttpScheme(options) {\n return options.tls ? 'https://' : 'http://';\n}\nexports.getHttpScheme = getHttpScheme;\n// construct environment fallback hosts as per RSC15i\nfunction environmentFallbackHosts(environment) {\n return [\n environment + '-a-fallback.ably-realtime.com',\n environment + '-b-fallback.ably-realtime.com',\n environment + '-c-fallback.ably-realtime.com',\n environment + '-d-fallback.ably-realtime.com',\n environment + '-e-fallback.ably-realtime.com',\n ];\n}\nexports.environmentFallbackHosts = environmentFallbackHosts;\nfunction getFallbackHosts(options) {\n var fallbackHosts = options.fallbackHosts, httpMaxRetryCount = typeof options.httpMaxRetryCount !== 'undefined' ? options.httpMaxRetryCount : Defaults.httpMaxRetryCount;\n return fallbackHosts ? Utils.arrChooseN(fallbackHosts, httpMaxRetryCount) : [];\n}\nexports.getFallbackHosts = getFallbackHosts;\nfunction getHosts(options) {\n return [options.restHost].concat(getFallbackHosts(options));\n}\nexports.getHosts = getHosts;\nfunction checkHost(host) {\n if (typeof host !== 'string') {\n throw new errorinfo_1.default('host must be a string; was a ' + typeof host, 40000, 400);\n }\n if (!host.length) {\n throw new errorinfo_1.default('host must not be zero-length', 40000, 400);\n }\n}\nfunction getRealtimeHost(options, production, environment) {\n if (options.realtimeHost)\n return options.realtimeHost;\n /* prefer setting realtimeHost to restHost as a custom restHost typically indicates\n * a development environment is being used that can't be inferred by the library */\n if (options.restHost) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Defaults.normaliseOptions', 'restHost is set to \"' +\n options.restHost +\n '\" but realtimeHost is not set, so setting realtimeHost to \"' +\n options.restHost +\n '\" too. If this is not what you want, please set realtimeHost explicitly.');\n return options.restHost;\n }\n return production ? Defaults.REALTIME_HOST : environment + '-' + Defaults.REALTIME_HOST;\n}\nfunction getTimeouts(options) {\n /* Allow values passed in options to override default timeouts */\n var timeouts = {};\n for (var prop in Defaults.TIMEOUTS) {\n timeouts[prop] = options[prop] || Defaults.TIMEOUTS[prop];\n }\n return timeouts;\n}\nfunction getAgentString(options) {\n var agentStr = Defaults.agent;\n if (options.agents) {\n for (var agent in options.agents) {\n agentStr += ' ' + agent + '/' + options.agents[agent];\n }\n }\n return agentStr;\n}\nexports.getAgentString = getAgentString;\nfunction objectifyOptions(options) {\n if (typeof options == 'string') {\n return options.indexOf(':') == -1 ? { token: options } : { key: options };\n }\n return options;\n}\nexports.objectifyOptions = objectifyOptions;\nfunction normaliseOptions(options) {\n /* Deprecated options */\n if (options.host) {\n logger_1.default.deprecated('host', 'restHost');\n options.restHost = options.host;\n }\n if (options.wsHost) {\n logger_1.default.deprecated('wsHost', 'realtimeHost');\n options.realtimeHost = options.wsHost;\n }\n if (options.queueEvents) {\n logger_1.default.deprecated('queueEvents', 'queueMessages');\n options.queueMessages = options.queueEvents;\n }\n if (options.fallbackHostsUseDefault) {\n /* fallbackHostsUseDefault and fallbackHosts are mutually exclusive as per TO3k7 */\n if (options.fallbackHosts) {\n var msg = 'fallbackHosts and fallbackHostsUseDefault cannot both be set';\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Defaults.normaliseOptions', msg);\n throw new errorinfo_1.default(msg, 40000, 400);\n }\n /* default fallbacks can't be used with custom ports */\n if (options.port || options.tlsPort) {\n var msg = 'fallbackHostsUseDefault cannot be set when port or tlsPort are set';\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Defaults.normaliseOptions', msg);\n throw new errorinfo_1.default(msg, 40000, 400);\n }\n /* emit an appropriate deprecation warning */\n if (options.environment) {\n logger_1.default.deprecatedWithMsg('fallbackHostsUseDefault', 'There is no longer a need to set this when the environment option is also set since the library will now generate the correct fallback hosts using the environment option.');\n }\n else {\n logger_1.default.deprecated('fallbackHostsUseDefault', 'fallbackHosts: Ably.Defaults.FALLBACK_HOSTS');\n }\n /* use the default fallback hosts as requested */\n options.fallbackHosts = Defaults.FALLBACK_HOSTS;\n }\n /* options.recover as a boolean is deprecated, and therefore is not part of the public typing */\n if (options.recover === true) {\n logger_1.default.deprecated('{recover: true}', '{recover: function(lastConnectionDetails, cb) { cb(true); }}');\n options.recover = function (lastConnectionDetails, cb) {\n cb(true);\n };\n }\n if (typeof options.recover === 'function' && options.closeOnUnload === true) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Defaults.normaliseOptions', 'closeOnUnload was true and a session recovery function was set - these are mutually exclusive, so unsetting the latter');\n options.recover = undefined;\n }\n if (!('closeOnUnload' in options)) {\n /* Have closeOnUnload default to true unless we have any indication that\n * the user may want to recover the connection */\n options.closeOnUnload = !options.recover;\n }\n if (options.transports && Utils.arrIn(options.transports, 'xhr')) {\n logger_1.default.deprecated('transports: [\"xhr\"]', 'transports: [\"xhr_streaming\"]');\n Utils.arrDeleteValue(options.transports, 'xhr');\n options.transports.push('xhr_streaming');\n }\n if (!('queueMessages' in options))\n options.queueMessages = true;\n /* infer hosts and fallbacks based on the configured environment */\n var environment = (options.environment && String(options.environment).toLowerCase()) || Defaults.ENVIRONMENT;\n var production = !environment || environment === 'production';\n if (!options.fallbackHosts && !options.restHost && !options.realtimeHost && !options.port && !options.tlsPort) {\n options.fallbackHosts = production ? Defaults.FALLBACK_HOSTS : environmentFallbackHosts(environment);\n }\n var restHost = options.restHost || (production ? Defaults.REST_HOST : environment + '-' + Defaults.REST_HOST);\n var realtimeHost = getRealtimeHost(options, production, environment);\n Utils.arrForEach((options.fallbackHosts || []).concat(restHost, realtimeHost), checkHost);\n options.port = options.port || Defaults.PORT;\n options.tlsPort = options.tlsPort || Defaults.TLS_PORT;\n if (!('tls' in options))\n options.tls = true;\n var timeouts = getTimeouts(options);\n if ('useBinaryProtocol' in options) {\n options.useBinaryProtocol = platform_1.default.Config.supportsBinary && options.useBinaryProtocol;\n }\n else {\n options.useBinaryProtocol = platform_1.default.Config.preferBinary;\n }\n if (options.clientId) {\n var headers = (options.headers = options.headers || {});\n headers['X-Ably-ClientId'] = platform_1.default.BufferUtils.base64Encode(platform_1.default.BufferUtils.utf8Encode(options.clientId));\n }\n if (!('idempotentRestPublishing' in options)) {\n options.idempotentRestPublishing = true;\n }\n if (options.promises && !platform_1.default.Config.Promise) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Defaults.normaliseOptions', '{promises: true} was specified, but no Promise constructor found; disabling promises');\n options.promises = false;\n }\n var connectivityCheckParams = null;\n var connectivityCheckUrl = options.connectivityCheckUrl;\n if (options.connectivityCheckUrl) {\n var _a = options.connectivityCheckUrl.split('?'), uri = _a[0], qs = _a[1];\n connectivityCheckParams = qs ? Utils.parseQueryString(qs) : {};\n if (uri.indexOf('://') === -1) {\n uri = 'https://' + uri;\n }\n connectivityCheckUrl = uri;\n }\n return tslib_1.__assign(tslib_1.__assign({}, options), { useBinaryProtocol: 'useBinaryProtocol' in options\n ? platform_1.default.Config.supportsBinary && options.useBinaryProtocol\n : platform_1.default.Config.preferBinary, realtimeHost: realtimeHost, restHost: restHost, maxMessageSize: options.maxMessageSize || Defaults.maxMessageSize, timeouts: timeouts, connectivityCheckParams: connectivityCheckParams, connectivityCheckUrl: connectivityCheckUrl });\n}\nexports.normaliseOptions = normaliseOptions;\nexports.default = Defaults;\nfunction getDefaults(platformDefaults) {\n return Object.assign(Defaults, platformDefaults);\n}\nexports.getDefaults = getDefaults;\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\nvar platform_1 = tslib_1.__importDefault(__webpack_require__(3));\nvar logger_1 = tslib_1.__importDefault(__webpack_require__(2));\nvar errorinfo_1 = tslib_1.__importDefault(__webpack_require__(4));\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\nfunction normaliseContext(context) {\n if (!context || !context.channelOptions) {\n return {\n channelOptions: context,\n plugins: {},\n baseEncodedPreviousPayload: undefined,\n };\n }\n return context;\n}\nfunction normalizeCipherOptions(options) {\n if (options && options.cipher) {\n if (!platform_1.default.Crypto)\n throw new Error('Encryption not enabled; use ably.encryption.js instead');\n var cipher = platform_1.default.Crypto.getCipher(options.cipher);\n return {\n cipher: cipher.cipherParams,\n channelCipher: cipher.cipher,\n };\n }\n return options !== null && options !== void 0 ? options : {};\n}\nfunction getMessageSize(msg) {\n var size = 0;\n if (msg.name) {\n size += msg.name.length;\n }\n if (msg.clientId) {\n size += msg.clientId.length;\n }\n if (msg.extras) {\n size += JSON.stringify(msg.extras).length;\n }\n if (msg.data) {\n size += Utils.dataSizeBytes(msg.data);\n }\n return size;\n}\nvar Message = /** @class */ (function () {\n function Message() {\n }\n /**\n * Overload toJSON() to intercept JSON.stringify()\n * @return {*}\n */\n Message.prototype.toJSON = function () {\n /* encode data to base64 if present and we're returning real JSON;\n * although msgpack calls toJSON(), we know it is a stringify()\n * call if it has a non-empty arguments list */\n var encoding = this.encoding;\n var data = this.data;\n if (data && platform_1.default.BufferUtils.isBuffer(data)) {\n if (arguments.length > 0) {\n /* stringify call */\n encoding = encoding ? encoding + '/base64' : 'base64';\n data = platform_1.default.BufferUtils.base64Encode(data);\n }\n else {\n /* Called by msgpack. toBuffer returns a datatype understandable by\n * that platform's msgpack implementation (Buffer in node, Uint8Array\n * in browsers) */\n data = platform_1.default.BufferUtils.toBuffer(data);\n }\n }\n return {\n name: this.name,\n id: this.id,\n clientId: this.clientId,\n connectionId: this.connectionId,\n connectionKey: this.connectionKey,\n extras: this.extras,\n encoding: encoding,\n data: data,\n };\n };\n Message.prototype.toString = function () {\n var result = '[Message';\n if (this.name)\n result += '; name=' + this.name;\n if (this.id)\n result += '; id=' + this.id;\n if (this.timestamp)\n result += '; timestamp=' + this.timestamp;\n if (this.clientId)\n result += '; clientId=' + this.clientId;\n if (this.connectionId)\n result += '; connectionId=' + this.connectionId;\n if (this.encoding)\n result += '; encoding=' + this.encoding;\n if (this.extras)\n result += '; extras =' + JSON.stringify(this.extras);\n if (this.data) {\n if (typeof this.data == 'string')\n result += '; data=' + this.data;\n else if (platform_1.default.BufferUtils.isBuffer(this.data))\n result += '; data (buffer)=' + platform_1.default.BufferUtils.base64Encode(this.data);\n else\n result += '; data (json)=' + JSON.stringify(this.data);\n }\n if (this.extras)\n result += '; extras=' + JSON.stringify(this.extras);\n result += ']';\n return result;\n };\n Message.encrypt = function (msg, options, callback) {\n var data = msg.data, encoding = msg.encoding, cipher = options.channelCipher;\n encoding = encoding ? encoding + '/' : '';\n if (!platform_1.default.BufferUtils.isBuffer(data)) {\n data = platform_1.default.BufferUtils.utf8Encode(String(data));\n encoding = encoding + 'utf-8/';\n }\n cipher.encrypt(data, function (err, data) {\n if (err) {\n callback(err);\n return;\n }\n msg.data = data;\n msg.encoding = encoding + 'cipher+' + cipher.algorithm;\n callback(null, msg);\n });\n };\n Message.encode = function (msg, options, callback) {\n var data = msg.data;\n var nativeDataType = typeof data == 'string' || platform_1.default.BufferUtils.isBuffer(data) || data === null || data === undefined;\n if (!nativeDataType) {\n if (Utils.isObject(data) || Utils.isArray(data)) {\n msg.data = JSON.stringify(data);\n msg.encoding = msg.encoding ? msg.encoding + '/json' : 'json';\n }\n else {\n throw new errorinfo_1.default('Data type is unsupported', 40013, 400);\n }\n }\n if (options != null && options.cipher) {\n Message.encrypt(msg, options, callback);\n }\n else {\n callback(null, msg);\n }\n };\n Message.encodeArray = function (messages, options, callback) {\n var processed = 0;\n for (var i = 0; i < messages.length; i++) {\n Message.encode(messages[i], options, function (err) {\n if (err) {\n callback(err);\n return;\n }\n processed++;\n if (processed == messages.length) {\n callback(null, messages);\n }\n });\n }\n };\n Message.decode = function (message, inputContext) {\n var context = normaliseContext(inputContext);\n var lastPayload = message.data;\n var encoding = message.encoding;\n if (encoding) {\n var xforms = encoding.split('/');\n var lastProcessedEncodingIndex = void 0, encodingsToProcess = xforms.length, data = message.data;\n var xform = '';\n try {\n while ((lastProcessedEncodingIndex = encodingsToProcess) > 0) {\n // eslint-disable-next-line security/detect-unsafe-regex\n var match = xforms[--encodingsToProcess].match(/([-\\w]+)(\\+([\\w-]+))?/);\n if (!match)\n break;\n xform = match[1];\n switch (xform) {\n case 'base64':\n data = platform_1.default.BufferUtils.base64Decode(String(data));\n if (lastProcessedEncodingIndex == xforms.length) {\n lastPayload = data;\n }\n continue;\n case 'utf-8':\n data = platform_1.default.BufferUtils.utf8Decode(data);\n continue;\n case 'json':\n data = JSON.parse(data);\n continue;\n case 'cipher':\n if (context.channelOptions != null &&\n context.channelOptions.cipher &&\n context.channelOptions.channelCipher) {\n var xformAlgorithm = match[3], cipher = context.channelOptions.channelCipher;\n /* don't attempt to decrypt unless the cipher params are compatible */\n if (xformAlgorithm != cipher.algorithm) {\n throw new Error('Unable to decrypt message with given cipher; incompatible cipher params');\n }\n data = cipher.decrypt(data);\n continue;\n }\n else {\n throw new Error('Unable to decrypt message; not an encrypted channel');\n }\n case 'vcdiff':\n if (!context.plugins || !context.plugins.vcdiff) {\n throw new errorinfo_1.default('Missing Vcdiff decoder (https://github.com/ably-forks/vcdiff-decoder)', 40019, 400);\n }\n if (typeof Uint8Array === 'undefined') {\n throw new errorinfo_1.default('Delta decoding not supported on this browser (need ArrayBuffer & Uint8Array)', 40020, 400);\n }\n try {\n var deltaBase = context.baseEncodedPreviousPayload;\n if (typeof deltaBase === 'string') {\n deltaBase = platform_1.default.BufferUtils.utf8Encode(deltaBase);\n }\n /* vcdiff expects Uint8Arrays, can't copy with ArrayBuffers. (also, if we\n * don't have a TextDecoder, deltaBase might be a WordArray here, so need\n * to process it into a buffer anyway) */\n deltaBase = platform_1.default.BufferUtils.toBuffer(deltaBase);\n data = platform_1.default.BufferUtils.toBuffer(data);\n data = platform_1.default.BufferUtils.typedArrayToBuffer(context.plugins.vcdiff.decode(data, deltaBase));\n lastPayload = data;\n }\n catch (e) {\n throw new errorinfo_1.default('Vcdiff delta decode failed with ' + e, 40018, 400);\n }\n continue;\n default:\n throw new Error('Unknown encoding');\n }\n }\n }\n catch (e) {\n var err = e;\n throw new errorinfo_1.default('Error processing the ' + xform + ' encoding, decoder returned ‘' + err.message + '’', err.code || 40013, 400);\n }\n finally {\n message.encoding =\n lastProcessedEncodingIndex <= 0 ? null : xforms.slice(0, lastProcessedEncodingIndex).join('/');\n message.data = data;\n }\n }\n context.baseEncodedPreviousPayload = lastPayload;\n };\n Message.fromResponseBody = function (body, options, format) {\n if (format) {\n body = Utils.decodeBody(body, format);\n }\n for (var i = 0; i < body.length; i++) {\n var msg = (body[i] = Message.fromValues(body[i]));\n try {\n Message.decode(msg, options);\n }\n catch (e) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Message.fromResponseBody()', e.toString());\n }\n }\n return body;\n };\n Message.fromValues = function (values) {\n return Object.assign(new Message(), values);\n };\n Message.fromValuesArray = function (values) {\n var count = values.length, result = new Array(count);\n for (var i = 0; i < count; i++)\n result[i] = Message.fromValues(values[i]);\n return result;\n };\n Message.fromEncoded = function (encoded, inputOptions) {\n var msg = Message.fromValues(encoded);\n var options = normalizeCipherOptions(inputOptions !== null && inputOptions !== void 0 ? inputOptions : null);\n /* if decoding fails at any point, catch and return the message decoded to\n * the fullest extent possible */\n try {\n Message.decode(msg, options);\n }\n catch (e) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Message.fromEncoded()', e.toString());\n }\n return msg;\n };\n Message.fromEncodedArray = function (encodedArray, options) {\n return encodedArray.map(function (encoded) {\n return Message.fromEncoded(encoded, options);\n });\n };\n /* This should be called on encode()d (and encrypt()d) Messages (as it\n * assumes the data is a string or buffer) */\n Message.getMessagesSize = function (messages) {\n var msg, total = 0;\n for (var i = 0; i < messages.length; i++) {\n msg = messages[i];\n total += msg.size || (msg.size = getMessageSize(msg));\n }\n return total;\n };\n Message.serialize = Utils.encodeBody;\n return Message;\n}());\nexports.default = Message;\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\nvar errorinfo_1 = tslib_1.__importDefault(__webpack_require__(4));\nvar message_1 = tslib_1.__importDefault(__webpack_require__(9));\nvar presencemessage_1 = tslib_1.__importDefault(__webpack_require__(15));\nvar actions = {\n HEARTBEAT: 0,\n ACK: 1,\n NACK: 2,\n CONNECT: 3,\n CONNECTED: 4,\n DISCONNECT: 5,\n DISCONNECTED: 6,\n CLOSE: 7,\n CLOSED: 8,\n ERROR: 9,\n ATTACH: 10,\n ATTACHED: 11,\n DETACH: 12,\n DETACHED: 13,\n PRESENCE: 14,\n MESSAGE: 15,\n SYNC: 16,\n AUTH: 17,\n ACTIVATE: 18,\n};\nvar ActionName = [];\nObject.keys(actions).forEach(function (name) {\n ActionName[actions[name]] = name;\n});\nvar flags = {\n /* Channel attach state flags */\n HAS_PRESENCE: 1 << 0,\n HAS_BACKLOG: 1 << 1,\n RESUMED: 1 << 2,\n TRANSIENT: 1 << 4,\n ATTACH_RESUME: 1 << 5,\n /* Channel mode flags */\n PRESENCE: 1 << 16,\n PUBLISH: 1 << 17,\n SUBSCRIBE: 1 << 18,\n PRESENCE_SUBSCRIBE: 1 << 19,\n};\nvar flagNames = Object.keys(flags);\nflags.MODE_ALL = flags.PRESENCE | flags.PUBLISH | flags.SUBSCRIBE | flags.PRESENCE_SUBSCRIBE;\nfunction toStringArray(array) {\n var result = [];\n if (array) {\n for (var i = 0; i < array.length; i++) {\n result.push(array[i].toString());\n }\n }\n return '[ ' + result.join(', ') + ' ]';\n}\nvar simpleAttributes = 'id channel channelSerial connectionId count msgSerial timestamp'.split(' ');\nvar ProtocolMessage = /** @class */ (function () {\n function ProtocolMessage() {\n var _this = this;\n this.hasFlag = function (flag) {\n return (_this.flags & flags[flag]) > 0;\n };\n }\n ProtocolMessage.prototype.setFlag = function (flag) {\n return (this.flags = this.flags | flags[flag]);\n };\n ProtocolMessage.prototype.getMode = function () {\n return this.flags && this.flags & flags.MODE_ALL;\n };\n ProtocolMessage.prototype.encodeModesToFlags = function (modes) {\n var _this = this;\n modes.forEach(function (mode) { return _this.setFlag(mode); });\n };\n ProtocolMessage.prototype.decodeModesFromFlags = function () {\n var _this = this;\n var modes = [];\n ProtocolMessage.channelModes.forEach(function (mode) {\n if (_this.hasFlag(mode)) {\n modes.push(mode);\n }\n });\n return modes.length > 0 ? modes : undefined;\n };\n ProtocolMessage.fromValues = function (values) {\n return Object.assign(new ProtocolMessage(), values);\n };\n ProtocolMessage.Action = actions;\n ProtocolMessage.channelModes = ['PRESENCE', 'PUBLISH', 'SUBSCRIBE', 'PRESENCE_SUBSCRIBE'];\n ProtocolMessage.ActionName = ActionName;\n ProtocolMessage.serialize = Utils.encodeBody;\n ProtocolMessage.deserialize = function (serialized, format) {\n var deserialized = Utils.decodeBody(serialized, format);\n return ProtocolMessage.fromDeserialized(deserialized);\n };\n ProtocolMessage.fromDeserialized = function (deserialized) {\n var error = deserialized.error;\n if (error)\n deserialized.error = errorinfo_1.default.fromValues(error);\n var messages = deserialized.messages;\n if (messages)\n for (var i = 0; i < messages.length; i++)\n messages[i] = message_1.default.fromValues(messages[i]);\n var presence = deserialized.presence;\n if (presence)\n for (var i = 0; i < presence.length; i++)\n presence[i] = presencemessage_1.default.fromValues(presence[i], true);\n return Object.assign(new ProtocolMessage(), deserialized);\n };\n ProtocolMessage.stringify = function (msg) {\n var result = '[ProtocolMessage';\n if (msg.action !== undefined)\n result += '; action=' + ProtocolMessage.ActionName[msg.action] || false;\n var attribute;\n for (var attribIndex = 0; attribIndex < simpleAttributes.length; attribIndex++) {\n attribute = simpleAttributes[attribIndex];\n if (msg[attribute] !== undefined)\n result += '; ' + attribute + '=' + msg[attribute];\n }\n if (msg.messages)\n result += '; messages=' + toStringArray(message_1.default.fromValuesArray(msg.messages));\n if (msg.presence)\n result += '; presence=' + toStringArray(presencemessage_1.default.fromValuesArray(msg.presence));\n if (msg.error)\n result += '; error=' + errorinfo_1.default.fromValues(msg.error).toString();\n if (msg.auth && msg.auth.accessToken)\n result += '; token=' + msg.auth.accessToken;\n if (msg.flags)\n result += '; flags=' + flagNames.filter(msg.hasFlag).join(',');\n if (msg.params) {\n var stringifiedParams_1 = '';\n Utils.forInOwnNonNullProperties(msg.params, function (prop) {\n if (stringifiedParams_1.length > 0) {\n stringifiedParams_1 += '; ';\n }\n stringifiedParams_1 += prop + '=' + msg.params[prop];\n });\n if (stringifiedParams_1.length > 0) {\n result += '; params=[' + stringifiedParams_1 + ']';\n }\n }\n result += ']';\n return result;\n };\n return ProtocolMessage;\n}());\nexports.default = ProtocolMessage;\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(6));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64 encoding strategy.\n\t */\n\t var Base64 = C_enc.Base64 = {\n\t /**\n\t * Converts a word array to a Base64 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Base64 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64 string to a word array.\n\t *\n\t * @param {string} base64Str The Base64 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n\t */\n\t parse: function (base64Str) {\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t }\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64;\n\n}));\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\nvar protocolmessage_1 = tslib_1.__importDefault(__webpack_require__(10));\nvar transport_1 = tslib_1.__importDefault(__webpack_require__(26));\nvar logger_1 = tslib_1.__importDefault(__webpack_require__(2));\nvar defaults_1 = tslib_1.__importDefault(__webpack_require__(8));\nvar connectionerrors_1 = tslib_1.__importDefault(__webpack_require__(20));\nvar auth_1 = tslib_1.__importDefault(__webpack_require__(17));\nvar errorinfo_1 = tslib_1.__importDefault(__webpack_require__(4));\nvar XHRStates_1 = tslib_1.__importDefault(__webpack_require__(21));\nvar platform_1 = tslib_1.__importDefault(__webpack_require__(3));\n/* TODO: can remove once realtime sends protocol message responses for comet errors */\nfunction shouldBeErrorAction(err) {\n var UNRESOLVABLE_ERROR_CODES = [80015, 80017, 80030];\n if (err.code) {\n if (auth_1.default.isTokenErr(err))\n return false;\n if (Utils.arrIn(UNRESOLVABLE_ERROR_CODES, err.code))\n return true;\n return err.code >= 40000 && err.code < 50000;\n }\n else {\n /* Likely a network or transport error of some kind. Certainly not fatal to the connection */\n return false;\n }\n}\nfunction protocolMessageFromRawError(err) {\n /* err will be either a legacy (non-protocolmessage) comet error response\n * (which will have an err.code), or a xhr/network error (which won't). */\n if (shouldBeErrorAction(err)) {\n return [protocolmessage_1.default.fromValues({ action: protocolmessage_1.default.Action.ERROR, error: err })];\n }\n else {\n return [protocolmessage_1.default.fromValues({ action: protocolmessage_1.default.Action.DISCONNECTED, error: err })];\n }\n}\n/*\n * A base comet transport class\n */\nvar CometTransport = /** @class */ (function (_super) {\n tslib_1.__extends(CometTransport, _super);\n function CometTransport(connectionManager, auth, params) {\n var _this = _super.call(this, connectionManager, auth, params, /* binary not supported for comet so force JSON protocol */ true) || this;\n /* For comet, we could do the auth update by aborting the current recv and\n * starting a new one with the new token, that'd be sufficient for realtime.\n * Problem is JSONP - you can't cancel truly abort a recv once started. So\n * we need to send an AUTH for jsonp. In which case it's simpler to keep all\n * comet transports the same and do it for all of them. So we send the AUTH\n * instead, and don't need to abort the recv */\n _this.onAuthUpdated = function (tokenDetails) {\n _this.authParams = { access_token: tokenDetails.token };\n };\n _this.stream = 'stream' in params ? params.stream : true;\n _this.sendRequest = null;\n _this.recvRequest = null;\n _this.pendingCallback = null;\n _this.pendingItems = null;\n return _this;\n }\n CometTransport.prototype.connect = function () {\n var _this = this;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'CometTransport.connect()', 'starting');\n transport_1.default.prototype.connect.call(this);\n var params = this.params;\n var options = params.options;\n var host = defaults_1.default.getHost(options, params.host);\n var port = defaults_1.default.getPort(options);\n var cometScheme = options.tls ? 'https://' : 'http://';\n this.baseUri = cometScheme + host + ':' + port + '/comet/';\n var connectUri = this.baseUri + 'connect';\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'CometTransport.connect()', 'uri: ' + connectUri);\n this.auth.getAuthParams(function (err, authParams) {\n if (err) {\n _this.disconnect(err);\n return;\n }\n if (_this.isDisposed) {\n return;\n }\n _this.authParams = authParams;\n var connectParams = _this.params.getConnectParams(authParams);\n if ('stream' in connectParams)\n _this.stream = connectParams.stream;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'CometTransport.connect()', 'connectParams:' + Utils.toQueryString(connectParams));\n /* this will be the 'recvRequest' so this connection can stream messages */\n var preconnected = false;\n var connectRequest = (_this.recvRequest = _this.createRequest(connectUri, null, connectParams, null, _this.stream ? XHRStates_1.default.REQ_RECV_STREAM : XHRStates_1.default.REQ_RECV));\n connectRequest.on('data', function (data) {\n if (!_this.recvRequest) {\n /* the transport was disposed before we connected */\n return;\n }\n if (!preconnected) {\n preconnected = true;\n _this.emit('preconnect');\n }\n _this.onData(data);\n });\n connectRequest.on('complete', function (err) {\n if (!_this.recvRequest) {\n /* the transport was disposed before we connected */\n err = err || new errorinfo_1.default('Request cancelled', 80003, 400);\n }\n _this.recvRequest = null;\n /* Connect request may complete without a emitting 'data' event since that is not\n * emitted for e.g. a non-streamed error response. Still implies preconnect. */\n if (!preconnected && !err) {\n preconnected = true;\n _this.emit('preconnect');\n }\n _this.onActivity();\n if (err) {\n if (err.code) {\n /* A protocol error received from realtime. TODO: once realtime\n * consistendly sends errors wrapped in protocol messages, should be\n * able to remove this */\n _this.onData(protocolMessageFromRawError(err));\n }\n else {\n /* A network/xhr error. Don't bother wrapping in a protocol message,\n * just disconnect the transport */\n _this.disconnect(err);\n }\n return;\n }\n platform_1.default.Config.nextTick(function () {\n _this.recv();\n });\n });\n connectRequest.exec();\n });\n };\n CometTransport.prototype.requestClose = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'CometTransport.requestClose()');\n this._requestCloseOrDisconnect(true);\n };\n CometTransport.prototype.requestDisconnect = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'CometTransport.requestDisconnect()');\n this._requestCloseOrDisconnect(false);\n };\n CometTransport.prototype._requestCloseOrDisconnect = function (closing) {\n var _this = this;\n var closeOrDisconnectUri = closing ? this.closeUri : this.disconnectUri;\n if (closeOrDisconnectUri) {\n var request = this.createRequest(closeOrDisconnectUri, null, this.authParams, null, XHRStates_1.default.REQ_SEND);\n request.on('complete', function (err) {\n if (err) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'CometTransport.request' + (closing ? 'Close()' : 'Disconnect()'), 'request returned err = ' + Utils.inspectError(err));\n _this.finish('disconnected', err);\n }\n });\n request.exec();\n }\n };\n CometTransport.prototype.dispose = function () {\n var _this = this;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'CometTransport.dispose()', '');\n if (!this.isDisposed) {\n this.isDisposed = true;\n if (this.recvRequest) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'CometTransport.dispose()', 'aborting recv request');\n this.recvRequest.abort();\n this.recvRequest = null;\n }\n /* In almost all cases the transport will be finished before it's\n * disposed. Finish here just to make sure. */\n this.finish('disconnected', connectionerrors_1.default.disconnected());\n platform_1.default.Config.nextTick(function () {\n _this.emit('disposed');\n });\n }\n };\n CometTransport.prototype.onConnect = function (message) {\n var _a;\n /* if this transport has been disposed whilst awaiting connection, do nothing */\n if (this.isDisposed) {\n return;\n }\n /* the connectionKey in a comet connected response is really\n * <instId>-<connectionKey> */\n var connectionStr = (_a = message.connectionDetails) === null || _a === void 0 ? void 0 : _a.connectionKey;\n transport_1.default.prototype.onConnect.call(this, message);\n var baseConnectionUri = this.baseUri + connectionStr;\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'CometTransport.onConnect()', 'baseUri = ' + baseConnectionUri);\n this.sendUri = baseConnectionUri + '/send';\n this.recvUri = baseConnectionUri + '/recv';\n this.closeUri = baseConnectionUri + '/close';\n this.disconnectUri = baseConnectionUri + '/disconnect';\n };\n CometTransport.prototype.send = function (message) {\n if (this.sendRequest) {\n /* there is a pending send, so queue this message */\n this.pendingItems = this.pendingItems || [];\n this.pendingItems.push(message);\n return;\n }\n /* send this, plus any pending, now */\n var pendingItems = this.pendingItems || [];\n pendingItems.push(message);\n this.pendingItems = null;\n this.sendItems(pendingItems);\n };\n CometTransport.prototype.sendAnyPending = function () {\n var pendingItems = this.pendingItems;\n if (!pendingItems) {\n return;\n }\n this.pendingItems = null;\n this.sendItems(pendingItems);\n };\n CometTransport.prototype.sendItems = function (items) {\n var _this = this;\n var sendRequest = (this.sendRequest = this.createRequest(this.sendUri, null, this.authParams, this.encodeRequest(items), XHRStates_1.default.REQ_SEND));\n sendRequest.on('complete', function (err, data) {\n if (err)\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'CometTransport.sendItems()', 'on complete: err = ' + Utils.inspectError(err));\n _this.sendRequest = null;\n /* the result of the request, even if a nack, is usually a protocol response\n * contained in the data. An err is anomolous, and indicates some issue with the\n * network,transport, or connection */\n if (err) {\n if (err.code) {\n /* A protocol error received from realtime. TODO: once realtime\n * consistendly sends errors wrapped in protocol messages, should be\n * able to remove this */\n _this.onData(protocolMessageFromRawError(err));\n }\n else {\n /* A network/xhr error. Don't bother wrapping in a protocol message,\n * just disconnect the transport */\n _this.disconnect(err);\n }\n return;\n }\n if (data) {\n _this.onData(data);\n }\n if (_this.pendingItems) {\n platform_1.default.Config.nextTick(function () {\n /* If there's a new send request by now, any pending items will have\n * been picked up by that; any new ones added since then will be\n * picked up after that one completes */\n if (!_this.sendRequest) {\n _this.sendAnyPending();\n }\n });\n }\n });\n sendRequest.exec();\n };\n CometTransport.prototype.recv = function () {\n var _this = this;\n /* do nothing if there is an active request, which might be streaming */\n if (this.recvRequest)\n return;\n /* If we're no longer connected, do nothing */\n if (!this.isConnected)\n return;\n var recvRequest = (this.recvRequest = this.createRequest(this.recvUri, null, this.authParams, null, this.stream ? XHRStates_1.default.REQ_RECV_STREAM : XHRStates_1.default.REQ_RECV_POLL));\n recvRequest.on('data', function (data) {\n _this.onData(data);\n });\n recvRequest.on('complete', function (err) {\n _this.recvRequest = null;\n /* A request completing must be considered activity, as realtime sends\n * heartbeats every 15s since a request began, not every 15s absolutely */\n _this.onActivity();\n if (err) {\n if (err.code) {\n /* A protocol error received from realtime. TODO: once realtime\n * consistently sends errors wrapped in protocol messages, should be\n * able to remove this */\n _this.onData(protocolMessageFromRawError(err));\n }\n else {\n /* A network/xhr error. Don't bother wrapping in a protocol message,\n * just disconnect the transport */\n _this.disconnect(err);\n }\n return;\n }\n platform_1.default.Config.nextTick(function () {\n _this.recv();\n });\n });\n recvRequest.exec();\n };\n CometTransport.prototype.onData = function (responseData) {\n try {\n var items = this.decodeResponse(responseData);\n if (items && items.length)\n for (var i = 0; i < items.length; i++)\n this.onProtocolMessage(protocolmessage_1.default.fromDeserialized(items[i]));\n }\n catch (e) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'CometTransport.onData()', 'Unexpected exception handing channel event: ' + e.stack);\n }\n };\n CometTransport.prototype.encodeRequest = function (requestItems) {\n return JSON.stringify(requestItems);\n };\n CometTransport.prototype.decodeResponse = function (responseData) {\n if (typeof responseData == 'string')\n return JSON.parse(responseData);\n return responseData;\n };\n return CometTransport;\n}(transport_1.default));\nexports.default = CometTransport;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports) {\n\nvar 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\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\nvar platform_1 = tslib_1.__importDefault(__webpack_require__(3));\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\nvar logger_1 = tslib_1.__importDefault(__webpack_require__(2));\nvar auth_1 = tslib_1.__importDefault(__webpack_require__(17));\nvar HttpMethods_1 = tslib_1.__importDefault(__webpack_require__(18));\nvar errorinfo_1 = __webpack_require__(4);\nfunction withAuthDetails(rest, headers, params, errCallback, opCallback) {\n if (rest.http.supportsAuthHeaders) {\n rest.auth.getAuthHeaders(function (err, authHeaders) {\n if (err)\n errCallback(err);\n else\n opCallback(Utils.mixin(authHeaders, headers), params);\n });\n }\n else {\n rest.auth.getAuthParams(function (err, authParams) {\n if (err)\n errCallback(err);\n else\n opCallback(headers, Utils.mixin(authParams, params));\n });\n }\n}\nfunction unenvelope(callback, format) {\n return function (err, body, outerHeaders, unpacked, outerStatusCode) {\n if (err && !body) {\n callback(err);\n return;\n }\n if (!unpacked) {\n try {\n body = Utils.decodeBody(body, format);\n }\n catch (e) {\n if (Utils.isErrorInfoOrPartialErrorInfo(e)) {\n callback(e);\n }\n else {\n callback(new errorinfo_1.PartialErrorInfo(Utils.inspectError(e), null));\n }\n return;\n }\n }\n if (!body) {\n callback(new errorinfo_1.PartialErrorInfo('unenvelope(): Response body is missing', null));\n return;\n }\n var _a = body, wrappedStatusCode = _a.statusCode, response = _a.response, wrappedHeaders = _a.headers;\n if (wrappedStatusCode === undefined) {\n /* Envelope already unwrapped by the transport */\n callback(err, body, outerHeaders, true, outerStatusCode);\n return;\n }\n if (wrappedStatusCode < 200 || wrappedStatusCode >= 300) {\n /* handle wrapped errors */\n var wrappedErr = (response && response.error) || err;\n if (!wrappedErr) {\n wrappedErr = new Error('Error in unenveloping ' + body);\n wrappedErr.statusCode = wrappedStatusCode;\n }\n callback(wrappedErr, response, wrappedHeaders, true, wrappedStatusCode);\n return;\n }\n callback(err, response, wrappedHeaders, true, wrappedStatusCode);\n };\n}\nfunction paramString(params) {\n var paramPairs = [];\n if (params) {\n for (var needle in params) {\n paramPairs.push(needle + '=' + params[needle]);\n }\n }\n return paramPairs.join('&');\n}\nfunction urlFromPathAndParams(path, params) {\n return path + (params ? '?' : '') + paramString(params);\n}\nfunction logResponseHandler(callback, method, path, params) {\n return function (err, body, headers, unpacked, statusCode) {\n if (err) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Resource.' + method + '()', 'Received Error; ' + urlFromPathAndParams(path, params) + '; Error: ' + Utils.inspectError(err));\n }\n else {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Resource.' + method + '()', 'Received; ' +\n urlFromPathAndParams(path, params) +\n '; Headers: ' +\n paramString(headers) +\n '; StatusCode: ' +\n statusCode +\n '; Body: ' +\n (platform_1.default.BufferUtils.isBuffer(body) ? body.toString() : body));\n }\n if (callback) {\n callback(err, body, headers, unpacked, statusCode);\n }\n };\n}\nvar Resource = /** @class */ (function () {\n function Resource() {\n }\n Resource.get = function (rest, path, headers, params, envelope, callback) {\n Resource.do(HttpMethods_1.default.Get, rest, path, null, headers, params, envelope, callback);\n };\n Resource.delete = function (rest, path, headers, params, envelope, callback) {\n Resource.do(HttpMethods_1.default.Delete, rest, path, null, headers, params, envelope, callback);\n };\n Resource.post = function (rest, path, body, headers, params, envelope, callback) {\n Resource.do(HttpMethods_1.default.Post, rest, path, body, headers, params, envelope, callback);\n };\n Resource.patch = function (rest, path, body, headers, params, envelope, callback) {\n Resource.do(HttpMethods_1.default.Patch, rest, path, body, headers, params, envelope, callback);\n };\n Resource.put = function (rest, path, body, headers, params, envelope, callback) {\n Resource.do(HttpMethods_1.default.Put, rest, path, body, headers, params, envelope, callback);\n };\n Resource.do = function (method, rest, path, body, headers, params, envelope, callback) {\n if (logger_1.default.shouldLog(logger_1.default.LOG_MICRO)) {\n callback = logResponseHandler(callback, method, path, params);\n }\n if (envelope) {\n callback = callback && unenvelope(callback, envelope);\n (params = params || {})['envelope'] = envelope;\n }\n function doRequest(headers, params) {\n var _a;\n if (logger_1.default.shouldLog(logger_1.default.LOG_MICRO)) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Resource.' + method + '()', 'Sending; ' + urlFromPathAndParams(path, params));\n }\n if (logger_1.default.shouldLog(logger_1.default.LOG_MICRO)) {\n var decodedBody = body;\n if (((_a = headers['content-type']) === null || _a === void 0 ? void 0 : _a.indexOf('msgpack')) > 0) {\n try {\n decodedBody = platform_1.default.Config.msgpack.decode(body);\n }\n catch (decodeErr) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Resource.' + method + '()', 'Sending MsgPack Decoding Error: ' + Utils.inspectError(decodeErr));\n }\n }\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Resource.' + method + '()', 'Sending; ' + urlFromPathAndParams(path, params) + '; Body: ' + decodedBody);\n }\n rest.http.do(method, rest, path, headers, body, params, function (err, res, headers, unpacked, statusCode) {\n if (err && auth_1.default.isTokenErr(err)) {\n /* token has expired, so get a new one */\n rest.auth.authorize(null, null, function (err) {\n if (err) {\n callback(err);\n return;\n }\n /* retry ... */\n withAuthDetails(rest, headers, params, callback, doRequest);\n });\n return;\n }\n callback(err, res, headers, unpacked, statusCode);\n });\n }\n withAuthDetails(rest, headers, params, callback, doRequest);\n };\n return Resource;\n}());\nexports.default = Resource;\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\nvar logger_1 = tslib_1.__importDefault(__webpack_require__(2));\nvar platform_1 = tslib_1.__importDefault(__webpack_require__(3));\nvar message_1 = tslib_1.__importDefault(__webpack_require__(9));\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\nfunction toActionValue(actionString) {\n return PresenceMessage.Actions.indexOf(actionString);\n}\nvar PresenceMessage = /** @class */ (function () {\n function PresenceMessage() {\n }\n /* Returns whether this presenceMessage is synthesized, i.e. was not actually\n * sent by the connection (usually means a leave event sent 15s after a\n * disconnection). This is useful because synthesized messages cannot be\n * compared for newness by id lexicographically - RTP2b1\n */\n PresenceMessage.prototype.isSynthesized = function () {\n if (!this.id || !this.connectionId) {\n return true;\n }\n return this.id.substring(this.connectionId.length, 0) !== this.connectionId;\n };\n /* RTP2b2 */\n PresenceMessage.prototype.parseId = function () {\n if (!this.id)\n throw new Error('parseId(): Presence message does not contain an id');\n var parts = this.id.split(':');\n return {\n connectionId: parts[0],\n msgSerial: parseInt(parts[1], 10),\n index: parseInt(parts[2], 10),\n };\n };\n /**\n * Overload toJSON() to intercept JSON.stringify()\n * @return {*}\n */\n PresenceMessage.prototype.toJSON = function () {\n /* encode data to base64 if present and we're returning real JSON;\n * although msgpack calls toJSON(), we know it is a stringify()\n * call if it has a non-empty arguments list */\n var data = this.data;\n var encoding = this.encoding;\n if (data && platform_1.default.BufferUtils.isBuffer(data)) {\n if (arguments.length > 0) {\n /* stringify call */\n encoding = encoding ? encoding + '/base64' : 'base64';\n data = platform_1.default.BufferUtils.base64Encode(data);\n }\n else {\n /* Called by msgpack. toBuffer returns a datatype understandable by\n * that platform's msgpack implementation (Buffer in node, Uint8Array\n * in browsers) */\n data = platform_1.default.BufferUtils.toBuffer(data);\n }\n }\n return {\n id: this.id,\n clientId: this.clientId,\n /* Convert presence action back to an int for sending to Ably */\n action: toActionValue(this.action),\n data: data,\n encoding: encoding,\n extras: this.extras,\n };\n };\n PresenceMessage.prototype.toString = function () {\n var result = '[PresenceMessage';\n result += '; action=' + this.action;\n if (this.id)\n result += '; id=' + this.id;\n if (this.timestamp)\n result += '; timestamp=' + this.timestamp;\n if (this.clientId)\n result += '; clientId=' + this.clientId;\n if (this.connectionId)\n result += '; connectionId=' + this.connectionId;\n if (this.encoding)\n result += '; encoding=' + this.encoding;\n if (this.data) {\n if (typeof this.data == 'string')\n result += '; data=' + this.data;\n else if (platform_1.default.BufferUtils.isBuffer(this.data))\n result += '; data (buffer)=' + platform_1.default.BufferUtils.base64Encode(this.data);\n else\n result += '; data (json)=' + JSON.stringify(this.data);\n }\n if (this.extras) {\n result += '; extras=' + JSON.stringify(this.extras);\n }\n result += ']';\n return result;\n };\n PresenceMessage.fromResponseBody = function (body, options, format) {\n var messages = [];\n if (format) {\n body = Utils.decodeBody(body, format);\n }\n for (var i = 0; i < body.length; i++) {\n var msg = (messages[i] = PresenceMessage.fromValues(body[i], true));\n try {\n PresenceMessage.decode(msg, options);\n }\n catch (e) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'PresenceMessage.fromResponseBody()', e.toString());\n }\n }\n return messages;\n };\n PresenceMessage.fromValues = function (values, stringifyAction) {\n if (stringifyAction) {\n values.action = PresenceMessage.Actions[values.action];\n }\n return Object.assign(new PresenceMessage(), values);\n };\n PresenceMessage.fromValuesArray = function (values) {\n var count = values.length, result = new Array(count);\n for (var i = 0; i < count; i++)\n result[i] = PresenceMessage.fromValues(values[i]);\n return result;\n };\n PresenceMessage.fromEncoded = function (encoded, options) {\n var msg = PresenceMessage.fromValues(encoded, true);\n /* if decoding fails at any point, catch and return the message decoded to\n * the fullest extent possible */\n try {\n PresenceMessage.decode(msg, options !== null && options !== void 0 ? options : {});\n }\n catch (e) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'PresenceMessage.fromEncoded()', e.toString());\n }\n return msg;\n };\n PresenceMessage.fromEncodedArray = function (encodedArray, options) {\n return encodedArray.map(function (encoded) {\n return PresenceMessage.fromEncoded(encoded, options);\n });\n };\n PresenceMessage.fromData = function (data) {\n if (data instanceof PresenceMessage) {\n return data;\n }\n return PresenceMessage.fromValues({\n data: data,\n });\n };\n PresenceMessage.Actions = ['absent', 'present', 'enter', 'leave', 'update'];\n PresenceMessage.encode = message_1.default.encode;\n PresenceMessage.decode = message_1.default.decode;\n PresenceMessage.getMessagesSize = message_1.default.getMessagesSize;\n return PresenceMessage;\n}());\nexports.default = PresenceMessage;\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\nvar eventemitter_1 = tslib_1.__importDefault(__webpack_require__(7));\nvar errorinfo_1 = tslib_1.__importStar(__webpack_require__(4));\nvar logger_1 = tslib_1.__importDefault(__webpack_require__(2));\nvar defaults_1 = tslib_1.__importDefault(__webpack_require__(8));\nvar XHRStates_1 = tslib_1.__importDefault(__webpack_require__(21));\nvar platform_1 = tslib_1.__importDefault(__webpack_require__(3));\nfunction isAblyError(responseBody, headers) {\n return Utils.arrIn(Utils.allToLowerCase(Utils.keysArray(headers)), 'x-ably-errorcode');\n}\nfunction getAblyError(responseBody, headers) {\n if (isAblyError(responseBody, headers)) {\n return responseBody.error && errorinfo_1.default.fromValues(responseBody.error);\n }\n}\nvar noop = function () { };\nvar idCounter = 0;\nvar pendingRequests = {};\nvar isIE = typeof global !== 'undefined' && global.XDomainRequest;\nfunction ieVersion() {\n var match = navigator.userAgent.toString().match(/MSIE\\s([\\d.]+)/);\n return match && Number(match[1]);\n}\nfunction needJsonEnvelope() {\n /* IE 10 xhr bug: http://stackoverflow.com/a/16320339 */\n var version;\n return isIE && (version = ieVersion()) && version === 10;\n}\nfunction getHeader(xhr, header) {\n return xhr.getResponseHeader && xhr.getResponseHeader(header);\n}\n/* Safari mysteriously returns 'Identity' for transfer-encoding when in fact\n * it is 'chunked'. So instead, decide that it is chunked when\n * transfer-encoding is present or content-length is absent. ('or' because\n * when using http2 streaming, there's no transfer-encoding header, but can\n * still deduce streaming from lack of content-length) */\nfunction isEncodingChunked(xhr) {\n return (xhr.getResponseHeader && (xhr.getResponseHeader('transfer-encoding') || !xhr.getResponseHeader('content-length')));\n}\nfunction getHeadersAsObject(xhr) {\n var headerPairs = Utils.trim(xhr.getAllResponseHeaders()).split('\\r\\n');\n var headers = {};\n for (var i = 0; i < headerPairs.length; i++) {\n var parts = headerPairs[i].split(':').map(Utils.trim);\n headers[parts[0].toLowerCase()] = parts[1];\n }\n return headers;\n}\nvar XHRRequest = /** @class */ (function (_super) {\n tslib_1.__extends(XHRRequest, _super);\n function XHRRequest(uri, headers, params, body, requestMode, timeouts, method) {\n var _this = _super.call(this) || this;\n params = params || {};\n params.rnd = Utils.cheapRandStr();\n if (needJsonEnvelope() && !params.envelope)\n params.envelope = 'json';\n _this.uri = uri + Utils.toQueryString(params);\n _this.headers = headers || {};\n _this.body = body;\n _this.method = method ? method.toUpperCase() : Utils.isEmptyArg(body) ? 'GET' : 'POST';\n _this.requestMode = requestMode;\n _this.timeouts = timeouts;\n _this.timedOut = false;\n _this.requestComplete = false;\n _this.id = String(++idCounter);\n pendingRequests[_this.id] = _this;\n return _this;\n }\n XHRRequest.createRequest = function (uri, headers, params, body, requestMode, timeouts, method) {\n /* XHR requests are used either with the context being a realtime\n * transport, or with timeouts passed in (for when used by a rest client),\n * or completely standalone. Use the appropriate timeouts in each case */\n var _timeouts = timeouts || defaults_1.default.TIMEOUTS;\n return new XHRRequest(uri, headers, Utils.copy(params), body, requestMode, _timeouts, method);\n };\n XHRRequest.prototype.complete = function (err, body, headers, unpacked, statusCode) {\n if (!this.requestComplete) {\n this.requestComplete = true;\n if (!err && body) {\n this.emit('data', body);\n }\n this.emit('complete', err, body, headers, unpacked, statusCode);\n this.dispose();\n }\n };\n XHRRequest.prototype.abort = function () {\n this.dispose();\n };\n XHRRequest.prototype.exec = function () {\n var _this = this;\n var headers = this.headers;\n var timeout = this.requestMode == XHRStates_1.default.REQ_SEND ? this.timeouts.httpRequestTimeout : this.timeouts.recvTimeout, timer = (this.timer = setTimeout(function () {\n _this.timedOut = true;\n xhr.abort();\n }, timeout)), method = this.method, xhr = (this.xhr = new XMLHttpRequest()), accept = headers['accept'];\n var body = this.body;\n var responseType = 'text';\n if (!accept) {\n // Default to JSON\n headers['accept'] = 'application/json';\n }\n else if (accept.indexOf('application/x-msgpack') === 0) {\n // Msgpack responses will be typed as ArrayBuffer\n responseType = 'arraybuffer';\n }\n if (body) {\n var contentType = headers['content-type'] || (headers['content-type'] = 'application/json');\n if (contentType.indexOf('application/json') > -1 && typeof body != 'string')\n body = JSON.stringify(body);\n }\n // Can probably remove this directive if https://github.com/nodesecurity/eslint-plugin-security/issues/26 is resolved\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n xhr.open(method, this.uri, true);\n xhr.responseType = responseType;\n if ('authorization' in headers) {\n xhr.withCredentials = true;\n }\n for (var h in headers)\n xhr.setRequestHeader(h, headers[h]);\n var errorHandler = function (errorEvent, message, code, statusCode) {\n var _a;\n var errorMessage = message + ' (event type: ' + errorEvent.type + ')';\n if ((_a = _this === null || _this === void 0 ? void 0 : _this.xhr) === null || _a === void 0 ? void 0 : _a.statusText)\n errorMessage += ', current statusText is ' + _this.xhr.statusText;\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Request.on' + errorEvent.type + '()', errorMessage);\n _this.complete(new errorinfo_1.PartialErrorInfo(errorMessage, code, statusCode));\n };\n xhr.onerror = function (errorEvent) {\n errorHandler(errorEvent, 'XHR error occurred', null, 400);\n };\n xhr.onabort = function (errorEvent) {\n if (_this.timedOut) {\n errorHandler(errorEvent, 'Request aborted due to request timeout expiring', null, 408);\n }\n else {\n errorHandler(errorEvent, 'Request cancelled', null, 400);\n }\n };\n xhr.ontimeout = function (errorEvent) {\n errorHandler(errorEvent, 'Request timed out', null, 408);\n };\n var streaming;\n var statusCode;\n var successResponse;\n var streamPos = 0;\n var unpacked = false;\n var onResponse = function () {\n clearTimeout(timer);\n successResponse = statusCode < 400;\n if (statusCode == 204) {\n _this.complete(null, null, null, null, statusCode);\n return;\n }\n streaming = _this.requestMode == XHRStates_1.default.REQ_RECV_STREAM && successResponse && isEncodingChunked(xhr);\n };\n var onEnd = function () {\n var parsedResponse;\n try {\n var contentType = getHeader(xhr, 'content-type');\n /* Be liberal in what we accept; buggy auth servers may respond\n * without the correct contenttype, but assume they're still\n * responding with json */\n var json = contentType ? contentType.indexOf('application/json') >= 0 : xhr.responseType == 'text';\n if (json) {\n /* If we requested msgpack but server responded with json, then since\n * we set the responseType expecting msgpack, the response will be\n * an ArrayBuffer containing json */\n var jsonResponseBody = xhr.responseType === 'arraybuffer'\n ? platform_1.default.BufferUtils.utf8Decode(xhr.response)\n : String(xhr.responseText);\n if (jsonResponseBody.length) {\n parsedResponse = JSON.parse(jsonResponseBody);\n }\n else {\n parsedResponse = jsonResponseBody;\n }\n unpacked = true;\n }\n else {\n parsedResponse = xhr.response;\n }\n if (parsedResponse.response !== undefined) {\n /* unwrap JSON envelope */\n statusCode = parsedResponse.statusCode;\n successResponse = statusCode < 400;\n headers = parsedResponse.headers;\n parsedResponse = parsedResponse.response;\n }\n else {\n headers = getHeadersAsObject(xhr);\n }\n }\n catch (e) {\n _this.complete(new errorinfo_1.PartialErrorInfo('Malformed response body from server: ' + e.message, null, 400));\n return;\n }\n /* If response is an array, it's an array of protocol messages -- even if\n * is contains an error action (hence the nonsuccess statuscode), we can\n * consider the request to have succeeded, just pass it on to\n * onProtocolMessage to decide what to do */\n if (successResponse || Utils.isArray(parsedResponse)) {\n _this.complete(null, parsedResponse, headers, unpacked, statusCode);\n return;\n }\n var err = getAblyError(parsedResponse, headers);\n if (!err) {\n err = new errorinfo_1.PartialErrorInfo('Error response received from server: ' +\n statusCode +\n ' body was: ' +\n platform_1.default.Config.inspect(parsedResponse), null, statusCode);\n }\n _this.complete(err, parsedResponse, headers, unpacked, statusCode);\n };\n function onProgress() {\n var responseText = xhr.responseText;\n var bodyEnd = responseText.length - 1;\n var idx, chunk;\n while (streamPos < bodyEnd && (idx = responseText.indexOf('\\n', streamPos)) > -1) {\n chunk = responseText.slice(streamPos, idx);\n streamPos = idx + 1;\n onChunk(chunk);\n }\n }\n var onChunk = function (chunk) {\n try {\n chunk = JSON.parse(chunk);\n }\n catch (e) {\n _this.complete(new errorinfo_1.PartialErrorInfo('Malformed response body from server: ' + e.message, null, 400));\n return;\n }\n _this.emit('data', chunk);\n };\n var onStreamEnd = function () {\n onProgress();\n _this.streamComplete = true;\n platform_1.default.Config.nextTick(function () {\n _this.complete();\n });\n };\n xhr.onreadystatechange = function () {\n var readyState = xhr.readyState;\n if (readyState < 3)\n return;\n if (xhr.status !== 0) {\n if (statusCode === undefined) {\n statusCode = xhr.status;\n /* IE returns 1223 for 204: http://bugs.jquery.com/ticket/1450 */\n if (statusCode === 1223)\n statusCode = 204;\n onResponse();\n }\n if (readyState == 3 && streaming) {\n onProgress();\n }\n else if (readyState == 4) {\n if (streaming)\n onStreamEnd();\n else\n onEnd();\n }\n }\n };\n xhr.send(body);\n };\n XHRRequest.prototype.dispose = function () {\n var xhr = this.xhr;\n if (xhr) {\n xhr.onreadystatechange = xhr.onerror = xhr.onabort = xhr.ontimeout = noop;\n this.xhr = null;\n var timer = this.timer;\n if (timer) {\n clearTimeout(timer);\n this.timer = null;\n }\n if (!this.requestComplete)\n xhr.abort();\n }\n delete pendingRequests[this.id];\n };\n return XHRRequest;\n}(eventemitter_1.default));\nexports.default = XHRRequest;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(13)))\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\nvar logger_1 = tslib_1.__importDefault(__webpack_require__(2));\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\nvar multicaster_1 = tslib_1.__importDefault(__webpack_require__(23));\nvar errorinfo_1 = tslib_1.__importDefault(__webpack_require__(4));\nvar hmac_sha256_1 = tslib_1.__importDefault(__webpack_require__(45));\nvar enc_base64_1 = __webpack_require__(11);\nvar HttpMethods_1 = tslib_1.__importDefault(__webpack_require__(18));\nvar HttpStatusCodes_1 = tslib_1.__importDefault(__webpack_require__(25));\nvar platform_1 = tslib_1.__importDefault(__webpack_require__(3));\nvar resource_1 = tslib_1.__importDefault(__webpack_require__(14));\nvar MAX_TOKEN_LENGTH = Math.pow(2, 17);\nfunction noop() { }\nfunction random() {\n return ('000000' + Math.floor(Math.random() * 1e16)).slice(-16);\n}\nfunction isRealtime(client) {\n return !!client.connection;\n}\n/* A client auth callback may give errors in any number of formats; normalise to an ErrorInfo or PartialErrorInfo */\nfunction normaliseAuthcallbackError(err) {\n if (!Utils.isErrorInfoOrPartialErrorInfo(err)) {\n return new errorinfo_1.default(Utils.inspectError(err), err.code || 40170, err.statusCode || 401);\n }\n /* network errors will not have an inherent error code */\n if (!err.code) {\n if (err.statusCode === 403) {\n err.code = 40300;\n }\n else {\n err.code = 40170;\n /* normalise statusCode to 401 per RSA4e */\n err.statusCode = 401;\n }\n }\n return err;\n}\nvar hmac = function (text, key) {\n if (platform_1.default.Config.createHmac) {\n var inst = platform_1.default.Config.createHmac('SHA256', key);\n inst.update(text);\n return inst.digest('base64');\n }\n return (0, enc_base64_1.stringify)((0, hmac_sha256_1.default)(text, key));\n};\nfunction c14n(capability) {\n if (!capability)\n return '';\n if (typeof capability == 'string')\n capability = JSON.parse(capability);\n var c14nCapability = Object.create(null);\n var keys = Utils.keysArray(capability, true);\n if (!keys)\n return '';\n keys.sort();\n for (var i = 0; i < keys.length; i++) {\n c14nCapability[keys[i]] = capability[keys[i]].sort();\n }\n return JSON.stringify(c14nCapability);\n}\nfunction logAndValidateTokenAuthMethod(authOptions) {\n if (authOptions.authCallback) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Auth()', 'using token auth with authCallback');\n }\n else if (authOptions.authUrl) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Auth()', 'using token auth with authUrl');\n }\n else if (authOptions.key) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Auth()', 'using token auth with client-side signing');\n }\n else if (authOptions.tokenDetails) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Auth()', 'using token auth with supplied token only');\n }\n else {\n var msg = 'authOptions must include valid authentication parameters';\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Auth()', msg);\n throw new Error(msg);\n }\n}\nfunction basicAuthForced(options) {\n return 'useTokenAuth' in options && !options.useTokenAuth;\n}\n/* RSA4 */\nfunction useTokenAuth(options) {\n return (options.useTokenAuth ||\n (!basicAuthForced(options) && (options.authCallback || options.authUrl || options.token || options.tokenDetails)));\n}\n/* RSA4a */\nfunction noWayToRenew(options) {\n return !options.key && !options.authCallback && !options.authUrl;\n}\nvar trId = 0;\nfunction getTokenRequestId() {\n return trId++;\n}\nvar Auth = /** @class */ (function () {\n function Auth(client, options) {\n // This initialization is always overwritten and only used to prevent a TypeScript compiler error\n this.authOptions = {};\n this.client = client;\n this.tokenParams = options.defaultTokenParams || {};\n /* The id of the current token request if one is in progress, else null */\n this.currentTokenRequestId = null;\n this.waitingForTokenRequest = null;\n if (useTokenAuth(options)) {\n /* Token auth */\n if (options.key && !hmac) {\n var msg = 'client-side token request signing not supported';\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Auth()', msg);\n throw new Error(msg);\n }\n if (noWayToRenew(options)) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Auth()', 'Warning: library initialized with a token literal without any way to renew the token when it expires (no authUrl, authCallback, or key). See https://help.ably.io/error/40171 for help');\n }\n this._saveTokenOptions(options.defaultTokenParams, options);\n logAndValidateTokenAuthMethod(this.authOptions);\n }\n else {\n /* Basic auth */\n if (!options.key) {\n var msg = 'No authentication options provided; need one of: key, authUrl, or authCallback (or for testing only, token or tokenDetails)';\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Auth()', msg);\n throw new errorinfo_1.default(msg, 40160, 401);\n }\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Auth()', 'anonymous, using basic auth');\n this._saveBasicOptions(options);\n }\n }\n Auth.prototype.authorize = function (tokenParams, authOptions, callback) {\n var _this = this;\n var _authOptions;\n /* shuffle and normalise arguments as necessary */\n if (typeof tokenParams == 'function' && !callback) {\n callback = tokenParams;\n _authOptions = tokenParams = null;\n }\n else if (typeof authOptions == 'function' && !callback) {\n callback = authOptions;\n _authOptions = null;\n }\n else {\n _authOptions = authOptions;\n }\n if (!callback) {\n if (this.client.options.promises) {\n return Utils.promisify(this, 'authorize', arguments);\n }\n }\n /* RSA10a: authorize() call implies token auth. If a key is passed it, we\n * just check if it doesn't clash and assume we're generating a token from it */\n if (_authOptions && _authOptions.key && this.authOptions.key !== _authOptions.key) {\n throw new errorinfo_1.default('Unable to update auth options with incompatible key', 40102, 401);\n }\n if (_authOptions && 'force' in _authOptions) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Auth.authorize', 'Deprecation warning: specifying {force: true} in authOptions is no longer necessary, authorize() now always gets a new token. Please remove this, as in version 1.0 and later, having a non-null authOptions will overwrite stored library authOptions, which may not be what you want');\n /* Emulate the old behaviour: if 'force' was the only member of authOptions,\n * set it to null so it doesn't overwrite stored. TODO: remove in version 1.0 */\n if (Utils.isOnlyPropIn(_authOptions, 'force')) {\n _authOptions = null;\n }\n }\n this._forceNewToken(tokenParams, _authOptions, function (err, tokenDetails) {\n if (err) {\n if (_this.client.connection && err.statusCode === HttpStatusCodes_1.default.Forbidden) {\n /* Per RSA4d & RSA4d1, if the auth server explicitly repudiates our right to\n * stay connecticed by returning a 403, we actively disconnect the connection\n * even though we may well still have time left in the old token. */\n _this.client.connection.connectionManager.actOnErrorFromAuthorize(err);\n }\n callback === null || callback === void 0 ? void 0 : callback(err);\n return;\n }\n /* RTC8\n * - When authorize called by an end user and have a realtime connection,\n * don't call back till new token has taken effect.\n * - Use this.client.connection as a proxy for (this.client instanceof Realtime),\n * which doesn't work in node as Realtime isn't part of the vm context for Rest clients */\n if (isRealtime(_this.client)) {\n _this.client.connection.connectionManager.onAuthUpdated(tokenDetails, callback || noop);\n }\n else {\n callback === null || callback === void 0 ? void 0 : callback(null, tokenDetails);\n }\n });\n };\n Auth.prototype.authorise = function (tokenParams, authOptions, callback) {\n logger_1.default.deprecated('Auth.authorise', 'Auth.authorize');\n this.authorize(tokenParams, authOptions, callback);\n };\n /* For internal use, eg by connectionManager - useful when want to call back\n * as soon as we have the new token, rather than waiting for it to take\n * effect on the connection as #authorize does */\n Auth.prototype._forceNewToken = function (tokenParams, authOptions, callback) {\n var _this = this;\n /* get rid of current token even if still valid */\n this.tokenDetails = null;\n /* _save normalises the tokenParams and authOptions and updates the auth\n * object. All subsequent operations should use the values on `this`,\n * not the passed in ones. */\n this._saveTokenOptions(tokenParams, authOptions);\n logAndValidateTokenAuthMethod(this.authOptions);\n this._ensureValidAuthCredentials(true, function (err, tokenDetails) {\n /* RSA10g */\n delete _this.tokenParams.timestamp;\n delete _this.authOptions.queryTime;\n callback(err, tokenDetails);\n });\n };\n Auth.prototype.requestToken = function (tokenParams, authOptions, callback) {\n var _this = this;\n /* shuffle and normalise arguments as necessary */\n if (typeof tokenParams == 'function' && !callback) {\n callback = tokenParams;\n authOptions = tokenParams = null;\n }\n else if (typeof authOptions == 'function' && !callback) {\n callback = authOptions;\n authOptions = null;\n }\n if (!callback && this.client.options.promises) {\n return Utils.promisify(this, 'requestToken', arguments);\n }\n /* RSA8e: if authOptions passed in, they're used instead of stored, don't merge them */\n authOptions = authOptions || this.authOptions;\n tokenParams = tokenParams || Utils.copy(this.tokenParams);\n var _callback = callback || noop;\n /* first set up whatever callback will be used to get signed\n * token requests */\n var tokenRequestCallback, client = this.client;\n if (authOptions.authCallback) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Auth.requestToken()', 'using token auth with authCallback');\n tokenRequestCallback = authOptions.authCallback;\n }\n else if (authOptions.authUrl) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Auth.requestToken()', 'using token auth with authUrl');\n tokenRequestCallback = function (params, cb) {\n var authHeaders = Utils.mixin({ accept: 'application/json, text/plain' }, authOptions.authHeaders);\n var usePost = authOptions.authMethod && authOptions.authMethod.toLowerCase() === 'post';\n var providedQsParams;\n /* Combine authParams with any qs params given in the authUrl */\n var queryIdx = authOptions.authUrl.indexOf('?');\n if (queryIdx > -1) {\n providedQsParams = Utils.parseQueryString(authOptions.authUrl.slice(queryIdx));\n authOptions.authUrl = authOptions.authUrl.slice(0, queryIdx);\n if (!usePost) {\n /* In case of conflict, authParams take precedence over qs params in the authUrl */\n authOptions.authParams = Utils.mixin(providedQsParams, authOptions.authParams);\n }\n }\n /* RSA8c2 */\n var authParams = Utils.mixin({}, authOptions.authParams || {}, params);\n var authUrlRequestCallback = function (err, body, headers, unpacked) {\n var contentType;\n if (err) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Auth.requestToken().tokenRequestCallback', 'Received Error: ' + Utils.inspectError(err));\n }\n else {\n contentType = headers['content-type'];\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Auth.requestToken().tokenRequestCallback', 'Received; content-type: ' + contentType + '; body: ' + Utils.inspectBody(body));\n }\n if (err || unpacked)\n return cb(err, body);\n if (platform_1.default.BufferUtils.isBuffer(body))\n body = body.toString();\n if (!contentType) {\n cb(new errorinfo_1.default('authUrl response is missing a content-type header', 40170, 401));\n return;\n }\n var json = contentType.indexOf('application/json') > -1, text = contentType.indexOf('text/plain') > -1 || contentType.indexOf('application/jwt') > -1;\n if (!json && !text) {\n cb(new errorinfo_1.default('authUrl responded with unacceptable content-type ' +\n contentType +\n ', should be either text/plain, application/jwt or application/json', 40170, 401));\n return;\n }\n if (json) {\n if (body.length > MAX_TOKEN_LENGTH) {\n cb(new errorinfo_1.default('authUrl response exceeded max permitted length', 40170, 401));\n return;\n }\n try {\n body = JSON.parse(body);\n }\n catch (e) {\n cb(new errorinfo_1.default('Unexpected error processing authURL response; err = ' + e.message, 40170, 401));\n return;\n }\n }\n cb(null, body, contentType);\n };\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Auth.requestToken().tokenRequestCallback', 'Requesting token from ' +\n authOptions.authUrl +\n '; Params: ' +\n JSON.stringify(authParams) +\n '; method: ' +\n (usePost ? 'POST' : 'GET'));\n if (usePost) {\n /* send body form-encoded */\n var headers = authHeaders || {};\n headers['content-type'] = 'application/x-www-form-urlencoded';\n var body = Utils.toQueryString(authParams).slice(1); /* slice is to remove the initial '?' */\n _this.client.http.doUri(HttpMethods_1.default.Post, client, authOptions.authUrl, headers, body, providedQsParams, authUrlRequestCallback);\n }\n else {\n _this.client.http.doUri(HttpMethods_1.default.Get, client, authOptions.authUrl, authHeaders || {}, null, authParams, authUrlRequestCallback);\n }\n };\n }\n else if (authOptions.key) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Auth.requestToken()', 'using token auth with client-side signing');\n tokenRequestCallback = function (params, cb) {\n _this.createTokenRequest(params, authOptions, cb);\n };\n }\n else {\n var msg = 'Need a new token, but authOptions does not include any way to request one (no authUrl, authCallback, or key)';\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Auth()', 'library initialized with a token literal without any way to renew the token when it expires (no authUrl, authCallback, or key). See https://help.ably.io/error/40171 for help');\n _callback(new errorinfo_1.default(msg, 40171, 403));\n return;\n }\n /* normalise token params */\n if ('capability' in tokenParams)\n tokenParams.capability = c14n(tokenParams.capability);\n var tokenRequest = function (signedTokenParams, tokenCb) {\n var keyName = signedTokenParams.keyName, path = '/keys/' + keyName + '/requestToken', tokenUri = function (host) {\n return client.baseUri(host) + path;\n };\n var requestHeaders = Utils.defaultPostHeaders(_this.client.options);\n if (authOptions.requestHeaders)\n Utils.mixin(requestHeaders, authOptions.requestHeaders);\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Auth.requestToken().requestToken', 'Sending POST to ' + path + '; Token params: ' + JSON.stringify(signedTokenParams));\n _this.client.http.do(HttpMethods_1.default.Post, client, tokenUri, requestHeaders, JSON.stringify(signedTokenParams), null, tokenCb);\n };\n var tokenRequestCallbackTimeoutExpired = false, timeoutLength = this.client.options.timeouts.realtimeRequestTimeout, tokenRequestCallbackTimeout = setTimeout(function () {\n tokenRequestCallbackTimeoutExpired = true;\n var msg = 'Token request callback timed out after ' + timeoutLength / 1000 + ' seconds';\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Auth.requestToken()', msg);\n _callback(new errorinfo_1.default(msg, 40170, 401));\n }, timeoutLength);\n tokenRequestCallback(tokenParams, function (err, tokenRequestOrDetails, contentType) {\n if (tokenRequestCallbackTimeoutExpired)\n return;\n clearTimeout(tokenRequestCallbackTimeout);\n if (err) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Auth.requestToken()', 'token request signing call returned error; err = ' + Utils.inspectError(err));\n _callback(normaliseAuthcallbackError(err));\n return;\n }\n /* the response from the callback might be a token string, a signed request or a token details */\n if (typeof tokenRequestOrDetails === 'string') {\n if (tokenRequestOrDetails.length === 0) {\n _callback(new errorinfo_1.default('Token string is empty', 40170, 401));\n }\n else if (tokenRequestOrDetails.length > MAX_TOKEN_LENGTH) {\n _callback(new errorinfo_1.default('Token string exceeded max permitted length (was ' + tokenRequestOrDetails.length + ' bytes)', 40170, 401));\n }\n else if (tokenRequestOrDetails === 'undefined' || tokenRequestOrDetails === 'null') {\n /* common failure mode with poorly-implemented authCallbacks */\n _callback(new errorinfo_1.default('Token string was literal null/undefined', 40170, 401));\n }\n else if (tokenRequestOrDetails[0] === '{' && !(contentType && contentType.indexOf('application/jwt') > -1)) {\n _callback(new errorinfo_1.default(\"Token was double-encoded; make sure you're not JSON-encoding an already encoded token request or details\", 40170, 401));\n }\n else {\n _callback(null, { token: tokenRequestOrDetails });\n }\n return;\n }\n if (typeof tokenRequestOrDetails !== 'object') {\n var msg = 'Expected token request callback to call back with a token string or token request/details object, but got a ' +\n typeof tokenRequestOrDetails;\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Auth.requestToken()', msg);\n _callback(new errorinfo_1.default(msg, 40170, 401));\n return;\n }\n var objectSize = JSON.stringify(tokenRequestOrDetails).length;\n if (objectSize > MAX_TOKEN_LENGTH && !authOptions.suppressMaxLengthCheck) {\n _callback(new errorinfo_1.default('Token request/details object exceeded max permitted stringified size (was ' + objectSize + ' bytes)', 40170, 401));\n return;\n }\n if ('issued' in tokenRequestOrDetails) {\n /* a tokenDetails object */\n _callback(null, tokenRequestOrDetails);\n return;\n }\n if (!('keyName' in tokenRequestOrDetails)) {\n var msg = 'Expected token request callback to call back with a token string, token request object, or token details object';\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Auth.requestToken()', msg);\n _callback(new errorinfo_1.default(msg, 40170, 401));\n return;\n }\n /* it's a token request, so make the request */\n tokenRequest(tokenRequestOrDetails, function (err, tokenResponse, headers, unpacked) {\n if (err) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Auth.requestToken()', 'token request API call returned error; err = ' + Utils.inspectError(err));\n _callback(normaliseAuthcallbackError(err));\n return;\n }\n if (!unpacked)\n tokenResponse = JSON.parse(tokenResponse);\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Auth.getToken()', 'token received');\n _callback(null, tokenResponse);\n });\n });\n };\n /**\n * Create and sign a token request based on the given options.\n * NOTE this can only be used when the key value is available locally.\n * Otherwise, signed token requests must be obtained from the key\n * owner (either using the token request callback or url).\n *\n * @param authOptions\n * an object containing the request options:\n * - key: the key to use. If not specified, a key passed in constructing\n * the Rest interface will be used\n *\n * - queryTime (optional) boolean indicating that the ably system should be\n * queried for the current time when none is specified explicitly\n *\n * - requestHeaders (optional, unsupported, for testing only) extra headers to add to the\n * requestToken request\n *\n * @param tokenParams\n * an object containing the parameters for the requested token:\n * - ttl: (optional) the requested life of the token in ms. If none is specified\n * a default of 1 hour is provided. The maximum lifetime is 24hours; any request\n * exceeding that lifetime will be rejected with an error.\n *\n * - capability: (optional) the capability to associate with the access token.\n * If none is specified, a token will be requested with all of the\n * capabilities of the specified key.\n *\n * - clientId: (optional) a client ID to associate with the token; if not\n * specified, a clientId passed in constructing the Rest interface will be used\n *\n * - timestamp: (optional) the time in ms since the epoch. If none is specified,\n * the system will be queried for a time value to use.\n *\n * @param callback\n */\n Auth.prototype.createTokenRequest = function (tokenParams, authOptions, callback) {\n var _this = this;\n /* shuffle and normalise arguments as necessary */\n if (typeof tokenParams == 'function' && !callback) {\n callback = tokenParams;\n authOptions = tokenParams = null;\n }\n else if (typeof authOptions == 'function' && !callback) {\n callback = authOptions;\n authOptions = null;\n }\n if (!callback && this.client.options.promises) {\n return Utils.promisify(this, 'createTokenRequest', arguments);\n }\n /* RSA9h: if authOptions passed in, they're used instead of stored, don't merge them */\n authOptions = authOptions || this.authOptions;\n tokenParams = tokenParams || Utils.copy(this.tokenParams);\n var key = authOptions.key;\n if (!key) {\n callback(new errorinfo_1.default('No key specified', 40101, 403));\n return;\n }\n var keyParts = key.split(':'), keyName = keyParts[0], keySecret = keyParts[1];\n if (!keySecret) {\n callback(new errorinfo_1.default('Invalid key specified', 40101, 403));\n return;\n }\n if (tokenParams.clientId === '') {\n callback(new errorinfo_1.default('clientId can’t be an empty string', 40012, 400));\n return;\n }\n if ('capability' in tokenParams) {\n tokenParams.capability = c14n(tokenParams.capability);\n }\n var request = Utils.mixin({ keyName: keyName }, tokenParams), clientId = tokenParams.clientId || '', ttl = tokenParams.ttl || '', capability = tokenParams.capability || '';\n (function (authoriseCb) {\n if (request.timestamp) {\n authoriseCb();\n return;\n }\n _this.getTimestamp(authOptions && authOptions.queryTime, function (err, time) {\n if (err) {\n callback(err);\n return;\n }\n request.timestamp = time;\n authoriseCb();\n });\n })(function () {\n /* nonce */\n /* NOTE: there is no expectation that the client\n * specifies the nonce; this is done by the library\n * However, this can be overridden by the client\n * simply for testing purposes. */\n var nonce = request.nonce || (request.nonce = random()), timestamp = request.timestamp;\n var signText = request.keyName + '\\n' + ttl + '\\n' + capability + '\\n' + clientId + '\\n' + timestamp + '\\n' + nonce + '\\n';\n /* mac */\n /* NOTE: there is no expectation that the client\n * specifies the mac; this is done by the library\n * However, this can be overridden by the client\n * simply for testing purposes. */\n request.mac = request.mac || hmac(signText, keySecret);\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Auth.getTokenRequest()', 'generated signed request');\n callback(null, request);\n });\n };\n /**\n * Get the auth query params to use for a websocket connection,\n * based on the current auth parameters\n */\n Auth.prototype.getAuthParams = function (callback) {\n if (this.method == 'basic')\n callback(null, { key: this.key });\n else\n this._ensureValidAuthCredentials(false, function (err, tokenDetails) {\n if (err) {\n callback(err);\n return;\n }\n if (!tokenDetails) {\n throw new Error('Auth.getAuthParams(): _ensureValidAuthCredentials returned no error or tokenDetails');\n }\n callback(null, { access_token: tokenDetails.token });\n });\n };\n /**\n * Get the authorization header to use for a REST or comet request,\n * based on the current auth parameters\n */\n Auth.prototype.getAuthHeaders = function (callback) {\n if (this.method == 'basic') {\n callback(null, { authorization: 'Basic ' + this.basicKey });\n }\n else {\n this._ensureValidAuthCredentials(false, function (err, tokenDetails) {\n if (err) {\n callback(err);\n return;\n }\n if (!tokenDetails) {\n throw new Error('Auth.getAuthParams(): _ensureValidAuthCredentials returned no error or tokenDetails');\n }\n callback(null, { authorization: 'Bearer ' + Utils.toBase64(tokenDetails.token) });\n });\n }\n };\n /**\n * Get the current time based on the local clock,\n * or if the option queryTime is true, return the server time.\n * The server time offset from the local time is stored so that\n * only one request to the server to get the time is ever needed\n */\n Auth.prototype.getTimestamp = function (queryTime, callback) {\n if (!this.isTimeOffsetSet() && (queryTime || this.authOptions.queryTime)) {\n this.client.time(callback);\n }\n else {\n callback(null, this.getTimestampUsingOffset());\n }\n };\n Auth.prototype.getTimestampUsingOffset = function () {\n return Utils.now() + (this.client.serverTimeOffset || 0);\n };\n Auth.prototype.isTimeOffsetSet = function () {\n return this.client.serverTimeOffset !== null;\n };\n Auth.prototype._saveBasicOptions = function (authOptions) {\n this.method = 'basic';\n this.key = authOptions.key;\n this.basicKey = Utils.toBase64(authOptions.key);\n this.authOptions = authOptions || {};\n if ('clientId' in authOptions) {\n this._userSetClientId(authOptions.clientId);\n }\n };\n Auth.prototype._saveTokenOptions = function (tokenParams, authOptions) {\n this.method = 'token';\n if (tokenParams) {\n /* We temporarily persist tokenParams.timestamp in case a new token needs\n * to be requested, then null it out in the callback of\n * _ensureValidAuthCredentials for RSA10g compliance */\n this.tokenParams = tokenParams;\n }\n if (authOptions) {\n /* normalise */\n if (authOptions.token) {\n /* options.token may contain a token string or, for convenience, a TokenDetails */\n authOptions.tokenDetails =\n typeof authOptions.token === 'string'\n ? { token: authOptions.token }\n : authOptions.token;\n }\n if (authOptions.tokenDetails) {\n this.tokenDetails = authOptions.tokenDetails;\n }\n if ('clientId' in authOptions) {\n this._userSetClientId(authOptions.clientId);\n }\n this.authOptions = authOptions;\n }\n };\n /* @param forceSupersede: force a new token request even if there's one in\n * progress, making all pending callbacks wait for the new one */\n Auth.prototype._ensureValidAuthCredentials = function (forceSupersede, callback) {\n var _this = this;\n var token = this.tokenDetails;\n if (token) {\n if (this._tokenClientIdMismatch(token.clientId)) {\n /* 403 to trigger a permanently failed client - RSA15c */\n callback(new errorinfo_1.default('Mismatch between clientId in token (' + token.clientId + ') and current clientId (' + this.clientId + ')', 40102, 403));\n return;\n }\n /* RSA4b1 -- if we have a server time offset set already, we can\n * automatically remove expired tokens. Else just use the cached token. If it is\n * expired Ably will tell us and we'll discard it then. */\n if (!this.isTimeOffsetSet() || !token.expires || token.expires >= this.getTimestampUsingOffset()) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Auth.getToken()', 'using cached token; expires = ' + token.expires);\n callback(null, token);\n return;\n }\n /* expired, so remove and fallthrough to getting a new one */\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Auth.getToken()', 'deleting expired token');\n this.tokenDetails = null;\n }\n (this.waitingForTokenRequest || (this.waitingForTokenRequest = multicaster_1.default.create())).push(callback);\n if (this.currentTokenRequestId !== null && !forceSupersede) {\n return;\n }\n /* Request a new token */\n var tokenRequestId = (this.currentTokenRequestId = getTokenRequestId());\n this.requestToken(this.tokenParams, this.authOptions, function (err, tokenResponse) {\n if (_this.currentTokenRequestId > tokenRequestId) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Auth._ensureValidAuthCredentials()', 'Discarding token request response; overtaken by newer one');\n return;\n }\n _this.currentTokenRequestId = null;\n var callbacks = _this.waitingForTokenRequest || noop;\n _this.waitingForTokenRequest = null;\n if (err) {\n callbacks(err);\n return;\n }\n callbacks(null, (_this.tokenDetails = tokenResponse));\n });\n };\n /* User-set: check types, '*' is disallowed, throw any errors */\n Auth.prototype._userSetClientId = function (clientId) {\n if (!(typeof clientId === 'string' || clientId === null)) {\n throw new errorinfo_1.default('clientId must be either a string or null', 40012, 400);\n }\n else if (clientId === '*') {\n throw new errorinfo_1.default('Can’t use \"*\" as a clientId as that string is reserved. (To change the default token request behaviour to use a wildcard clientId, instantiate the library with {defaultTokenParams: {clientId: \"*\"}}), or if calling authorize(), pass it in as a tokenParam: authorize({clientId: \"*\"}, authOptions)', 40012, 400);\n }\n else {\n var err = this._uncheckedSetClientId(clientId);\n if (err)\n throw err;\n }\n };\n /* Ably-set: no typechecking, '*' is allowed but not set on this.clientId), return errors to the caller */\n Auth.prototype._uncheckedSetClientId = function (clientId) {\n if (this._tokenClientIdMismatch(clientId)) {\n /* Should never happen in normal circumstances as realtime should\n * recognise mismatch and return an error */\n var msg = 'Unexpected clientId mismatch: client has ' + this.clientId + ', requested ' + clientId;\n var err = new errorinfo_1.default(msg, 40102, 401);\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Auth._uncheckedSetClientId()', msg);\n return err;\n }\n else {\n /* RSA7a4: if options.clientId is provided and is not\n * null, it overrides defaultTokenParams.clientId */\n this.clientId = this.tokenParams.clientId = clientId;\n return null;\n }\n };\n Auth.prototype._tokenClientIdMismatch = function (tokenClientId) {\n return !!(this.clientId &&\n this.clientId !== '*' &&\n tokenClientId &&\n tokenClientId !== '*' &&\n this.clientId !== tokenClientId);\n };\n Auth.isTokenErr = function (error) {\n return error.code && error.code >= 40140 && error.code < 40150;\n };\n Auth.prototype.revokeTokens = function (specifiers, optionsOrCallbackArg, callbackArg) {\n if (useTokenAuth(this.client.options)) {\n throw new errorinfo_1.default('Cannot revoke tokens when using token auth', 40162, 401);\n }\n var keyName = this.client.options.keyName;\n var resolvedOptions;\n if (typeof optionsOrCallbackArg === 'function') {\n callbackArg = optionsOrCallbackArg;\n resolvedOptions = {};\n }\n else {\n resolvedOptions = optionsOrCallbackArg !== null && optionsOrCallbackArg !== void 0 ? optionsOrCallbackArg : {};\n }\n if (callbackArg === undefined) {\n if (this.client.options.promises) {\n return Utils.promisify(this, 'revokeTokens', [specifiers, resolvedOptions]);\n }\n callbackArg = noop;\n }\n var callback = callbackArg;\n var requestBodyDTO = tslib_1.__assign({ targets: specifiers.map(function (specifier) { return \"\".concat(specifier.type, \":\").concat(specifier.value); }) }, resolvedOptions);\n var format = this.client.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json, headers = Utils.defaultPostHeaders(this.client.options, format);\n if (this.client.options.headers)\n Utils.mixin(headers, this.client.options.headers);\n var requestBody = Utils.encodeBody(requestBodyDTO, format);\n resource_1.default.post(this.client, \"/keys/\".concat(keyName, \"/revokeTokens\"), requestBody, headers, { newBatchResponse: 'true' }, null, function (err, body, headers, unpacked) {\n if (err) {\n // TODO remove this type assertion after fixing https://github.com/ably/ably-js/issues/1405\n callback(err);\n return;\n }\n var batchResult = (unpacked ? body : Utils.decodeBody(body, format));\n callback(null, batchResult);\n });\n };\n return Auth;\n}());\nexports.default = Auth;\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar HttpMethods;\n(function (HttpMethods) {\n HttpMethods[\"Get\"] = \"get\";\n HttpMethods[\"Delete\"] = \"delete\";\n HttpMethods[\"Post\"] = \"post\";\n HttpMethods[\"Put\"] = \"put\";\n HttpMethods[\"Patch\"] = \"patch\";\n})(HttpMethods || (HttpMethods = {}));\nexports.default = HttpMethods;\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpPaginatedResponse = exports.PaginatedResult = void 0;\nvar tslib_1 = __webpack_require__(0);\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\nvar logger_1 = tslib_1.__importDefault(__webpack_require__(2));\nvar resource_1 = tslib_1.__importDefault(__webpack_require__(14));\nfunction getRelParams(linkUrl) {\n var urlMatch = linkUrl.match(/^\\.\\/(\\w+)\\?(.*)$/);\n return urlMatch && urlMatch[2] && Utils.parseQueryString(urlMatch[2]);\n}\nfunction parseRelLinks(linkHeader) {\n if (typeof linkHeader == 'string')\n linkHeader = linkHeader.split(',');\n var relParams = {};\n for (var i = 0; i < linkHeader.length; i++) {\n var linkMatch = linkHeader[i].match(/^\\s*<(.+)>;\\s*rel=\"(\\w+)\"$/);\n if (linkMatch) {\n var params = getRelParams(linkMatch[1]);\n if (params)\n relParams[linkMatch[2]] = params;\n }\n }\n return relParams;\n}\nfunction returnErrOnly(err, body, useHPR) {\n /* If using httpPaginatedResponse, errors from Ably are returned as part of\n * the HPR, only do callback(err) for network errors etc. which don't\n * return a body and/or have no ably-originated error code (non-numeric\n * error codes originate from node) */\n return !(useHPR && (body || typeof err.code === 'number'));\n}\nvar PaginatedResource = /** @class */ (function () {\n function PaginatedResource(rest, path, headers, envelope, bodyHandler, useHttpPaginatedResponse) {\n this.rest = rest;\n this.path = path;\n this.headers = headers;\n this.envelope = envelope !== null && envelope !== void 0 ? envelope : null;\n this.bodyHandler = bodyHandler;\n this.useHttpPaginatedResponse = useHttpPaginatedResponse || false;\n }\n PaginatedResource.prototype.get = function (params, callback) {\n var _this = this;\n resource_1.default.get(this.rest, this.path, this.headers, params, this.envelope, function (err, body, headers, unpacked, statusCode) {\n _this.handlePage(err, body, headers, unpacked, statusCode, callback);\n });\n };\n PaginatedResource.prototype.delete = function (params, callback) {\n var _this = this;\n resource_1.default.delete(this.rest, this.path, this.headers, params, this.envelope, function (err, body, headers, unpacked, statusCode) {\n _this.handlePage(err, body, headers, unpacked, statusCode, callback);\n });\n };\n PaginatedResource.prototype.post = function (params, body, callback) {\n var _this = this;\n resource_1.default.post(this.rest, this.path, body, this.headers, params, this.envelope, function (err, responseBody, headers, unpacked, statusCode) {\n if (callback) {\n _this.handlePage(err, responseBody, headers, unpacked, statusCode, callback);\n }\n });\n };\n PaginatedResource.prototype.put = function (params, body, callback) {\n var _this = this;\n resource_1.default.put(this.rest, this.path, body, this.headers, params, this.envelope, function (err, responseBody, headers, unpacked, statusCode) {\n if (callback) {\n _this.handlePage(err, responseBody, headers, unpacked, statusCode, callback);\n }\n });\n };\n PaginatedResource.prototype.patch = function (params, body, callback) {\n var _this = this;\n resource_1.default.patch(this.rest, this.path, body, this.headers, params, this.envelope, function (err, responseBody, headers, unpacked, statusCode) {\n if (callback) {\n _this.handlePage(err, responseBody, headers, unpacked, statusCode, callback);\n }\n });\n };\n PaginatedResource.prototype.handlePage = function (err, body, headers, unpacked, statusCode, callback) {\n if (err && returnErrOnly(err, body, this.useHttpPaginatedResponse)) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'PaginatedResource.handlePage()', 'Unexpected error getting resource: err = ' + Utils.inspectError(err));\n callback === null || callback === void 0 ? void 0 : callback(err);\n return;\n }\n var items, linkHeader, relParams;\n try {\n items = this.bodyHandler(body, headers || {}, unpacked);\n }\n catch (e) {\n /* If we got an error, the failure to parse the body is almost certainly\n * due to that, so callback with that in preference over the parse error */\n callback === null || callback === void 0 ? void 0 : callback(err || e);\n return;\n }\n if (headers && (linkHeader = headers['Link'] || headers['link'])) {\n relParams = parseRelLinks(linkHeader);\n }\n if (this.useHttpPaginatedResponse) {\n callback(null, new HttpPaginatedResponse(this, items, headers || {}, statusCode, relParams, err));\n }\n else {\n callback(null, new PaginatedResult(this, items, relParams));\n }\n };\n return PaginatedResource;\n}());\nvar PaginatedResult = /** @class */ (function () {\n function PaginatedResult(resource, items, relParams) {\n var _this = this;\n this.resource = resource;\n this.items = items;\n var self = this;\n if (relParams) {\n if ('first' in relParams) {\n this.first = function (callback) {\n if (!callback && self.resource.rest.options.promises) {\n return Utils.promisify(self, 'first', []);\n }\n self.get(relParams.first, callback);\n };\n }\n if ('current' in relParams) {\n this.current = function (callback) {\n if (!callback && self.resource.rest.options.promises) {\n return Utils.promisify(self, 'current', []);\n }\n self.get(relParams.current, callback);\n };\n }\n this.next = function (callback) {\n if (!callback && self.resource.rest.options.promises) {\n return Utils.promisify(self, 'next', []);\n }\n if ('next' in relParams) {\n self.get(relParams.next, callback);\n }\n else {\n callback(null);\n }\n };\n this.hasNext = function () {\n return 'next' in relParams;\n };\n this.isLast = function () {\n var _a;\n return !((_a = _this.hasNext) === null || _a === void 0 ? void 0 : _a.call(_this));\n };\n }\n }\n /* We assume that only the initial request can be a POST, and that accessing\n * the rest of a multipage set of results can always be done with GET */\n PaginatedResult.prototype.get = function (params, callback) {\n var res = this.resource;\n resource_1.default.get(res.rest, res.path, res.headers, params, res.envelope, function (err, body, headers, unpacked, statusCode) {\n res.handlePage(err, body, headers, unpacked, statusCode, callback);\n });\n };\n return PaginatedResult;\n}());\nexports.PaginatedResult = PaginatedResult;\nvar HttpPaginatedResponse = /** @class */ (function (_super) {\n tslib_1.__extends(HttpPaginatedResponse, _super);\n function HttpPaginatedResponse(resource, items, headers, statusCode, relParams, err) {\n var _this = _super.call(this, resource, items, relParams) || this;\n _this.statusCode = statusCode;\n _this.success = statusCode < 300 && statusCode >= 200;\n _this.headers = headers;\n _this.errorCode = err && err.code;\n _this.errorMessage = err && err.message;\n return _this;\n }\n HttpPaginatedResponse.prototype.toJSON = function () {\n return {\n items: this.items,\n statusCode: this.statusCode,\n success: this.success,\n headers: this.headers,\n errorCode: this.errorCode,\n errorMessage: this.errorMessage,\n };\n };\n return HttpPaginatedResponse;\n}(PaginatedResult));\nexports.HttpPaginatedResponse = HttpPaginatedResponse;\nexports.default = PaginatedResource;\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isRetriable = void 0;\nvar tslib_1 = __webpack_require__(0);\nvar errorinfo_1 = tslib_1.__importDefault(__webpack_require__(4));\nvar ConnectionErrorCodes = {\n DISCONNECTED: 80003,\n SUSPENDED: 80002,\n FAILED: 80000,\n CLOSING: 80017,\n CLOSED: 80017,\n UNKNOWN_CONNECTION_ERR: 50002,\n UNKNOWN_CHANNEL_ERR: 50001,\n};\nvar ConnectionErrors = {\n disconnected: function () {\n return errorinfo_1.default.fromValues({\n statusCode: 400,\n code: ConnectionErrorCodes.DISCONNECTED,\n message: 'Connection to server temporarily unavailable',\n });\n },\n suspended: function () {\n return errorinfo_1.default.fromValues({\n statusCode: 400,\n code: ConnectionErrorCodes.SUSPENDED,\n message: 'Connection to server unavailable',\n });\n },\n failed: function () {\n return errorinfo_1.default.fromValues({\n statusCode: 400,\n code: ConnectionErrorCodes.FAILED,\n message: 'Connection failed or disconnected by server',\n });\n },\n closing: function () {\n return errorinfo_1.default.fromValues({\n statusCode: 400,\n code: ConnectionErrorCodes.CLOSING,\n message: 'Connection closing',\n });\n },\n closed: function () {\n return errorinfo_1.default.fromValues({\n statusCode: 400,\n code: ConnectionErrorCodes.CLOSED,\n message: 'Connection closed',\n });\n },\n unknownConnectionErr: function () {\n return errorinfo_1.default.fromValues({\n statusCode: 500,\n code: ConnectionErrorCodes.UNKNOWN_CONNECTION_ERR,\n message: 'Internal connection error',\n });\n },\n unknownChannelErr: function () {\n return errorinfo_1.default.fromValues({\n statusCode: 500,\n code: ConnectionErrorCodes.UNKNOWN_CONNECTION_ERR,\n message: 'Internal channel error',\n });\n },\n};\nfunction isRetriable(err) {\n if (!err.statusCode || !err.code || err.statusCode >= 500) {\n return true;\n }\n return Object.values(ConnectionErrorCodes).includes(err.code);\n}\nexports.isRetriable = isRetriable;\nexports.default = ConnectionErrors;\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar XHRStates;\n(function (XHRStates) {\n XHRStates[XHRStates[\"REQ_SEND\"] = 0] = \"REQ_SEND\";\n XHRStates[XHRStates[\"REQ_RECV\"] = 1] = \"REQ_RECV\";\n XHRStates[XHRStates[\"REQ_RECV_POLL\"] = 2] = \"REQ_RECV_POLL\";\n XHRStates[XHRStates[\"REQ_RECV_STREAM\"] = 3] = \"REQ_RECV_STREAM\";\n})(XHRStates || (XHRStates = {}));\nexports.default = XHRStates;\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(6), __webpack_require__(5), __webpack_require__(58), __webpack_require__(11), __webpack_require__(40), __webpack_require__(32), __webpack_require__(24), __webpack_require__(27), __webpack_require__(28), __webpack_require__(59), __webpack_require__(60));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS;\n\n}));\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\nvar logger_1 = tslib_1.__importDefault(__webpack_require__(2));\nvar Multicaster = /** @class */ (function () {\n // Private constructor; use static Multicaster.create instead\n function Multicaster(members) {\n this.members = members || [];\n }\n Multicaster.prototype.call = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n for (var _a = 0, _b = this.members; _a < _b.length; _a++) {\n var member = _b[_a];\n if (member) {\n try {\n member.apply(void 0, args);\n }\n catch (e) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Multicaster multiple callback handler', 'Unexpected exception: ' + e + '; stack = ' + e.stack);\n }\n }\n }\n };\n Multicaster.prototype.push = function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n (_a = this.members).push.apply(_a, args);\n };\n Multicaster.create = function (members) {\n var instance = new Multicaster(members);\n return Object.assign(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return instance.call.apply(instance, args);\n }, {\n push: function (fn) { return instance.push(fn); },\n });\n };\n return Multicaster;\n}());\nexports.default = Multicaster;\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(6));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var C_algo = C.algo;\n\n\t /**\n\t * HMAC algorithm.\n\t */\n\t var HMAC = C_algo.HMAC = Base.extend({\n\t /**\n\t * Initializes a newly created HMAC.\n\t *\n\t * @param {Hasher} hasher The hash algorithm to use.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @example\n\t *\n\t * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n\t */\n\t init: function (hasher, key) {\n\t // Init hasher\n\t hasher = this._hasher = new hasher.init();\n\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof key == 'string') {\n\t key = Utf8.parse(key);\n\t }\n\n\t // Shortcuts\n\t var hasherBlockSize = hasher.blockSize;\n\t var hasherBlockSizeBytes = hasherBlockSize * 4;\n\n\t // Allow arbitrary length keys\n\t if (key.sigBytes > hasherBlockSizeBytes) {\n\t key = hasher.finalize(key);\n\t }\n\n\t // Clamp excess bits\n\t key.clamp();\n\n\t // Clone key for inner and outer pads\n\t var oKey = this._oKey = key.clone();\n\t var iKey = this._iKey = key.clone();\n\n\t // Shortcuts\n\t var oKeyWords = oKey.words;\n\t var iKeyWords = iKey.words;\n\n\t // XOR keys with pad constants\n\t for (var i = 0; i < hasherBlockSize; i++) {\n\t oKeyWords[i] ^= 0x5c5c5c5c;\n\t iKeyWords[i] ^= 0x36363636;\n\t }\n\t oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this HMAC to its initial state.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.reset();\n\t */\n\t reset: function () {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Reset\n\t hasher.reset();\n\t hasher.update(this._iKey);\n\t },\n\n\t /**\n\t * Updates this HMAC with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {HMAC} This HMAC instance.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.update('message');\n\t * hmacHasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t this._hasher.update(messageUpdate);\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the HMAC computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @example\n\t *\n\t * var hmac = hmacHasher.finalize();\n\t * var hmac = hmacHasher.finalize('message');\n\t * var hmac = hmacHasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Compute HMAC\n\t var innerHash = hasher.finalize(messageUpdate);\n\t hasher.reset();\n\t var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n\n\t return hmac;\n\t }\n\t });\n\t}());\n\n\n}));\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isSuccessCode = void 0;\nvar HttpStatusCodes;\n(function (HttpStatusCodes) {\n HttpStatusCodes[HttpStatusCodes[\"Success\"] = 200] = \"Success\";\n HttpStatusCodes[HttpStatusCodes[\"NoContent\"] = 204] = \"NoContent\";\n HttpStatusCodes[HttpStatusCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpStatusCodes[HttpStatusCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpStatusCodes[HttpStatusCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpStatusCodes[HttpStatusCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpStatusCodes[HttpStatusCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n})(HttpStatusCodes || (HttpStatusCodes = {}));\nfunction isSuccessCode(statusCode) {\n return statusCode >= HttpStatusCodes.Success && statusCode < HttpStatusCodes.BadRequest;\n}\nexports.isSuccessCode = isSuccessCode;\nexports.default = HttpStatusCodes;\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\nvar protocolmessage_1 = tslib_1.__importDefault(__webpack_require__(10));\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\nvar eventemitter_1 = tslib_1.__importDefault(__webpack_require__(7));\nvar logger_1 = tslib_1.__importDefault(__webpack_require__(2));\nvar connectionerrors_1 = tslib_1.__importDefault(__webpack_require__(20));\nvar errorinfo_1 = tslib_1.__importDefault(__webpack_require__(4));\nvar platform_1 = tslib_1.__importDefault(__webpack_require__(3));\nvar actions = protocolmessage_1.default.Action;\nvar closeMessage = protocolmessage_1.default.fromValues({ action: actions.CLOSE });\nvar disconnectMessage = protocolmessage_1.default.fromValues({ action: actions.DISCONNECT });\n/*\n * Transport instances inherit from EventEmitter and emit the following events:\n *\n * event name data\n * closed error\n * failed error\n * disposed\n * connected null error, connectionSerial, connectionId, connectionDetails\n * event channel message object\n */\nvar Transport = /** @class */ (function (_super) {\n tslib_1.__extends(Transport, _super);\n function Transport(connectionManager, auth, params, forceJsonProtocol) {\n var _this = _super.call(this) || this;\n if (forceJsonProtocol) {\n params.format = undefined;\n params.heartbeats = true;\n }\n _this.connectionManager = connectionManager;\n connectionManager.registerProposedTransport(_this);\n _this.auth = auth;\n _this.params = params;\n _this.timeouts = params.options.timeouts;\n _this.format = params.format;\n _this.isConnected = false;\n _this.isFinished = false;\n _this.isDisposed = false;\n _this.maxIdleInterval = null;\n _this.idleTimer = null;\n _this.lastActivity = null;\n return _this;\n }\n Transport.prototype.connect = function () { };\n Transport.prototype.close = function () {\n if (this.isConnected) {\n this.requestClose();\n }\n this.finish('closed', connectionerrors_1.default.closed());\n };\n Transport.prototype.disconnect = function (err) {\n /* Used for network/transport issues that need to result in the transport\n * being disconnected, but should not transition the connection to 'failed' */\n if (this.isConnected) {\n this.requestDisconnect();\n }\n this.finish('disconnected', err || connectionerrors_1.default.disconnected());\n };\n Transport.prototype.fail = function (err) {\n /* Used for client-side-detected fatal connection issues */\n if (this.isConnected) {\n this.requestDisconnect();\n }\n this.finish('failed', err || connectionerrors_1.default.failed());\n };\n Transport.prototype.finish = function (event, err) {\n var _a;\n if (this.isFinished) {\n return;\n }\n this.isFinished = true;\n this.isConnected = false;\n this.maxIdleInterval = null;\n clearTimeout((_a = this.idleTimer) !== null && _a !== void 0 ? _a : undefined);\n this.idleTimer = null;\n this.emit(event, err);\n this.dispose();\n };\n Transport.prototype.onProtocolMessage = function (message) {\n if (logger_1.default.shouldLog(logger_1.default.LOG_MICRO)) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Transport.onProtocolMessage()', 'received on ' +\n this.shortName +\n ': ' +\n protocolmessage_1.default.stringify(message) +\n '; connectionId = ' +\n this.connectionManager.connectionId);\n }\n this.onActivity();\n switch (message.action) {\n case actions.HEARTBEAT:\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Transport.onProtocolMessage()', this.shortName + ' heartbeat; connectionId = ' + this.connectionManager.connectionId);\n this.emit('heartbeat', message.id);\n break;\n case actions.CONNECTED:\n this.onConnect(message);\n this.emit('connected', message.error, message.connectionId, message.connectionDetails, message);\n break;\n case actions.CLOSED:\n this.onClose(message);\n break;\n case actions.DISCONNECTED:\n this.onDisconnect(message);\n break;\n case actions.ACK:\n this.emit('ack', message.msgSerial, message.count);\n break;\n case actions.NACK:\n this.emit('nack', message.msgSerial, message.count, message.error);\n break;\n case actions.SYNC:\n this.connectionManager.onChannelMessage(message, this);\n break;\n case actions.ACTIVATE:\n // Ignored.\n break;\n case actions.AUTH:\n this.auth.authorize(function (err) {\n if (err) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Transport.onProtocolMessage()', 'Ably requested re-authentication, but unable to obtain a new token: ' + Utils.inspectError(err));\n }\n });\n break;\n case actions.ERROR:\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Transport.onProtocolMessage()', 'received error action; connectionId = ' +\n this.connectionManager.connectionId +\n '; err = ' +\n platform_1.default.Config.inspect(message.error) +\n (message.channel ? ', channel: ' + message.channel : ''));\n if (message.channel === undefined) {\n this.onFatalError(message);\n break;\n }\n /* otherwise it's a channel-specific error, so handle it in the channel */\n this.connectionManager.onChannelMessage(message, this);\n break;\n default:\n /* all other actions are channel-specific */\n this.connectionManager.onChannelMessage(message, this);\n }\n };\n Transport.prototype.onConnect = function (message) {\n this.isConnected = true;\n if (!message.connectionDetails) {\n throw new Error('Transport.onConnect(): Connect message recieved without connectionDetails');\n }\n var maxPromisedIdle = message.connectionDetails.maxIdleInterval;\n if (maxPromisedIdle) {\n this.maxIdleInterval = maxPromisedIdle + this.timeouts.realtimeRequestTimeout;\n this.onActivity();\n }\n /* else Realtime declines to guarantee any maximum idle interval - CD2h */\n };\n Transport.prototype.onDisconnect = function (message) {\n /* Used for when the server has disconnected the client (usually with a\n * DISCONNECTED action) */\n var err = message && message.error;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Transport.onDisconnect()', 'err = ' + Utils.inspectError(err));\n this.finish('disconnected', err);\n };\n Transport.prototype.onFatalError = function (message) {\n /* On receipt of a fatal connection error, we can assume that the server\n * will close the connection and the transport, and do not need to request\n * a disconnection - RTN15i */\n var err = message && message.error;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Transport.onFatalError()', 'err = ' + Utils.inspectError(err));\n this.finish('failed', err);\n };\n Transport.prototype.onClose = function (message) {\n var err = message && message.error;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Transport.onClose()', 'err = ' + Utils.inspectError(err));\n this.finish('closed', err);\n };\n Transport.prototype.requestClose = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Transport.requestClose()', '');\n this.send(closeMessage);\n };\n Transport.prototype.requestDisconnect = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Transport.requestDisconnect()', '');\n this.send(disconnectMessage);\n };\n Transport.prototype.ping = function (id) {\n var msg = { action: protocolmessage_1.default.Action.HEARTBEAT };\n if (id)\n msg.id = id;\n this.send(protocolmessage_1.default.fromValues(msg));\n };\n Transport.prototype.dispose = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Transport.dispose()', '');\n this.isDisposed = true;\n this.off();\n };\n Transport.prototype.onActivity = function () {\n if (!this.maxIdleInterval) {\n return;\n }\n this.lastActivity = this.connectionManager.lastActivity = Utils.now();\n this.setIdleTimer(this.maxIdleInterval + 100);\n };\n Transport.prototype.setIdleTimer = function (timeout) {\n var _this = this;\n if (!this.idleTimer) {\n this.idleTimer = setTimeout(function () {\n _this.onIdleTimerExpire();\n }, timeout);\n }\n };\n Transport.prototype.onIdleTimerExpire = function () {\n if (!this.lastActivity || !this.maxIdleInterval) {\n throw new Error('Transport.onIdleTimerExpire(): lastActivity/maxIdleInterval not set');\n }\n this.idleTimer = null;\n var sinceLast = Utils.now() - this.lastActivity;\n var timeRemaining = this.maxIdleInterval - sinceLast;\n if (timeRemaining <= 0) {\n var msg = 'No activity seen from realtime in ' + sinceLast + 'ms; assuming connection has dropped';\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Transport.onIdleTimerExpire()', msg);\n this.disconnect(new errorinfo_1.default(msg, 80003, 408));\n }\n else {\n this.setIdleTimer(timeRemaining + 100);\n }\n };\n Transport.tryConnect = function (transportCtor, connectionManager, auth, transportParams, callback) {\n var transport = new transportCtor(connectionManager, auth, transportParams);\n var transportAttemptTimer;\n var errorCb = function (err) {\n clearTimeout(transportAttemptTimer);\n callback({ event: this.event, error: err });\n };\n var realtimeRequestTimeout = connectionManager.options.timeouts.realtimeRequestTimeout;\n transportAttemptTimer = setTimeout(function () {\n transport.off(['preconnect', 'disconnected', 'failed']);\n transport.dispose();\n errorCb.call({ event: 'disconnected' }, new errorinfo_1.default('Timeout waiting for transport to indicate itself viable', 50000, 500));\n }, realtimeRequestTimeout);\n transport.on(['failed', 'disconnected'], errorCb);\n transport.on('preconnect', function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Transport.tryConnect()', 'viable transport ' + transport);\n clearTimeout(transportAttemptTimer);\n transport.off(['failed', 'disconnected'], errorCb);\n callback(null, transport);\n });\n transport.connect();\n };\n return Transport;\n}(eventemitter_1.default));\nexports.default = Transport;\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(6), __webpack_require__(40), __webpack_require__(24));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var MD5 = C_algo.MD5;\n\n\t /**\n\t * This key derivation function is meant to conform with EVP_BytesToKey.\n\t * www.openssl.org/docs/crypto/EVP_BytesToKey.html\n\t */\n\t var EvpKDF = C_algo.EvpKDF = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hash algorithm to use. Default: MD5\n\t * @property {number} iterations The number of iterations to perform. Default: 1\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: MD5,\n\t iterations: 1\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.EvpKDF.create();\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t var block;\n\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init hasher\n\t var hasher = cfg.hasher.create();\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t if (block) {\n\t hasher.update(block);\n\t }\n\t block = hasher.update(password).finalize(salt);\n\t hasher.reset();\n\n\t // Iterations\n\t for (var i = 1; i < iterations; i++) {\n\t block = hasher.finalize(block);\n\t hasher.reset();\n\t }\n\n\t derivedKey.concat(block);\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.EvpKDF(password, salt);\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.EvpKDF = function (password, salt, cfg) {\n\t return EvpKDF.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.EvpKDF;\n\n}));\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(6), __webpack_require__(27));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher core components.\n\t */\n\tCryptoJS.lib.Cipher || (function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var Base64 = C_enc.Base64;\n\t var C_algo = C.algo;\n\t var EvpKDF = C_algo.EvpKDF;\n\n\t /**\n\t * Abstract base cipher template.\n\t *\n\t * @property {number} keySize This cipher's key size. Default: 4 (128 bits)\n\t * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)\n\t * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.\n\t * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.\n\t */\n\t var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {WordArray} iv The IV to use for this operation.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Creates this cipher in encryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createEncryptor: function (key, cfg) {\n\t return this.create(this._ENC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Creates this cipher in decryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createDecryptor: function (key, cfg) {\n\t return this.create(this._DEC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Initializes a newly created cipher.\n\t *\n\t * @param {number} xformMode Either the encryption or decryption transormation mode constant.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });\n\t */\n\t init: function (xformMode, key, cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Store transform mode and key\n\t this._xformMode = xformMode;\n\t this._key = key;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this cipher to its initial state.\n\t *\n\t * @example\n\t *\n\t * cipher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-cipher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Adds data to be encrypted or decrypted.\n\t *\n\t * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.process('data');\n\t * var encrypted = cipher.process(wordArray);\n\t */\n\t process: function (dataUpdate) {\n\t // Append\n\t this._append(dataUpdate);\n\n\t // Process available blocks\n\t return this._process();\n\t },\n\n\t /**\n\t * Finalizes the encryption or decryption process.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after final processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.finalize();\n\t * var encrypted = cipher.finalize('data');\n\t * var encrypted = cipher.finalize(wordArray);\n\t */\n\t finalize: function (dataUpdate) {\n\t // Final data update\n\t if (dataUpdate) {\n\t this._append(dataUpdate);\n\t }\n\n\t // Perform concrete-cipher logic\n\t var finalProcessedData = this._doFinalize();\n\n\t return finalProcessedData;\n\t },\n\n\t keySize: 128/32,\n\n\t ivSize: 128/32,\n\n\t _ENC_XFORM_MODE: 1,\n\n\t _DEC_XFORM_MODE: 2,\n\n\t /**\n\t * Creates shortcut functions to a cipher's object interface.\n\t *\n\t * @param {Cipher} cipher The cipher to create a helper for.\n\t *\n\t * @return {Object} An object with encrypt and decrypt shortcut functions.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);\n\t */\n\t _createHelper: (function () {\n\t function selectCipherStrategy(key) {\n\t if (typeof key == 'string') {\n\t return PasswordBasedCipher;\n\t } else {\n\t return SerializableCipher;\n\t }\n\t }\n\n\t return function (cipher) {\n\t return {\n\t encrypt: function (message, key, cfg) {\n\t return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);\n\t },\n\n\t decrypt: function (ciphertext, key, cfg) {\n\t return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);\n\t }\n\t };\n\t };\n\t }())\n\t });\n\n\t /**\n\t * Abstract base stream cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)\n\t */\n\t var StreamCipher = C_lib.StreamCipher = Cipher.extend({\n\t _doFinalize: function () {\n\t // Process partial blocks\n\t var finalProcessedBlocks = this._process(!!'flush');\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 1\n\t });\n\n\t /**\n\t * Mode namespace.\n\t */\n\t var C_mode = C.mode = {};\n\n\t /**\n\t * Abstract base block cipher mode template.\n\t */\n\t var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({\n\t /**\n\t * Creates this mode for encryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);\n\t */\n\t createEncryptor: function (cipher, iv) {\n\t return this.Encryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Creates this mode for decryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);\n\t */\n\t createDecryptor: function (cipher, iv) {\n\t return this.Decryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Initializes a newly created mode.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);\n\t */\n\t init: function (cipher, iv) {\n\t this._cipher = cipher;\n\t this._iv = iv;\n\t }\n\t });\n\n\t /**\n\t * Cipher Block Chaining mode.\n\t */\n\t var CBC = C_mode.CBC = (function () {\n\t /**\n\t * Abstract base CBC mode.\n\t */\n\t var CBC = BlockCipherMode.extend();\n\n\t /**\n\t * CBC encryptor.\n\t */\n\t CBC.Encryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // XOR and encrypt\n\t xorBlock.call(this, words, offset, blockSize);\n\t cipher.encryptBlock(words, offset);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t /**\n\t * CBC decryptor.\n\t */\n\t CBC.Decryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t // Decrypt and XOR\n\t cipher.decryptBlock(words, offset);\n\t xorBlock.call(this, words, offset, blockSize);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function xorBlock(words, offset, blockSize) {\n\t var block;\n\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Choose mixing block\n\t if (iv) {\n\t block = iv;\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t block = this._prevBlock;\n\t }\n\n\t // XOR blocks\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= block[i];\n\t }\n\t }\n\n\t return CBC;\n\t }());\n\n\t /**\n\t * Padding namespace.\n\t */\n\t var C_pad = C.pad = {};\n\n\t /**\n\t * PKCS #5/7 padding strategy.\n\t */\n\t var Pkcs7 = C_pad.Pkcs7 = {\n\t /**\n\t * Pads data using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to pad.\n\t * @param {number} blockSize The multiple that the data should be padded to.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.pad(wordArray, 4);\n\t */\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Create padding word\n\t var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;\n\n\t // Create padding\n\t var paddingWords = [];\n\t for (var i = 0; i < nPaddingBytes; i += 4) {\n\t paddingWords.push(paddingWord);\n\t }\n\t var padding = WordArray.create(paddingWords, nPaddingBytes);\n\n\t // Add padding\n\t data.concat(padding);\n\t },\n\n\t /**\n\t * Unpads data that had been padded using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to unpad.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.unpad(wordArray);\n\t */\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t };\n\n\t /**\n\t * Abstract base block cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)\n\t */\n\t var BlockCipher = C_lib.BlockCipher = Cipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Mode} mode The block mode to use. Default: CBC\n\t * @property {Padding} padding The padding strategy to use. Default: Pkcs7\n\t */\n\t cfg: Cipher.cfg.extend({\n\t mode: CBC,\n\t padding: Pkcs7\n\t }),\n\n\t reset: function () {\n\t var modeCreator;\n\n\t // Reset cipher\n\t Cipher.reset.call(this);\n\n\t // Shortcuts\n\t var cfg = this.cfg;\n\t var iv = cfg.iv;\n\t var mode = cfg.mode;\n\n\t // Reset block mode\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t modeCreator = mode.createEncryptor;\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t modeCreator = mode.createDecryptor;\n\t // Keep at least one block in the buffer for unpadding\n\t this._minBufferSize = 1;\n\t }\n\n\t if (this._mode && this._mode.__creator == modeCreator) {\n\t this._mode.init(this, iv && iv.words);\n\t } else {\n\t this._mode = modeCreator.call(mode, this, iv && iv.words);\n\t this._mode.__creator = modeCreator;\n\t }\n\t },\n\n\t _doProcessBlock: function (words, offset) {\n\t this._mode.processBlock(words, offset);\n\t },\n\n\t _doFinalize: function () {\n\t var finalProcessedBlocks;\n\n\t // Shortcut\n\t var padding = this.cfg.padding;\n\n\t // Finalize\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t // Pad data\n\t padding.pad(this._data, this.blockSize);\n\n\t // Process final blocks\n\t finalProcessedBlocks = this._process(!!'flush');\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t // Process final blocks\n\t finalProcessedBlocks = this._process(!!'flush');\n\n\t // Unpad data\n\t padding.unpad(finalProcessedBlocks);\n\t }\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 128/32\n\t });\n\n\t /**\n\t * A collection of cipher parameters.\n\t *\n\t * @property {WordArray} ciphertext The raw ciphertext.\n\t * @property {WordArray} key The key to this ciphertext.\n\t * @property {WordArray} iv The IV used in the ciphering operation.\n\t * @property {WordArray} salt The salt used with a key derivation function.\n\t * @property {Cipher} algorithm The cipher algorithm.\n\t * @property {Mode} mode The block mode used in the ciphering operation.\n\t * @property {Padding} padding The padding scheme used in the ciphering operation.\n\t * @property {number} blockSize The block size of the cipher.\n\t * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.\n\t */\n\t var CipherParams = C_lib.CipherParams = Base.extend({\n\t /**\n\t * Initializes a newly created cipher params object.\n\t *\n\t * @param {Object} cipherParams An object with any of the possible cipher parameters.\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.lib.CipherParams.create({\n\t * ciphertext: ciphertextWordArray,\n\t * key: keyWordArray,\n\t * iv: ivWordArray,\n\t * salt: saltWordArray,\n\t * algorithm: CryptoJS.algo.AES,\n\t * mode: CryptoJS.mode.CBC,\n\t * padding: CryptoJS.pad.PKCS7,\n\t * blockSize: 4,\n\t * formatter: CryptoJS.format.OpenSSL\n\t * });\n\t */\n\t init: function (cipherParams) {\n\t this.mixIn(cipherParams);\n\t },\n\n\t /**\n\t * Converts this cipher params object to a string.\n\t *\n\t * @param {Format} formatter (Optional) The formatting strategy to use.\n\t *\n\t * @return {string} The stringified cipher params.\n\t *\n\t * @throws Error If neither the formatter nor the default formatter is set.\n\t *\n\t * @example\n\t *\n\t * var string = cipherParams + '';\n\t * var string = cipherParams.toString();\n\t * var string = cipherParams.toString(CryptoJS.format.OpenSSL);\n\t */\n\t toString: function (formatter) {\n\t return (formatter || this.formatter).stringify(this);\n\t }\n\t });\n\n\t /**\n\t * Format namespace.\n\t */\n\t var C_format = C.format = {};\n\n\t /**\n\t * OpenSSL formatting strategy.\n\t */\n\t var OpenSSLFormatter = C_format.OpenSSL = {\n\t /**\n\t * Converts a cipher params object to an OpenSSL-compatible string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The OpenSSL-compatible string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t var wordArray;\n\n\t // Shortcuts\n\t var ciphertext = cipherParams.ciphertext;\n\t var salt = cipherParams.salt;\n\n\t // Format\n\t if (salt) {\n\t wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);\n\t } else {\n\t wordArray = ciphertext;\n\t }\n\n\t return wordArray.toString(Base64);\n\t },\n\n\t /**\n\t * Converts an OpenSSL-compatible string to a cipher params object.\n\t *\n\t * @param {string} openSSLStr The OpenSSL-compatible string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);\n\t */\n\t parse: function (openSSLStr) {\n\t var salt;\n\n\t // Parse base64\n\t var ciphertext = Base64.parse(openSSLStr);\n\n\t // Shortcut\n\t var ciphertextWords = ciphertext.words;\n\n\t // Test for salt\n\t if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {\n\t // Extract salt\n\t salt = WordArray.create(ciphertextWords.slice(2, 4));\n\n\t // Remove salt from ciphertext\n\t ciphertextWords.splice(0, 4);\n\t ciphertext.sigBytes -= 16;\n\t }\n\n\t return CipherParams.create({ ciphertext: ciphertext, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A cipher wrapper that returns ciphertext as a serializable cipher params object.\n\t */\n\t var SerializableCipher = C_lib.SerializableCipher = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL\n\t */\n\t cfg: Base.extend({\n\t format: OpenSSLFormatter\n\t }),\n\n\t /**\n\t * Encrypts a message.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Encrypt\n\t var encryptor = cipher.createEncryptor(key, cfg);\n\t var ciphertext = encryptor.finalize(message);\n\n\t // Shortcut\n\t var cipherCfg = encryptor.cfg;\n\n\t // Create and return serializable cipher params\n\t return CipherParams.create({\n\t ciphertext: ciphertext,\n\t key: key,\n\t iv: cipherCfg.iv,\n\t algorithm: cipher,\n\t mode: cipherCfg.mode,\n\t padding: cipherCfg.padding,\n\t blockSize: cipher.blockSize,\n\t formatter: cfg.format\n\t });\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Decrypt\n\t var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);\n\n\t return plaintext;\n\t },\n\n\t /**\n\t * Converts serialized ciphertext to CipherParams,\n\t * else assumed CipherParams already and returns ciphertext unchanged.\n\t *\n\t * @param {CipherParams|string} ciphertext The ciphertext.\n\t * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.\n\t *\n\t * @return {CipherParams} The unserialized ciphertext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);\n\t */\n\t _parse: function (ciphertext, format) {\n\t if (typeof ciphertext == 'string') {\n\t return format.parse(ciphertext, this);\n\t } else {\n\t return ciphertext;\n\t }\n\t }\n\t });\n\n\t /**\n\t * Key derivation function namespace.\n\t */\n\t var C_kdf = C.kdf = {};\n\n\t /**\n\t * OpenSSL key derivation function.\n\t */\n\t var OpenSSLKdf = C_kdf.OpenSSL = {\n\t /**\n\t * Derives a key and IV from a password.\n\t *\n\t * @param {string} password The password to derive from.\n\t * @param {number} keySize The size in words of the key to generate.\n\t * @param {number} ivSize The size in words of the IV to generate.\n\t * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.\n\t *\n\t * @return {CipherParams} A cipher params object with the key, IV, and salt.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');\n\t */\n\t execute: function (password, keySize, ivSize, salt) {\n\t // Generate random salt\n\t if (!salt) {\n\t salt = WordArray.random(64/8);\n\t }\n\n\t // Derive key and IV\n\t var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);\n\n\t // Separate key and IV\n\t var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);\n\t key.sigBytes = keySize * 4;\n\n\t // Return params\n\t return CipherParams.create({ key: key, iv: iv, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A serializable cipher wrapper that derives the key from a password,\n\t * and returns ciphertext as a serializable cipher params object.\n\t */\n\t var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL\n\t */\n\t cfg: SerializableCipher.cfg.extend({\n\t kdf: OpenSSLKdf\n\t }),\n\n\t /**\n\t * Encrypts a message using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Encrypt\n\t var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);\n\n\t // Mix in derived params\n\t ciphertext.mixIn(derivedParams);\n\n\t return ciphertext;\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Decrypt\n\t var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);\n\n\t return plaintext;\n\t }\n\t });\n\t}());\n\n\n}));\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Request = exports.createRequest = void 0;\nvar tslib_1 = __webpack_require__(0);\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\nvar comettransport_1 = tslib_1.__importDefault(__webpack_require__(12));\nvar platform_1 = tslib_1.__importDefault(__webpack_require__(3));\nvar eventemitter_1 = tslib_1.__importDefault(__webpack_require__(7));\nvar errorinfo_1 = __webpack_require__(4);\nvar defaults_1 = tslib_1.__importDefault(__webpack_require__(8));\nvar logger_1 = tslib_1.__importDefault(__webpack_require__(2));\nvar XHRStates_1 = tslib_1.__importDefault(__webpack_require__(21));\n// Workaround for salesforce lightning locker compatibility\nvar globalObject = Utils.getGlobalObject();\nvar noop = function () { };\n/* Can't just use window.Ably, as that won't exist if using the commonjs version. */\nvar _ = (globalObject._ablyjs_jsonp = {});\n/* express strips out parantheses from the callback!\n * Kludge to still alow its responses to work, while not keeping the\n * function form for normal use and not cluttering window.Ably\n * https://github.com/expressjs/express/blob/5b4d4b4ab1324743534fbcd4709f4e75bb4b4e9d/lib/response.js#L305\n */\n_._ = function (id) {\n return _['_' + id] || noop;\n};\nvar idCounter = 1;\nvar shortName = 'jsonp';\nfunction createRequest(uri, headers, params, body, requestMode, timeouts, method) {\n /* JSONP requests are used either with the context being a realtime\n * transport, or with timeouts passed in (for when used by a rest client),\n * or completely standalone. Use the appropriate timeouts in each case */\n timeouts = timeouts || defaults_1.default.TIMEOUTS;\n return new Request(undefined, uri, headers, Utils.copy(params), body, requestMode, timeouts, method);\n}\nexports.createRequest = createRequest;\nvar JSONPTransport = /** @class */ (function (_super) {\n tslib_1.__extends(JSONPTransport, _super);\n function JSONPTransport(connectionManager, auth, params) {\n var _this = _super.call(this, connectionManager, auth, params) || this;\n _this.shortName = shortName;\n params.stream = false;\n return _this;\n }\n JSONPTransport.isAvailable = function () {\n return platform_1.default.Config.jsonpSupported && platform_1.default.Config.allowComet;\n };\n JSONPTransport.prototype.toString = function () {\n return 'JSONPTransport; uri=' + this.baseUri + '; isConnected=' + this.isConnected;\n };\n JSONPTransport.prototype.createRequest = function (uri, headers, params, body, requestMode, timeouts, method) {\n /* JSONP requests are used either with the context being a realtime\n * transport, or with timeouts passed in (for when used by a rest client),\n * or completely standalone. Use the appropriate timeouts in each case */\n timeouts = (this === null || this === void 0 ? void 0 : this.timeouts) || timeouts || defaults_1.default.TIMEOUTS;\n return createRequest(uri, headers, params, body, requestMode, timeouts, method);\n };\n return JSONPTransport;\n}(comettransport_1.default));\nvar Request = /** @class */ (function (_super) {\n tslib_1.__extends(Request, _super);\n function Request(id, uri, headers, params, body, requestMode, timeouts, method) {\n var _this = _super.call(this) || this;\n if (id === undefined)\n id = idCounter++;\n _this.id = id;\n _this.uri = uri;\n _this.params = params || {};\n _this.params.rnd = Utils.cheapRandStr();\n if (headers) {\n /* JSONP doesn't allow headers. Cherry-pick a couple to turn into qs params */\n if (headers['X-Ably-Version'])\n _this.params.v = headers['X-Ably-Version'];\n if (headers['X-Ably-Lib'])\n _this.params.lib = headers['X-Ably-Lib'];\n }\n _this.body = body;\n _this.method = method;\n _this.requestMode = requestMode;\n _this.timeouts = timeouts;\n _this.requestComplete = false;\n return _this;\n }\n Request.prototype.exec = function () {\n var _this = this;\n var id = this.id, body = this.body, method = this.method, uri = this.uri, params = this.params;\n params.callback = '_ablyjs_jsonp._(' + id + ')';\n params.envelope = 'jsonp';\n if (body) {\n params.body = body;\n }\n if (method && method !== 'get') {\n params.method = method;\n }\n var script = (this.script = document.createElement('script'));\n var src = uri + Utils.toQueryString(params);\n script.src = src;\n if (script.src.split('/').slice(-1)[0] !== src.split('/').slice(-1)[0]) {\n /* The src has been truncated. Can't abort, but can at least emit an\n * error so the user knows what's gone wrong. (Can't compare strings\n * directly as src may have a port, script.src won't) */\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'JSONP Request.exec()', 'Warning: the browser appears to have truncated the script URI. This will likely result in the request failing due to an unparseable body param');\n }\n script.async = true;\n script.type = 'text/javascript';\n script.charset = 'UTF-8';\n script.onerror = function (err) {\n _this.complete(new errorinfo_1.PartialErrorInfo('JSONP script error (event: ' + platform_1.default.Config.inspect(err) + ')', null, 400));\n };\n _['_' + id] = function (message) {\n if (message.statusCode) {\n /* Handle as enveloped jsonp, as all jsonp transport uses should be */\n var response = message.response;\n if (message.statusCode == 204) {\n _this.complete(null, null, null, message.statusCode);\n }\n else if (!response) {\n _this.complete(new errorinfo_1.PartialErrorInfo('Invalid server response: no envelope detected', null, 500));\n }\n else if (message.statusCode < 400 || Utils.isArray(response)) {\n /* If response is an array, it's an array of protocol messages -- even if\n * it contains an error action (hence the nonsuccess statuscode), we can\n * consider the request to have succeeded, just pass it on to\n * onProtocolMessage to decide what to do */\n _this.complete(null, response, message.headers, message.statusCode);\n }\n else {\n var err = response.error || new errorinfo_1.PartialErrorInfo('Error response received from server', null, message.statusCode);\n _this.complete(err);\n }\n }\n else {\n /* Handle as non-enveloped -- as will be eg from a customer's authUrl server */\n _this.complete(null, message);\n }\n };\n var timeout = this.requestMode == XHRStates_1.default.REQ_SEND ? this.timeouts.httpRequestTimeout : this.timeouts.recvTimeout;\n this.timer = setTimeout(this.abort.bind(this), timeout);\n var head = document.getElementsByTagName('head')[0];\n head.insertBefore(script, head.firstChild);\n };\n Request.prototype.complete = function (err, body, headers, statusCode) {\n headers = headers || {};\n if (!this.requestComplete) {\n this.requestComplete = true;\n var contentType = void 0;\n if (body) {\n contentType = typeof body == 'string' ? 'text/plain' : 'application/json';\n headers['content-type'] = contentType;\n this.emit('data', body);\n }\n this.emit('complete', err, body, headers, /* unpacked: */ true, statusCode);\n this.dispose();\n }\n };\n Request.prototype.abort = function () {\n this.dispose();\n };\n Request.prototype.dispose = function () {\n var timer = this.timer;\n if (timer) {\n clearTimeout(timer);\n this.timer = null;\n }\n var script = this.script;\n if (script.parentNode)\n script.parentNode.removeChild(script);\n delete _[this.id];\n this.emit('disposed');\n };\n return Request;\n}(eventemitter_1.default));\nexports.Request = Request;\nfunction default_1(connectionManager) {\n globalObject.JSONPTransport = JSONPTransport;\n if (JSONPTransport.isAvailable()) {\n connectionManager.supportedTransports[shortName] = JSONPTransport;\n }\n return JSONPTransport;\n}\nexports.default = default_1;\n\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\nvar logger_1 = tslib_1.__importDefault(__webpack_require__(2));\nvar defaults_1 = tslib_1.__importDefault(__webpack_require__(8));\nvar auth_1 = tslib_1.__importDefault(__webpack_require__(17));\nvar push_1 = tslib_1.__importDefault(__webpack_require__(46));\nvar paginatedresource_1 = tslib_1.__importDefault(__webpack_require__(19));\nvar channel_1 = tslib_1.__importDefault(__webpack_require__(33));\nvar errorinfo_1 = tslib_1.__importDefault(__webpack_require__(4));\nvar stats_1 = tslib_1.__importDefault(__webpack_require__(49));\nvar HttpMethods_1 = tslib_1.__importDefault(__webpack_require__(18));\nvar platform_1 = tslib_1.__importDefault(__webpack_require__(3));\nvar message_1 = tslib_1.__importDefault(__webpack_require__(9));\nvar presencemessage_1 = tslib_1.__importDefault(__webpack_require__(15));\nvar resource_1 = tslib_1.__importDefault(__webpack_require__(14));\nvar noop = function () { };\nvar Rest = /** @class */ (function () {\n function Rest(options) {\n if (!options) {\n var msg = 'no options provided';\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Rest()', msg);\n throw new Error(msg);\n }\n var optionsObj = defaults_1.default.objectifyOptions(options);\n if (optionsObj.log) {\n logger_1.default.setLog(optionsObj.log.level, optionsObj.log.handler);\n }\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Rest()', 'initialized with clientOptions ' + platform_1.default.Config.inspect(options));\n var normalOptions = (this.options = defaults_1.default.normaliseOptions(optionsObj));\n /* process options */\n if (normalOptions.key) {\n var keyMatch = normalOptions.key.match(/^([^:\\s]+):([^:.\\s]+)$/);\n if (!keyMatch) {\n var msg = 'invalid key parameter';\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Rest()', msg);\n throw new errorinfo_1.default(msg, 40400, 404);\n }\n normalOptions.keyName = keyMatch[1];\n normalOptions.keySecret = keyMatch[2];\n }\n if ('clientId' in normalOptions) {\n if (!(typeof normalOptions.clientId === 'string' || normalOptions.clientId === null))\n throw new errorinfo_1.default('clientId must be either a string or null', 40012, 400);\n else if (normalOptions.clientId === '*')\n throw new errorinfo_1.default('Can’t use \"*\" as a clientId as that string is reserved. (To change the default token request behaviour to use a wildcard clientId, use {defaultTokenParams: {clientId: \"*\"}})', 40012, 400);\n }\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Rest()', 'started; version = ' + defaults_1.default.version);\n this.baseUri = this.authority = function (host) {\n return defaults_1.default.getHttpScheme(normalOptions) + host + ':' + defaults_1.default.getPort(normalOptions, false);\n };\n this._currentFallback = null;\n this.serverTimeOffset = null;\n this.http = new platform_1.default.Http(normalOptions);\n this.auth = new auth_1.default(this, normalOptions);\n this.channels = new Channels(this);\n this.push = new push_1.default(this);\n }\n Rest.prototype.stats = function (params, callback) {\n /* params and callback are optional; see if params contains the callback */\n if (callback === undefined) {\n if (typeof params == 'function') {\n callback = params;\n params = null;\n }\n else {\n if (this.options.promises) {\n return Utils.promisify(this, 'stats', [params]);\n }\n callback = noop;\n }\n }\n var headers = Utils.defaultGetHeaders(this.options), format = this.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json, envelope = this.http.supportsLinkHeaders ? undefined : format;\n if (this.options.headers)\n Utils.mixin(headers, this.options.headers);\n new paginatedresource_1.default(this, '/stats', headers, envelope, function (body, headers, unpacked) {\n var statsValues = unpacked ? body : JSON.parse(body);\n for (var i = 0; i < statsValues.length; i++)\n statsValues[i] = stats_1.default.fromValues(statsValues[i]);\n return statsValues;\n }).get(params, callback);\n };\n Rest.prototype.time = function (params, callback) {\n var _this = this;\n /* params and callback are optional; see if params contains the callback */\n if (callback === undefined) {\n if (typeof params == 'function') {\n callback = params;\n params = null;\n }\n else {\n if (this.options.promises) {\n return Utils.promisify(this, 'time', [params]);\n }\n }\n }\n var _callback = callback || noop;\n var headers = Utils.defaultGetHeaders(this.options);\n if (this.options.headers)\n Utils.mixin(headers, this.options.headers);\n var timeUri = function (host) {\n return _this.authority(host) + '/time';\n };\n this.http.do(HttpMethods_1.default.Get, this, timeUri, headers, null, params, function (err, res, headers, unpacked) {\n if (err) {\n _callback(err);\n return;\n }\n if (!unpacked)\n res = JSON.parse(res);\n var time = res[0];\n if (!time) {\n _callback(new errorinfo_1.default('Internal error (unexpected result type from GET /time)', 50000, 500));\n return;\n }\n /* calculate time offset only once for this device by adding to the prototype */\n _this.serverTimeOffset = time - Utils.now();\n _callback(null, time);\n });\n };\n Rest.prototype.request = function (method, path, params, body, customHeaders, callback) {\n var useBinary = this.options.useBinaryProtocol, encoder = useBinary ? platform_1.default.Config.msgpack.encode : JSON.stringify, decoder = useBinary ? platform_1.default.Config.msgpack.decode : JSON.parse, format = useBinary ? Utils.Format.msgpack : Utils.Format.json, envelope = this.http.supportsLinkHeaders ? undefined : format;\n params = params || {};\n var _method = method.toLowerCase();\n var headers = _method == 'get' ? Utils.defaultGetHeaders(this.options, format) : Utils.defaultPostHeaders(this.options, format);\n if (callback === undefined) {\n if (this.options.promises) {\n return Utils.promisify(this, 'request', [method, path, params, body, customHeaders]);\n }\n callback = noop;\n }\n if (typeof body !== 'string') {\n body = encoder(body);\n }\n if (this.options.headers) {\n Utils.mixin(headers, this.options.headers);\n }\n if (customHeaders) {\n Utils.mixin(headers, customHeaders);\n }\n var paginatedResource = new paginatedresource_1.default(this, path, headers, envelope, function (resbody, headers, unpacked) {\n return Utils.ensureArray(unpacked ? resbody : decoder(resbody));\n }, \n /* useHttpPaginatedResponse: */ true);\n if (!Utils.arrIn(platform_1.default.Http.methods, _method)) {\n throw new errorinfo_1.default('Unsupported method ' + _method, 40500, 405);\n }\n if (Utils.arrIn(platform_1.default.Http.methodsWithBody, _method)) {\n paginatedResource[_method](params, body, callback);\n }\n else {\n paginatedResource[_method](params, callback);\n }\n };\n Rest.prototype.batchPublish = function (specOrSpecs, callbackArg) {\n if (callbackArg === undefined) {\n if (this.options.promises) {\n return Utils.promisify(this, 'batchPublish', [specOrSpecs]);\n }\n callbackArg = noop;\n }\n var callback = callbackArg;\n var requestBodyDTO;\n var singleSpecMode;\n if (Utils.isArray(specOrSpecs)) {\n requestBodyDTO = specOrSpecs;\n singleSpecMode = false;\n }\n else {\n requestBodyDTO = [specOrSpecs];\n singleSpecMode = true;\n }\n var format = this.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json, headers = Utils.defaultPostHeaders(this.options, format);\n if (this.options.headers)\n Utils.mixin(headers, this.options.headers);\n var requestBody = Utils.encodeBody(requestBodyDTO, format);\n resource_1.default.post(this, '/messages', requestBody, headers, { newBatchResponse: 'true' }, null, function (err, body, headers, unpacked) {\n if (err) {\n // TODO remove this type assertion after fixing https://github.com/ably/ably-js/issues/1405\n callback(err);\n return;\n }\n var batchResults = (unpacked ? body : Utils.decodeBody(body, format));\n // I don't love the below type assertions for `callback` but not sure how to avoid them\n if (singleSpecMode) {\n callback(null, batchResults[0]);\n }\n else {\n callback(null, batchResults);\n }\n });\n };\n Rest.prototype.batchPresence = function (channels, callbackArg) {\n if (callbackArg === undefined) {\n if (this.options.promises) {\n return Utils.promisify(this, 'batchPresence', [channels]);\n }\n callbackArg = noop;\n }\n var callback = callbackArg;\n var format = this.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json, headers = Utils.defaultPostHeaders(this.options, format);\n if (this.options.headers)\n Utils.mixin(headers, this.options.headers);\n var channelsParam = channels.join(',');\n resource_1.default.get(this, '/presence', headers, { newBatchResponse: 'true', channels: channelsParam }, null, function (err, body, headers, unpacked) {\n if (err) {\n // TODO remove this type assertion after fixing https://github.com/ably/ably-js/issues/1405\n callback(err);\n return;\n }\n var batchResult = (unpacked ? body : Utils.decodeBody(body, format));\n callback(null, batchResult);\n });\n };\n Rest.prototype.setLog = function (logOptions) {\n logger_1.default.setLog(logOptions.level, logOptions.handler);\n };\n Rest.Promise = function (options) {\n options = defaults_1.default.objectifyOptions(options);\n options.promises = true;\n return new Rest(options);\n };\n Rest.Callbacks = Rest;\n Rest.Platform = platform_1.default;\n Rest.Message = message_1.default;\n Rest.PresenceMessage = presencemessage_1.default;\n return Rest;\n}());\nvar Channels = /** @class */ (function () {\n function Channels(rest) {\n this.rest = rest;\n this.all = Object.create(null);\n }\n Channels.prototype.get = function (name, channelOptions) {\n name = String(name);\n var channel = this.all[name];\n if (!channel) {\n this.all[name] = channel = new channel_1.default(this.rest, name, channelOptions);\n }\n else if (channelOptions) {\n channel.setOptions(channelOptions);\n }\n return channel;\n };\n /* Included to support certain niche use-cases; most users should ignore this.\n * Please do not use this unless you know what you're doing */\n Channels.prototype.release = function (name) {\n delete this.all[String(name)];\n };\n return Channels;\n}());\nexports.default = Rest;\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(6));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS.enc.Utf8;\n\n}));\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(6));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Initialization and round constants tables\n\t var H = [];\n\t var K = [];\n\n\t // Compute constants\n\t (function () {\n\t function isPrime(n) {\n\t var sqrtN = Math.sqrt(n);\n\t for (var factor = 2; factor <= sqrtN; factor++) {\n\t if (!(n % factor)) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t function getFractionalBits(n) {\n\t return ((n - (n | 0)) * 0x100000000) | 0;\n\t }\n\n\t var n = 2;\n\t var nPrime = 0;\n\t while (nPrime < 64) {\n\t if (isPrime(n)) {\n\t if (nPrime < 8) {\n\t H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n\t }\n\t K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n\n\t nPrime++;\n\t }\n\n\t n++;\n\t }\n\t }());\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-256 hash algorithm.\n\t */\n\t var SHA256 = C_algo.SHA256 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init(H.slice(0));\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\t var f = H[5];\n\t var g = H[6];\n\t var h = H[7];\n\n\t // Computation\n\t for (var i = 0; i < 64; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var gamma0x = W[i - 15];\n\t var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^\n\t ((gamma0x << 14) | (gamma0x >>> 18)) ^\n\t (gamma0x >>> 3);\n\n\t var gamma1x = W[i - 2];\n\t var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^\n\t ((gamma1x << 13) | (gamma1x >>> 19)) ^\n\t (gamma1x >>> 10);\n\n\t W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n\t }\n\n\t var ch = (e & f) ^ (~e & g);\n\t var maj = (a & b) ^ (a & c) ^ (b & c);\n\n\t var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n\t var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\n\n\t var t1 = h + sigma1 + ch + K[i] + W[i];\n\t var t2 = sigma0 + maj;\n\n\t h = g;\n\t g = f;\n\t f = e;\n\t e = (d + t1) | 0;\n\t d = c;\n\t c = b;\n\t b = a;\n\t a = (t1 + t2) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t H[5] = (H[5] + f) | 0;\n\t H[6] = (H[6] + g) | 0;\n\t H[7] = (H[7] + h) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA256('message');\n\t * var hash = CryptoJS.SHA256(wordArray);\n\t */\n\t C.SHA256 = Hasher._createHelper(SHA256);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA256(message, key);\n\t */\n\t C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA256;\n\n}));\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\nvar eventemitter_1 = tslib_1.__importDefault(__webpack_require__(7));\nvar logger_1 = tslib_1.__importDefault(__webpack_require__(2));\nvar presence_1 = tslib_1.__importDefault(__webpack_require__(34));\nvar message_1 = tslib_1.__importDefault(__webpack_require__(9));\nvar errorinfo_1 = tslib_1.__importDefault(__webpack_require__(4));\nvar paginatedresource_1 = tslib_1.__importDefault(__webpack_require__(19));\nvar resource_1 = tslib_1.__importDefault(__webpack_require__(14));\nvar platform_1 = tslib_1.__importDefault(__webpack_require__(3));\nfunction noop() { }\nvar MSG_ID_ENTROPY_BYTES = 9;\nfunction allEmptyIds(messages) {\n return Utils.arrEvery(messages, function (message) {\n return !message.id;\n });\n}\nfunction normaliseChannelOptions(options) {\n var channelOptions = options || {};\n if (channelOptions.cipher) {\n if (!platform_1.default.Crypto)\n throw new Error('Encryption not enabled; use ably.encryption.js instead');\n var cipher = platform_1.default.Crypto.getCipher(channelOptions.cipher);\n channelOptions.cipher = cipher.cipherParams;\n channelOptions.channelCipher = cipher.cipher;\n }\n else if ('cipher' in channelOptions) {\n /* Don't deactivate an existing cipher unless options\n * has a 'cipher' key that's falsey */\n channelOptions.cipher = undefined;\n channelOptions.channelCipher = null;\n }\n return channelOptions;\n}\nvar Channel = /** @class */ (function (_super) {\n tslib_1.__extends(Channel, _super);\n function Channel(rest, name, channelOptions) {\n var _this = _super.call(this) || this;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Channel()', 'started; name = ' + name);\n _this.rest = rest;\n _this.name = name;\n _this.basePath = '/channels/' + encodeURIComponent(name);\n _this.presence = new presence_1.default(_this);\n _this.channelOptions = normaliseChannelOptions(channelOptions);\n return _this;\n }\n Channel.prototype.setOptions = function (options) {\n this.channelOptions = normaliseChannelOptions(options);\n };\n Channel.prototype.history = function (params, callback) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Channel.history()', 'channel = ' + this.name);\n /* params and callback are optional; see if params contains the callback */\n if (callback === undefined) {\n if (typeof params == 'function') {\n callback = params;\n params = null;\n }\n else {\n if (this.rest.options.promises) {\n return Utils.promisify(this, 'history', arguments);\n }\n callback = noop;\n }\n }\n this._history(params, callback);\n };\n Channel.prototype._history = function (params, callback) {\n var rest = this.rest, format = rest.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json, envelope = this.rest.http.supportsLinkHeaders ? undefined : format, headers = Utils.defaultGetHeaders(rest.options, format);\n if (rest.options.headers)\n Utils.mixin(headers, rest.options.headers);\n var options = this.channelOptions;\n new paginatedresource_1.default(rest, this.basePath + '/messages', headers, envelope, function (body, headers, unpacked) {\n return message_1.default.fromResponseBody(body, options, unpacked ? undefined : format);\n }).get(params, callback);\n };\n Channel.prototype.publish = function () {\n var _this = this;\n var argCount = arguments.length, first = arguments[0], second = arguments[1];\n var callback = arguments[argCount - 1];\n var messages;\n var params;\n if (typeof callback !== 'function') {\n if (this.rest.options.promises) {\n return Utils.promisify(this, 'publish', arguments);\n }\n callback = noop;\n }\n if (typeof first === 'string' || first === null) {\n /* (name, data, ...) */\n messages = [message_1.default.fromValues({ name: first, data: second })];\n params = arguments[2];\n }\n else if (Utils.isObject(first)) {\n messages = [message_1.default.fromValues(first)];\n params = arguments[1];\n }\n else if (Utils.isArray(first)) {\n messages = message_1.default.fromValuesArray(first);\n params = arguments[1];\n }\n else {\n throw new errorinfo_1.default('The single-argument form of publish() expects a message object or an array of message objects', 40013, 400);\n }\n if (typeof params !== 'object' || !params) {\n /* No params supplied (so after-message argument is just the callback or undefined) */\n params = {};\n }\n var rest = this.rest, options = rest.options, format = options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json, idempotentRestPublishing = rest.options.idempotentRestPublishing, headers = Utils.defaultPostHeaders(rest.options, format);\n if (options.headers)\n Utils.mixin(headers, options.headers);\n if (idempotentRestPublishing && allEmptyIds(messages)) {\n var msgIdBase_1 = Utils.randomString(MSG_ID_ENTROPY_BYTES);\n Utils.arrForEach(messages, function (message, index) {\n message.id = msgIdBase_1 + ':' + index.toString();\n });\n }\n message_1.default.encodeArray(messages, this.channelOptions, function (err) {\n if (err) {\n callback(err);\n return;\n }\n /* RSL1i */\n var size = message_1.default.getMessagesSize(messages), maxMessageSize = options.maxMessageSize;\n if (size > maxMessageSize) {\n callback(new errorinfo_1.default('Maximum size of messages that can be published at once exceeded ( was ' +\n size +\n ' bytes; limit is ' +\n maxMessageSize +\n ' bytes)', 40009, 400));\n return;\n }\n _this._publish(message_1.default.serialize(messages, format), headers, params, callback);\n });\n };\n Channel.prototype._publish = function (requestBody, headers, params, callback) {\n resource_1.default.post(this.rest, this.basePath + '/messages', requestBody, headers, params, null, callback);\n };\n Channel.prototype.status = function (callback) {\n if (typeof callback !== 'function' && this.rest.options.promises) {\n return Utils.promisify(this, 'status', []);\n }\n var format = this.rest.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json;\n var headers = Utils.defaultPostHeaders(this.rest.options, format);\n resource_1.default.get(this.rest, this.basePath, headers, {}, format, callback || noop);\n };\n return Channel;\n}(eventemitter_1.default));\nexports.default = Channel;\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\nvar eventemitter_1 = tslib_1.__importDefault(__webpack_require__(7));\nvar logger_1 = tslib_1.__importDefault(__webpack_require__(2));\nvar paginatedresource_1 = tslib_1.__importDefault(__webpack_require__(19));\nvar presencemessage_1 = tslib_1.__importDefault(__webpack_require__(15));\nfunction noop() { }\nvar Presence = /** @class */ (function (_super) {\n tslib_1.__extends(Presence, _super);\n function Presence(channel) {\n var _this = _super.call(this) || this;\n _this.channel = channel;\n _this.basePath = channel.basePath + '/presence';\n return _this;\n }\n Presence.prototype.get = function (params, callback) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Presence.get()', 'channel = ' + this.channel.name);\n /* params and callback are optional; see if params contains the callback */\n if (callback === undefined) {\n if (typeof params == 'function') {\n callback = params;\n params = null;\n }\n else {\n if (this.channel.rest.options.promises) {\n return Utils.promisify(this, 'get', arguments);\n }\n callback = noop;\n }\n }\n var rest = this.channel.rest, format = rest.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json, envelope = this.channel.rest.http.supportsLinkHeaders ? undefined : format, headers = Utils.defaultGetHeaders(rest.options, format);\n if (rest.options.headers)\n Utils.mixin(headers, rest.options.headers);\n var options = this.channel.channelOptions;\n new paginatedresource_1.default(rest, this.basePath, headers, envelope, function (body, headers, unpacked) {\n return presencemessage_1.default.fromResponseBody(body, options, unpacked ? undefined : format);\n }).get(params, callback);\n };\n Presence.prototype.history = function (params, callback) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Presence.history()', 'channel = ' + this.channel.name);\n return this._history(params, callback);\n };\n Presence.prototype._history = function (params, callback) {\n /* params and callback are optional; see if params contains the callback */\n if (callback === undefined) {\n if (typeof params == 'function') {\n callback = params;\n params = null;\n }\n else {\n if (this.channel.rest.options.promises) {\n return Utils.promisify(this, '_history', [params]);\n }\n callback = noop;\n }\n }\n var rest = this.channel.rest, format = rest.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json, envelope = this.channel.rest.http.supportsLinkHeaders ? undefined : format, headers = Utils.defaultGetHeaders(rest.options, format);\n if (rest.options.headers)\n Utils.mixin(headers, rest.options.headers);\n var options = this.channel.channelOptions;\n new paginatedresource_1.default(rest, this.basePath + '/history', headers, envelope, function (body, headers, unpacked) {\n return presencemessage_1.default.fromResponseBody(body, options, unpacked ? undefined : format);\n }).get(params, callback);\n };\n return Presence;\n}(eventemitter_1.default));\nexports.default = Presence;\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TransportParams = void 0;\nvar tslib_1 = __webpack_require__(0);\nvar protocolmessage_1 = tslib_1.__importDefault(__webpack_require__(10));\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\nvar protocol_1 = tslib_1.__importStar(__webpack_require__(52));\nvar defaults_1 = tslib_1.__importStar(__webpack_require__(8));\nvar platform_1 = tslib_1.__importDefault(__webpack_require__(3));\nvar eventemitter_1 = tslib_1.__importDefault(__webpack_require__(7));\nvar messagequeue_1 = tslib_1.__importDefault(__webpack_require__(36));\nvar logger_1 = tslib_1.__importDefault(__webpack_require__(2));\nvar connectionstatechange_1 = tslib_1.__importDefault(__webpack_require__(37));\nvar connectionerrors_1 = tslib_1.__importStar(__webpack_require__(20));\nvar errorinfo_1 = tslib_1.__importStar(__webpack_require__(4));\nvar auth_1 = tslib_1.__importDefault(__webpack_require__(17));\nvar message_1 = tslib_1.__importDefault(__webpack_require__(9));\nvar multicaster_1 = tslib_1.__importDefault(__webpack_require__(23));\nvar websockettransport_1 = tslib_1.__importDefault(__webpack_require__(53));\nvar transport_1 = tslib_1.__importDefault(__webpack_require__(26));\nvar HttpStatusCodes_1 = tslib_1.__importDefault(__webpack_require__(25));\nvar haveWebStorage = function () { var _a; return typeof platform_1.default.WebStorage !== 'undefined' && ((_a = platform_1.default.WebStorage) === null || _a === void 0 ? void 0 : _a.localSupported); };\nvar haveSessionStorage = function () { var _a; return typeof platform_1.default.WebStorage !== 'undefined' && ((_a = platform_1.default.WebStorage) === null || _a === void 0 ? void 0 : _a.sessionSupported); };\nvar actions = protocolmessage_1.default.Action;\nvar noop = function () { };\nvar transportPreferenceName = 'ably-transport-preference';\nvar sessionRecoveryName = 'ably-connection-recovery';\nfunction getSessionRecoverData() {\n var _a, _b;\n return haveSessionStorage() && ((_b = (_a = platform_1.default.WebStorage) === null || _a === void 0 ? void 0 : _a.getSession) === null || _b === void 0 ? void 0 : _b.call(_a, sessionRecoveryName));\n}\nfunction setSessionRecoverData(value) {\n var _a, _b;\n return haveSessionStorage() && ((_b = (_a = platform_1.default.WebStorage) === null || _a === void 0 ? void 0 : _a.setSession) === null || _b === void 0 ? void 0 : _b.call(_a, sessionRecoveryName, value));\n}\nfunction clearSessionRecoverData() {\n var _a, _b;\n return haveSessionStorage() && ((_b = (_a = platform_1.default.WebStorage) === null || _a === void 0 ? void 0 : _a.removeSession) === null || _b === void 0 ? void 0 : _b.call(_a, sessionRecoveryName));\n}\nfunction betterTransportThan(a, b) {\n return (Utils.arrIndexOf(platform_1.default.Defaults.transportPreferenceOrder, a.shortName) >\n Utils.arrIndexOf(platform_1.default.Defaults.transportPreferenceOrder, b.shortName));\n}\nfunction bundleWith(dest, src, maxSize) {\n var action;\n if (dest.channel !== src.channel) {\n /* RTL6d3 */\n return false;\n }\n if ((action = dest.action) !== actions.PRESENCE && action !== actions.MESSAGE) {\n /* RTL6d - can only bundle messages or presence */\n return false;\n }\n if (action !== src.action) {\n /* RTL6d4 */\n return false;\n }\n var kind = action === actions.PRESENCE ? 'presence' : 'messages', proposed = dest[kind].concat(src[kind]), size = message_1.default.getMessagesSize(proposed);\n if (size > maxSize) {\n /* RTL6d1 */\n return false;\n }\n if (!Utils.allSame(proposed, 'clientId')) {\n /* RTL6d2 */\n return false;\n }\n if (!Utils.arrEvery(proposed, function (msg) {\n return !msg.id;\n })) {\n /* RTL6d7 */\n return false;\n }\n /* we're good to go! */\n dest[kind] = proposed;\n return true;\n}\nfunction decodeRecoveryKey(recoveryKey) {\n try {\n return JSON.parse(recoveryKey);\n }\n catch (e) {\n return null;\n }\n}\nvar TransportParams = /** @class */ (function () {\n function TransportParams(options, host, mode, connectionKey) {\n this.options = options;\n this.host = host;\n this.mode = mode;\n this.connectionKey = connectionKey;\n this.format = options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json;\n }\n TransportParams.prototype.getConnectParams = function (authParams) {\n var params = authParams ? Utils.copy(authParams) : {};\n var options = this.options;\n switch (this.mode) {\n case 'upgrade':\n params.upgrade = this.connectionKey;\n break;\n case 'resume':\n params.resume = this.connectionKey;\n break;\n case 'recover': {\n var recoveryContext = decodeRecoveryKey(options.recover);\n if (recoveryContext) {\n params.recover = recoveryContext.connectionKey;\n }\n break;\n }\n default:\n }\n if (options.clientId !== undefined) {\n params.clientId = options.clientId;\n }\n if (options.echoMessages === false) {\n params.echo = 'false';\n }\n if (this.format !== undefined) {\n params.format = this.format;\n }\n if (this.stream !== undefined) {\n params.stream = this.stream;\n }\n if (this.heartbeats !== undefined) {\n params.heartbeats = this.heartbeats;\n }\n params.v = defaults_1.default.protocolVersion;\n params.agent = encodeURIComponent((0, defaults_1.getAgentString)(this.options));\n if (options.transportParams !== undefined) {\n Utils.mixin(params, options.transportParams);\n }\n return params;\n };\n TransportParams.prototype.toString = function () {\n var result = '[mode=' + this.mode;\n if (this.host) {\n result += ',host=' + this.host;\n }\n if (this.connectionKey) {\n result += ',connectionKey=' + this.connectionKey;\n }\n if (this.format) {\n result += ',format=' + this.format;\n }\n result += ']';\n return result;\n };\n return TransportParams;\n}());\nexports.TransportParams = TransportParams;\nvar ConnectionManager = /** @class */ (function (_super) {\n tslib_1.__extends(ConnectionManager, _super);\n function ConnectionManager(realtime, options) {\n var _this = _super.call(this) || this;\n _this.disconnectedRetryCount = 0;\n ConnectionManager.initTransports();\n _this.realtime = realtime;\n _this.options = options;\n var timeouts = options.timeouts;\n /* connectingTimeout: leave preferenceConnectTimeout (~6s) to try the\n * preference transport, then realtimeRequestTimeout (~10s) to establish\n * the base transport in case that fails */\n var connectingTimeout = timeouts.preferenceConnectTimeout + timeouts.realtimeRequestTimeout;\n _this.states = {\n initialized: {\n state: 'initialized',\n terminal: false,\n queueEvents: true,\n sendEvents: false,\n failState: 'disconnected',\n },\n connecting: {\n state: 'connecting',\n terminal: false,\n queueEvents: true,\n sendEvents: false,\n retryDelay: connectingTimeout,\n failState: 'disconnected',\n },\n connected: {\n state: 'connected',\n terminal: false,\n queueEvents: false,\n sendEvents: true,\n failState: 'disconnected',\n },\n synchronizing: {\n state: 'connected',\n terminal: false,\n queueEvents: true,\n sendEvents: false,\n forceQueueEvents: true,\n failState: 'disconnected',\n },\n disconnected: {\n state: 'disconnected',\n terminal: false,\n queueEvents: true,\n sendEvents: false,\n retryDelay: timeouts.disconnectedRetryTimeout,\n failState: 'disconnected',\n },\n suspended: {\n state: 'suspended',\n terminal: false,\n queueEvents: false,\n sendEvents: false,\n retryDelay: timeouts.suspendedRetryTimeout,\n failState: 'suspended',\n },\n closing: {\n state: 'closing',\n terminal: false,\n queueEvents: false,\n sendEvents: false,\n retryDelay: timeouts.realtimeRequestTimeout,\n failState: 'closed',\n },\n closed: { state: 'closed', terminal: true, queueEvents: false, sendEvents: false, failState: 'closed' },\n failed: { state: 'failed', terminal: true, queueEvents: false, sendEvents: false, failState: 'failed' },\n };\n _this.state = _this.states.initialized;\n _this.errorReason = null;\n _this.queuedMessages = new messagequeue_1.default();\n _this.msgSerial = 0;\n _this.connectionDetails = undefined;\n _this.connectionId = undefined;\n _this.connectionKey = undefined;\n _this.connectionStateTtl = timeouts.connectionStateTtl;\n _this.maxIdleInterval = null;\n _this.transports = Utils.intersect(options.transports || defaults_1.default.defaultTransports, ConnectionManager.supportedTransports);\n /* baseTransports selects the leftmost transport in the Defaults.baseTransportOrder list\n * that's both requested and supported. Normally this will be xhr_polling;\n * if xhr isn't supported it will be jsonp. If the user has forced a\n * transport, it'll just be that one. */\n _this.baseTransport = Utils.intersect(defaults_1.default.baseTransportOrder, _this.transports)[0];\n _this.upgradeTransports = Utils.intersect(_this.transports, defaults_1.default.upgradeTransports);\n _this.transportPreference = null;\n _this.httpHosts = defaults_1.default.getHosts(options);\n _this.activeProtocol = null;\n _this.proposedTransports = [];\n _this.pendingTransports = [];\n _this.host = null;\n _this.lastAutoReconnectAttempt = null;\n _this.lastActivity = null;\n _this.forceFallbackHost = false;\n _this.connectCounter = 0;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Realtime.ConnectionManager()', 'started');\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Realtime.ConnectionManager()', 'requested transports = [' + (options.transports || defaults_1.default.defaultTransports) + ']');\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Realtime.ConnectionManager()', 'available transports = [' + _this.transports + ']');\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Realtime.ConnectionManager()', 'http hosts = [' + _this.httpHosts + ']');\n if (!_this.transports.length) {\n var msg = 'no requested transports available';\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'realtime.ConnectionManager()', msg);\n throw new Error(msg);\n }\n var addEventListener = platform_1.default.Config.addEventListener;\n if (addEventListener) {\n /* intercept close event in browser to persist connection id if requested */\n if (haveSessionStorage() && typeof options.recover === 'function') {\n /* Usually can't use bind as not supported in IE8, but IE doesn't support sessionStorage, so... */\n addEventListener('beforeunload', _this.persistConnection.bind(_this));\n }\n if (options.closeOnUnload === true) {\n addEventListener('beforeunload', function () {\n logger_1.default.logAction(logger_1.default.LOG_MAJOR, 'Realtime.ConnectionManager()', 'beforeunload event has triggered the connection to close as closeOnUnload is true');\n _this.requestState({ state: 'closing' });\n });\n }\n /* Listen for online and offline events */\n addEventListener('online', function () {\n if (_this.state == _this.states.disconnected || _this.state == _this.states.suspended) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager caught browser ‘online’ event', 'reattempting connection');\n _this.requestState({ state: 'connecting' });\n }\n else if (_this.state == _this.states.connecting) {\n // RTN20c: if 'online' event recieved while CONNECTING, abandon connection attempt and retry\n _this.pendingTransports.forEach(function (transport) {\n // Detach transport listeners to avoid connection state side effects from calling dispose\n transport.off();\n });\n _this.disconnectAllTransports();\n _this.startConnect();\n }\n });\n addEventListener('offline', function () {\n if (_this.state == _this.states.connected) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager caught browser ‘offline’ event', 'disconnecting active transport');\n // Not sufficient to just go to the 'disconnected' state, want to\n // force all transports to reattempt the connection. Will immediately\n // retry.\n _this.disconnectAllTransports();\n }\n });\n }\n return _this;\n }\n ConnectionManager.initTransports = function () {\n (0, websockettransport_1.default)(ConnectionManager);\n Utils.arrForEach(platform_1.default.Transports, function (initFn) {\n initFn(ConnectionManager);\n });\n };\n ConnectionManager.prototype.createTransportParams = function (host, mode) {\n return new TransportParams(this.options, host, mode, this.connectionKey);\n };\n ConnectionManager.prototype.getTransportParams = function (callback) {\n var _this = this;\n var decideMode = function (modeCb) {\n if (_this.connectionKey) {\n modeCb('resume');\n return;\n }\n if (typeof _this.options.recover === 'string') {\n modeCb('recover');\n return;\n }\n var recoverFn = _this.options.recover, lastSessionData = getSessionRecoverData();\n if (lastSessionData && typeof recoverFn === 'function') {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.getTransportParams()', 'Calling clientOptions-provided recover function with last session data');\n recoverFn(lastSessionData, function (shouldRecover) {\n if (shouldRecover) {\n _this.options.recover = lastSessionData.recoveryKey;\n modeCb('recover');\n }\n else {\n modeCb('clean');\n }\n });\n return;\n }\n modeCb('clean');\n };\n decideMode(function (mode) {\n var transportParams = _this.createTransportParams(null, mode);\n if (mode === 'recover') {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.getTransportParams()', 'Transport recovery mode = recover; recoveryKey = ' + _this.options.recover);\n var recoveryContext = decodeRecoveryKey(_this.options.recover);\n if (recoveryContext) {\n _this.msgSerial = recoveryContext.msgSerial;\n }\n }\n else {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.getTransportParams()', 'Transport params = ' + transportParams.toString());\n }\n callback(transportParams);\n });\n };\n /**\n * Attempt to connect using a given transport\n * @param transportParams\n * @param candidate, the transport to try\n * @param callback\n */\n ConnectionManager.prototype.tryATransport = function (transportParams, candidate, callback) {\n var _this = this;\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.tryATransport()', 'trying ' + candidate);\n transport_1.default.tryConnect(ConnectionManager.supportedTransports[candidate], this, this.realtime.auth, transportParams, function (wrappedErr, transport) {\n var state = _this.state;\n if (state == _this.states.closing || state == _this.states.closed || state == _this.states.failed) {\n if (transport) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.tryATransport()', 'connection ' + state.state + ' while we were attempting the transport; closing ' + transport);\n transport.close();\n }\n callback(true);\n return;\n }\n if (wrappedErr) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.tryATransport()', 'transport ' + candidate + ' ' + wrappedErr.event + ', err: ' + wrappedErr.error.toString());\n /* Comet transport onconnect token errors can be dealt with here.\n * Websocket ones only happen after the transport claims to be viable,\n * so are dealt with as non-onconnect token errors */\n if (auth_1.default.isTokenErr(wrappedErr.error) &&\n !(_this.errorReason && auth_1.default.isTokenErr(_this.errorReason))) {\n _this.errorReason = wrappedErr.error;\n /* re-get a token and try again */\n _this.realtime.auth._forceNewToken(null, null, function (err) {\n if (err) {\n _this.actOnErrorFromAuthorize(err);\n return;\n }\n _this.tryATransport(transportParams, candidate, callback);\n });\n }\n else if (wrappedErr.event === 'failed') {\n /* Error that's fatal to the connection */\n _this.notifyState({ state: 'failed', error: wrappedErr.error });\n callback(true);\n }\n else if (wrappedErr.event === 'disconnected') {\n if (!(0, connectionerrors_1.isRetriable)(wrappedErr.error)) {\n /* Error received from the server that does not call for trying a fallback host, eg a rate limit */\n _this.notifyState({ state: _this.states.connecting.failState, error: wrappedErr.error });\n callback(true);\n }\n else {\n /* Error with that transport only; continue trying other fallback hosts */\n callback(false);\n }\n }\n return;\n }\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.tryATransport()', 'viable transport ' + candidate + '; setting pending');\n _this.setTransportPending(transport, transportParams);\n callback(null, transport);\n });\n };\n /**\n * Called when a transport is indicated to be viable, and the ConnectionManager\n * expects to activate this transport as soon as it is connected.\n * @param transport\n * @param transportParams\n */\n ConnectionManager.prototype.setTransportPending = function (transport, transportParams) {\n var _this = this;\n var mode = transportParams.mode;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.setTransportPending()', 'transport = ' + transport + '; mode = ' + mode);\n Utils.arrDeleteValue(this.proposedTransports, transport);\n this.pendingTransports.push(transport);\n var optimalTransport = platform_1.default.Defaults.transportPreferenceOrder[platform_1.default.Defaults.transportPreferenceOrder.length - 1];\n transport.once('connected', function (error, connectionId, connectionDetails) {\n if (mode == 'upgrade' && _this.activeProtocol) {\n /* if ws and xhrs are connecting in parallel, delay xhrs activation to let ws go ahead */\n if (transport.shortName !== optimalTransport &&\n Utils.arrIn(_this.getUpgradePossibilities(), optimalTransport) &&\n _this.activeProtocol) {\n setTimeout(function () {\n _this.scheduleTransportActivation(error, transport, connectionId, connectionDetails);\n }, _this.options.timeouts.parallelUpgradeDelay);\n }\n else {\n _this.scheduleTransportActivation(error, transport, connectionId, connectionDetails);\n }\n }\n else {\n _this.activateTransport(error, transport, connectionId, connectionDetails);\n /* allow connectImpl to start the upgrade process if needed, but allow\n * other event handlers, including activating the transport, to run first */\n platform_1.default.Config.nextTick(function () {\n _this.connectImpl(transportParams);\n });\n }\n if (mode === 'recover' && _this.options.recover) {\n /* After a successful recovery, we unpersist, as a recovery key cannot\n * be used more than once */\n _this.options.recover = null;\n _this.unpersistConnection();\n }\n });\n var self = this;\n transport.on(['disconnected', 'closed', 'failed'], function (error) {\n self.deactivateTransport(transport, this.event, error);\n });\n this.emit('transport.pending', transport);\n };\n /**\n * Called when an upgrade transport is connected,\n * to schedule the activation of that transport.\n * @param error\n * @param transport\n * @param connectionId\n * @param connectionDetails\n */\n ConnectionManager.prototype.scheduleTransportActivation = function (error, transport, connectionId, connectionDetails) {\n var _this = this;\n var currentTransport = this.activeProtocol && this.activeProtocol.getTransport(), abandon = function () {\n transport.disconnect();\n Utils.arrDeleteValue(_this.pendingTransports, transport);\n };\n if (this.state !== this.states.connected && this.state !== this.states.connecting) {\n /* This is most likely to happen for the delayed XHRs, when XHRs and ws are scheduled in parallel*/\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.scheduleTransportActivation()', 'Current connection state (' +\n this.state.state +\n (this.state === this.states.synchronizing ? ', but with an upgrade already in progress' : '') +\n ') is not valid to upgrade in; abandoning upgrade to ' +\n transport.shortName);\n abandon();\n return;\n }\n if (currentTransport && !betterTransportThan(transport, currentTransport)) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.scheduleTransportActivation()', 'Proposed transport ' +\n transport.shortName +\n ' is no better than current active transport ' +\n currentTransport.shortName +\n ' - abandoning upgrade');\n abandon();\n return;\n }\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.scheduleTransportActivation()', 'Scheduling transport upgrade; transport = ' + transport);\n var oldProtocol = null;\n if (!transport.isConnected) {\n /* This is only possible if the xhr streaming transport was disconnected during the parallelUpgradeDelay */\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.scheduleTransportActivation()', 'Proposed transport ' + transport.shortName + 'is no longer connected; abandoning upgrade');\n abandon();\n return;\n }\n if (this.state === this.states.connected) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.scheduleTransportActivation()', 'Currently connected, so temporarily pausing events until the upgrade is complete');\n this.state = this.states.synchronizing;\n oldProtocol = this.activeProtocol;\n }\n else if (this.state !== this.states.connecting) {\n /* Note: upgrading from the connecting state is valid if the old active\n * transport was deactivated after the upgrade transport first connected;\n * see logic in deactivateTransport */\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.scheduleTransportActivation()', 'Current connection state (' +\n this.state.state +\n (this.state === this.states.synchronizing ? ', but with an upgrade already in progress' : '') +\n ') is not valid to upgrade in; abandoning upgrade to ' +\n transport.shortName);\n abandon();\n return;\n }\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.scheduleTransportActivation()', 'Syncing transport; transport = ' + transport);\n var finishUpgrade = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.scheduleTransportActivation()', 'Activating transport; transport = ' + transport);\n // Send ACTIVATE to tell the server to make this transport the\n // active transport, which suspends channels until we re-attach.\n transport.send(protocolmessage_1.default.fromValues({\n action: actions.ACTIVATE,\n }));\n _this.activateTransport(error, transport, connectionId, connectionDetails);\n /* Restore pre-sync state. If state has changed in the meantime,\n * don't touch it -- since the websocket transport waits a tick before\n * disposing itself, it's possible for it to have happily synced\n * without err while, unknown to it, the connection has closed in the\n * meantime and the ws transport is scheduled for death */\n if (_this.state === _this.states.synchronizing) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.scheduleTransportActivation()', 'Pre-upgrade protocol idle, sending queued messages on upgraded transport; transport = ' + transport);\n _this.state = _this.states.connected;\n }\n else {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.scheduleTransportActivation()', 'Pre-upgrade protocol idle, but state is now ' + _this.state.state + ', so leaving unchanged');\n }\n if (_this.state.sendEvents) {\n _this.sendQueuedMessages();\n }\n };\n /* Wait until sync is done and old transport is idle before activating new transport. This\n * guarantees that messages arrive at realtime in the same order they are sent.\n *\n * If a message times out on the old transport, since it's still the active transport the\n * message will be requeued. deactivateTransport will see the pending transport and notify\n * the `connecting` state without starting a new connection, so the new transport can take\n * over once deactivateTransport clears the old protocol's queue.\n *\n * If there is no old protocol, that meant that we weren't in the connected state at the\n * beginning of the sync - likely the base transport died just before the sync. So can just\n * finish the upgrade. If we're actually in closing/failed rather than connecting, that's\n * fine, activatetransport will deal with that. */\n if (oldProtocol) {\n /* Most of the time this will be already true: the new-transport sync will have given\n * enough time for in-flight messages on the old transport to complete. */\n oldProtocol.onceIdle(finishUpgrade);\n }\n else {\n finishUpgrade();\n }\n };\n /**\n * Called when a transport is connected, and the connectionmanager decides that\n * it will now be the active transport. Returns whether or not it activated\n * the transport (if the connection is closing/closed it will choose not to).\n * @param transport the transport instance\n * @param connectionId the id of the new active connection\n * @param connectionDetails the details of the new active connection\n */\n ConnectionManager.prototype.activateTransport = function (error, transport, connectionId, connectionDetails) {\n var _this = this;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.activateTransport()', 'transport = ' + transport);\n if (error) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'ConnectionManager.activateTransport()', 'error = ' + error);\n }\n if (connectionId) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.activateTransport()', 'connectionId = ' + connectionId);\n }\n if (connectionDetails) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.activateTransport()', 'connectionDetails = ' + JSON.stringify(connectionDetails));\n }\n this.persistTransportPreference(transport);\n /* if the connectionmanager moved to the closing/closed state before this\n * connection event, then we won't activate this transport */\n var existingState = this.state, connectedState = this.states.connected.state;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.activateTransport()', 'current state = ' + existingState.state);\n if (existingState.state == this.states.closing.state ||\n existingState.state == this.states.closed.state ||\n existingState.state == this.states.failed.state) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.activateTransport()', 'Disconnecting transport and abandoning');\n transport.disconnect();\n return false;\n }\n /* remove this transport from pending transports */\n Utils.arrDeleteValue(this.pendingTransports, transport);\n /* if the transport is not connected then don't activate it */\n if (!transport.isConnected) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.activateTransport()', 'Declining to activate transport ' + transport + ' since it appears to no longer be connected');\n return false;\n }\n /* the given transport is connected; this will immediately\n * take over as the active transport */\n var existingActiveProtocol = this.activeProtocol;\n this.activeProtocol = new protocol_1.default(transport);\n this.host = transport.params.host;\n var connectionKey = connectionDetails.connectionKey;\n if (connectionKey && this.connectionKey != connectionKey) {\n this.setConnection(connectionId, connectionDetails, !!error);\n }\n /* Rebroadcast any new connectionDetails from the active transport, which\n * can come at any time (eg following a reauth), and emit an RTN24 UPDATE\n * event. (Listener added on nextTick because we're in a transport.on('connected')\n * callback at the moment; if we add it now we'll be adding it to the end\n * of the listeners array and it'll be called immediately) */\n this.onConnectionDetailsUpdate(connectionDetails, transport);\n platform_1.default.Config.nextTick(function () {\n transport.on('connected', function (connectedErr, _connectionId, connectionDetails) {\n _this.onConnectionDetailsUpdate(connectionDetails, transport);\n _this.emit('update', new connectionstatechange_1.default(connectedState, connectedState, null, connectedErr));\n });\n });\n /* If previously not connected, notify the state change (including any\n * error). */\n if (existingState.state === this.states.connected.state) {\n if (error) {\n /* if upgrading without error, leave any existing errorReason alone */\n this.errorReason = this.realtime.connection.errorReason = error;\n /* Only bother emitting an upgrade if there's an error; otherwise it's\n * just a transport upgrade, so auth details won't have changed */\n this.emit('update', new connectionstatechange_1.default(connectedState, connectedState, null, error));\n }\n }\n else {\n this.notifyState({ state: 'connected', error: error });\n this.errorReason = this.realtime.connection.errorReason = error || null;\n }\n /* Send after the connection state update, as Channels hooks into this to\n * resend attaches on a new transport if necessary */\n this.emit('transport.active', transport);\n /* Gracefully terminate existing protocol */\n if (existingActiveProtocol) {\n if (existingActiveProtocol.messageQueue.count() > 0) {\n /* We could just requeue pending messages on the new transport, but\n * actually this should never happen: transports should only take over\n * from other active transports when upgrading, and upgrading waits for\n * the old transport to be idle. So log an error. */\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'ConnectionManager.activateTransport()', 'Previous active protocol (for transport ' +\n existingActiveProtocol.transport.shortName +\n ', new one is ' +\n transport.shortName +\n ') finishing with ' +\n existingActiveProtocol.messageQueue.count() +\n ' messages still pending');\n }\n if (existingActiveProtocol.transport === transport) {\n var msg = 'Assumption violated: activating a transport that was also the transport for the previous active protocol; transport = ' +\n transport.shortName +\n '; stack = ' +\n new Error().stack;\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'ConnectionManager.activateTransport()', msg);\n }\n else {\n existingActiveProtocol.finish();\n }\n }\n /* Terminate any other pending transport(s), and\n * abort any not-yet-pending transport attempts */\n Utils.safeArrForEach(this.pendingTransports, function (pendingTransport) {\n if (pendingTransport === transport) {\n var msg = 'Assumption violated: activating a transport that is still marked as a pending transport; transport = ' +\n transport.shortName +\n '; stack = ' +\n new Error().stack;\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'ConnectionManager.activateTransport()', msg);\n Utils.arrDeleteValue(_this.pendingTransports, transport);\n }\n else {\n pendingTransport.disconnect();\n }\n });\n Utils.safeArrForEach(this.proposedTransports, function (proposedTransport) {\n if (proposedTransport === transport) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'ConnectionManager.activateTransport()', 'Assumption violated: activating a transport that is still marked as a proposed transport; transport = ' +\n transport.shortName +\n '; stack = ' +\n new Error().stack);\n Utils.arrDeleteValue(_this.proposedTransports, transport);\n }\n else {\n proposedTransport.dispose();\n }\n });\n return true;\n };\n /**\n * Called when a transport is no longer the active transport. This can occur\n * in any transport connection state.\n * @param transport\n */\n ConnectionManager.prototype.deactivateTransport = function (transport, state, error) {\n var currentProtocol = this.activeProtocol, wasActive = currentProtocol && currentProtocol.getTransport() === transport, wasPending = Utils.arrDeleteValue(this.pendingTransports, transport), wasProposed = Utils.arrDeleteValue(this.proposedTransports, transport), noTransportsScheduledForActivation = this.noTransportsScheduledForActivation();\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.deactivateTransport()', 'transport = ' + transport);\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.deactivateTransport()', 'state = ' +\n state +\n (wasActive ? '; was active' : wasPending ? '; was pending' : wasProposed ? '; was proposed' : '') +\n (noTransportsScheduledForActivation ? '' : '; another transport is scheduled for activation'));\n if (error && error.message)\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.deactivateTransport()', 'reason = ' + error.message);\n if (wasActive) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.deactivateTransport()', 'Getting, clearing, and requeuing ' +\n this.activeProtocol.messageQueue.count() +\n ' pending messages');\n this.queuePendingMessages(currentProtocol.getPendingMessages());\n /* Clear any messages we requeue to allow the protocol to become idle.\n * In case of an upgrade, this will trigger an immediate activation of\n * the upgrade transport, so delay a tick so this transport can finish\n * deactivating */\n platform_1.default.Config.nextTick(function () {\n currentProtocol.clearPendingMessages();\n });\n this.activeProtocol = this.host = null;\n }\n this.emit('transport.inactive', transport);\n /* this transport state change is a state change for the connectionmanager if\n * - the transport was the active transport and there are no transports\n * which are connected and scheduled for activation, just waiting for the\n * active transport to finish what its doing; or\n * - the transport was the active transport and the error was fatal (so\n * unhealable by another transport); or\n * - there is no active transport, and this is the last remaining\n * pending transport (so we were in the connecting state)\n */\n if ((wasActive && noTransportsScheduledForActivation) ||\n (wasActive && state === 'failed') ||\n state === 'closed' ||\n (currentProtocol === null && wasPending && this.pendingTransports.length === 0)) {\n /* If we're disconnected with a 5xx we need to try fallback hosts\n * (RTN14d), but (a) due to how the upgrade sequence works, the\n * host/transport selection sequence only cares about getting to\n * `preconnect` (eg establishing a websocket) getting a `disconnected`\n * protocol message afterwards is too late; and (b) host retry only\n * applies to connectBase unless the stored preference transport doesn't\n * work. We solve this by unpersisting the transport preference and\n * setting an instance variable to force fallback hosts to be used (if\n * any) here. Bit of a kludge, but no real better alternatives without\n * rewriting the entire thing */\n if (state === 'disconnected' && error && error.statusCode > 500 && this.httpHosts.length > 1) {\n this.unpersistTransportPreference();\n this.forceFallbackHost = true;\n /* and try to connect again to try a fallback host without waiting for the usual 15s disconnectedRetryTimeout */\n this.notifyState({ state: state, error: error, retryImmediately: true });\n return;\n }\n /* TODO remove below line once realtime sends token errors as DISCONNECTEDs */\n var newConnectionState = state === 'failed' && auth_1.default.isTokenErr(error) ? 'disconnected' : state;\n this.notifyState({ state: newConnectionState, error: error });\n return;\n }\n if (wasActive && state === 'disconnected' && this.state !== this.states.synchronizing) {\n /* If we were active but there is another transport scheduled for\n * activation, go into to the connecting state until that transport\n * activates and sets us back to connected. (manually starting the\n * transition timers in case that never happens). (If we were in the\n * synchronizing state, then that's fine, the old transport just got its\n * disconnected before the new one got the sync -- ignore it and keep\n * waiting for the sync. If it fails we have a separate sync timer that\n * will expire). */\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.deactivateTransport()', 'wasActive but another transport is connected and scheduled for activation, so going into the connecting state until it activates');\n this.startSuspendTimer();\n this.startTransitionTimer(this.states.connecting);\n this.notifyState({ state: 'connecting', error: error });\n }\n };\n /* Helper that returns true if there are no transports which are pending,\n * have been connected, and are just waiting for onceNoPending to fire before\n * being activated */\n ConnectionManager.prototype.noTransportsScheduledForActivation = function () {\n return (Utils.isEmpty(this.pendingTransports) ||\n this.pendingTransports.every(function (transport) {\n return !transport.isConnected;\n }));\n };\n ConnectionManager.prototype.setConnection = function (connectionId, connectionDetails, hasConnectionError) {\n /* if connectionKey changes but connectionId stays the same, then just a\n * transport change on the same connection. If connectionId changes, we're\n * on a new connection, with implications for msgSerial and channel state */\n /* If no previous connectionId, don't reset the msgSerial as it may have\n * been set by recover data (unless the recover failed) */\n var prevConnId = this.connectionId, connIdChanged = prevConnId && prevConnId !== connectionId, recoverFailure = !prevConnId && hasConnectionError;\n if (connIdChanged || recoverFailure) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.setConnection()', 'Resetting msgSerial');\n this.msgSerial = 0;\n // RTN19a2: In the event of a new connectionId, previous msgSerials are\n // meaningless.\n this.queuedMessages.resetSendAttempted();\n }\n if (this.connectionId !== connectionId) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.setConnection()', 'New connectionId; reattaching any attached channels');\n }\n this.realtime.connection.id = this.connectionId = connectionId;\n this.realtime.connection.key = this.connectionKey = connectionDetails.connectionKey;\n };\n ConnectionManager.prototype.clearConnection = function () {\n this.realtime.connection.id = this.connectionId = undefined;\n this.realtime.connection.key = this.connectionKey = undefined;\n this.msgSerial = 0;\n this.unpersistConnection();\n };\n ConnectionManager.prototype.createRecoveryKey = function () {\n // RTN16g2.\n if (!this.connectionKey) {\n return null;\n }\n return JSON.stringify({\n connectionKey: this.connectionKey,\n msgSerial: this.msgSerial,\n channelSerials: this.realtime.channels.channelSerials(),\n });\n };\n ConnectionManager.prototype.checkConnectionStateFreshness = function () {\n if (!this.lastActivity || !this.connectionId) {\n return;\n }\n var sinceLast = Utils.now() - this.lastActivity;\n if (sinceLast > this.connectionStateTtl + this.maxIdleInterval) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.checkConnectionStateFreshness()', 'Last known activity from realtime was ' + sinceLast + 'ms ago; discarding connection state');\n this.clearConnection();\n this.states.connecting.failState = 'suspended';\n }\n };\n /**\n * Called when the connectionmanager wants to persist transport\n * state for later recovery. Only applicable in the browser context.\n */\n ConnectionManager.prototype.persistConnection = function () {\n if (haveSessionStorage()) {\n var recoveryKey = this.createRecoveryKey();\n if (recoveryKey) {\n setSessionRecoverData({\n recoveryKey: recoveryKey,\n disconnectedAt: Utils.now(),\n location: global.location,\n clientId: this.realtime.auth.clientId,\n });\n }\n }\n };\n /**\n * Called when the connectionmanager wants to persist transport\n * state for later recovery. Only applicable in the browser context.\n */\n ConnectionManager.prototype.unpersistConnection = function () {\n clearSessionRecoverData();\n };\n /*********************\n * state management\n *********************/\n ConnectionManager.prototype.getError = function () {\n return this.errorReason || this.getStateError();\n };\n ConnectionManager.prototype.getStateError = function () {\n var _a, _b;\n return (_b = (_a = connectionerrors_1.default)[this.state.state]) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n ConnectionManager.prototype.activeState = function () {\n return this.state.queueEvents || this.state.sendEvents;\n };\n ConnectionManager.prototype.enactStateChange = function (stateChange) {\n var logLevel = stateChange.current === 'failed' ? logger_1.default.LOG_ERROR : logger_1.default.LOG_MAJOR;\n logger_1.default.logAction(logLevel, 'Connection state', stateChange.current + (stateChange.reason ? '; reason: ' + stateChange.reason : ''));\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.enactStateChange', 'setting new state: ' +\n stateChange.current +\n '; reason = ' +\n (stateChange.reason && stateChange.reason.message));\n var newState = (this.state = this.states[stateChange.current]);\n if (stateChange.reason) {\n this.errorReason = stateChange.reason;\n this.realtime.connection.errorReason = stateChange.reason;\n }\n if (newState.terminal || newState.state === 'suspended') {\n /* suspended is nonterminal, but once in the suspended state, realtime\n * will have discarded our connection state, so futher connection\n * attempts should start from scratch */\n this.clearConnection();\n }\n this.emit('connectionstate', stateChange);\n };\n /****************************************\n * ConnectionManager connection lifecycle\n ****************************************/\n ConnectionManager.prototype.startTransitionTimer = function (transitionState) {\n var _this = this;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.startTransitionTimer()', 'transitionState: ' + transitionState.state);\n if (this.transitionTimer) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.startTransitionTimer()', 'clearing already-running timer');\n clearTimeout(this.transitionTimer);\n }\n this.transitionTimer = setTimeout(function () {\n if (_this.transitionTimer) {\n _this.transitionTimer = null;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager ' + transitionState.state + ' timer expired', 'requesting new state: ' + transitionState.failState);\n _this.notifyState({ state: transitionState.failState });\n }\n }, transitionState.retryDelay);\n };\n ConnectionManager.prototype.cancelTransitionTimer = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.cancelTransitionTimer()', '');\n if (this.transitionTimer) {\n clearTimeout(this.transitionTimer);\n this.transitionTimer = null;\n }\n };\n ConnectionManager.prototype.startSuspendTimer = function () {\n var _this = this;\n if (this.suspendTimer)\n return;\n this.suspendTimer = setTimeout(function () {\n if (_this.suspendTimer) {\n _this.suspendTimer = null;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager suspend timer expired', 'requesting new state: suspended');\n _this.states.connecting.failState = 'suspended';\n _this.notifyState({ state: 'suspended' });\n }\n }, this.connectionStateTtl);\n };\n ConnectionManager.prototype.checkSuspendTimer = function (state) {\n if (state !== 'disconnected' && state !== 'suspended' && state !== 'connecting')\n this.cancelSuspendTimer();\n };\n ConnectionManager.prototype.cancelSuspendTimer = function () {\n this.states.connecting.failState = 'disconnected';\n if (this.suspendTimer) {\n clearTimeout(this.suspendTimer);\n this.suspendTimer = null;\n }\n };\n ConnectionManager.prototype.startRetryTimer = function (interval) {\n var _this = this;\n this.retryTimer = setTimeout(function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager retry timer expired', 'retrying');\n _this.retryTimer = null;\n _this.requestState({ state: 'connecting' });\n }, interval);\n };\n ConnectionManager.prototype.cancelRetryTimer = function () {\n if (this.retryTimer) {\n clearTimeout(this.retryTimer);\n this.retryTimer = null;\n }\n };\n ConnectionManager.prototype.notifyState = function (indicated) {\n var _this = this;\n var _a, _b;\n var state = indicated.state;\n /* We retry immediately if:\n * - something disconnects us while we're connected, or\n * - a viable (but not yet active) transport fails due to a token error (so\n * this.errorReason will be set, and startConnect will do a forced\n * authorize). If this.errorReason is already set (to a token error),\n * then there has been at least one previous attempt to connect that also\n * failed for a token error, so by RTN14b we go to DISCONNECTED and wait\n * before trying again */\n var retryImmediately = state === 'disconnected' &&\n (this.state === this.states.connected ||\n this.state === this.states.synchronizing ||\n indicated.retryImmediately ||\n (this.state === this.states.connecting &&\n indicated.error &&\n auth_1.default.isTokenErr(indicated.error) &&\n !(this.errorReason && auth_1.default.isTokenErr(this.errorReason))));\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.notifyState()', 'new state: ' + state + (retryImmediately ? '; will retry connection immediately' : ''));\n /* do nothing if we're already in the indicated state */\n if (state == this.state.state)\n return;\n /* kill timers (possibly excepting suspend timer depending on the notified\n * state), as these are superseded by this notification */\n this.cancelTransitionTimer();\n this.cancelRetryTimer();\n this.checkSuspendTimer(indicated.state);\n if (state === 'suspended' || state === 'connected') {\n this.disconnectedRetryCount = 0;\n }\n /* do nothing if we're unable to move from the current state */\n if (this.state.terminal)\n return;\n /* process new state */\n var newState = this.states[indicated.state];\n var retryDelay = newState.retryDelay;\n if (newState.state === 'disconnected') {\n this.disconnectedRetryCount++;\n retryDelay = Utils.getRetryTime(newState.retryDelay, this.disconnectedRetryCount);\n }\n var change = new connectionstatechange_1.default(this.state.state, newState.state, retryDelay, indicated.error || ((_b = (_a = connectionerrors_1.default)[newState.state]) === null || _b === void 0 ? void 0 : _b.call(_a)));\n if (retryImmediately) {\n var autoReconnect = function () {\n if (_this.state === _this.states.disconnected) {\n _this.lastAutoReconnectAttempt = Utils.now();\n _this.requestState({ state: 'connecting' });\n }\n };\n var sinceLast = this.lastAutoReconnectAttempt && Utils.now() - this.lastAutoReconnectAttempt + 1;\n if (sinceLast && sinceLast < 1000) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.notifyState()', 'Last reconnect attempt was only ' +\n sinceLast +\n 'ms ago, waiting another ' +\n (1000 - sinceLast) +\n 'ms before trying again');\n setTimeout(autoReconnect, 1000 - sinceLast);\n }\n else {\n platform_1.default.Config.nextTick(autoReconnect);\n }\n }\n else if (state === 'disconnected' || state === 'suspended') {\n this.startRetryTimer(retryDelay);\n }\n /* If going into disconnect/suspended (and not retrying immediately), or a\n * terminal state, ensure there are no orphaned transports hanging around. */\n if ((state === 'disconnected' && !retryImmediately) || state === 'suspended' || newState.terminal) {\n /* Wait till the next tick so the connection state change is enacted,\n * so aborting transports doesn't trigger redundant state changes */\n platform_1.default.Config.nextTick(function () {\n _this.disconnectAllTransports();\n });\n }\n if (state == 'connected' && !this.activeProtocol) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'ConnectionManager.notifyState()', 'Broken invariant: attempted to go into connected state, but there is no active protocol');\n }\n /* implement the change and notify */\n this.enactStateChange(change);\n if (this.state.sendEvents) {\n this.sendQueuedMessages();\n }\n else if (!this.state.queueEvents) {\n this.realtime.channels.propogateConnectionInterruption(state, change.reason);\n this.failQueuedMessages(change.reason); // RTN7c\n }\n };\n ConnectionManager.prototype.requestState = function (request) {\n var _this = this;\n var _a, _b;\n var state = request.state;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.requestState()', 'requested state: ' + state + '; current state: ' + this.state.state);\n if (state == this.state.state)\n return; /* silently do nothing */\n /* kill running timers, as this request supersedes them */\n this.cancelTransitionTimer();\n this.cancelRetryTimer();\n /* for suspend timer check rather than cancel -- eg requesting a connecting\n * state should not reset the suspend timer */\n this.checkSuspendTimer(state);\n if (state == 'connecting' && this.state.state == 'connected')\n return;\n if (state == 'closing' && this.state.state == 'closed')\n return;\n var newState = this.states[state], change = new connectionstatechange_1.default(this.state.state, newState.state, null, request.error || ((_b = (_a = connectionerrors_1.default)[newState.state]) === null || _b === void 0 ? void 0 : _b.call(_a)));\n this.enactStateChange(change);\n if (state == 'connecting') {\n platform_1.default.Config.nextTick(function () {\n _this.startConnect();\n });\n }\n if (state == 'closing') {\n this.closeImpl();\n }\n };\n ConnectionManager.prototype.startConnect = function () {\n var _this = this;\n if (this.state !== this.states.connecting) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.startConnect()', 'Must be in connecting state to connect, but was ' + this.state.state);\n return;\n }\n var auth = this.realtime.auth;\n /* The point of the connectCounter mechanism is to ensure that the\n * connection procedure can be cancelled. We want disconnectAllTransports\n * to be able to stop any in-progress connection, even before it gets to\n * the stage of having a pending (or even a proposed) transport that it can\n * dispose() of. So we check that it's still current after any async stage,\n * up until the stage that is synchronous with instantiating a transport */\n var connectCount = ++this.connectCounter;\n var connect = function () {\n _this.checkConnectionStateFreshness();\n _this.getTransportParams(function (transportParams) {\n if (transportParams.mode === 'recover' && transportParams.options.recover) {\n var recoveryContext = decodeRecoveryKey(transportParams.options.recover);\n if (recoveryContext) {\n _this.realtime.channels.recoverChannels(recoveryContext.channelSerials);\n }\n }\n if (connectCount !== _this.connectCounter) {\n return;\n }\n _this.connectImpl(transportParams, connectCount);\n });\n };\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.startConnect()', 'starting connection');\n this.startSuspendTimer();\n this.startTransitionTimer(this.states.connecting);\n if (auth.method === 'basic') {\n connect();\n }\n else {\n var authCb = function (err) {\n if (connectCount !== _this.connectCounter) {\n return;\n }\n if (err) {\n _this.actOnErrorFromAuthorize(err);\n }\n else {\n connect();\n }\n };\n if (this.errorReason && auth_1.default.isTokenErr(this.errorReason)) {\n /* Force a refetch of a new token */\n auth._forceNewToken(null, null, authCb);\n }\n else {\n auth._ensureValidAuthCredentials(false, authCb);\n }\n }\n };\n /**\n * There are three stages in connecting:\n * - preference: if there is a cached transport preference, we try to connect\n * on that. If that fails or times out we abort the attempt, remove the\n * preference and fall back to base. If it succeeds, we try upgrading it if\n * needed (will only be in the case where the preference is xhrs and the\n * browser supports ws).\n * - base: we try to connect with the best transport that we think will\n * never fail for this browser (usually this is xhr_polling; for very old\n * browsers will be jsonp, for node will be comet). If it doesn't work, we\n * try fallback hosts.\n * - upgrade: given a connected transport, we see if there are any better\n * ones, and if so, try to upgrade to them.\n *\n * connectImpl works out what stage you're at (which is purely a function of\n * the current connection state and whether there are any stored preferences),\n * and dispatches accordingly. After a transport has been set pending,\n * tryATransport calls connectImpl to see if there's another stage to be done.\n * */\n ConnectionManager.prototype.connectImpl = function (transportParams, connectCount) {\n var state = this.state.state;\n if (state !== this.states.connecting.state && state !== this.states.connected.state) {\n /* Only keep trying as long as in the 'connecting' state (or 'connected'\n * for upgrading). Any operation can put us into 'disconnected' to cancel\n * connection attempts and wait before retrying, or 'failed' to fail. */\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.connectImpl()', 'Must be in connecting state to connect (or connected to upgrade), but was ' + state);\n }\n else if (this.pendingTransports.length) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.connectImpl()', 'Transports ' + this.pendingTransports[0].toString() + ' currently pending; taking no action');\n }\n else if (state == this.states.connected.state) {\n this.upgradeIfNeeded(transportParams);\n }\n else if (this.transports.length > 1 && this.getTransportPreference()) {\n this.connectPreference(transportParams, connectCount);\n }\n else {\n this.connectBase(transportParams, connectCount);\n }\n };\n ConnectionManager.prototype.connectPreference = function (transportParams, connectCount) {\n var _this = this;\n var preference = this.getTransportPreference();\n var preferenceTimeoutExpired = false;\n if (!Utils.arrIn(this.transports, preference)) {\n this.unpersistTransportPreference();\n this.connectImpl(transportParams, connectCount);\n }\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.connectPreference()', 'Trying to connect with stored transport preference ' + preference);\n var preferenceTimeout = setTimeout(function () {\n preferenceTimeoutExpired = true;\n if (!(_this.state.state === _this.states.connected.state)) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.connectPreference()', 'Shortcircuit connection attempt with ' + preference + ' failed; clearing preference and trying from scratch');\n /* Abort all connection attempts. (This also disconnects the active\n * protocol, but none exists if we're not in the connected state) */\n _this.disconnectAllTransports();\n /* Be quite agressive about clearing the stored preference if ever it doesn't work */\n _this.unpersistTransportPreference();\n }\n _this.connectImpl(transportParams, connectCount);\n }, this.options.timeouts.preferenceConnectTimeout);\n /* For connectPreference, just use the main host. If host fallback is needed, do it in connectBase.\n * The wstransport it will substitute the httphost for an appropriate wshost */\n transportParams.host = this.httpHosts[0];\n this.tryATransport(transportParams, preference, function (fatal, transport) {\n clearTimeout(preferenceTimeout);\n if (preferenceTimeoutExpired && transport) {\n /* Viable, but too late - connectImpl() will already be trying\n * connectBase, and we weren't in upgrade mode. Just remove the\n * onconnected listener and get rid of it */\n transport.off();\n transport.disconnect();\n Utils.arrDeleteValue(_this.pendingTransports, transport);\n }\n else if (!transport && !fatal) {\n /* Preference failed in a transport-specific way. Try more */\n _this.unpersistTransportPreference();\n _this.connectImpl(transportParams, connectCount);\n }\n /* If suceeded, or failed fatally, nothing to do */\n });\n };\n /**\n * Try to establish a transport on the base transport (the best transport\n * such that if it doesn't work, nothing will work) as determined through\n * static feature detection, checking for network connectivity and trying\n * fallback hosts if applicable.\n * @param transportParams\n */\n ConnectionManager.prototype.connectBase = function (transportParams, connectCount) {\n var _this = this;\n var giveUp = function (err) {\n _this.notifyState({ state: _this.states.connecting.failState, error: err });\n };\n var candidateHosts = this.httpHosts.slice();\n var hostAttemptCb = function (fatal, transport) {\n if (connectCount !== _this.connectCounter) {\n return;\n }\n if (!transport && !fatal) {\n tryFallbackHosts();\n }\n };\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.connectBase()', 'Trying to connect with base transport ' + this.baseTransport);\n /* first try to establish a connection with the priority host with http transport */\n var host = candidateHosts.shift();\n if (!host) {\n giveUp(new errorinfo_1.default('Unable to connect (no available host)', 80003, 404));\n return;\n }\n transportParams.host = host;\n /* this is what we'll be doing if the attempt for the main host fails */\n var tryFallbackHosts = function () {\n /* if there aren't any fallback hosts, fail */\n if (!candidateHosts.length) {\n giveUp(new errorinfo_1.default('Unable to connect (and no more fallback hosts to try)', 80003, 404));\n return;\n }\n /* before trying any fallback (or any remaining fallback) we decide if\n * there is a problem with the ably host, or there is a general connectivity\n * problem */\n if (!_this.realtime.http.checkConnectivity) {\n giveUp(new errorinfo_1.PartialErrorInfo('Internal error: Http.checkConnectivity not set', null, 500));\n return;\n }\n _this.realtime.http.checkConnectivity(function (err, connectivity) {\n if (connectCount !== _this.connectCounter) {\n return;\n }\n /* we know err won't happen but handle it here anyway */\n if (err) {\n giveUp(err);\n return;\n }\n if (!connectivity) {\n /* the internet isn't reachable, so don't try the fallback hosts */\n giveUp(new errorinfo_1.default('Unable to connect (network unreachable)', 80003, 404));\n return;\n }\n /* the network is there, so there's a problem with the main host, or\n * its dns. Try the fallback hosts. We could try them simultaneously but\n * that would potentially cause a huge spike in load on the load balancer */\n transportParams.host = Utils.arrPopRandomElement(candidateHosts);\n _this.tryATransport(transportParams, _this.baseTransport, hostAttemptCb);\n });\n };\n if (this.forceFallbackHost && candidateHosts.length) {\n this.forceFallbackHost = false;\n tryFallbackHosts();\n return;\n }\n this.tryATransport(transportParams, this.baseTransport, hostAttemptCb);\n };\n ConnectionManager.prototype.getUpgradePossibilities = function () {\n /* returns the subset of upgradeTransports to the right of the current\n * transport in upgradeTransports (if it's in there - if not, currentSerial\n * will be -1, so return upgradeTransports.slice(0) == upgradeTransports */\n var current = this.activeProtocol.getTransport().shortName;\n var currentSerial = Utils.arrIndexOf(this.upgradeTransports, current);\n return this.upgradeTransports.slice(currentSerial + 1);\n };\n ConnectionManager.prototype.upgradeIfNeeded = function (transportParams) {\n var _this = this;\n var upgradePossibilities = this.getUpgradePossibilities();\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.upgradeIfNeeded()', 'upgrade possibilities: ' + platform_1.default.Config.inspect(upgradePossibilities));\n if (!upgradePossibilities.length) {\n return;\n }\n Utils.arrForEach(upgradePossibilities, function (upgradeTransport) {\n /* Note: the transport may mutate the params, so give each transport a fresh one */\n var upgradeTransportParams = _this.createTransportParams(transportParams.host, 'upgrade');\n _this.tryATransport(upgradeTransportParams, upgradeTransport, noop);\n });\n };\n ConnectionManager.prototype.closeImpl = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.closeImpl()', 'closing connection');\n this.cancelSuspendTimer();\n this.startTransitionTimer(this.states.closing);\n Utils.safeArrForEach(this.pendingTransports, function (transport) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.closeImpl()', 'Closing pending transport: ' + transport);\n if (transport)\n transport.close();\n });\n Utils.safeArrForEach(this.proposedTransports, function (transport) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.closeImpl()', 'Disposing of proposed transport: ' + transport);\n if (transport)\n transport.dispose();\n });\n if (this.activeProtocol) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.closeImpl()', 'Closing active transport: ' + this.activeProtocol.getTransport());\n this.activeProtocol.getTransport().close();\n }\n /* If there was an active transport, this will probably be\n * preempted by the notifyState call in deactivateTransport */\n this.notifyState({ state: 'closed' });\n };\n ConnectionManager.prototype.onAuthUpdated = function (tokenDetails, callback) {\n var _this = this;\n var _a;\n switch (this.state.state) {\n case 'connected': {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.onAuthUpdated()', 'Sending AUTH message on active transport');\n /* If there are any proposed/pending transports (eg an upgrade that\n * isn't yet scheduled for activation) that hasn't yet started syncing,\n * just to get rid of them & restart the upgrade with the new token, to\n * avoid a race condition. (If it has started syncing, the AUTH will be\n * queued until the upgrade is complete, so everything's fine) */\n if ((this.pendingTransports.length || this.proposedTransports.length) &&\n this.state !== this.states.synchronizing) {\n this.disconnectAllTransports(/* exceptActive: */ true);\n var transportParams_1 = this.activeProtocol.getTransport().params;\n platform_1.default.Config.nextTick(function () {\n if (_this.state.state === 'connected') {\n _this.upgradeIfNeeded(transportParams_1);\n }\n });\n }\n /* Do any transport-specific new-token action */\n var activeTransport = (_a = this.activeProtocol) === null || _a === void 0 ? void 0 : _a.getTransport();\n if (activeTransport && activeTransport.onAuthUpdated) {\n activeTransport.onAuthUpdated(tokenDetails);\n }\n var authMsg = protocolmessage_1.default.fromValues({\n action: actions.AUTH,\n auth: {\n accessToken: tokenDetails.token,\n },\n });\n this.send(authMsg);\n /* The answer will come back as either a connectiondetails event\n * (realtime sends a CONNECTED to acknowledge the reauth) or a\n * statechange to failed */\n var successListener_1 = function () {\n _this.off(failureListener_1);\n callback(null, tokenDetails);\n };\n var failureListener_1 = function (stateChange) {\n if (stateChange.current === 'failed') {\n _this.off(successListener_1);\n _this.off(failureListener_1);\n callback(stateChange.reason || _this.getStateError());\n }\n };\n this.once('connectiondetails', successListener_1);\n this.on('connectionstate', failureListener_1);\n break;\n }\n case 'connecting':\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.onAuthUpdated()', 'Aborting current connection attempts in order to start again with the new auth details');\n this.disconnectAllTransports();\n /* fallthrough to add statechange listener */\n default: {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.onAuthUpdated()', 'Connection state is ' + this.state.state + '; waiting until either connected or failed');\n var listener_1 = function (stateChange) {\n switch (stateChange.current) {\n case 'connected':\n _this.off(listener_1);\n callback(null, tokenDetails);\n break;\n case 'failed':\n case 'closed':\n case 'suspended':\n _this.off(listener_1);\n callback(stateChange.reason || _this.getStateError());\n break;\n default:\n /* ignore till we get either connected or failed */\n break;\n }\n };\n this.on('connectionstate', listener_1);\n if (this.state.state === 'connecting') {\n /* can happen if in the connecting state but no transport was pending\n * yet, so disconnectAllTransports did not trigger a disconnected state */\n this.startConnect();\n }\n else {\n this.requestState({ state: 'connecting' });\n }\n }\n }\n };\n ConnectionManager.prototype.disconnectAllTransports = function (exceptActive) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.disconnectAllTransports()', 'Disconnecting all transports' + (exceptActive ? ' except the active transport' : ''));\n /* This will prevent any connection procedure in an async part of one of its early stages from continuing */\n this.connectCounter++;\n Utils.safeArrForEach(this.pendingTransports, function (transport) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.disconnectAllTransports()', 'Disconnecting pending transport: ' + transport);\n if (transport)\n transport.disconnect();\n });\n this.pendingTransports = [];\n Utils.safeArrForEach(this.proposedTransports, function (transport) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.disconnectAllTransports()', 'Disposing of proposed transport: ' + transport);\n if (transport)\n transport.dispose();\n });\n this.proposedTransports = [];\n if (this.activeProtocol && !exceptActive) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.disconnectAllTransports()', 'Disconnecting active transport: ' + this.activeProtocol.getTransport());\n this.activeProtocol.getTransport().disconnect();\n }\n /* No need to notify state disconnected; disconnecting the active transport\n * will have that effect */\n };\n /******************\n * event queueing\n ******************/\n ConnectionManager.prototype.send = function (msg, queueEvent, callback) {\n callback = callback || noop;\n var state = this.state;\n if (state.sendEvents) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.send()', 'sending event');\n this.sendImpl(new protocol_1.PendingMessage(msg, callback));\n return;\n }\n var shouldQueue = (queueEvent && state.queueEvents) || state.forceQueueEvents;\n if (!shouldQueue) {\n var err = 'rejecting event, queueEvent was ' + queueEvent + ', state was ' + state.state;\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.send()', err);\n callback(this.errorReason || new errorinfo_1.default(err, 90000, 400));\n return;\n }\n if (logger_1.default.shouldLog(logger_1.default.LOG_MICRO)) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.send()', 'queueing msg; ' + protocolmessage_1.default.stringify(msg));\n }\n this.queue(msg, callback);\n };\n ConnectionManager.prototype.sendImpl = function (pendingMessage) {\n var msg = pendingMessage.message;\n /* If have already attempted to send this, resend with the same msgSerial,\n * so Ably can dedup if the previous send succeeded */\n if (pendingMessage.ackRequired && !pendingMessage.sendAttempted) {\n msg.msgSerial = this.msgSerial++;\n }\n try {\n this.activeProtocol.send(pendingMessage);\n }\n catch (e) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'ConnectionManager.sendImpl()', 'Unexpected exception in transport.send(): ' + e.stack);\n }\n };\n ConnectionManager.prototype.queue = function (msg, callback) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.queue()', 'queueing event');\n var lastQueued = this.queuedMessages.last();\n var maxSize = this.options.maxMessageSize;\n /* If have already attempted to send a message, don't merge more messages\n * into it, as if the previous send actually succeeded and realtime ignores\n * the dup, they'll be lost */\n if (lastQueued && !lastQueued.sendAttempted && bundleWith(lastQueued.message, msg, maxSize)) {\n if (!lastQueued.merged) {\n lastQueued.callback = multicaster_1.default.create([lastQueued.callback]);\n lastQueued.merged = true;\n }\n lastQueued.callback.push(callback);\n }\n else {\n this.queuedMessages.push(new protocol_1.PendingMessage(msg, callback));\n }\n };\n ConnectionManager.prototype.sendQueuedMessages = function () {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.sendQueuedMessages()', 'sending ' + this.queuedMessages.count() + ' queued messages');\n var pendingMessage;\n while ((pendingMessage = this.queuedMessages.shift()))\n this.sendImpl(pendingMessage);\n };\n ConnectionManager.prototype.queuePendingMessages = function (pendingMessages) {\n if (pendingMessages && pendingMessages.length) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.queuePendingMessages()', 'queueing ' + pendingMessages.length + ' pending messages');\n this.queuedMessages.prepend(pendingMessages);\n }\n };\n ConnectionManager.prototype.failQueuedMessages = function (err) {\n var numQueued = this.queuedMessages.count();\n if (numQueued > 0) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'ConnectionManager.failQueuedMessages()', 'failing ' + numQueued + ' queued messages, err = ' + Utils.inspectError(err));\n this.queuedMessages.completeAllMessages(err);\n }\n };\n ConnectionManager.prototype.onChannelMessage = function (message, transport) {\n var onActiveTransport = this.activeProtocol && transport === this.activeProtocol.getTransport(), onUpgradeTransport = Utils.arrIn(this.pendingTransports, transport) && this.state == this.states.synchronizing;\n /* As the lib now has a period where the upgrade transport is synced but\n * before it's become active (while waiting for the old one to become\n * idle), message can validly arrive on it even though it isn't active */\n if (onActiveTransport || onUpgradeTransport) {\n this.realtime.channels.onChannelMessage(message);\n }\n else {\n // Message came in on a defunct transport. Allow only acks, nacks, & errors for outstanding\n // messages, no new messages (as sync has been sent on new transport so new messages will\n // be resent there, or connection has been closed so don't want new messages)\n if (Utils.arrIndexOf([actions.ACK, actions.NACK, actions.ERROR], message.action) > -1) {\n this.realtime.channels.onChannelMessage(message);\n }\n else {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'ConnectionManager.onChannelMessage()', 'received message ' + JSON.stringify(message) + 'on defunct transport; discarding');\n }\n }\n };\n ConnectionManager.prototype.ping = function (transport, callback) {\n var _this = this;\n /* if transport is specified, try that */\n if (transport) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.ping()', 'transport = ' + transport);\n var onTimeout = function () {\n transport.off('heartbeat', onHeartbeat_1);\n callback(new errorinfo_1.default('Timeout waiting for heartbeat response', 50000, 500));\n };\n var pingStart_1 = Utils.now(), id_1 = Utils.cheapRandStr();\n var onHeartbeat_1 = function (responseId) {\n if (responseId === id_1) {\n transport.off('heartbeat', onHeartbeat_1);\n clearTimeout(timer_1);\n var responseTime = Utils.now() - pingStart_1;\n callback(null, responseTime);\n }\n };\n var timer_1 = setTimeout(onTimeout, this.options.timeouts.realtimeRequestTimeout);\n transport.on('heartbeat', onHeartbeat_1);\n transport.ping(id_1);\n return;\n }\n /* if we're not connected, don't attempt */\n if (this.state.state !== 'connected') {\n callback(new errorinfo_1.default('Unable to ping service; not connected', 40000, 400));\n return;\n }\n /* no transport was specified, so use the current (connected) one\n * but ensure that we retry if the transport is superseded before we complete */\n var completed = false;\n var onPingComplete = function (err, responseTime) {\n _this.off('transport.active', onTransportActive);\n if (!completed) {\n completed = true;\n callback(err, responseTime);\n }\n };\n var onTransportActive = function () {\n if (!completed) {\n /* ensure that no callback happens for the currently outstanding operation */\n completed = true;\n /* repeat but picking up the new transport */\n platform_1.default.Config.nextTick(function () {\n _this.ping(null, callback);\n });\n }\n };\n this.on('transport.active', onTransportActive);\n this.ping(this.activeProtocol.getTransport(), onPingComplete);\n };\n ConnectionManager.prototype.abort = function (error) {\n this.activeProtocol.getTransport().fail(error);\n };\n ConnectionManager.prototype.registerProposedTransport = function (transport) {\n this.proposedTransports.push(transport);\n };\n ConnectionManager.prototype.getTransportPreference = function () {\n var _a, _b;\n return this.transportPreference || (haveWebStorage() && ((_b = (_a = platform_1.default.WebStorage) === null || _a === void 0 ? void 0 : _a.get) === null || _b === void 0 ? void 0 : _b.call(_a, transportPreferenceName)));\n };\n ConnectionManager.prototype.persistTransportPreference = function (transport) {\n var _a, _b;\n if (Utils.arrIn(defaults_1.default.upgradeTransports, transport.shortName)) {\n this.transportPreference = transport.shortName;\n if (haveWebStorage()) {\n (_b = (_a = platform_1.default.WebStorage) === null || _a === void 0 ? void 0 : _a.set) === null || _b === void 0 ? void 0 : _b.call(_a, transportPreferenceName, transport.shortName);\n }\n }\n };\n ConnectionManager.prototype.unpersistTransportPreference = function () {\n var _a, _b;\n this.transportPreference = null;\n if (haveWebStorage()) {\n (_b = (_a = platform_1.default.WebStorage) === null || _a === void 0 ? void 0 : _a.remove) === null || _b === void 0 ? void 0 : _b.call(_a, transportPreferenceName);\n }\n };\n /* This method is only used during connection attempts, so implements RSA4c1, RSA4c2,\n * and RSA4d. It is generally not invoked for serverside-triggered reauths or manual\n * reauths, so RSA4c3 does not apply, except (per per RSA4d1) in the case that the auth\n * server returns 403. */\n ConnectionManager.prototype.actOnErrorFromAuthorize = function (err) {\n if (err.code === 40171) {\n /* No way to reauth */\n this.notifyState({ state: 'failed', error: err });\n }\n else if (err.code === 40102) {\n this.notifyState({ state: 'failed', error: err });\n }\n else if (err.statusCode === HttpStatusCodes_1.default.Forbidden) {\n var msg = 'Client configured authentication provider returned 403; failing the connection';\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'ConnectionManager.actOnErrorFromAuthorize()', msg);\n this.notifyState({ state: 'failed', error: new errorinfo_1.default(msg, 80019, 403, err) });\n }\n else {\n var msg = 'Client configured authentication provider request failed';\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'ConnectionManager.actOnErrorFromAuthorize', msg);\n this.notifyState({ state: this.state.failState, error: new errorinfo_1.default(msg, 80019, 401, err) });\n }\n };\n ConnectionManager.prototype.onConnectionDetailsUpdate = function (connectionDetails, transport) {\n if (!connectionDetails) {\n return;\n }\n this.connectionDetails = connectionDetails;\n if (connectionDetails.maxMessageSize) {\n this.options.maxMessageSize = connectionDetails.maxMessageSize;\n }\n var clientId = connectionDetails.clientId;\n if (clientId) {\n var err = this.realtime.auth._uncheckedSetClientId(clientId);\n if (err) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'ConnectionManager.onConnectionDetailsUpdate()', err.message);\n /* Errors setting the clientId are fatal to the connection */\n transport.fail(err);\n return;\n }\n }\n var connectionStateTtl = connectionDetails.connectionStateTtl;\n if (connectionStateTtl) {\n this.connectionStateTtl = connectionStateTtl;\n }\n this.maxIdleInterval = connectionDetails.maxIdleInterval;\n this.emit('connectiondetails', connectionDetails);\n };\n /*********************\n * transport management\n *********************/\n ConnectionManager.supportedTransports = {};\n return ConnectionManager;\n}(eventemitter_1.default));\nexports.default = ConnectionManager;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(13)))\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\nvar eventemitter_1 = tslib_1.__importDefault(__webpack_require__(7));\nvar logger_1 = tslib_1.__importDefault(__webpack_require__(2));\nvar MessageQueue = /** @class */ (function (_super) {\n tslib_1.__extends(MessageQueue, _super);\n function MessageQueue() {\n var _this = _super.call(this) || this;\n _this.messages = [];\n return _this;\n }\n MessageQueue.prototype.count = function () {\n return this.messages.length;\n };\n MessageQueue.prototype.push = function (message) {\n this.messages.push(message);\n };\n MessageQueue.prototype.shift = function () {\n return this.messages.shift();\n };\n MessageQueue.prototype.last = function () {\n return this.messages[this.messages.length - 1];\n };\n MessageQueue.prototype.copyAll = function () {\n return this.messages.slice();\n };\n MessageQueue.prototype.append = function (messages) {\n this.messages.push.apply(this.messages, messages);\n };\n MessageQueue.prototype.prepend = function (messages) {\n this.messages.unshift.apply(this.messages, messages);\n };\n MessageQueue.prototype.completeMessages = function (serial, count, err) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'MessageQueue.completeMessages()', 'serial = ' + serial + '; count = ' + count);\n err = err || null;\n var messages = this.messages;\n if (messages.length === 0) {\n throw new Error('MessageQueue.completeMessages(): completeMessages called on any empty MessageQueue');\n }\n var first = messages[0];\n if (first) {\n var startSerial = first.message.msgSerial;\n var endSerial = serial + count; /* the serial of the first message that is *not* the subject of this call */\n if (endSerial > startSerial) {\n var completeMessages = messages.splice(0, endSerial - startSerial);\n for (var _i = 0, completeMessages_1 = completeMessages; _i < completeMessages_1.length; _i++) {\n var message = completeMessages_1[_i];\n message.callback(err);\n }\n }\n if (messages.length == 0)\n this.emit('idle');\n }\n };\n MessageQueue.prototype.completeAllMessages = function (err) {\n this.completeMessages(0, Number.MAX_SAFE_INTEGER || Number.MAX_VALUE, err);\n };\n MessageQueue.prototype.resetSendAttempted = function () {\n for (var _i = 0, _a = this.messages; _i < _a.length; _i++) {\n var msg = _a[_i];\n msg.sendAttempted = false;\n }\n };\n MessageQueue.prototype.clear = function () {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'MessageQueue.clear()', 'clearing ' + this.messages.length + ' messages');\n this.messages = [];\n this.emit('idle');\n };\n return MessageQueue;\n}(eventemitter_1.default));\nexports.default = MessageQueue;\n\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ConnectionStateChange = /** @class */ (function () {\n function ConnectionStateChange(previous, current, retryIn, reason) {\n this.previous = previous;\n this.current = current;\n if (retryIn)\n this.retryIn = retryIn;\n if (reason)\n this.reason = reason;\n }\n return ConnectionStateChange;\n}());\nexports.default = ConnectionStateChange;\n\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\nvar protocolmessage_1 = tslib_1.__importDefault(__webpack_require__(10));\nvar eventemitter_1 = tslib_1.__importDefault(__webpack_require__(7));\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\nvar channel_1 = tslib_1.__importDefault(__webpack_require__(33));\nvar logger_1 = tslib_1.__importDefault(__webpack_require__(2));\nvar realtimepresence_1 = tslib_1.__importDefault(__webpack_require__(54));\nvar message_1 = tslib_1.__importDefault(__webpack_require__(9));\nvar channelstatechange_1 = tslib_1.__importDefault(__webpack_require__(39));\nvar errorinfo_1 = tslib_1.__importStar(__webpack_require__(4));\nvar presencemessage_1 = tslib_1.__importDefault(__webpack_require__(15));\nvar connectionerrors_1 = tslib_1.__importDefault(__webpack_require__(20));\nvar actions = protocolmessage_1.default.Action;\nvar noop = function () { };\nfunction validateChannelOptions(options) {\n if (options && 'params' in options && !Utils.isObject(options.params)) {\n return new errorinfo_1.default('options.params must be an object', 40000, 400);\n }\n if (options && 'modes' in options) {\n if (!Utils.isArray(options.modes)) {\n return new errorinfo_1.default('options.modes must be an array', 40000, 400);\n }\n for (var i = 0; i < options.modes.length; i++) {\n var currentMode = options.modes[i];\n if (!currentMode ||\n typeof currentMode !== 'string' ||\n !Utils.arrIn(protocolmessage_1.default.channelModes, String.prototype.toUpperCase.call(currentMode))) {\n return new errorinfo_1.default('Invalid channel mode: ' + currentMode, 40000, 400);\n }\n }\n }\n}\nvar RealtimeChannel = /** @class */ (function (_super) {\n tslib_1.__extends(RealtimeChannel, _super);\n function RealtimeChannel(realtime, name, options) {\n var _this = _super.call(this, realtime, name, options) || this;\n _this.retryCount = 0;\n _this.history = function (params, callback) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'RealtimeChannel.history()', 'channel = ' + this.name);\n /* params and callback are optional; see if params contains the callback */\n if (callback === undefined) {\n if (typeof params == 'function') {\n callback = params;\n params = null;\n }\n else {\n if (this.rest.options.promises) {\n return Utils.promisify(this, 'history', arguments);\n }\n callback = noop;\n }\n }\n if (params && params.untilAttach) {\n if (this.state !== 'attached') {\n callback(new errorinfo_1.default('option untilAttach requires the channel to be attached', 40000, 400));\n return;\n }\n if (!this.properties.attachSerial) {\n callback(new errorinfo_1.default('untilAttach was specified and channel is attached, but attachSerial is not defined', 40000, 400));\n return;\n }\n delete params.untilAttach;\n params.from_serial = this.properties.attachSerial;\n }\n channel_1.default.prototype._history.call(this, params, callback);\n };\n _this.whenState = (function (state, listener) {\n return eventemitter_1.default.prototype.whenState.call(_this, state, _this.state, listener);\n });\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'RealtimeChannel()', 'started; name = ' + name);\n _this.realtime = realtime;\n _this.presence = new realtimepresence_1.default(_this);\n _this.connectionManager = realtime.connection.connectionManager;\n _this.state = 'initialized';\n _this.subscriptions = new eventemitter_1.default();\n _this.syncChannelSerial = undefined;\n _this.properties = {\n attachSerial: undefined,\n channelSerial: undefined,\n };\n _this.setOptions(options);\n _this.errorReason = null;\n _this._requestedFlags = null;\n _this._mode = null;\n _this._attachResume = false;\n _this._decodingContext = {\n channelOptions: _this.channelOptions,\n plugins: realtime.options.plugins || {},\n baseEncodedPreviousPayload: undefined,\n };\n _this._lastPayload = {\n messageId: null,\n protocolMessageChannelSerial: null,\n decodeFailureRecoveryInProgress: null,\n };\n /* Only differences between this and the public event emitter is that this emits an\n * update event for all ATTACHEDs, whether resumed or not */\n _this._allChannelChanges = new eventemitter_1.default();\n return _this;\n }\n RealtimeChannel.prototype.invalidStateError = function () {\n return new errorinfo_1.default('Channel operation failed as channel state is ' + this.state, 90001, 400, this.errorReason || undefined);\n };\n RealtimeChannel.processListenerArgs = function (args) {\n /* [event], listener, [callback] */\n args = Array.prototype.slice.call(args);\n if (typeof args[0] === 'function') {\n args.unshift(null);\n }\n if (args[args.length - 1] == undefined) {\n args.pop();\n }\n return args;\n };\n RealtimeChannel.prototype.setOptions = function (options, callback) {\n if (!callback) {\n if (this.rest.options.promises) {\n return Utils.promisify(this, 'setOptions', arguments);\n }\n }\n var _callback = callback ||\n function (err) {\n if (err) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'RealtimeChannel.setOptions()', 'Set options failed: ' + err.toString());\n }\n };\n var err = validateChannelOptions(options);\n if (err) {\n _callback(err);\n return;\n }\n channel_1.default.prototype.setOptions.call(this, options);\n if (this._decodingContext)\n this._decodingContext.channelOptions = this.channelOptions;\n if (this._shouldReattachToSetOptions(options)) {\n /* This does not just do _attach(true, null, callback) because that would put us\n * into the 'attaching' state until we receive the new attached, which is\n * conceptually incorrect: we are still attached, we just have a pending request to\n * change some channel params. Per RTL17 going into the attaching state would mean\n * rejecting messages until we have confirmation that the options have changed,\n * which would unnecessarily lose message continuity. */\n this.attachImpl();\n // Ignore 'attaching' -- could be just due to to a resume & reattach, should not\n // call back setOptions until we're definitely attached with the new options (or\n // else in a terminal state)\n this._allChannelChanges.once(['attached', 'update', 'detached', 'failed'], function (stateChange) {\n switch (this.event) {\n case 'update':\n case 'attached':\n _callback === null || _callback === void 0 ? void 0 : _callback(null);\n return;\n default:\n _callback === null || _callback === void 0 ? void 0 : _callback(stateChange.reason);\n return;\n }\n });\n }\n else {\n _callback();\n }\n };\n RealtimeChannel.prototype._shouldReattachToSetOptions = function (options) {\n return (this.state === 'attached' || this.state === 'attaching') && ((options === null || options === void 0 ? void 0 : options.params) || (options === null || options === void 0 ? void 0 : options.modes));\n };\n RealtimeChannel.prototype.publish = function () {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var messages = args[0];\n var argCount = args.length;\n var callback = args[argCount - 1];\n if (typeof callback !== 'function') {\n if (this.realtime.options.promises) {\n return Utils.promisify(this, 'publish', arguments);\n }\n callback = noop;\n ++argCount;\n }\n if (!this.connectionManager.activeState()) {\n callback(this.connectionManager.getError());\n return;\n }\n if (argCount == 2) {\n if (Utils.isObject(messages))\n messages = [message_1.default.fromValues(messages)];\n else if (Utils.isArray(messages))\n messages = message_1.default.fromValuesArray(messages);\n else\n throw new errorinfo_1.default('The single-argument form of publish() expects a message object or an array of message objects', 40013, 400);\n }\n else {\n messages = [message_1.default.fromValues({ name: args[0], data: args[1] })];\n }\n var maxMessageSize = this.realtime.options.maxMessageSize;\n message_1.default.encodeArray(messages, this.channelOptions, function (err) {\n if (err) {\n callback(err);\n return;\n }\n /* RSL1i */\n var size = message_1.default.getMessagesSize(messages);\n if (size > maxMessageSize) {\n callback(new errorinfo_1.default('Maximum size of messages that can be published at once exceeded ( was ' +\n size +\n ' bytes; limit is ' +\n maxMessageSize +\n ' bytes)', 40009, 400));\n return;\n }\n _this.__publish(messages, callback);\n });\n };\n // Double underscore used to prevent type conflict with underlying Channel._publish method\n RealtimeChannel.prototype.__publish = function (messages, callback) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'RealtimeChannel.publish()', 'message count = ' + messages.length);\n var state = this.state;\n switch (state) {\n case 'failed':\n case 'suspended':\n callback(errorinfo_1.default.fromValues(this.invalidStateError()));\n break;\n default: {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'RealtimeChannel.publish()', 'sending message; channel state is ' + state);\n var msg = new protocolmessage_1.default();\n msg.action = actions.MESSAGE;\n msg.channel = this.name;\n msg.messages = messages;\n this.sendMessage(msg, callback);\n break;\n }\n }\n };\n RealtimeChannel.prototype.onEvent = function (messages) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'RealtimeChannel.onEvent()', 'received message');\n var subscriptions = this.subscriptions;\n for (var i = 0; i < messages.length; i++) {\n var message = messages[i];\n subscriptions.emit(message.name, message);\n }\n };\n RealtimeChannel.prototype.attach = function (flags, callback) {\n var _flags;\n if (typeof flags === 'function') {\n callback = flags;\n _flags = null;\n }\n else {\n _flags = flags;\n }\n if (!callback) {\n if (this.realtime.options.promises) {\n return Utils.promisify(this, 'attach', arguments);\n }\n callback = function (err) {\n if (err) {\n logger_1.default.logAction(logger_1.default.LOG_MAJOR, 'RealtimeChannel.attach()', 'Channel attach failed: ' + err.toString());\n }\n };\n }\n if (_flags) {\n logger_1.default.deprecated('channel.attach() with flags', 'channel.setOptions() with channelOptions.params');\n /* If flags requested, always do a re-attach. TODO only do this if\n * current mode differs from requested mode */\n this._requestedFlags = _flags;\n }\n else if (this.state === 'attached') {\n callback(null, null);\n return;\n }\n this._attach(false, null, callback);\n };\n RealtimeChannel.prototype._attach = function (forceReattach, attachReason, callback) {\n if (!callback) {\n callback = function (err) {\n if (err) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'RealtimeChannel._attach()', 'Channel attach failed: ' + err.toString());\n }\n };\n }\n var connectionManager = this.connectionManager;\n if (!connectionManager.activeState()) {\n callback(connectionManager.getError());\n return;\n }\n if (this.state !== 'attaching' || forceReattach) {\n this.requestState('attaching', attachReason);\n }\n this.once(function (stateChange) {\n switch (this.event) {\n case 'attached':\n callback === null || callback === void 0 ? void 0 : callback(null, stateChange);\n break;\n case 'detached':\n case 'suspended':\n case 'failed':\n callback === null || callback === void 0 ? void 0 : callback(stateChange.reason ||\n connectionManager.getError() ||\n new errorinfo_1.default('Unable to attach; reason unknown; state = ' + this.event, 90000, 500));\n break;\n case 'detaching':\n callback === null || callback === void 0 ? void 0 : callback(new errorinfo_1.default('Attach request superseded by a subsequent detach request', 90000, 409));\n break;\n }\n });\n };\n RealtimeChannel.prototype.attachImpl = function () {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'RealtimeChannel.attachImpl()', 'sending ATTACH message');\n var attachMsg = protocolmessage_1.default.fromValues({\n action: actions.ATTACH,\n channel: this.name,\n params: this.channelOptions.params,\n // RTL4c1: Includes the channel serial to resume from a previous message\n // or attachment.\n channelSerial: this.properties.channelSerial,\n });\n if (this._requestedFlags) {\n attachMsg.encodeModesToFlags(this._requestedFlags);\n }\n else if (this.channelOptions.modes) {\n attachMsg.encodeModesToFlags(Utils.allToUpperCase(this.channelOptions.modes));\n }\n if (this._attachResume) {\n attachMsg.setFlag('ATTACH_RESUME');\n }\n if (this._lastPayload.decodeFailureRecoveryInProgress) {\n attachMsg.channelSerial = this._lastPayload.protocolMessageChannelSerial;\n }\n this.sendMessage(attachMsg, noop);\n };\n RealtimeChannel.prototype.detach = function (callback) {\n if (!callback) {\n if (this.realtime.options.promises) {\n return Utils.promisify(this, 'detach', arguments);\n }\n callback = noop;\n }\n var connectionManager = this.connectionManager;\n if (!connectionManager.activeState()) {\n callback(connectionManager.getError());\n return;\n }\n switch (this.state) {\n case 'suspended':\n this.notifyState('detached');\n callback();\n break;\n case 'detached':\n callback();\n break;\n case 'failed':\n callback(new errorinfo_1.default('Unable to detach; channel state = failed', 90001, 400));\n break;\n default:\n this.requestState('detaching');\n // eslint-disable-next-line no-fallthrough\n case 'detaching':\n this.once(function (stateChange) {\n switch (this.event) {\n case 'detached':\n callback();\n break;\n case 'attached':\n case 'suspended':\n case 'failed':\n callback(stateChange.reason ||\n connectionManager.getError() ||\n new errorinfo_1.default('Unable to detach; reason unknown; state = ' + this.event, 90000, 500));\n break;\n case 'attaching':\n callback(new errorinfo_1.default('Detach request superseded by a subsequent attach request', 90000, 409));\n break;\n }\n });\n }\n };\n RealtimeChannel.prototype.detachImpl = function (callback) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'RealtimeChannel.detach()', 'sending DETACH message');\n var msg = protocolmessage_1.default.fromValues({ action: actions.DETACH, channel: this.name });\n this.sendMessage(msg, callback || noop);\n };\n RealtimeChannel.prototype.subscribe = function () {\n var args = []; /* [event], listener, [callback] */\n for (var _i = 0 /* [event], listener, [callback] */; _i < arguments.length /* [event], listener, [callback] */; _i++ /* [event], listener, [callback] */) {\n args[_i] = arguments[_i]; /* [event], listener, [callback] */\n }\n var _a = RealtimeChannel.processListenerArgs(args), event = _a[0], listener = _a[1], callback = _a[2];\n if (!callback && this.realtime.options.promises) {\n return Utils.promisify(this, 'subscribe', [event, listener]);\n }\n if (this.state === 'failed') {\n callback === null || callback === void 0 ? void 0 : callback(errorinfo_1.default.fromValues(this.invalidStateError()));\n return;\n }\n // Filtered\n if (event && typeof event === 'object' && !Array.isArray(event)) {\n this._subscribeFilter(event, listener);\n }\n else {\n this.subscriptions.on(event, listener);\n }\n return this.attach(callback || noop);\n };\n RealtimeChannel.prototype._subscribeFilter = function (filter, listener) {\n var filteredListener = function (m) {\n var _a, _b, _c, _d, _e, _f;\n var mapping = {\n name: m.name,\n refTimeserial: (_b = (_a = m.extras) === null || _a === void 0 ? void 0 : _a.ref) === null || _b === void 0 ? void 0 : _b.timeserial,\n refType: (_d = (_c = m.extras) === null || _c === void 0 ? void 0 : _c.ref) === null || _d === void 0 ? void 0 : _d.type,\n isRef: !!((_f = (_e = m.extras) === null || _e === void 0 ? void 0 : _e.ref) === null || _f === void 0 ? void 0 : _f.timeserial),\n clientId: m.clientId,\n };\n // Check if any values are defined in the filter and if they match the value in the message object\n if (Object.entries(filter).find(function (_a) {\n var key = _a[0], value = _a[1];\n return value !== undefined ? mapping[key] !== value : false;\n })) {\n return;\n }\n listener(m);\n };\n this._addFilteredSubscription(filter, listener, filteredListener);\n this.subscriptions.on(filteredListener);\n };\n // Adds a new filtered subscription\n RealtimeChannel.prototype._addFilteredSubscription = function (filter, realListener, filteredListener) {\n var _a;\n if (!this.filteredSubscriptions) {\n this.filteredSubscriptions = new Map();\n }\n if (this.filteredSubscriptions.has(realListener)) {\n var realListenerMap = this.filteredSubscriptions.get(realListener);\n // Add the filtered listener to the map, or append to the array if this filter has already been used\n realListenerMap.set(filter, ((_a = realListenerMap === null || realListenerMap === void 0 ? void 0 : realListenerMap.get(filter)) === null || _a === void 0 ? void 0 : _a.concat(filteredListener)) || [filteredListener]);\n }\n else {\n this.filteredSubscriptions.set(realListener, new Map([[filter, [filteredListener]]]));\n }\n };\n RealtimeChannel.prototype._getAndDeleteFilteredSubscriptions = function (filter, realListener) {\n var _this = this;\n // No filtered subscriptions map means there has been no filtered subscriptions yet, so return nothing\n if (!this.filteredSubscriptions) {\n return [];\n }\n // Only a filter is passed in with no specific listener\n if (!realListener && filter) {\n // Return each listener which is attached to the specified filter object\n return Array.from(this.filteredSubscriptions.entries())\n .map(function (_a) {\n var _b;\n var key = _a[0], filterMaps = _a[1];\n // Get (then delete) the maps matching this filter\n var listenerMaps = filterMaps.get(filter);\n filterMaps.delete(filter);\n // Clear the parent if nothing is left\n if (filterMaps.size === 0) {\n (_b = _this.filteredSubscriptions) === null || _b === void 0 ? void 0 : _b.delete(key);\n }\n return listenerMaps;\n })\n .reduce(function (prev, cur) {\n var _a;\n return (cur ? (_a = prev).concat.apply(_a, cur) : prev);\n }, []);\n }\n // No subscriptions for this listener\n if (!realListener || !this.filteredSubscriptions.has(realListener)) {\n return [];\n }\n var realListenerMap = this.filteredSubscriptions.get(realListener);\n // If no filter is specified return all listeners using that function\n if (!filter) {\n // array.flat is not available unless we support es2019 or higher\n var listeners_1 = Array.from(realListenerMap.values()).reduce(function (prev, cur) { return prev.concat.apply(prev, cur); }, []);\n // remove the listener from the map\n this.filteredSubscriptions.delete(realListener);\n return listeners_1;\n }\n var listeners = realListenerMap.get(filter);\n realListenerMap.delete(filter);\n return listeners || [];\n };\n RealtimeChannel.prototype.unsubscribe = function () {\n var _this = this;\n var _a;\n var args = []; /* [event], listener */\n for (var _i = 0 /* [event], listener */; _i < arguments.length /* [event], listener */; _i++ /* [event], listener */) {\n args[_i] = arguments[_i]; /* [event], listener */\n }\n var _b = RealtimeChannel.processListenerArgs(args), event = _b[0], listener = _b[1];\n // If we either have a filtered listener, a filter or both we need to do additional processing to find the original function(s)\n if ((typeof event === 'object' && !listener) || ((_a = this.filteredSubscriptions) === null || _a === void 0 ? void 0 : _a.has(listener))) {\n this._getAndDeleteFilteredSubscriptions(event, listener).forEach(function (l) { return _this.subscriptions.off(l); });\n return;\n }\n this.subscriptions.off(event, listener);\n };\n RealtimeChannel.prototype.sync = function () {\n /* check preconditions */\n switch (this.state) {\n case 'initialized':\n case 'detaching':\n case 'detached':\n throw new errorinfo_1.PartialErrorInfo('Unable to sync to channel; not attached', 40000);\n default:\n }\n var connectionManager = this.connectionManager;\n if (!connectionManager.activeState()) {\n throw connectionManager.getError();\n }\n /* send sync request */\n var syncMessage = protocolmessage_1.default.fromValues({ action: actions.SYNC, channel: this.name });\n if (this.syncChannelSerial) {\n syncMessage.channelSerial = this.syncChannelSerial;\n }\n connectionManager.send(syncMessage);\n };\n RealtimeChannel.prototype.sendMessage = function (msg, callback) {\n this.connectionManager.send(msg, this.realtime.options.queueMessages, callback);\n };\n RealtimeChannel.prototype.sendPresence = function (presence, callback) {\n var msg = protocolmessage_1.default.fromValues({\n action: actions.PRESENCE,\n channel: this.name,\n presence: Utils.isArray(presence)\n ? presencemessage_1.default.fromValuesArray(presence)\n : [presencemessage_1.default.fromValues(presence)],\n });\n this.sendMessage(msg, callback);\n };\n RealtimeChannel.prototype.onMessage = function (message) {\n if (message.action === actions.ATTACHED ||\n message.action === actions.MESSAGE ||\n message.action === actions.PRESENCE) {\n // RTL15b\n this.setChannelSerial(message.channelSerial);\n }\n var syncChannelSerial, isSync = false;\n switch (message.action) {\n case actions.ATTACHED: {\n this.properties.attachSerial = message.channelSerial;\n this._mode = message.getMode();\n this.params = message.params || {};\n var modesFromFlags = message.decodeModesFromFlags();\n this.modes = (modesFromFlags && Utils.allToLowerCase(modesFromFlags)) || undefined;\n var resumed = message.hasFlag('RESUMED');\n var hasPresence = message.hasFlag('HAS_PRESENCE');\n var hasBacklog = message.hasFlag('HAS_BACKLOG');\n if (this.state === 'attached') {\n if (!resumed) {\n /* On a loss of continuity, the presence set needs to be re-synced */\n this.presence.onAttached(hasPresence);\n }\n var change = new channelstatechange_1.default(this.state, this.state, resumed, hasBacklog, message.error);\n this._allChannelChanges.emit('update', change);\n if (!resumed || this.channelOptions.updateOnAttached) {\n this.emit('update', change);\n }\n }\n else if (this.state === 'detaching') {\n /* RTL5i: re-send DETACH and remain in the 'detaching' state */\n this.checkPendingState();\n }\n else {\n this.notifyState('attached', message.error, resumed, hasPresence, hasBacklog);\n }\n break;\n }\n case actions.DETACHED: {\n var detachErr = message.error\n ? errorinfo_1.default.fromValues(message.error)\n : new errorinfo_1.default('Channel detached', 90001, 404);\n if (this.state === 'detaching') {\n this.notifyState('detached', detachErr);\n }\n else if (this.state === 'attaching') {\n /* Only retry immediately if we were previously attached. If we were\n * attaching, go into suspended, fail messages, and wait a few seconds\n * before retrying */\n this.notifyState('suspended', detachErr);\n }\n else {\n this.requestState('attaching', detachErr);\n }\n break;\n }\n case actions.SYNC:\n /* syncs can have channelSerials, but might not if the sync is one page long */\n isSync = true;\n syncChannelSerial = this.syncChannelSerial = message.channelSerial;\n /* syncs can happen on channels with no presence data as part of connection\n * resuming, in which case protocol message has no presence property */\n if (!message.presence)\n break;\n // eslint-disable-next-line no-fallthrough\n case actions.PRESENCE: {\n var presence = message.presence;\n var id = message.id, connectionId = message.connectionId, timestamp = message.timestamp;\n var options = this.channelOptions;\n var presenceMsg = void 0;\n for (var i = 0; i < presence.length; i++) {\n try {\n presenceMsg = presence[i];\n presencemessage_1.default.decode(presenceMsg, options);\n if (!presenceMsg.connectionId)\n presenceMsg.connectionId = connectionId;\n if (!presenceMsg.timestamp)\n presenceMsg.timestamp = timestamp;\n if (!presenceMsg.id)\n presenceMsg.id = id + ':' + i;\n }\n catch (e) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'RealtimeChannel.onMessage()', e.toString());\n }\n }\n this.presence.setPresence(presence, isSync, syncChannelSerial);\n break;\n }\n case actions.MESSAGE: {\n //RTL17\n if (this.state !== 'attached') {\n logger_1.default.logAction(logger_1.default.LOG_MAJOR, 'RealtimeChannel.onMessage()', 'Message \"' +\n message.id +\n '\" skipped as this channel \"' +\n this.name +\n '\" state is not \"attached\" (state is \"' +\n this.state +\n '\").');\n return;\n }\n var messages = message.messages, firstMessage = messages[0], lastMessage = messages[messages.length - 1], id = message.id, connectionId = message.connectionId, timestamp = message.timestamp;\n if (firstMessage.extras &&\n firstMessage.extras.delta &&\n firstMessage.extras.delta.from !== this._lastPayload.messageId) {\n var msg = 'Delta message decode failure - previous message not available for message \"' +\n message.id +\n '\" on this channel \"' +\n this.name +\n '\".';\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'RealtimeChannel.onMessage()', msg);\n this._startDecodeFailureRecovery(new errorinfo_1.default(msg, 40018, 400));\n break;\n }\n for (var i = 0; i < messages.length; i++) {\n var msg = messages[i];\n try {\n message_1.default.decode(msg, this._decodingContext);\n }\n catch (e) {\n /* decrypt failed .. the most likely cause is that we have the wrong key */\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'RealtimeChannel.onMessage()', e.toString());\n switch (e.code) {\n case 40018:\n /* decode failure */\n this._startDecodeFailureRecovery(e);\n return;\n case 40019:\n /* No vcdiff plugin passed in - no point recovering, give up */\n // eslint-disable-next-line no-fallthrough\n case 40021:\n /* Browser does not support deltas, similarly no point recovering */\n this.notifyState('failed', e);\n return;\n }\n }\n if (!msg.connectionId)\n msg.connectionId = connectionId;\n if (!msg.timestamp)\n msg.timestamp = timestamp;\n if (!msg.id)\n msg.id = id + ':' + i;\n }\n this._lastPayload.messageId = lastMessage.id;\n this._lastPayload.protocolMessageChannelSerial = message.channelSerial;\n this.onEvent(messages);\n break;\n }\n case actions.ERROR: {\n /* there was a channel-specific error */\n var err = message.error;\n if (err && err.code == 80016) {\n /* attach/detach operation attempted on superseded transport handle */\n this.checkPendingState();\n }\n else {\n this.notifyState('failed', errorinfo_1.default.fromValues(err));\n }\n break;\n }\n default:\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'RealtimeChannel.onMessage()', 'Fatal protocol error: unrecognised action (' + message.action + ')');\n this.connectionManager.abort(connectionerrors_1.default.unknownChannelErr());\n }\n };\n RealtimeChannel.prototype._startDecodeFailureRecovery = function (reason) {\n var _this = this;\n if (!this._lastPayload.decodeFailureRecoveryInProgress) {\n logger_1.default.logAction(logger_1.default.LOG_MAJOR, 'RealtimeChannel.onMessage()', 'Starting decode failure recovery process.');\n this._lastPayload.decodeFailureRecoveryInProgress = true;\n this._attach(true, reason, function () {\n _this._lastPayload.decodeFailureRecoveryInProgress = false;\n });\n }\n };\n RealtimeChannel.prototype.onAttached = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'RealtimeChannel.onAttached', 'activating channel; name = ' + this.name);\n };\n RealtimeChannel.prototype.notifyState = function (state, reason, resumed, hasPresence, hasBacklog) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'RealtimeChannel.notifyState', 'name = ' + this.name + ', current state = ' + this.state + ', notifying state ' + state);\n this.clearStateTimer();\n // RTP5a1\n if (Utils.arrIn(['detached', 'suspended', 'failed'], state)) {\n this.properties.channelSerial = null;\n }\n if (state === this.state) {\n return;\n }\n this.presence.actOnChannelState(state, hasPresence, reason);\n if (state === 'suspended' && this.connectionManager.state.sendEvents) {\n this.startRetryTimer();\n }\n else {\n this.cancelRetryTimer();\n }\n if (reason) {\n this.errorReason = reason;\n }\n var change = new channelstatechange_1.default(this.state, state, resumed, hasBacklog, reason);\n var logLevel = state === 'failed' ? logger_1.default.LOG_ERROR : logger_1.default.LOG_MAJOR;\n logger_1.default.logAction(logLevel, 'Channel state for channel \"' + this.name + '\"', state + (reason ? '; reason: ' + reason : ''));\n if (state !== 'attaching' && state !== 'suspended') {\n this.retryCount = 0;\n }\n /* Note: we don't set inProgress for pending states until the request is actually in progress */\n if (state === 'attached') {\n this.onAttached();\n }\n if (state === 'attached') {\n this._attachResume = true;\n }\n else if (state === 'detaching' || state === 'failed') {\n this._attachResume = false;\n }\n this.state = state;\n this._allChannelChanges.emit(state, change);\n this.emit(state, change);\n };\n RealtimeChannel.prototype.requestState = function (state, reason) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'RealtimeChannel.requestState', 'name = ' + this.name + ', state = ' + state);\n this.notifyState(state, reason);\n /* send the event and await response */\n this.checkPendingState();\n };\n RealtimeChannel.prototype.checkPendingState = function () {\n /* if can't send events, do nothing */\n var cmState = this.connectionManager.state;\n /* Allow attach messages to queue up when synchronizing, since this will be\n * the state we'll be in when upgrade transport.active triggers a checkpendingstate */\n if (!(cmState.sendEvents || cmState.forceQueueEvents)) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'RealtimeChannel.checkPendingState', 'sendEvents is false; state is ' + this.connectionManager.state.state);\n return;\n }\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'RealtimeChannel.checkPendingState', 'name = ' + this.name + ', state = ' + this.state);\n /* Only start the state timer running when actually sending the event */\n switch (this.state) {\n case 'attaching':\n this.startStateTimerIfNotRunning();\n this.attachImpl();\n break;\n case 'detaching':\n this.startStateTimerIfNotRunning();\n this.detachImpl();\n break;\n case 'attached':\n /* resume any sync operation that was in progress */\n this.sync();\n break;\n default:\n break;\n }\n };\n RealtimeChannel.prototype.timeoutPendingState = function () {\n switch (this.state) {\n case 'attaching': {\n var err = new errorinfo_1.default('Channel attach timed out', 90007, 408);\n this.notifyState('suspended', err);\n break;\n }\n case 'detaching': {\n var err = new errorinfo_1.default('Channel detach timed out', 90007, 408);\n this.notifyState('attached', err);\n break;\n }\n default:\n this.checkPendingState();\n break;\n }\n };\n RealtimeChannel.prototype.startStateTimerIfNotRunning = function () {\n var _this = this;\n if (!this.stateTimer) {\n this.stateTimer = setTimeout(function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'RealtimeChannel.startStateTimerIfNotRunning', 'timer expired');\n _this.stateTimer = null;\n _this.timeoutPendingState();\n }, this.realtime.options.timeouts.realtimeRequestTimeout);\n }\n };\n RealtimeChannel.prototype.clearStateTimer = function () {\n var stateTimer = this.stateTimer;\n if (stateTimer) {\n clearTimeout(stateTimer);\n this.stateTimer = null;\n }\n };\n RealtimeChannel.prototype.startRetryTimer = function () {\n var _this = this;\n if (this.retryTimer)\n return;\n this.retryCount++;\n var retryDelay = Utils.getRetryTime(this.realtime.options.timeouts.channelRetryTimeout, this.retryCount);\n this.retryTimer = setTimeout(function () {\n /* If connection is not connected, just leave in suspended, a reattach\n * will be triggered once it connects again */\n if (_this.state === 'suspended' && _this.connectionManager.state.sendEvents) {\n _this.retryTimer = null;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'RealtimeChannel retry timer expired', 'attempting a new attach');\n _this.requestState('attaching');\n }\n }, retryDelay);\n };\n RealtimeChannel.prototype.cancelRetryTimer = function () {\n if (this.retryTimer) {\n clearTimeout(this.retryTimer);\n this.retryTimer = null;\n }\n };\n /* @returns null (if can safely be released) | ErrorInfo (if cannot) */\n RealtimeChannel.prototype.getReleaseErr = function () {\n var s = this.state;\n if (s === 'initialized' || s === 'detached' || s === 'failed') {\n return null;\n }\n return new errorinfo_1.default('Can only release a channel in a state where there is no possibility of further updates from the server being received (initialized, detached, or failed); was ' +\n s, 90001, 400);\n };\n RealtimeChannel.prototype.setChannelSerial = function (channelSerial) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'RealtimeChannel.setChannelSerial()', 'Updating channel serial; serial = ' + channelSerial + '; previous = ' + this.properties.channelSerial);\n // RTP17h: Only update the channel serial if its present (it won't always\n // be set).\n if (channelSerial) {\n this.properties.channelSerial = channelSerial;\n }\n };\n return RealtimeChannel;\n}(channel_1.default));\nexports.default = RealtimeChannel;\n\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ChannelStateChange = /** @class */ (function () {\n function ChannelStateChange(previous, current, resumed, hasBacklog, reason) {\n this.previous = previous;\n this.current = current;\n if (current === 'attached') {\n this.resumed = resumed;\n this.hasBacklog = hasBacklog;\n }\n if (reason)\n this.reason = reason;\n }\n return ChannelStateChange;\n}());\nexports.default = ChannelStateChange;\n\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(6));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-1 hash algorithm.\n\t */\n\t var SHA1 = C_algo.SHA1 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476,\n\t 0xc3d2e1f0\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\n\t // Computation\n\t for (var i = 0; i < 80; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n\t W[i] = (n << 1) | (n >>> 31);\n\t }\n\n\t var t = ((a << 5) | (a >>> 27)) + e + W[i];\n\t if (i < 20) {\n\t t += ((b & c) | (~b & d)) + 0x5a827999;\n\t } else if (i < 40) {\n\t t += (b ^ c ^ d) + 0x6ed9eba1;\n\t } else if (i < 60) {\n\t t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;\n\t } else /* if (i < 80) */ {\n\t t += (b ^ c ^ d) - 0x359d3e2a;\n\t }\n\n\t e = d;\n\t d = c;\n\t c = (b << 30) | (b >>> 2);\n\t b = a;\n\t a = t;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA1('message');\n\t * var hash = CryptoJS.SHA1(wordArray);\n\t */\n\t C.SHA1 = Hasher._createHelper(SHA1);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA1(message, key);\n\t */\n\t C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n\t}());\n\n\n\treturn CryptoJS.SHA1;\n\n}));\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction inspect(buffer) {\n if (buffer === undefined)\n return 'undefined';\n var view;\n var type;\n if (buffer instanceof ArrayBuffer) {\n type = 'ArrayBuffer';\n view = new DataView(buffer);\n }\n else if (buffer instanceof DataView) {\n type = 'DataView';\n view = buffer;\n }\n if (!view)\n return JSON.stringify(buffer);\n var bytes = [];\n for (var i = 0; i < buffer.byteLength; i++) {\n if (i > 20) {\n bytes.push('...');\n break;\n }\n var byte_ = view.getUint8(i).toString(16);\n if (byte_.length === 1)\n byte_ = '0' + byte_;\n bytes.push(byte_);\n }\n return '<' + type + ' ' + bytes.join(' ') + '>';\n}\n// Encode string as utf8 into dataview at offset\nfunction utf8Write(view, offset, string) {\n for (var i = 0, l = string.length; i < l; i++) {\n var codePoint = string.charCodeAt(i);\n // One byte of UTF-8\n if (codePoint < 0x80) {\n view.setUint8(offset++, ((codePoint >>> 0) & 0x7f) | 0x00);\n continue;\n }\n // Two bytes of UTF-8\n if (codePoint < 0x800) {\n view.setUint8(offset++, ((codePoint >>> 6) & 0x1f) | 0xc0);\n view.setUint8(offset++, ((codePoint >>> 0) & 0x3f) | 0x80);\n continue;\n }\n // Three bytes of UTF-8.\n if (codePoint < 0x10000) {\n view.setUint8(offset++, ((codePoint >>> 12) & 0x0f) | 0xe0);\n view.setUint8(offset++, ((codePoint >>> 6) & 0x3f) | 0x80);\n view.setUint8(offset++, ((codePoint >>> 0) & 0x3f) | 0x80);\n continue;\n }\n // Four bytes of UTF-8\n if (codePoint < 0x110000) {\n view.setUint8(offset++, ((codePoint >>> 18) & 0x07) | 0xf0);\n view.setUint8(offset++, ((codePoint >>> 12) & 0x3f) | 0x80);\n view.setUint8(offset++, ((codePoint >>> 6) & 0x3f) | 0x80);\n view.setUint8(offset++, ((codePoint >>> 0) & 0x3f) | 0x80);\n continue;\n }\n throw new Error('bad codepoint ' + codePoint);\n }\n}\nfunction utf8Read(view, offset, length) {\n var string = '';\n for (var i = offset, end = offset + length; i < end; i++) {\n var byte_ = view.getUint8(i);\n // One byte character\n if ((byte_ & 0x80) === 0x00) {\n string += String.fromCharCode(byte_);\n continue;\n }\n // Two byte character\n if ((byte_ & 0xe0) === 0xc0) {\n string += String.fromCharCode(((byte_ & 0x0f) << 6) | (view.getUint8(++i) & 0x3f));\n continue;\n }\n // Three byte character\n if ((byte_ & 0xf0) === 0xe0) {\n string += String.fromCharCode(((byte_ & 0x0f) << 12) | ((view.getUint8(++i) & 0x3f) << 6) | ((view.getUint8(++i) & 0x3f) << 0));\n continue;\n }\n // Four byte character\n if ((byte_ & 0xf8) === 0xf0) {\n string += String.fromCharCode(((byte_ & 0x07) << 18) |\n ((view.getUint8(++i) & 0x3f) << 12) |\n ((view.getUint8(++i) & 0x3f) << 6) |\n ((view.getUint8(++i) & 0x3f) << 0));\n continue;\n }\n throw new Error('Invalid byte ' + byte_.toString(16));\n }\n return string;\n}\nfunction utf8ByteCount(string) {\n var count = 0;\n for (var i = 0, l = string.length; i < l; i++) {\n var codePoint = string.charCodeAt(i);\n if (codePoint < 0x80) {\n count += 1;\n continue;\n }\n if (codePoint < 0x800) {\n count += 2;\n continue;\n }\n if (codePoint < 0x10000) {\n count += 3;\n continue;\n }\n if (codePoint < 0x110000) {\n count += 4;\n continue;\n }\n throw new Error('bad codepoint ' + codePoint);\n }\n return count;\n}\nfunction encode(value, sparse) {\n var size = sizeof(value, sparse);\n if (size === 0)\n return undefined;\n var buffer = new ArrayBuffer(size);\n var view = new DataView(buffer);\n _encode(value, view, 0, sparse);\n return buffer;\n}\nvar SH_L_32 = (1 << 16) * (1 << 16), SH_R_32 = 1 / SH_L_32;\nfunction getInt64(view, offset) {\n offset = offset || 0;\n return view.getInt32(offset) * SH_L_32 + view.getUint32(offset + 4);\n}\nfunction getUint64(view, offset) {\n offset = offset || 0;\n return view.getUint32(offset) * SH_L_32 + view.getUint32(offset + 4);\n}\nfunction setInt64(view, offset, val) {\n if (val < 0x8000000000000000) {\n view.setInt32(offset, Math.floor(val * SH_R_32));\n view.setInt32(offset + 4, val & -1);\n }\n else {\n view.setUint32(offset, 0x7fffffff);\n view.setUint32(offset + 4, 0x7fffffff);\n }\n}\nfunction setUint64(view, offset, val) {\n if (val < 0x10000000000000000) {\n view.setUint32(offset, Math.floor(val * SH_R_32));\n view.setInt32(offset + 4, val & -1);\n }\n else {\n view.setUint32(offset, 0xffffffff);\n view.setUint32(offset + 4, 0xffffffff);\n }\n}\n// https://gist.github.com/frsyuki/5432559 - v5 spec\n//\n// I've used one extension point from `fixext 1` to store `undefined`. On the wire this\n// should translate to exactly 0xd40000\n//\n// +--------+--------+--------+\n// | 0xd4 | 0x00 | 0x00 |\n// +--------+--------+--------+\n// ^ fixext | ^ value part unused (fixed to be 0)\n// ^ indicates undefined value\n//\nvar Decoder = /** @class */ (function () {\n function Decoder(view, offset) {\n var _this = this;\n this.map = function (length) {\n var value = {};\n for (var i = 0; i < length; i++) {\n var key = _this.parse();\n value[key] = _this.parse();\n }\n return value;\n };\n this.bin = function (length) {\n var value = new ArrayBuffer(length);\n new Uint8Array(value).set(new Uint8Array(_this.view.buffer, _this.offset, length), 0);\n _this.offset += length;\n return value;\n };\n this.buf = this.bin;\n this.str = function (length) {\n var value = utf8Read(_this.view, _this.offset, length);\n _this.offset += length;\n return value;\n };\n this.array = function (length) {\n var value = new Array(length);\n for (var i = 0; i < length; i++) {\n value[i] = _this.parse();\n }\n return value;\n };\n this.ext = function (length) {\n _this.offset += length;\n return {\n type: _this.view.getInt8(_this.offset),\n data: _this.buf(length),\n };\n };\n this.parse = function () {\n var type = _this.view.getUint8(_this.offset);\n var value, length;\n // Positive FixInt - 0xxxxxxx\n if ((type & 0x80) === 0x00) {\n _this.offset++;\n return type;\n }\n // FixMap - 1000xxxx\n if ((type & 0xf0) === 0x80) {\n length = type & 0x0f;\n _this.offset++;\n return _this.map(length);\n }\n // FixArray - 1001xxxx\n if ((type & 0xf0) === 0x90) {\n length = type & 0x0f;\n _this.offset++;\n return _this.array(length);\n }\n // FixStr - 101xxxxx\n if ((type & 0xe0) === 0xa0) {\n length = type & 0x1f;\n _this.offset++;\n return _this.str(length);\n }\n // Negative FixInt - 111xxxxx\n if ((type & 0xe0) === 0xe0) {\n value = _this.view.getInt8(_this.offset);\n _this.offset++;\n return value;\n }\n switch (type) {\n // nil\n case 0xc0:\n _this.offset++;\n return null;\n // 0xc1 never used - use for undefined (NON-STANDARD)\n case 0xc1:\n _this.offset++;\n return undefined;\n // false\n case 0xc2:\n _this.offset++;\n return false;\n // true\n case 0xc3:\n _this.offset++;\n return true;\n // bin 8\n case 0xc4:\n length = _this.view.getUint8(_this.offset + 1);\n _this.offset += 2;\n return _this.bin(length);\n // bin 16\n case 0xc5:\n length = _this.view.getUint16(_this.offset + 1);\n _this.offset += 3;\n return _this.bin(length);\n // bin 32\n case 0xc6:\n length = _this.view.getUint32(_this.offset + 1);\n _this.offset += 5;\n return _this.bin(length);\n // ext 8\n case 0xc7:\n length = _this.view.getUint8(_this.offset + 1);\n _this.offset += 2;\n return _this.ext(length);\n // ext 16\n case 0xc8:\n length = _this.view.getUint16(_this.offset + 1);\n _this.offset += 3;\n return _this.ext(length);\n // ext 32\n case 0xc9:\n length = _this.view.getUint32(_this.offset + 1);\n _this.offset += 5;\n return _this.ext(length);\n // float 32\n case 0xca:\n value = _this.view.getFloat32(_this.offset + 1);\n _this.offset += 5;\n return value;\n // float 64\n case 0xcb:\n value = _this.view.getFloat64(_this.offset + 1);\n _this.offset += 9;\n return value;\n // uint8\n case 0xcc:\n value = _this.view.getUint8(_this.offset + 1);\n _this.offset += 2;\n return value;\n // uint 16\n case 0xcd:\n value = _this.view.getUint16(_this.offset + 1);\n _this.offset += 3;\n return value;\n // uint 32\n case 0xce:\n value = _this.view.getUint32(_this.offset + 1);\n _this.offset += 5;\n return value;\n // uint 64\n case 0xcf:\n value = getUint64(_this.view, _this.offset + 1);\n _this.offset += 9;\n return value;\n // int 8\n case 0xd0:\n value = _this.view.getInt8(_this.offset + 1);\n _this.offset += 2;\n return value;\n // int 16\n case 0xd1:\n value = _this.view.getInt16(_this.offset + 1);\n _this.offset += 3;\n return value;\n // int 32\n case 0xd2:\n value = _this.view.getInt32(_this.offset + 1);\n _this.offset += 5;\n return value;\n // int 64\n case 0xd3:\n value = getInt64(_this.view, _this.offset + 1);\n _this.offset += 9;\n return value;\n // fixext 1\n case 0xd4:\n length = 1;\n _this.offset++;\n return _this.ext(length);\n // fixext 2\n case 0xd5:\n length = 2;\n _this.offset++;\n return _this.ext(length);\n // fixext 4\n case 0xd6:\n length = 4;\n _this.offset++;\n return _this.ext(length);\n // fixext 8\n case 0xd7:\n length = 8;\n _this.offset++;\n return _this.ext(length);\n // fixext 16\n case 0xd8:\n length = 16;\n _this.offset++;\n return _this.ext(length);\n // str8\n case 0xd9:\n length = _this.view.getUint8(_this.offset + 1);\n _this.offset += 2;\n return _this.str(length);\n // str 16\n case 0xda:\n length = _this.view.getUint16(_this.offset + 1);\n _this.offset += 3;\n return _this.str(length);\n // str 32\n case 0xdb:\n length = _this.view.getUint32(_this.offset + 1);\n _this.offset += 5;\n return _this.str(length);\n // array 16\n case 0xdc:\n length = _this.view.getUint16(_this.offset + 1);\n _this.offset += 3;\n return _this.array(length);\n // array 32\n case 0xdd:\n length = _this.view.getUint32(_this.offset + 1);\n _this.offset += 5;\n return _this.array(length);\n // map 16\n case 0xde:\n length = _this.view.getUint16(_this.offset + 1);\n _this.offset += 3;\n return _this.map(length);\n // map 32\n case 0xdf:\n length = _this.view.getUint32(_this.offset + 1);\n _this.offset += 5;\n return _this.map(length);\n }\n throw new Error('Unknown type 0x' + type.toString(16));\n };\n this.offset = offset || 0;\n this.view = view;\n }\n return Decoder;\n}());\nfunction decode(buffer) {\n var view = new DataView(buffer);\n var decoder = new Decoder(view);\n var value = decoder.parse();\n if (decoder.offset !== buffer.byteLength)\n throw new Error(buffer.byteLength - decoder.offset + ' trailing bytes');\n return value;\n}\nfunction encodeableKeys(value, sparse) {\n return Object.keys(value).filter(function (e) {\n var val = value[e], type = typeof val;\n return (!sparse || (val !== undefined && val !== null)) && ('function' !== type || !!val.toJSON);\n });\n}\nfunction _encode(value, view, offset, sparse) {\n var type = typeof value;\n // Strings Bytes\n // There are four string types: fixstr/str8/str16/str32\n if (typeof value === 'string') {\n var length_1 = utf8ByteCount(value);\n // fixstr\n if (length_1 < 0x20) {\n view.setUint8(offset, length_1 | 0xa0);\n utf8Write(view, offset + 1, value);\n return 1 + length_1;\n }\n // str8\n if (length_1 < 0x100) {\n view.setUint8(offset, 0xd9);\n view.setUint8(offset + 1, length_1);\n utf8Write(view, offset + 2, value);\n return 2 + length_1;\n }\n // str16\n if (length_1 < 0x10000) {\n view.setUint8(offset, 0xda);\n view.setUint16(offset + 1, length_1);\n utf8Write(view, offset + 3, value);\n return 3 + length_1;\n }\n // str32\n if (length_1 < 0x100000000) {\n view.setUint8(offset, 0xdb);\n view.setUint32(offset + 1, length_1);\n utf8Write(view, offset + 5, value);\n return 5 + length_1;\n }\n }\n if (ArrayBuffer.isView && ArrayBuffer.isView(value)) {\n // extract the arraybuffer and fallthrough\n value = value.buffer;\n }\n // There are three bin types: bin8/bin16/bin32\n if (value instanceof ArrayBuffer) {\n var length_2 = value.byteLength;\n // bin8\n if (length_2 < 0x100) {\n view.setUint8(offset, 0xc4);\n view.setUint8(offset + 1, length_2);\n new Uint8Array(view.buffer).set(new Uint8Array(value), offset + 2);\n return 2 + length_2;\n }\n // bin16\n if (length_2 < 0x10000) {\n view.setUint8(offset, 0xc5);\n view.setUint16(offset + 1, length_2);\n new Uint8Array(view.buffer).set(new Uint8Array(value), offset + 3);\n return 3 + length_2;\n }\n // bin 32\n if (length_2 < 0x100000000) {\n view.setUint8(offset, 0xc6);\n view.setUint32(offset + 1, length_2);\n new Uint8Array(view.buffer).set(new Uint8Array(value), offset + 5);\n return 5 + length_2;\n }\n }\n if (typeof value === 'number') {\n // Floating Point\n // NOTE: We're always using float64\n if (Math.floor(value) !== value) {\n view.setUint8(offset, 0xcb);\n view.setFloat64(offset + 1, value);\n return 9;\n }\n // Integers\n if (value >= 0) {\n // positive fixnum\n if (value < 0x80) {\n view.setUint8(offset, value);\n return 1;\n }\n // uint 8\n if (value < 0x100) {\n view.setUint8(offset, 0xcc);\n view.setUint8(offset + 1, value);\n return 2;\n }\n // uint 16\n if (value < 0x10000) {\n view.setUint8(offset, 0xcd);\n view.setUint16(offset + 1, value);\n return 3;\n }\n // uint 32\n if (value < 0x100000000) {\n view.setUint8(offset, 0xce);\n view.setUint32(offset + 1, value);\n return 5;\n }\n // uint 64\n if (value < 0x10000000000000000) {\n view.setUint8(offset, 0xcf);\n setUint64(view, offset + 1, value);\n return 9;\n }\n throw new Error('Number too big 0x' + value.toString(16));\n }\n // negative fixnum\n if (value >= -0x20) {\n view.setInt8(offset, value);\n return 1;\n }\n // int 8\n if (value >= -0x80) {\n view.setUint8(offset, 0xd0);\n view.setInt8(offset + 1, value);\n return 2;\n }\n // int 16\n if (value >= -0x8000) {\n view.setUint8(offset, 0xd1);\n view.setInt16(offset + 1, value);\n return 3;\n }\n // int 32\n if (value >= -0x80000000) {\n view.setUint8(offset, 0xd2);\n view.setInt32(offset + 1, value);\n return 5;\n }\n // int 64\n if (value >= -0x8000000000000000) {\n view.setUint8(offset, 0xd3);\n setInt64(view, offset + 1, value);\n return 9;\n }\n throw new Error('Number too small -0x' + (-value).toString(16).substr(1));\n }\n // undefined - use d4 (NON-STANDARD)\n if (type === 'undefined') {\n if (sparse)\n return 0;\n view.setUint8(offset, 0xd4);\n view.setUint8(offset + 1, 0x00);\n view.setUint8(offset + 2, 0x00);\n return 3;\n }\n // null\n if (value === null) {\n if (sparse)\n return 0;\n view.setUint8(offset, 0xc0);\n return 1;\n }\n // Boolean\n if (type === 'boolean') {\n view.setUint8(offset, value ? 0xc3 : 0xc2);\n return 1;\n }\n if ('function' === typeof value.toJSON)\n return _encode(value.toJSON(), view, offset, sparse);\n // Container Types\n if (type === 'object') {\n var length_3, size = 0;\n var keys = void 0;\n var isArray = Array.isArray(value);\n if (isArray) {\n length_3 = value.length;\n }\n else {\n keys = encodeableKeys(value, sparse);\n length_3 = keys.length;\n }\n if (length_3 < 0x10) {\n view.setUint8(offset, length_3 | (isArray ? 0x90 : 0x80));\n size = 1;\n }\n else if (length_3 < 0x10000) {\n view.setUint8(offset, isArray ? 0xdc : 0xde);\n view.setUint16(offset + 1, length_3);\n size = 3;\n }\n else if (length_3 < 0x100000000) {\n view.setUint8(offset, isArray ? 0xdd : 0xdf);\n view.setUint32(offset + 1, length_3);\n size = 5;\n }\n if (isArray) {\n for (var i = 0; i < length_3; i++) {\n size += _encode(value[i], view, offset + size, sparse);\n }\n }\n else if (keys) {\n for (var i = 0; i < length_3; i++) {\n var key = keys[i];\n size += _encode(key, view, offset + size);\n size += _encode(value[key], view, offset + size, sparse);\n }\n }\n return size;\n }\n if (type === 'function')\n return 0;\n throw new Error('Unknown type ' + type);\n}\nfunction sizeof(value, sparse) {\n var type = typeof value;\n // fixstr or str8 or str16 or str32\n if (type === 'string') {\n var length_4 = utf8ByteCount(value);\n if (length_4 < 0x20) {\n return 1 + length_4;\n }\n if (length_4 < 0x100) {\n return 2 + length_4;\n }\n if (length_4 < 0x10000) {\n return 3 + length_4;\n }\n if (length_4 < 0x100000000) {\n return 5 + length_4;\n }\n }\n if (ArrayBuffer.isView && ArrayBuffer.isView(value)) {\n // extract the arraybuffer and fallthrough\n value = value.buffer;\n }\n // bin8 or bin16 or bin32\n if (value instanceof ArrayBuffer) {\n var length_5 = value.byteLength;\n if (length_5 < 0x100) {\n return 2 + length_5;\n }\n if (length_5 < 0x10000) {\n return 3 + length_5;\n }\n if (length_5 < 0x100000000) {\n return 5 + length_5;\n }\n }\n if (typeof value === 'number') {\n // Floating Point (32 bits)\n // double\n if (Math.floor(value) !== value)\n return 9;\n // Integers\n if (value >= 0) {\n // positive fixint\n if (value < 0x80)\n return 1;\n // uint 8\n if (value < 0x100)\n return 2;\n // uint 16\n if (value < 0x10000)\n return 3;\n // uint 32\n if (value < 0x100000000)\n return 5;\n // uint 64\n if (value < 0x10000000000000000)\n return 9;\n // Too big\n throw new Error('Number too big 0x' + value.toString(16));\n }\n // negative fixint\n if (value >= -0x20)\n return 1;\n // int 8\n if (value >= -0x80)\n return 2;\n // int 16\n if (value >= -0x8000)\n return 3;\n // int 32\n if (value >= -0x80000000)\n return 5;\n // int 64\n if (value >= -0x8000000000000000)\n return 9;\n // Too small\n throw new Error('Number too small -0x' + value.toString(16).substr(1));\n }\n // Boolean\n if (type === 'boolean')\n return 1;\n // undefined, null\n if (value === null)\n return sparse ? 0 : 1;\n if (value === undefined)\n return sparse ? 0 : 3;\n if ('function' === typeof value.toJSON)\n return sizeof(value.toJSON(), sparse);\n // Container Types\n if (type === 'object') {\n var length_6, size = 0;\n if (Array.isArray(value)) {\n length_6 = value.length;\n for (var i = 0; i < length_6; i++) {\n size += sizeof(value[i], sparse);\n }\n }\n else {\n var keys = encodeableKeys(value, sparse);\n length_6 = keys.length;\n for (var i = 0; i < length_6; i++) {\n var key = keys[i];\n size += sizeof(key) + sizeof(value[key], sparse);\n }\n }\n if (length_6 < 0x10) {\n return 1 + size;\n }\n if (length_6 < 0x10000) {\n return 3 + size;\n }\n if (length_6 < 0x100000000) {\n return 5 + size;\n }\n throw new Error('Array or object too long 0x' + length_6.toString(16));\n }\n if (type === 'function')\n return 0;\n throw new Error('Unknown type ' + type);\n}\nexports.default = {\n encode: encode,\n decode: decode,\n inspect: inspect,\n utf8Write: utf8Write,\n utf8Read: utf8Read,\n utf8ByteCount: utf8ByteCount,\n};\n\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\n// Common\nvar rest_1 = tslib_1.__importDefault(__webpack_require__(30));\nvar realtime_1 = tslib_1.__importDefault(__webpack_require__(50));\nvar platform_1 = tslib_1.__importDefault(__webpack_require__(3));\nvar errorinfo_1 = tslib_1.__importDefault(__webpack_require__(4));\n// Platform Specific\nvar bufferutils_1 = tslib_1.__importDefault(__webpack_require__(55));\n// @ts-ignore\nvar crypto_1 = tslib_1.__importDefault(__webpack_require__(57));\nvar http_1 = tslib_1.__importDefault(__webpack_require__(62));\nvar config_1 = tslib_1.__importDefault(__webpack_require__(64));\n// @ts-ignore\nvar transport_1 = tslib_1.__importDefault(__webpack_require__(68));\nvar logger_1 = tslib_1.__importDefault(__webpack_require__(2));\nvar defaults_1 = __webpack_require__(8);\nvar webstorage_1 = tslib_1.__importDefault(__webpack_require__(65));\nvar defaults_2 = tslib_1.__importDefault(__webpack_require__(66));\nvar msgpack_1 = tslib_1.__importDefault(__webpack_require__(41));\nvar Crypto = (0, crypto_1.default)(config_1.default, bufferutils_1.default);\nplatform_1.default.Crypto = Crypto;\nplatform_1.default.BufferUtils = bufferutils_1.default;\nplatform_1.default.Http = http_1.default;\nplatform_1.default.Config = config_1.default;\nplatform_1.default.Transports = transport_1.default;\nplatform_1.default.WebStorage = webstorage_1.default;\nrest_1.default.Crypto = Crypto;\nrealtime_1.default.Crypto = Crypto;\nlogger_1.default.initLogHandlers();\nplatform_1.default.Defaults = (0, defaults_1.getDefaults)(defaults_2.default);\nif (platform_1.default.Config.agent) {\n // @ts-ignore\n platform_1.default.Defaults.agent += ' ' + platform_1.default.Config.agent;\n}\n/* If using IE8, don't attempt to upgrade from xhr_polling to xhr_streaming -\n * while it can do streaming, the low max http-connections-per-host limit means\n * that the polling transport is crippled during the upgrade process. So just\n * leave it at the base transport */\nif (platform_1.default.Config.noUpgrade) {\n platform_1.default.Defaults.upgradeTransports = [];\n}\nexports.default = {\n ErrorInfo: errorinfo_1.default,\n Rest: rest_1.default,\n Realtime: realtime_1.default,\n msgpack: msgpack_1.default,\n};\n\n\n/***/ }),\n/* 43 */\n/***/ (function(module) {\n\nmodule.exports = JSON.parse(\"{\\\"name\\\":\\\"ably\\\",\\\"description\\\":\\\"Realtime client library for Ably, the realtime messaging service\\\",\\\"version\\\":\\\"1.2.45\\\",\\\"license\\\":\\\"Apache-2.0\\\",\\\"bugs\\\":{\\\"url\\\":\\\"https://github.com/ably/ably-js/issues\\\",\\\"email\\\":\\\"support@ably.com\\\"},\\\"main\\\":\\\"./build/ably-node.js\\\",\\\"typings\\\":\\\"./ably.d.ts\\\",\\\"react-native\\\":{\\\"./build/ably-node.js\\\":\\\"./build/ably-reactnative.js\\\"},\\\"browser\\\":{\\\"./build/ably-node.js\\\":\\\"./build/ably-commonjs.js\\\"},\\\"files\\\":[\\\"build/**\\\",\\\"ably.d.ts\\\",\\\"callbacks.d.ts\\\",\\\"callbacks.js\\\",\\\"promises.d.ts\\\",\\\"promises.js\\\",\\\"resources/**\\\",\\\"src/**\\\",\\\"react/**\\\"],\\\"dependencies\\\":{\\\"@ably/msgpack-js\\\":\\\"^0.4.0\\\",\\\"got\\\":\\\"^11.8.5\\\",\\\"ws\\\":\\\"^5.1\\\"},\\\"peerDependencies\\\":{\\\"react\\\":\\\">=16.8.0\\\",\\\"react-dom\\\":\\\">=16.8.0\\\"},\\\"peerDependenciesMeta\\\":{\\\"react\\\":{\\\"optional\\\":true},\\\"react-dom\\\":{\\\"optional\\\":true}},\\\"devDependencies\\\":{\\\"@ably/vcdiff-decoder\\\":\\\"1.0.4\\\",\\\"@testing-library/react\\\":\\\"^13.3.0\\\",\\\"@types/crypto-js\\\":\\\"^4.0.1\\\",\\\"@types/node\\\":\\\"^15.0.0\\\",\\\"@types/request\\\":\\\"^2.48.7\\\",\\\"@types/ws\\\":\\\"^8.2.0\\\",\\\"@typescript-eslint/eslint-plugin\\\":\\\"^5.14.0\\\",\\\"@typescript-eslint/parser\\\":\\\"^5.14.0\\\",\\\"@vitejs/plugin-react\\\":\\\"^1.3.2\\\",\\\"async\\\":\\\"ably-forks/async#requirejs\\\",\\\"aws-sdk\\\":\\\"^2.1413.0\\\",\\\"chai\\\":\\\"^4.2.0\\\",\\\"copy-webpack-plugin\\\":\\\"^6.4.1\\\",\\\"cors\\\":\\\"^2.8.5\\\",\\\"crypto-js\\\":\\\"ably-forks/crypto-js#crypto-lite\\\",\\\"eslint\\\":\\\"^7.13.0\\\",\\\"eslint-plugin-import\\\":\\\"^2.28.0\\\",\\\"eslint-plugin-jsdoc\\\":\\\"^40.0.0\\\",\\\"eslint-plugin-react\\\":\\\"^7.32.2\\\",\\\"eslint-plugin-react-hooks\\\":\\\"^4.6.0\\\",\\\"eslint-plugin-security\\\":\\\"^1.4.0\\\",\\\"express\\\":\\\"^4.17.1\\\",\\\"glob\\\":\\\"~4.4\\\",\\\"google-closure-compiler\\\":\\\"^20180610.0.1\\\",\\\"grunt\\\":\\\"^1.6.1\\\",\\\"grunt-bump\\\":\\\"^0.3.1\\\",\\\"grunt-cli\\\":\\\"~1.2.0\\\",\\\"grunt-closure-tools\\\":\\\"^1.0.0\\\",\\\"grunt-contrib-concat\\\":\\\"~0.5\\\",\\\"grunt-shell\\\":\\\"~1.1\\\",\\\"grunt-webpack\\\":\\\"^4.0.2\\\",\\\"hexy\\\":\\\"~0.2\\\",\\\"jsdom\\\":\\\"^20.0.0\\\",\\\"kexec\\\":\\\"ably-forks/node-kexec#update-for-node-12\\\",\\\"minimist\\\":\\\"^1.2.5\\\",\\\"mocha\\\":\\\"^8.1.3\\\",\\\"null-loader\\\":\\\"^4.0.1\\\",\\\"playwright\\\":\\\"^1.10.0\\\",\\\"prettier\\\":\\\"^2.5.1\\\",\\\"react\\\":\\\">=18.1.0\\\",\\\"react-dom\\\":\\\">=18.1.0\\\",\\\"requirejs\\\":\\\"~2.1\\\",\\\"shelljs\\\":\\\"~0.8\\\",\\\"source-map-explorer\\\":\\\"^2.5.2\\\",\\\"ts-loader\\\":\\\"^8.2.0\\\",\\\"tsconfig-paths-webpack-plugin\\\":\\\"^4.0.1\\\",\\\"tslib\\\":\\\"^2.3.1\\\",\\\"typedoc\\\":\\\"^0.23.8\\\",\\\"typescript\\\":\\\"^4.6.4\\\",\\\"vite\\\":\\\"^4.4.9\\\",\\\"vitest\\\":\\\"^0.18.0\\\",\\\"webpack\\\":\\\"^4.44.2\\\",\\\"webpack-cli\\\":\\\"^4.2.0\\\"},\\\"engines\\\":{\\\"node\\\":\\\">=5.10.x\\\"},\\\"repository\\\":\\\"ably/ably-js\\\",\\\"jspm\\\":{\\\"registry\\\":\\\"npm\\\",\\\"directories\\\":{\\\"lib\\\":\\\"build\\\"},\\\"main\\\":\\\"ably\\\"},\\\"scripts\\\":{\\\"start:react\\\":\\\"npx vite serve\\\",\\\"grunt\\\":\\\"grunt\\\",\\\"test\\\":\\\"grunt test\\\",\\\"test:node\\\":\\\"grunt test:node\\\",\\\"test:node:skip-build\\\":\\\"grunt mocha\\\",\\\"test:webserver\\\":\\\"grunt test:webserver\\\",\\\"test:playwright\\\":\\\"node test/support/runPlaywrightTests.js\\\",\\\"test:react\\\":\\\"vitest run\\\",\\\"concat\\\":\\\"grunt concat\\\",\\\"build\\\":\\\"grunt build:all && npm run build:react\\\",\\\"build:node\\\":\\\"grunt build:node\\\",\\\"build:browser\\\":\\\"grunt build:browser\\\",\\\"build:react\\\":\\\"npm run build:react:mjs && npm run build:react:cjs && cp src/platform/react-hooks/res/package.react.json react/package.json\\\",\\\"build:react:mjs\\\":\\\"tsc --project src/platform/react-hooks/tsconfig.mjs.json && cp src/platform/react-hooks/res/package.mjs.json react/mjs/package.json\\\",\\\"build:react:cjs\\\":\\\"tsc --project src/platform/react-hooks/tsconfig.cjs.json && cp src/platform/react-hooks/res/package.cjs.json react/cjs/package.json\\\",\\\"requirejs\\\":\\\"grunt requirejs\\\",\\\"lint\\\":\\\"eslint .\\\",\\\"lint:fix\\\":\\\"eslint --fix .\\\",\\\"check-closure-compiler\\\":\\\"grunt check-closure-compiler\\\",\\\"prepare\\\":\\\"npm run build\\\",\\\"format\\\":\\\"prettier --write --ignore-path .gitignore --ignore-path .prettierignore src test ably.d.ts webpack.config.js Gruntfile.js scripts/cdn_deploy.js docs/chrome-mv3.md\\\",\\\"format:check\\\":\\\"prettier --check --ignore-path .gitignore --ignore-path .prettierignore src test ably.d.ts webpack.config.js Gruntfile.js scripts/cdn_deploy.js\\\",\\\"sourcemap\\\":\\\"source-map-explorer build/ably.min.js\\\",\\\"sourcemap:noencryption\\\":\\\"source-map-explorer build/ably.noencryption.min.js\\\",\\\"docs\\\":\\\"typedoc --entryPoints ably.d.ts --out docs/generated/default --readme docs/landing-pages/default.md && typedoc --entryPoints promises.d.ts --out docs/generated/promises --name \\\\\\\"ably (Promise-based)\\\\\\\" --readme docs/landing-pages/promises.md && cp docs/landing-pages/choose-library.html docs/generated/index.html\\\"}}\");\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports) {\n\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(6), __webpack_require__(32), __webpack_require__(24));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS.HmacSHA256;\n\n}));\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\nvar devicedetails_1 = tslib_1.__importDefault(__webpack_require__(47));\nvar resource_1 = tslib_1.__importDefault(__webpack_require__(14));\nvar paginatedresource_1 = tslib_1.__importDefault(__webpack_require__(19));\nvar errorinfo_1 = tslib_1.__importDefault(__webpack_require__(4));\nvar pushchannelsubscription_1 = tslib_1.__importDefault(__webpack_require__(48));\nvar noop = function () { };\nvar Push = /** @class */ (function () {\n function Push(rest) {\n this.rest = rest;\n this.admin = new Admin(rest);\n }\n return Push;\n}());\nvar Admin = /** @class */ (function () {\n function Admin(rest) {\n this.rest = rest;\n this.deviceRegistrations = new DeviceRegistrations(rest);\n this.channelSubscriptions = new ChannelSubscriptions(rest);\n }\n Admin.prototype.publish = function (recipient, payload, callback) {\n var rest = this.rest;\n var format = rest.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json, headers = Utils.defaultPostHeaders(rest.options, format), params = {};\n var body = Utils.mixin({ recipient: recipient }, payload);\n if (typeof callback !== 'function') {\n if (this.rest.options.promises) {\n return Utils.promisify(this, 'publish', arguments);\n }\n callback = noop;\n }\n if (rest.options.headers)\n Utils.mixin(headers, rest.options.headers);\n if (rest.options.pushFullWait)\n Utils.mixin(params, { fullWait: 'true' });\n var requestBody = Utils.encodeBody(body, format);\n resource_1.default.post(rest, '/push/publish', requestBody, headers, params, null, function (err) { return callback(err); });\n };\n return Admin;\n}());\nvar DeviceRegistrations = /** @class */ (function () {\n function DeviceRegistrations(rest) {\n this.rest = rest;\n }\n DeviceRegistrations.prototype.save = function (device, callback) {\n var rest = this.rest;\n var body = devicedetails_1.default.fromValues(device);\n var format = rest.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json, headers = Utils.defaultPostHeaders(rest.options, format), params = {};\n if (typeof callback !== 'function') {\n if (this.rest.options.promises) {\n return Utils.promisify(this, 'save', arguments);\n }\n callback = noop;\n }\n if (rest.options.headers)\n Utils.mixin(headers, rest.options.headers);\n if (rest.options.pushFullWait)\n Utils.mixin(params, { fullWait: 'true' });\n var requestBody = Utils.encodeBody(body, format);\n resource_1.default.put(rest, '/push/deviceRegistrations/' + encodeURIComponent(device.id), requestBody, headers, params, null, function (err, body, headers, unpacked) {\n callback(err, !err\n ? devicedetails_1.default.fromResponseBody(body, unpacked ? undefined : format)\n : undefined);\n });\n };\n DeviceRegistrations.prototype.get = function (deviceIdOrDetails, callback) {\n var rest = this.rest, format = rest.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json, headers = Utils.defaultGetHeaders(rest.options, format), deviceId = deviceIdOrDetails.id || deviceIdOrDetails;\n if (typeof callback !== 'function') {\n if (this.rest.options.promises) {\n return Utils.promisify(this, 'get', arguments);\n }\n callback = noop;\n }\n if (typeof deviceId !== 'string' || !deviceId.length) {\n callback(new errorinfo_1.default('First argument to DeviceRegistrations#get must be a deviceId string or DeviceDetails', 40000, 400));\n return;\n }\n if (rest.options.headers)\n Utils.mixin(headers, rest.options.headers);\n resource_1.default.get(rest, '/push/deviceRegistrations/' + encodeURIComponent(deviceId), headers, {}, null, function (err, body, headers, unpacked) {\n callback(err, !err\n ? devicedetails_1.default.fromResponseBody(body, unpacked ? undefined : format)\n : undefined);\n });\n };\n DeviceRegistrations.prototype.list = function (params, callback) {\n var rest = this.rest, format = rest.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json, envelope = this.rest.http.supportsLinkHeaders ? undefined : format, headers = Utils.defaultGetHeaders(rest.options, format);\n if (typeof callback !== 'function') {\n if (this.rest.options.promises) {\n return Utils.promisify(this, 'list', arguments);\n }\n callback = noop;\n }\n if (rest.options.headers)\n Utils.mixin(headers, rest.options.headers);\n new paginatedresource_1.default(rest, '/push/deviceRegistrations', headers, envelope, function (body, headers, unpacked) {\n return devicedetails_1.default.fromResponseBody(body, unpacked ? undefined : format);\n }).get(params, callback);\n };\n DeviceRegistrations.prototype.remove = function (deviceIdOrDetails, callback) {\n var rest = this.rest, format = rest.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json, headers = Utils.defaultGetHeaders(rest.options, format), params = {}, deviceId = deviceIdOrDetails.id || deviceIdOrDetails;\n if (typeof callback !== 'function') {\n if (this.rest.options.promises) {\n return Utils.promisify(this, 'remove', arguments);\n }\n callback = noop;\n }\n if (typeof deviceId !== 'string' || !deviceId.length) {\n callback(new errorinfo_1.default('First argument to DeviceRegistrations#remove must be a deviceId string or DeviceDetails', 40000, 400));\n return;\n }\n if (rest.options.headers)\n Utils.mixin(headers, rest.options.headers);\n if (rest.options.pushFullWait)\n Utils.mixin(params, { fullWait: 'true' });\n resource_1.default['delete'](rest, '/push/deviceRegistrations/' + encodeURIComponent(deviceId), headers, params, null, function (err) { return callback(err); });\n };\n DeviceRegistrations.prototype.removeWhere = function (params, callback) {\n var rest = this.rest, format = rest.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json, headers = Utils.defaultGetHeaders(rest.options, format);\n if (typeof callback !== 'function') {\n if (this.rest.options.promises) {\n return Utils.promisify(this, 'removeWhere', arguments);\n }\n callback = noop;\n }\n if (rest.options.headers)\n Utils.mixin(headers, rest.options.headers);\n if (rest.options.pushFullWait)\n Utils.mixin(params, { fullWait: 'true' });\n resource_1.default['delete'](rest, '/push/deviceRegistrations', headers, params, null, function (err) { return callback(err); });\n };\n return DeviceRegistrations;\n}());\nvar ChannelSubscriptions = /** @class */ (function () {\n function ChannelSubscriptions(rest) {\n /* ChannelSubscriptions have no unique id; removing one is equivalent to removeWhere by its properties */\n this.remove = ChannelSubscriptions.prototype.removeWhere;\n this.rest = rest;\n }\n ChannelSubscriptions.prototype.save = function (subscription, callback) {\n var rest = this.rest;\n var body = pushchannelsubscription_1.default.fromValues(subscription);\n var format = rest.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json, headers = Utils.defaultPostHeaders(rest.options, format), params = {};\n if (typeof callback !== 'function') {\n if (this.rest.options.promises) {\n return Utils.promisify(this, 'save', arguments);\n }\n callback = noop;\n }\n if (rest.options.headers)\n Utils.mixin(headers, rest.options.headers);\n if (rest.options.pushFullWait)\n Utils.mixin(params, { fullWait: 'true' });\n var requestBody = Utils.encodeBody(body, format);\n resource_1.default.post(rest, '/push/channelSubscriptions', requestBody, headers, params, null, function (err, body, headers, unpacked) {\n callback(err, !err && pushchannelsubscription_1.default.fromResponseBody(body, unpacked ? undefined : format));\n });\n };\n ChannelSubscriptions.prototype.list = function (params, callback) {\n var rest = this.rest, format = rest.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json, envelope = this.rest.http.supportsLinkHeaders ? undefined : format, headers = Utils.defaultGetHeaders(rest.options, format);\n if (typeof callback !== 'function') {\n if (this.rest.options.promises) {\n return Utils.promisify(this, 'list', arguments);\n }\n callback = noop;\n }\n if (rest.options.headers)\n Utils.mixin(headers, rest.options.headers);\n new paginatedresource_1.default(rest, '/push/channelSubscriptions', headers, envelope, function (body, headers, unpacked) {\n return pushchannelsubscription_1.default.fromResponseBody(body, unpacked ? undefined : format);\n }).get(params, callback);\n };\n ChannelSubscriptions.prototype.removeWhere = function (params, callback) {\n var rest = this.rest, format = rest.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json, headers = Utils.defaultGetHeaders(rest.options, format);\n if (typeof callback !== 'function') {\n if (this.rest.options.promises) {\n return Utils.promisify(this, 'removeWhere', arguments);\n }\n callback = noop;\n }\n if (rest.options.headers)\n Utils.mixin(headers, rest.options.headers);\n if (rest.options.pushFullWait)\n Utils.mixin(params, { fullWait: 'true' });\n resource_1.default['delete'](rest, '/push/channelSubscriptions', headers, params, null, function (err) { return callback(err); });\n };\n ChannelSubscriptions.prototype.listChannels = function (params, callback) {\n var rest = this.rest, format = rest.options.useBinaryProtocol ? Utils.Format.msgpack : Utils.Format.json, envelope = this.rest.http.supportsLinkHeaders ? undefined : format, headers = Utils.defaultGetHeaders(rest.options, format);\n if (typeof callback !== 'function') {\n if (this.rest.options.promises) {\n return Utils.promisify(this, 'listChannels', arguments);\n }\n callback = noop;\n }\n if (rest.options.headers)\n Utils.mixin(headers, rest.options.headers);\n if (rest.options.pushFullWait)\n Utils.mixin(params, { fullWait: 'true' });\n new paginatedresource_1.default(rest, '/push/channels', headers, envelope, function (body, headers, unpacked) {\n var parsedBody = (!unpacked && format ? Utils.decodeBody(body, format) : body);\n for (var i = 0; i < parsedBody.length; i++) {\n parsedBody[i] = String(parsedBody[i]);\n }\n return parsedBody;\n }).get(params, callback);\n };\n return ChannelSubscriptions;\n}());\nexports.default = Push;\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\nvar errorinfo_1 = tslib_1.__importDefault(__webpack_require__(4));\nvar DeviceFormFactor;\n(function (DeviceFormFactor) {\n DeviceFormFactor[\"Phone\"] = \"phone\";\n DeviceFormFactor[\"Tablet\"] = \"tablet\";\n DeviceFormFactor[\"Desktop\"] = \"desktop\";\n DeviceFormFactor[\"TV\"] = \"tv\";\n DeviceFormFactor[\"Watch\"] = \"watch\";\n DeviceFormFactor[\"Car\"] = \"car\";\n DeviceFormFactor[\"Embedded\"] = \"embedded\";\n DeviceFormFactor[\"Other\"] = \"other\";\n})(DeviceFormFactor || (DeviceFormFactor = {}));\nvar DevicePlatform;\n(function (DevicePlatform) {\n DevicePlatform[\"Android\"] = \"android\";\n DevicePlatform[\"IOS\"] = \"ios\";\n DevicePlatform[\"Browser\"] = \"browser\";\n})(DevicePlatform || (DevicePlatform = {}));\nvar DeviceDetails = /** @class */ (function () {\n function DeviceDetails() {\n }\n DeviceDetails.prototype.toJSON = function () {\n var _a, _b, _c;\n return {\n id: this.id,\n deviceSecret: this.deviceSecret,\n platform: this.platform,\n formFactor: this.formFactor,\n clientId: this.clientId,\n metadata: this.metadata,\n deviceIdentityToken: this.deviceIdentityToken,\n push: {\n recipient: (_a = this.push) === null || _a === void 0 ? void 0 : _a.recipient,\n state: (_b = this.push) === null || _b === void 0 ? void 0 : _b.state,\n error: (_c = this.push) === null || _c === void 0 ? void 0 : _c.error,\n },\n };\n };\n DeviceDetails.prototype.toString = function () {\n var _a, _b, _c, _d;\n var result = '[DeviceDetails';\n if (this.id)\n result += '; id=' + this.id;\n if (this.platform)\n result += '; platform=' + this.platform;\n if (this.formFactor)\n result += '; formFactor=' + this.formFactor;\n if (this.clientId)\n result += '; clientId=' + this.clientId;\n if (this.metadata)\n result += '; metadata=' + this.metadata;\n if (this.deviceIdentityToken)\n result += '; deviceIdentityToken=' + JSON.stringify(this.deviceIdentityToken);\n if ((_a = this.push) === null || _a === void 0 ? void 0 : _a.recipient)\n result += '; push.recipient=' + JSON.stringify(this.push.recipient);\n if ((_b = this.push) === null || _b === void 0 ? void 0 : _b.state)\n result += '; push.state=' + this.push.state;\n if ((_c = this.push) === null || _c === void 0 ? void 0 : _c.error)\n result += '; push.error=' + JSON.stringify(this.push.error);\n if ((_d = this.push) === null || _d === void 0 ? void 0 : _d.metadata)\n result += '; push.metadata=' + this.push.metadata;\n result += ']';\n return result;\n };\n DeviceDetails.fromResponseBody = function (body, format) {\n if (format) {\n body = Utils.decodeBody(body, format);\n }\n if (Utils.isArray(body)) {\n return DeviceDetails.fromValuesArray(body);\n }\n else {\n return DeviceDetails.fromValues(body);\n }\n };\n DeviceDetails.fromValues = function (values) {\n values.error = values.error && errorinfo_1.default.fromValues(values.error);\n return Object.assign(new DeviceDetails(), values);\n };\n DeviceDetails.fromValuesArray = function (values) {\n var count = values.length, result = new Array(count);\n for (var i = 0; i < count; i++)\n result[i] = DeviceDetails.fromValues(values[i]);\n return result;\n };\n DeviceDetails.toRequestBody = Utils.encodeBody;\n return DeviceDetails;\n}());\nexports.default = DeviceDetails;\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\nvar PushChannelSubscription = /** @class */ (function () {\n function PushChannelSubscription() {\n }\n /**\n * Overload toJSON() to intercept JSON.stringify()\n * @return {*}\n */\n PushChannelSubscription.prototype.toJSON = function () {\n return {\n channel: this.channel,\n deviceId: this.deviceId,\n clientId: this.clientId,\n };\n };\n PushChannelSubscription.prototype.toString = function () {\n var result = '[PushChannelSubscription';\n if (this.channel)\n result += '; channel=' + this.channel;\n if (this.deviceId)\n result += '; deviceId=' + this.deviceId;\n if (this.clientId)\n result += '; clientId=' + this.clientId;\n result += ']';\n return result;\n };\n PushChannelSubscription.fromResponseBody = function (body, format) {\n if (format) {\n body = Utils.decodeBody(body, format);\n }\n if (Utils.isArray(body)) {\n return PushChannelSubscription.fromValuesArray(body);\n }\n else {\n return PushChannelSubscription.fromValues(body);\n }\n };\n PushChannelSubscription.fromValues = function (values) {\n return Object.assign(new PushChannelSubscription(), values);\n };\n PushChannelSubscription.fromValuesArray = function (values) {\n var count = values.length, result = new Array(count);\n for (var i = 0; i < count; i++)\n result[i] = PushChannelSubscription.fromValues(values[i]);\n return result;\n };\n PushChannelSubscription.toRequestBody = Utils.encodeBody;\n return PushChannelSubscription;\n}());\nexports.default = PushChannelSubscription;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\nvar MessageCount = /** @class */ (function () {\n function MessageCount(values) {\n this.count = (values && values.count) || 0;\n this.data = (values && values.data) || 0;\n this.uncompressedData = (values && values.uncompressedData) || 0;\n this.failed = (values && values.failed) || 0;\n this.refused = (values && values.refused) || 0;\n }\n return MessageCount;\n}());\nvar MessageCategory = /** @class */ (function (_super) {\n tslib_1.__extends(MessageCategory, _super);\n function MessageCategory(values) {\n var _this = _super.call(this, values) || this;\n if (values && values.category) {\n _this.category = {};\n Utils.forInOwnNonNullProperties(values.category, function (prop) {\n _this.category[prop] = new MessageCount(values.category[prop]);\n });\n }\n return _this;\n }\n return MessageCategory;\n}(MessageCount));\nvar ResourceCount = /** @class */ (function () {\n function ResourceCount(values) {\n this.peak = (values && values.peak) || 0;\n this.min = (values && values.min) || 0;\n this.mean = (values && values.mean) || 0;\n this.opened = (values && values.opened) || 0;\n this.refused = (values && values.refused) || 0;\n }\n return ResourceCount;\n}());\nvar RequestCount = /** @class */ (function () {\n function RequestCount(values) {\n this.succeeded = (values && values.succeeded) || 0;\n this.failed = (values && values.failed) || 0;\n this.refused = (values && values.refused) || 0;\n }\n return RequestCount;\n}());\nvar ConnectionTypes = /** @class */ (function () {\n function ConnectionTypes(values) {\n this.plain = new ResourceCount(values && values.plain);\n this.tls = new ResourceCount(values && values.tls);\n this.all = new ResourceCount(values && values.all);\n }\n return ConnectionTypes;\n}());\nvar MessageTypes = /** @class */ (function () {\n function MessageTypes(values) {\n this.messages = new MessageCategory(values && values.messages);\n this.presence = new MessageCategory(values && values.presence);\n this.all = new MessageCategory(values && values.all);\n }\n return MessageTypes;\n}());\nvar MessageTraffic = /** @class */ (function () {\n function MessageTraffic(values) {\n this.realtime = new MessageTypes(values && values.realtime);\n this.rest = new MessageTypes(values && values.rest);\n this.webhook = new MessageTypes(values && values.webhook);\n this.sharedQueue = new MessageTypes(values && values.sharedQueue);\n this.externalQueue = new MessageTypes(values && values.externalQueue);\n this.httpEvent = new MessageTypes(values && values.httpEvent);\n this.push = new MessageTypes(values && values.push);\n this.all = new MessageTypes(values && values.all);\n }\n return MessageTraffic;\n}());\nvar MessageDirections = /** @class */ (function () {\n function MessageDirections(values) {\n this.all = new MessageTypes(values && values.all);\n this.inbound = new MessageTraffic(values && values.inbound);\n this.outbound = new MessageTraffic(values && values.outbound);\n }\n return MessageDirections;\n}());\nvar XchgMessages = /** @class */ (function () {\n function XchgMessages(values) {\n this.all = new MessageTypes(values && values.all);\n this.producerPaid = new MessageDirections(values && values.producerPaid);\n this.consumerPaid = new MessageDirections(values && values.consumerPaid);\n }\n return XchgMessages;\n}());\nvar PushStats = /** @class */ (function () {\n function PushStats(values) {\n this.messages = (values && values.messages) || 0;\n var notifications = values && values.notifications;\n this.notifications = {\n invalid: (notifications && notifications.invalid) || 0,\n attempted: (notifications && notifications.attempted) || 0,\n successful: (notifications && notifications.successful) || 0,\n failed: (notifications && notifications.failed) || 0,\n };\n this.directPublishes = (values && values.directPublishes) || 0;\n }\n return PushStats;\n}());\nvar ProcessedCount = /** @class */ (function () {\n function ProcessedCount(values) {\n this.succeeded = (values && values.succeeded) || 0;\n this.skipped = (values && values.skipped) || 0;\n this.failed = (values && values.failed) || 0;\n }\n return ProcessedCount;\n}());\nvar ProcessedMessages = /** @class */ (function () {\n function ProcessedMessages(values) {\n var _this = this;\n this.delta = undefined;\n if (values && values.delta) {\n this.delta = {};\n Utils.forInOwnNonNullProperties(values.delta, function (prop) {\n _this.delta[prop] = new ProcessedCount(values.delta[prop]);\n });\n }\n }\n return ProcessedMessages;\n}());\nvar Stats = /** @class */ (function (_super) {\n tslib_1.__extends(Stats, _super);\n function Stats(values) {\n var _this = _super.call(this, values) || this;\n _this.persisted = new MessageTypes(values && values.persisted);\n _this.connections = new ConnectionTypes(values && values.connections);\n _this.channels = new ResourceCount(values && values.channels);\n _this.apiRequests = new RequestCount(values && values.apiRequests);\n _this.tokenRequests = new RequestCount(values && values.tokenRequests);\n _this.xchgProducer = new XchgMessages(values && values.xchgProducer);\n _this.xchgConsumer = new XchgMessages(values && values.xchgConsumer);\n _this.push = new PushStats(values && values.pushStats);\n _this.processed = new ProcessedMessages(values && values.processed);\n _this.inProgress = (values && values.inProgress) || undefined;\n _this.unit = (values && values.unit) || undefined;\n _this.intervalId = (values && values.intervalId) || undefined;\n return _this;\n }\n Stats.fromValues = function (values) {\n return new Stats(values);\n };\n return Stats;\n}(MessageDirections));\nexports.default = Stats;\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\nvar rest_1 = tslib_1.__importDefault(__webpack_require__(30));\nvar eventemitter_1 = tslib_1.__importDefault(__webpack_require__(7));\nvar logger_1 = tslib_1.__importDefault(__webpack_require__(2));\nvar connection_1 = tslib_1.__importDefault(__webpack_require__(51));\nvar realtimechannel_1 = tslib_1.__importDefault(__webpack_require__(38));\nvar defaults_1 = tslib_1.__importDefault(__webpack_require__(8));\nvar errorinfo_1 = tslib_1.__importDefault(__webpack_require__(4));\nvar protocolmessage_1 = tslib_1.__importDefault(__webpack_require__(10));\nvar connectionmanager_1 = tslib_1.__importDefault(__webpack_require__(35));\nvar platform_1 = tslib_1.__importDefault(__webpack_require__(3));\nvar message_1 = tslib_1.__importDefault(__webpack_require__(9));\nvar Realtime = /** @class */ (function (_super) {\n tslib_1.__extends(Realtime, _super);\n function Realtime(options) {\n var _this = _super.call(this, options) || this;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Realtime()', '');\n _this.connection = new connection_1.default(_this, _this.options);\n _this.channels = new Channels(_this);\n if (options.autoConnect !== false)\n _this.connect();\n return _this;\n }\n Realtime.prototype.connect = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Realtime.connect()', '');\n this.connection.connect();\n };\n Realtime.prototype.close = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Realtime.close()', '');\n this.connection.close();\n };\n Realtime.Promise = function (options) {\n options = defaults_1.default.objectifyOptions(options);\n options.promises = true;\n return new Realtime(options);\n };\n Realtime.Callbacks = Realtime;\n Realtime.Utils = Utils;\n Realtime.ConnectionManager = connectionmanager_1.default;\n Realtime.Platform = platform_1.default;\n Realtime.ProtocolMessage = protocolmessage_1.default;\n Realtime.Message = message_1.default;\n return Realtime;\n}(rest_1.default));\nvar Channels = /** @class */ (function (_super) {\n tslib_1.__extends(Channels, _super);\n function Channels(realtime) {\n var _this = _super.call(this) || this;\n _this.realtime = realtime;\n _this.all = Object.create(null);\n realtime.connection.connectionManager.on('transport.active', function () {\n _this.onTransportActive();\n });\n return _this;\n }\n Channels.prototype.channelSerials = function () {\n var serials = {};\n for (var _i = 0, _a = Utils.keysArray(this.all, true); _i < _a.length; _i++) {\n var name_1 = _a[_i];\n var channel = this.all[name_1];\n if (channel.properties.channelSerial) {\n serials[name_1] = channel.properties.channelSerial;\n }\n }\n return serials;\n };\n // recoverChannels gets the given channels and sets their channel serials.\n Channels.prototype.recoverChannels = function (channelSerials) {\n for (var _i = 0, _a = Utils.keysArray(channelSerials, true); _i < _a.length; _i++) {\n var name_2 = _a[_i];\n var channel = this.get(name_2);\n channel.properties.channelSerial = channelSerials[name_2];\n }\n };\n Channels.prototype.onChannelMessage = function (msg) {\n var channelName = msg.channel;\n if (channelName === undefined) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Channels.onChannelMessage()', 'received event unspecified channel, action = ' + msg.action);\n return;\n }\n var channel = this.all[channelName];\n if (!channel) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Channels.onChannelMessage()', 'received event for non-existent channel: ' + channelName);\n return;\n }\n channel.onMessage(msg);\n };\n /* called when a transport becomes connected; reattempt attach/detach\n * for channels that are attaching or detaching. */\n Channels.prototype.onTransportActive = function () {\n for (var channelName in this.all) {\n var channel = this.all[channelName];\n if (channel.state === 'attaching' || channel.state === 'detaching') {\n channel.checkPendingState();\n }\n else if (channel.state === 'suspended') {\n channel._attach(false, null);\n }\n else if (channel.state === 'attached') {\n // Note explicity request the state, channel.attach() would do nothing\n // as its already attached.\n channel.requestState('attaching');\n }\n }\n };\n /* Connection interruptions (ie when the connection will no longer queue\n * events) imply connection state changes for any channel which is either\n * attached, pending, or will attempt to become attached in the future */\n Channels.prototype.propogateConnectionInterruption = function (connectionState, reason) {\n var connectionStateToChannelState = {\n closing: 'detached',\n closed: 'detached',\n failed: 'failed',\n suspended: 'suspended',\n };\n var fromChannelStates = ['attaching', 'attached', 'detaching', 'suspended'];\n var toChannelState = connectionStateToChannelState[connectionState];\n for (var channelId in this.all) {\n var channel = this.all[channelId];\n if (Utils.arrIn(fromChannelStates, channel.state)) {\n channel.notifyState(toChannelState, reason);\n }\n }\n };\n Channels.prototype.get = function (name, channelOptions) {\n name = String(name);\n var channel = this.all[name];\n if (!channel) {\n channel = this.all[name] = new realtimechannel_1.default(this.realtime, name, channelOptions);\n }\n else if (channelOptions) {\n if (channel._shouldReattachToSetOptions(channelOptions)) {\n throw new errorinfo_1.default('Channels.get() cannot be used to set channel options that would cause the channel to reattach. Please, use RealtimeChannel.setOptions() instead.', 40000, 400);\n }\n channel.setOptions(channelOptions);\n }\n return channel;\n };\n Channels.prototype.getDerived = function (name, deriveOptions, channelOptions) {\n if (deriveOptions.filter) {\n var filter = Utils.toBase64(deriveOptions.filter);\n var match = Utils.matchDerivedChannel(name);\n name = \"[filter=\".concat(filter).concat(match.qualifierParam, \"]\").concat(match.channelName);\n }\n return this.get(name, channelOptions);\n };\n /* Included to support certain niche use-cases; most users should ignore this.\n * Please do not use this unless you know what you're doing */\n Channels.prototype.release = function (name) {\n name = String(name);\n var channel = this.all[name];\n if (!channel) {\n return;\n }\n var releaseErr = channel.getReleaseErr();\n if (releaseErr) {\n throw releaseErr;\n }\n delete this.all[name];\n };\n return Channels;\n}(eventemitter_1.default));\nexports.default = Realtime;\n\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\nvar eventemitter_1 = tslib_1.__importDefault(__webpack_require__(7));\nvar connectionmanager_1 = tslib_1.__importDefault(__webpack_require__(35));\nvar logger_1 = tslib_1.__importDefault(__webpack_require__(2));\nvar connectionstatechange_1 = tslib_1.__importDefault(__webpack_require__(37));\nvar platform_1 = tslib_1.__importDefault(__webpack_require__(3));\nfunction noop() { }\nvar Connection = /** @class */ (function (_super) {\n tslib_1.__extends(Connection, _super);\n function Connection(ably, options) {\n var _this = _super.call(this) || this;\n _this.whenState = (function (state, listener) {\n return eventemitter_1.default.prototype.whenState.call(_this, state, _this.state, listener, new connectionstatechange_1.default(undefined, state));\n });\n _this.ably = ably;\n _this.connectionManager = new connectionmanager_1.default(ably, options);\n _this.state = _this.connectionManager.state.state;\n _this.key = undefined;\n _this.id = undefined;\n _this.errorReason = null;\n _this.connectionManager.on('connectionstate', function (stateChange) {\n var state = (_this.state = stateChange.current);\n platform_1.default.Config.nextTick(function () {\n _this.emit(state, stateChange);\n });\n });\n _this.connectionManager.on('update', function (stateChange) {\n platform_1.default.Config.nextTick(function () {\n _this.emit('update', stateChange);\n });\n });\n return _this;\n }\n Connection.prototype.connect = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Connection.connect()', '');\n this.connectionManager.requestState({ state: 'connecting' });\n };\n Connection.prototype.ping = function (callback) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Connection.ping()', '');\n if (!callback) {\n if (this.ably.options.promises) {\n return Utils.promisify(this, 'ping', arguments);\n }\n callback = noop;\n }\n this.connectionManager.ping(null, callback);\n };\n Connection.prototype.close = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'Connection.close()', 'connectionKey = ' + this.key);\n this.connectionManager.requestState({ state: 'closing' });\n };\n Object.defineProperty(Connection.prototype, \"recoveryKey\", {\n get: function () {\n return this.createRecoveryKey();\n },\n enumerable: false,\n configurable: true\n });\n Connection.prototype.createRecoveryKey = function () {\n return this.connectionManager.createRecoveryKey();\n };\n return Connection;\n}(eventemitter_1.default));\nexports.default = Connection;\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PendingMessage = void 0;\nvar tslib_1 = __webpack_require__(0);\nvar protocolmessage_1 = tslib_1.__importDefault(__webpack_require__(10));\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\nvar eventemitter_1 = tslib_1.__importDefault(__webpack_require__(7));\nvar logger_1 = tslib_1.__importDefault(__webpack_require__(2));\nvar messagequeue_1 = tslib_1.__importDefault(__webpack_require__(36));\nvar errorinfo_1 = tslib_1.__importDefault(__webpack_require__(4));\nvar actions = protocolmessage_1.default.Action;\nvar PendingMessage = /** @class */ (function () {\n function PendingMessage(message, callback) {\n this.message = message;\n this.callback = callback;\n this.merged = false;\n var action = message.action;\n this.sendAttempted = false;\n this.ackRequired = action == actions.MESSAGE || action == actions.PRESENCE;\n }\n return PendingMessage;\n}());\nexports.PendingMessage = PendingMessage;\nvar Protocol = /** @class */ (function (_super) {\n tslib_1.__extends(Protocol, _super);\n function Protocol(transport) {\n var _this = _super.call(this) || this;\n _this.transport = transport;\n _this.messageQueue = new messagequeue_1.default();\n transport.on('ack', function (serial, count) {\n _this.onAck(serial, count);\n });\n transport.on('nack', function (serial, count, err) {\n _this.onNack(serial, count, err);\n });\n return _this;\n }\n Protocol.prototype.onAck = function (serial, count) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Protocol.onAck()', 'serial = ' + serial + '; count = ' + count);\n this.messageQueue.completeMessages(serial, count);\n };\n Protocol.prototype.onNack = function (serial, count, err) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'Protocol.onNack()', 'serial = ' + serial + '; count = ' + count + '; err = ' + Utils.inspectError(err));\n if (!err) {\n err = new errorinfo_1.default('Unable to send message; channel not responding', 50001, 500);\n }\n this.messageQueue.completeMessages(serial, count, err);\n };\n Protocol.prototype.onceIdle = function (listener) {\n var messageQueue = this.messageQueue;\n if (messageQueue.count() === 0) {\n listener();\n return;\n }\n messageQueue.once('idle', listener);\n };\n Protocol.prototype.send = function (pendingMessage) {\n if (pendingMessage.ackRequired) {\n this.messageQueue.push(pendingMessage);\n }\n if (logger_1.default.shouldLog(logger_1.default.LOG_MICRO)) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'Protocol.send()', 'sending msg; ' + protocolmessage_1.default.stringify(pendingMessage.message));\n }\n pendingMessage.sendAttempted = true;\n this.transport.send(pendingMessage.message);\n };\n Protocol.prototype.getTransport = function () {\n return this.transport;\n };\n Protocol.prototype.getPendingMessages = function () {\n return this.messageQueue.copyAll();\n };\n Protocol.prototype.clearPendingMessages = function () {\n return this.messageQueue.clear();\n };\n Protocol.prototype.finish = function () {\n var transport = this.transport;\n this.onceIdle(function () {\n transport.disconnect();\n });\n };\n return Protocol;\n}(eventemitter_1.default));\nexports.default = Protocol;\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\nvar platform_1 = tslib_1.__importDefault(__webpack_require__(3));\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\nvar transport_1 = tslib_1.__importDefault(__webpack_require__(26));\nvar defaults_1 = tslib_1.__importDefault(__webpack_require__(8));\nvar logger_1 = tslib_1.__importDefault(__webpack_require__(2));\nvar protocolmessage_1 = tslib_1.__importDefault(__webpack_require__(10));\nvar errorinfo_1 = tslib_1.__importDefault(__webpack_require__(4));\nvar shortName = 'web_socket';\nfunction isNodeWebSocket(ws) {\n return !!ws.on;\n}\nvar WebSocketTransport = /** @class */ (function (_super) {\n tslib_1.__extends(WebSocketTransport, _super);\n function WebSocketTransport(connectionManager, auth, params) {\n var _this = _super.call(this, connectionManager, auth, params) || this;\n _this.shortName = shortName;\n /* If is a browser, can't detect pings, so request protocol heartbeats */\n params.heartbeats = platform_1.default.Config.useProtocolHeartbeats;\n _this.wsHost = defaults_1.default.getHost(params.options, params.host, true);\n return _this;\n }\n WebSocketTransport.isAvailable = function () {\n return !!platform_1.default.Config.WebSocket;\n };\n WebSocketTransport.prototype.createWebSocket = function (uri, connectParams) {\n this.uri = uri + Utils.toQueryString(connectParams);\n return new platform_1.default.Config.WebSocket(this.uri);\n };\n WebSocketTransport.prototype.toString = function () {\n return 'WebSocketTransport; uri=' + this.uri;\n };\n WebSocketTransport.prototype.connect = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'WebSocketTransport.connect()', 'starting');\n transport_1.default.prototype.connect.call(this);\n var self = this, params = this.params, options = params.options;\n var wsScheme = options.tls ? 'wss://' : 'ws://';\n var wsUri = wsScheme + this.wsHost + ':' + defaults_1.default.getPort(options) + '/';\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'WebSocketTransport.connect()', 'uri: ' + wsUri);\n this.auth.getAuthParams(function (err, authParams) {\n if (self.isDisposed) {\n return;\n }\n var paramStr = '';\n for (var param in authParams)\n paramStr += ' ' + param + ': ' + authParams[param] + ';';\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'WebSocketTransport.connect()', 'authParams:' + paramStr + ' err: ' + err);\n if (err) {\n self.disconnect(err);\n return;\n }\n var connectParams = params.getConnectParams(authParams);\n try {\n var wsConnection = (self.wsConnection = self.createWebSocket(wsUri, connectParams));\n wsConnection.binaryType = platform_1.default.Config.binaryType;\n wsConnection.onopen = function () {\n self.onWsOpen();\n };\n wsConnection.onclose = function (ev) {\n self.onWsClose(ev);\n };\n wsConnection.onmessage = function (ev) {\n self.onWsData(ev.data);\n };\n wsConnection.onerror = function (ev) {\n self.onWsError(ev);\n };\n if (isNodeWebSocket(wsConnection)) {\n /* node; browsers currently don't have a general eventemitter and can't detect\n * pings. Also, no need to reply with a pong explicitly, ws lib handles that */\n wsConnection.on('ping', function () {\n self.onActivity();\n });\n }\n }\n catch (e) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'WebSocketTransport.connect()', 'Unexpected exception creating websocket: err = ' + (e.stack || e.message));\n self.disconnect(e);\n }\n });\n };\n WebSocketTransport.prototype.send = function (message) {\n var wsConnection = this.wsConnection;\n if (!wsConnection) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'WebSocketTransport.send()', 'No socket connection');\n return;\n }\n try {\n wsConnection.send(protocolmessage_1.default.serialize(message, this.params.format));\n }\n catch (e) {\n var msg = 'Exception from ws connection when trying to send: ' + Utils.inspectError(e);\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'WebSocketTransport.send()', msg);\n /* Don't try to request a disconnect, that'll just involve sending data\n * down the websocket again. Just finish the transport. */\n this.finish('disconnected', new errorinfo_1.default(msg, 50000, 500));\n }\n };\n WebSocketTransport.prototype.onWsData = function (data) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'WebSocketTransport.onWsData()', 'data received; length = ' + data.length + '; type = ' + typeof data);\n try {\n this.onProtocolMessage(protocolmessage_1.default.deserialize(data, this.format));\n }\n catch (e) {\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'WebSocketTransport.onWsData()', 'Unexpected exception handing channel message: ' + e.stack);\n }\n };\n WebSocketTransport.prototype.onWsOpen = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'WebSocketTransport.onWsOpen()', 'opened WebSocket');\n this.emit('preconnect');\n };\n WebSocketTransport.prototype.onWsClose = function (ev) {\n var wasClean, code;\n if (typeof ev == 'object') {\n /* W3C spec-compatible */\n code = ev.code;\n // ev.wasClean is undefined in reactnative\n wasClean = ev.wasClean || code === 1000;\n } /*if(typeof(ev) == 'number')*/\n else {\n /* ws in node */\n code = ev;\n wasClean = code == 1000;\n }\n delete this.wsConnection;\n if (wasClean) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'WebSocketTransport.onWsClose()', 'Cleanly closed WebSocket');\n var err = new errorinfo_1.default('Websocket closed', 80003, 400);\n this.finish('disconnected', err);\n }\n else {\n var msg = 'Unclean disconnection of WebSocket ; code = ' + code, err = new errorinfo_1.default(msg, 80003, 400);\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'WebSocketTransport.onWsClose()', msg);\n this.finish('disconnected', err);\n }\n this.emit('disposed');\n };\n WebSocketTransport.prototype.onWsError = function (err) {\n var _this = this;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'WebSocketTransport.onError()', 'Error from WebSocket: ' + err.message);\n /* Wait a tick before aborting: if the websocket was connected, this event\n * will be immediately followed by an onclose event with a close code. Allow\n * that to close it (so we see the close code) rather than anticipating it */\n platform_1.default.Config.nextTick(function () {\n _this.disconnect(Error(err.message));\n });\n };\n WebSocketTransport.prototype.dispose = function () {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'WebSocketTransport.dispose()', '');\n this.isDisposed = true;\n var wsConnection = this.wsConnection;\n if (wsConnection) {\n /* Ignore any messages that come through after dispose() is called but before\n * websocket is actually closed. (mostly would be harmless, but if it's a\n * CONNECTED, it'll re-tick isConnected and cause all sorts of havoc) */\n wsConnection.onmessage = function () { };\n delete this.wsConnection;\n /* defer until the next event loop cycle before closing the socket,\n * giving some implementations the opportunity to send any outstanding close message */\n platform_1.default.Config.nextTick(function () {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'WebSocketTransport.dispose()', 'closing websocket');\n if (!wsConnection) {\n throw new Error('WebSocketTransport.dispose(): wsConnection is not defined');\n }\n wsConnection.close();\n });\n }\n };\n return WebSocketTransport;\n}(transport_1.default));\nfunction initialiseTransport(connectionManager) {\n if (WebSocketTransport.isAvailable())\n connectionManager.supportedTransports[shortName] = WebSocketTransport;\n return WebSocketTransport;\n}\nexports.default = initialiseTransport;\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\nvar presence_1 = tslib_1.__importDefault(__webpack_require__(34));\nvar eventemitter_1 = tslib_1.__importDefault(__webpack_require__(7));\nvar logger_1 = tslib_1.__importDefault(__webpack_require__(2));\nvar presencemessage_1 = tslib_1.__importDefault(__webpack_require__(15));\nvar errorinfo_1 = tslib_1.__importStar(__webpack_require__(4));\nvar realtimechannel_1 = tslib_1.__importDefault(__webpack_require__(38));\nvar multicaster_1 = tslib_1.__importDefault(__webpack_require__(23));\nvar channelstatechange_1 = tslib_1.__importDefault(__webpack_require__(39));\nvar noop = function () { };\nfunction getClientId(realtimePresence) {\n return realtimePresence.channel.realtime.auth.clientId;\n}\nfunction isAnonymousOrWildcard(realtimePresence) {\n var realtime = realtimePresence.channel.realtime;\n /* If not currently connected, we can't assume that we're an anonymous\n * client, as realtime may inform us of our clientId in the CONNECTED\n * message. So assume we're not anonymous and leave it to realtime to\n * return an error if we are */\n var clientId = realtime.auth.clientId;\n return (!clientId || clientId === '*') && realtime.connection.state === 'connected';\n}\n/* Callback is called only in the event of an error */\nfunction waitAttached(channel, callback, action) {\n switch (channel.state) {\n case 'attached':\n case 'suspended':\n action();\n break;\n case 'initialized':\n case 'detached':\n case 'detaching':\n case 'attaching':\n channel.attach(function (err) {\n if (err)\n callback(err);\n else\n action();\n });\n break;\n default:\n callback(errorinfo_1.default.fromValues(channel.invalidStateError()));\n }\n}\nfunction newerThan(item, existing) {\n /* RTP2b1: if either is synthesised, compare by timestamp */\n if (item.isSynthesized() || existing.isSynthesized()) {\n // RTP2b1a: if equal, prefer the newly-arrived one\n return item.timestamp >= existing.timestamp;\n }\n /* RTP2b2 */\n var itemOrderings = item.parseId(), existingOrderings = existing.parseId();\n if (itemOrderings.msgSerial === existingOrderings.msgSerial) {\n return itemOrderings.index > existingOrderings.index;\n }\n else {\n return itemOrderings.msgSerial > existingOrderings.msgSerial;\n }\n}\nvar RealtimePresence = /** @class */ (function (_super) {\n tslib_1.__extends(RealtimePresence, _super);\n function RealtimePresence(channel) {\n var _this = _super.call(this, channel) || this;\n _this.channel = channel;\n _this.syncComplete = false;\n _this.members = new PresenceMap(_this, function (item) { return item.clientId + ':' + item.connectionId; });\n // RTP17h: Store own members by clientId only.\n _this._myMembers = new PresenceMap(_this, function (item) { return item.clientId; });\n _this.subscriptions = new eventemitter_1.default();\n _this.pendingPresence = [];\n return _this;\n }\n RealtimePresence.prototype.enter = function (data, callback) {\n if (isAnonymousOrWildcard(this)) {\n throw new errorinfo_1.default('clientId must be specified to enter a presence channel', 40012, 400);\n }\n return this._enterOrUpdateClient(undefined, undefined, data, 'enter', callback);\n };\n RealtimePresence.prototype.update = function (data, callback) {\n if (isAnonymousOrWildcard(this)) {\n throw new errorinfo_1.default('clientId must be specified to update presence data', 40012, 400);\n }\n return this._enterOrUpdateClient(undefined, undefined, data, 'update', callback);\n };\n RealtimePresence.prototype.enterClient = function (clientId, data, callback) {\n return this._enterOrUpdateClient(undefined, clientId, data, 'enter', callback);\n };\n RealtimePresence.prototype.updateClient = function (clientId, data, callback) {\n return this._enterOrUpdateClient(undefined, clientId, data, 'update', callback);\n };\n RealtimePresence.prototype._enterOrUpdateClient = function (id, clientId, data, action, callback) {\n var _this = this;\n if (!callback) {\n if (typeof data === 'function') {\n callback = data;\n data = null;\n }\n else {\n if (this.channel.realtime.options.promises) {\n return Utils.promisify(this, '_enterOrUpdateClient', [id, clientId, data, action]);\n }\n callback = noop;\n }\n }\n var channel = this.channel;\n if (!channel.connectionManager.activeState()) {\n callback(channel.connectionManager.getError());\n return;\n }\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'RealtimePresence.' + action + 'Client()', 'channel = ' + channel.name + ', id = ' + id + ', client = ' + (clientId || '(implicit) ' + getClientId(this)));\n var presence = presencemessage_1.default.fromData(data);\n presence.action = action;\n if (id) {\n presence.id = id;\n }\n if (clientId) {\n presence.clientId = clientId;\n }\n presencemessage_1.default.encode(presence, channel.channelOptions, function (err) {\n if (err) {\n callback(err);\n return;\n }\n switch (channel.state) {\n case 'attached':\n channel.sendPresence(presence, callback);\n break;\n case 'initialized':\n case 'detached':\n channel.attach();\n // eslint-disable-next-line no-fallthrough\n case 'attaching':\n _this.pendingPresence.push({\n presence: presence,\n callback: callback,\n });\n break;\n default:\n err = new errorinfo_1.PartialErrorInfo('Unable to ' + action + ' presence channel while in ' + channel.state + ' state', 90001);\n err.code = 90001;\n callback(err);\n }\n });\n };\n RealtimePresence.prototype.leave = function (data, callback) {\n if (isAnonymousOrWildcard(this)) {\n throw new errorinfo_1.default('clientId must have been specified to enter or leave a presence channel', 40012, 400);\n }\n return this.leaveClient(undefined, data, callback);\n };\n RealtimePresence.prototype.leaveClient = function (clientId, data, callback) {\n if (!callback) {\n if (typeof data === 'function') {\n callback = data;\n data = null;\n }\n else {\n if (this.channel.realtime.options.promises) {\n return Utils.promisify(this, 'leaveClient', [clientId, data]);\n }\n callback = noop;\n }\n }\n var channel = this.channel;\n if (!channel.connectionManager.activeState()) {\n callback === null || callback === void 0 ? void 0 : callback(channel.connectionManager.getError());\n return;\n }\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'RealtimePresence.leaveClient()', 'leaving; channel = ' + this.channel.name + ', client = ' + clientId);\n var presence = presencemessage_1.default.fromValues({\n action: 'leave',\n data: data,\n });\n if (clientId) {\n presence.clientId = clientId;\n }\n switch (channel.state) {\n case 'attached':\n channel.sendPresence(presence, callback);\n break;\n case 'attaching':\n this.pendingPresence.push({\n presence: presence,\n callback: callback,\n });\n break;\n case 'initialized':\n case 'failed': {\n /* we're not attached; therefore we let any entered status\n * timeout by itself instead of attaching just in order to leave */\n var err = new errorinfo_1.PartialErrorInfo('Unable to leave presence channel (incompatible state)', 90001);\n callback === null || callback === void 0 ? void 0 : callback(err);\n break;\n }\n default:\n callback === null || callback === void 0 ? void 0 : callback(channel.invalidStateError());\n }\n };\n // Return type is any to avoid conflict with base Presence class\n RealtimePresence.prototype.get = function (params, callback) {\n var _this = this;\n var args = Array.prototype.slice.call(arguments);\n if (args.length == 1 && typeof args[0] == 'function')\n args.unshift(null);\n params = args[0];\n callback = args[1];\n var waitForSync = !params || ('waitForSync' in params ? params.waitForSync : true);\n if (!callback) {\n if (this.channel.realtime.options.promises) {\n return Utils.promisify(this, 'get', args);\n }\n callback = noop;\n }\n function returnMembers(members) {\n callback(null, params ? members.list(params) : members.values());\n }\n /* Special-case the suspended state: can still get (stale) presence set if waitForSync is false */\n if (this.channel.state === 'suspended') {\n if (waitForSync) {\n callback(errorinfo_1.default.fromValues({\n statusCode: 400,\n code: 91005,\n message: 'Presence state is out of sync due to channel being in the SUSPENDED state',\n }));\n }\n else {\n returnMembers(this.members);\n }\n return;\n }\n waitAttached(this.channel, callback, function () {\n var members = _this.members;\n if (waitForSync) {\n members.waitSync(function () {\n returnMembers(members);\n });\n }\n else {\n returnMembers(members);\n }\n });\n };\n RealtimePresence.prototype.history = function (params, callback) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'RealtimePresence.history()', 'channel = ' + this.name);\n /* params and callback are optional; see if params contains the callback */\n if (callback === undefined) {\n if (typeof params == 'function') {\n callback = params;\n params = null;\n }\n else {\n if (this.channel.realtime.options.promises) {\n return Utils.promisify(this, 'history', arguments);\n }\n callback = noop;\n }\n }\n if (params && params.untilAttach) {\n if (this.channel.state === 'attached') {\n delete params.untilAttach;\n params.from_serial = this.channel.properties.attachSerial;\n }\n else {\n callback(new errorinfo_1.default('option untilAttach requires the channel to be attached, was: ' + this.channel.state, 40000, 400));\n }\n }\n presence_1.default.prototype._history.call(this, params, callback);\n };\n RealtimePresence.prototype.setPresence = function (presenceSet, isSync, syncChannelSerial) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'RealtimePresence.setPresence()', 'received presence for ' + presenceSet.length + ' participants; syncChannelSerial = ' + syncChannelSerial);\n var syncCursor, match;\n var members = this.members, myMembers = this._myMembers, broadcastMessages = [], connId = this.channel.connectionManager.connectionId;\n if (isSync) {\n this.members.startSync();\n if (syncChannelSerial && (match = syncChannelSerial.match(/^[\\w-]+:(.*)$/))) {\n syncCursor = match[1];\n }\n }\n for (var i = 0; i < presenceSet.length; i++) {\n var presence = presencemessage_1.default.fromValues(presenceSet[i]);\n switch (presence.action) {\n case 'leave':\n if (members.remove(presence)) {\n broadcastMessages.push(presence);\n }\n if (presence.connectionId === connId && !presence.isSynthesized()) {\n myMembers.remove(presence);\n }\n break;\n case 'enter':\n case 'present':\n case 'update':\n if (members.put(presence)) {\n broadcastMessages.push(presence);\n }\n if (presence.connectionId === connId) {\n myMembers.put(presence);\n }\n break;\n }\n }\n /* if this is the last (or only) message in a sequence of sync updates, end the sync */\n if (isSync && !syncCursor) {\n members.endSync();\n this.channel.syncChannelSerial = null;\n }\n /* broadcast to listeners */\n for (var i = 0; i < broadcastMessages.length; i++) {\n var presence = broadcastMessages[i];\n this.subscriptions.emit(presence.action, presence);\n }\n };\n RealtimePresence.prototype.onAttached = function (hasPresence) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'RealtimePresence.onAttached()', 'channel = ' + this.channel.name + ', hasPresence = ' + hasPresence);\n if (hasPresence) {\n this.members.startSync();\n }\n else {\n this._synthesizeLeaves(this.members.values());\n this.members.clear();\n }\n // RTP17f: Re-enter own members when moving into the attached state.\n this._ensureMyMembersPresent();\n /* NB this must be after the _ensureMyMembersPresent call, which may add items to pendingPresence */\n var pendingPresence = this.pendingPresence, pendingPresCount = pendingPresence.length;\n if (pendingPresCount) {\n this.pendingPresence = [];\n var presenceArray = [];\n var multicaster = multicaster_1.default.create();\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'RealtimePresence.onAttached', 'sending ' + pendingPresCount + ' queued presence messages');\n for (var i = 0; i < pendingPresCount; i++) {\n var event_1 = pendingPresence[i];\n presenceArray.push(event_1.presence);\n multicaster.push(event_1.callback);\n }\n this.channel.sendPresence(presenceArray, multicaster);\n }\n };\n RealtimePresence.prototype.actOnChannelState = function (state, hasPresence, err) {\n switch (state) {\n case 'attached':\n this.onAttached(hasPresence);\n break;\n case 'detached':\n case 'failed':\n this._clearMyMembers();\n this.members.clear();\n /* falls through */\n case 'suspended':\n this.failPendingPresence(err);\n break;\n }\n };\n RealtimePresence.prototype.failPendingPresence = function (err) {\n if (this.pendingPresence.length) {\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'RealtimeChannel.failPendingPresence', 'channel; name = ' + this.channel.name + ', err = ' + Utils.inspectError(err));\n for (var i = 0; i < this.pendingPresence.length; i++)\n try {\n this.pendingPresence[i].callback(err);\n // eslint-disable-next-line no-empty\n }\n catch (e) { }\n this.pendingPresence = [];\n }\n };\n RealtimePresence.prototype._clearMyMembers = function () {\n this._myMembers.clear();\n };\n RealtimePresence.prototype._ensureMyMembersPresent = function () {\n var _this = this;\n var myMembers = this._myMembers, reenterCb = function (err) {\n if (err) {\n var msg = 'Presence auto-re-enter failed: ' + err.toString();\n var wrappedErr = new errorinfo_1.default(msg, 91004, 400);\n logger_1.default.logAction(logger_1.default.LOG_ERROR, 'RealtimePresence._ensureMyMembersPresent()', msg);\n var change = new channelstatechange_1.default(_this.channel.state, _this.channel.state, true, false, wrappedErr);\n _this.channel.emit('update', change);\n }\n };\n for (var memberKey in myMembers.map) {\n var entry = myMembers.map[memberKey];\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'RealtimePresence._ensureMyMembersPresent()', 'Auto-reentering clientId \"' + entry.clientId + '\" into the presence set');\n // RTP17g: Send ENTER containing the member id, clientId and data\n // attributes.\n this._enterOrUpdateClient(entry.id, entry.clientId, entry.data, 'enter', reenterCb);\n }\n };\n RealtimePresence.prototype._synthesizeLeaves = function (items) {\n var subscriptions = this.subscriptions;\n Utils.arrForEach(items, function (item) {\n var presence = presencemessage_1.default.fromValues({\n action: 'leave',\n connectionId: item.connectionId,\n clientId: item.clientId,\n data: item.data,\n encoding: item.encoding,\n timestamp: Utils.now(),\n });\n subscriptions.emit('leave', presence);\n });\n };\n /* Deprecated */\n RealtimePresence.prototype.on = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n logger_1.default.deprecated('presence.on', 'presence.subscribe');\n this.subscribe.apply(this, args);\n };\n /* Deprecated */\n RealtimePresence.prototype.off = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n logger_1.default.deprecated('presence.off', 'presence.unsubscribe');\n this.unsubscribe.apply(this, args);\n };\n RealtimePresence.prototype.subscribe = function () {\n var _args = []; /* [event], listener, [callback] */\n for (var _i = 0 /* [event], listener, [callback] */; _i < arguments.length /* [event], listener, [callback] */; _i++ /* [event], listener, [callback] */) {\n _args[_i] = arguments[_i]; /* [event], listener, [callback] */\n }\n var args = realtimechannel_1.default.processListenerArgs(_args);\n var event = args[0];\n var listener = args[1];\n var callback = args[2];\n var channel = this.channel;\n if (!callback) {\n if (this.channel.realtime.options.promises) {\n return Utils.promisify(this, 'subscribe', [event, listener]);\n }\n callback = noop;\n }\n if (channel.state === 'failed') {\n callback(errorinfo_1.default.fromValues(channel.invalidStateError()));\n return;\n }\n this.subscriptions.on(event, listener);\n channel.attach(callback);\n };\n RealtimePresence.prototype.unsubscribe = function () {\n var _args = []; /* [event], listener */\n for (var _i = 0 /* [event], listener */; _i < arguments.length /* [event], listener */; _i++ /* [event], listener */) {\n _args[_i] = arguments[_i]; /* [event], listener */\n }\n var args = realtimechannel_1.default.processListenerArgs(_args);\n var event = args[0];\n var listener = args[1];\n this.subscriptions.off(event, listener);\n };\n return RealtimePresence;\n}(presence_1.default));\nvar PresenceMap = /** @class */ (function (_super) {\n tslib_1.__extends(PresenceMap, _super);\n function PresenceMap(presence, memberKey) {\n var _this = _super.call(this) || this;\n _this.presence = presence;\n _this.map = Object.create(null);\n _this.syncInProgress = false;\n _this.residualMembers = null;\n _this.memberKey = memberKey;\n return _this;\n }\n PresenceMap.prototype.get = function (key) {\n return this.map[key];\n };\n PresenceMap.prototype.getClient = function (clientId) {\n var map = this.map, result = [];\n for (var key in map) {\n var item = map[key];\n if (item.clientId == clientId && item.action != 'absent')\n result.push(item);\n }\n return result;\n };\n PresenceMap.prototype.list = function (params) {\n var map = this.map, clientId = params && params.clientId, connectionId = params && params.connectionId, result = [];\n for (var key in map) {\n var item = map[key];\n if (item.action === 'absent')\n continue;\n if (clientId && clientId != item.clientId)\n continue;\n if (connectionId && connectionId != item.connectionId)\n continue;\n result.push(item);\n }\n return result;\n };\n PresenceMap.prototype.put = function (item) {\n if (item.action === 'enter' || item.action === 'update') {\n item = presencemessage_1.default.fromValues(item);\n item.action = 'present';\n }\n var map = this.map, key = this.memberKey(item);\n /* we've seen this member, so do not remove it at the end of sync */\n if (this.residualMembers)\n delete this.residualMembers[key];\n /* compare the timestamp of the new item with any existing member (or ABSENT witness) */\n var existingItem = map[key];\n if (existingItem && !newerThan(item, existingItem)) {\n return false;\n }\n map[key] = item;\n return true;\n };\n PresenceMap.prototype.values = function () {\n var map = this.map, result = [];\n for (var key in map) {\n var item = map[key];\n if (item.action != 'absent')\n result.push(item);\n }\n return result;\n };\n PresenceMap.prototype.remove = function (item) {\n var map = this.map, key = this.memberKey(item);\n var existingItem = map[key];\n if (existingItem && !newerThan(item, existingItem)) {\n return false;\n }\n /* RTP2f */\n if (this.syncInProgress) {\n item = presencemessage_1.default.fromValues(item);\n item.action = 'absent';\n map[key] = item;\n }\n else {\n delete map[key];\n }\n return true;\n };\n PresenceMap.prototype.startSync = function () {\n var map = this.map, syncInProgress = this.syncInProgress;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'PresenceMap.startSync()', 'channel = ' + this.presence.channel.name + '; syncInProgress = ' + syncInProgress);\n /* we might be called multiple times while a sync is in progress */\n if (!this.syncInProgress) {\n this.residualMembers = Utils.copy(map);\n this.setInProgress(true);\n }\n };\n PresenceMap.prototype.endSync = function () {\n var map = this.map, syncInProgress = this.syncInProgress;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'PresenceMap.endSync()', 'channel = ' + this.presence.channel.name + '; syncInProgress = ' + syncInProgress);\n if (syncInProgress) {\n /* we can now strip out the ABSENT members, as we have\n * received all of the out-of-order sync messages */\n for (var memberKey in map) {\n var entry = map[memberKey];\n if (entry.action === 'absent') {\n delete map[memberKey];\n }\n }\n /* any members that were present at the start of the sync,\n * and have not been seen in sync, can be removed, and leave events emitted */\n this.presence._synthesizeLeaves(Utils.valuesArray(this.residualMembers));\n for (var memberKey in this.residualMembers) {\n delete map[memberKey];\n }\n this.residualMembers = null;\n /* finish, notifying any waiters */\n this.setInProgress(false);\n }\n this.emit('sync');\n };\n PresenceMap.prototype.waitSync = function (callback) {\n var syncInProgress = this.syncInProgress;\n logger_1.default.logAction(logger_1.default.LOG_MINOR, 'PresenceMap.waitSync()', 'channel = ' + this.presence.channel.name + '; syncInProgress = ' + syncInProgress);\n if (!syncInProgress) {\n callback();\n return;\n }\n this.once('sync', callback);\n };\n PresenceMap.prototype.clear = function () {\n this.map = {};\n this.setInProgress(false);\n this.residualMembers = null;\n };\n PresenceMap.prototype.setInProgress = function (inProgress) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, 'PresenceMap.setInProgress()', 'inProgress = ' + inProgress);\n this.syncInProgress = inProgress;\n this.presence.syncComplete = !inProgress;\n };\n return PresenceMap;\n}(eventemitter_1.default));\nexports.default = RealtimePresence;\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\nvar enc_hex_1 = __webpack_require__(56);\nvar enc_utf8_1 = __webpack_require__(31);\nvar enc_base64_1 = __webpack_require__(11);\nvar lib_typedarrays_1 = tslib_1.__importDefault(__webpack_require__(5));\nvar platform_1 = tslib_1.__importDefault(__webpack_require__(3));\nvar BufferUtils = /** @class */ (function () {\n function BufferUtils() {\n this.base64CharSet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n this.hexCharSet = '0123456789abcdef';\n }\n BufferUtils.prototype.isWordArray = function (ob) {\n return ob !== null && ob !== undefined && ob.sigBytes !== undefined;\n };\n BufferUtils.prototype.isArrayBuffer = function (ob) {\n return ob !== null && ob !== undefined && ob.constructor === ArrayBuffer;\n };\n BufferUtils.prototype.isTypedArray = function (ob) {\n return !!ArrayBuffer && ArrayBuffer.isView && ArrayBuffer.isView(ob);\n };\n // // https://gist.githubusercontent.com/jonleighton/958841/raw/f200e30dfe95212c0165ccf1ae000ca51e9de803/gistfile1.js\n BufferUtils.prototype.uint8ViewToBase64 = function (bytes) {\n var base64 = '';\n var encodings = this.base64CharSet;\n var byteLength = bytes.byteLength;\n var byteRemainder = byteLength % 3;\n var mainLength = byteLength - byteRemainder;\n var a, b, c, d;\n var chunk;\n // Main loop deals with bytes in chunks of 3\n for (var i = 0; i < mainLength; i = i + 3) {\n // Combine the three bytes into a single integer\n chunk = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n // Use bitmasks to extract 6-bit segments from the triplet\n a = (chunk & 16515072) >> 18; // 16515072 = (2^6 - 1) << 18\n b = (chunk & 258048) >> 12; // 258048 = (2^6 - 1) << 12\n c = (chunk & 4032) >> 6; // 4032 = (2^6 - 1) << 6\n d = chunk & 63; // 63 = 2^6 - 1\n // Convert the raw binary segments to the appropriate ASCII encoding\n base64 += encodings[a] + encodings[b] + encodings[c] + encodings[d];\n }\n // Deal with the remaining bytes and padding\n if (byteRemainder == 1) {\n chunk = bytes[mainLength];\n a = (chunk & 252) >> 2; // 252 = (2^6 - 1) << 2\n // Set the 4 least significant bits to zero\n b = (chunk & 3) << 4; // 3 = 2^2 - 1\n base64 += encodings[a] + encodings[b] + '==';\n }\n else if (byteRemainder == 2) {\n chunk = (bytes[mainLength] << 8) | bytes[mainLength + 1];\n a = (chunk & 64512) >> 10; // 64512 = (2^6 - 1) << 10\n b = (chunk & 1008) >> 4; // 1008 = (2^6 - 1) << 4\n // Set the 2 least significant bits to zero\n c = (chunk & 15) << 2; // 15 = 2^4 - 1\n base64 += encodings[a] + encodings[b] + encodings[c] + '=';\n }\n return base64;\n };\n BufferUtils.prototype.base64ToArrayBuffer = function (base64) {\n var binary_string = atob === null || atob === void 0 ? void 0 : atob(base64); // this will always be defined in browser so it's safe to cast\n var len = binary_string.length;\n var bytes = new Uint8Array(len);\n for (var i = 0; i < len; i++) {\n var ascii = binary_string.charCodeAt(i);\n bytes[i] = ascii;\n }\n return bytes.buffer;\n };\n BufferUtils.prototype.isBuffer = function (buffer) {\n return this.isArrayBuffer(buffer) || this.isWordArray(buffer) || this.isTypedArray(buffer);\n };\n /* In browsers, returns a Uint8Array */\n BufferUtils.prototype.toBuffer = function (buffer) {\n if (!ArrayBuffer) {\n throw new Error(\"Can't convert to Buffer: browser does not support the necessary types\");\n }\n if (this.isArrayBuffer(buffer)) {\n return new Uint8Array(buffer);\n }\n if (this.isTypedArray(buffer)) {\n return new Uint8Array(buffer.buffer);\n }\n if (this.isWordArray(buffer)) {\n /* Backported from unreleased CryptoJS\n * https://code.google.com/p/crypto-js/source/browse/branches/3.x/src/lib-typedarrays.js?r=661 */\n var arrayBuffer = new ArrayBuffer(buffer.sigBytes);\n var uint8View = new Uint8Array(arrayBuffer);\n for (var i = 0; i < buffer.sigBytes; i++) {\n uint8View[i] = (buffer.words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n }\n return uint8View;\n }\n throw new Error('BufferUtils.toBuffer expected an arraybuffer, typed array, or CryptoJS wordarray');\n };\n BufferUtils.prototype.toArrayBuffer = function (buffer) {\n if (this.isArrayBuffer(buffer)) {\n return buffer;\n }\n return this.toBuffer(buffer).buffer;\n };\n BufferUtils.prototype.toWordArray = function (buffer) {\n if (this.isTypedArray(buffer)) {\n buffer = buffer.buffer;\n }\n return this.isWordArray(buffer) ? buffer : lib_typedarrays_1.default.create(buffer);\n };\n BufferUtils.prototype.base64Encode = function (buffer) {\n if (this.isWordArray(buffer)) {\n return (0, enc_base64_1.stringify)(buffer);\n }\n return this.uint8ViewToBase64(this.toBuffer(buffer));\n };\n BufferUtils.prototype.base64Decode = function (str) {\n if (ArrayBuffer && platform_1.default.Config.atob) {\n return this.base64ToArrayBuffer(str);\n }\n return (0, enc_base64_1.parse)(str);\n };\n BufferUtils.prototype.hexEncode = function (buffer) {\n return (0, enc_hex_1.stringify)(this.toWordArray(buffer));\n };\n BufferUtils.prototype.hexDecode = function (string) {\n var wordArray = (0, enc_hex_1.parse)(string);\n return ArrayBuffer ? this.toArrayBuffer(wordArray) : wordArray;\n };\n BufferUtils.prototype.utf8Encode = function (string) {\n if (platform_1.default.Config.TextEncoder) {\n return new platform_1.default.Config.TextEncoder().encode(string).buffer;\n }\n return (0, enc_utf8_1.parse)(string);\n };\n /* For utf8 decoding we apply slightly stricter input validation than to\n * hexEncode/base64Encode/etc: in those we accept anything that Buffer.from\n * can take (in particular allowing strings, which are just interpreted as\n * binary); here we ensure that the input is actually a buffer since trying\n * to utf8-decode a string to another string is almost certainly a mistake */\n BufferUtils.prototype.utf8Decode = function (buffer) {\n if (!this.isBuffer(buffer)) {\n throw new Error('Expected input of utf8decode to be an arraybuffer, typed array, or CryptoJS wordarray');\n }\n if (TextDecoder && !this.isWordArray(buffer)) {\n return new TextDecoder().decode(buffer);\n }\n buffer = this.toWordArray(buffer);\n return (0, enc_utf8_1.stringify)(buffer);\n };\n BufferUtils.prototype.bufferCompare = function (buffer1, buffer2) {\n if (!buffer1)\n return -1;\n if (!buffer2)\n return 1;\n var wordArray1 = this.toWordArray(buffer1);\n var wordArray2 = this.toWordArray(buffer2);\n wordArray1.clamp();\n wordArray2.clamp();\n var cmp = wordArray1.sigBytes - wordArray2.sigBytes;\n if (cmp != 0)\n return cmp;\n var words1 = wordArray1.words;\n var words2 = wordArray2.words;\n for (var i = 0; i < words1.length; i++) {\n cmp = words1[i] - words2[i];\n if (cmp != 0)\n return cmp;\n }\n return 0;\n };\n BufferUtils.prototype.byteLength = function (buffer) {\n if (this.isArrayBuffer(buffer) || this.isTypedArray(buffer)) {\n return buffer.byteLength;\n }\n else if (this.isWordArray(buffer)) {\n return buffer.sigBytes;\n }\n return -1;\n };\n /* Returns ArrayBuffer on browser and Buffer on Node.js */\n BufferUtils.prototype.typedArrayToBuffer = function (typedArray) {\n return typedArray.buffer;\n };\n return BufferUtils;\n}());\nexports.default = new BufferUtils();\n\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(6));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS.enc.Hex;\n\n}));\n\n/***/ }),\n/* 57 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);\n/* harmony import */ var crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var crypto_js_build_enc_base64__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);\n/* harmony import */ var crypto_js_build_enc_base64__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(crypto_js_build_enc_base64__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var crypto_js_build__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(22);\n/* harmony import */ var crypto_js_build__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(crypto_js_build__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _common_lib_util_logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2);\n/* harmony import */ var _common_lib_util_logger__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_common_lib_util_logger__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var common_lib_types_errorinfo__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(4);\n/* harmony import */ var common_lib_types_errorinfo__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(common_lib_types_errorinfo__WEBPACK_IMPORTED_MODULE_4__);\n\n\n\n\n\n\nvar CryptoFactory = function (config, bufferUtils) {\n var DEFAULT_ALGORITHM = 'aes';\n var DEFAULT_KEYLENGTH = 256; // bits\n var DEFAULT_MODE = 'cbc';\n var DEFAULT_BLOCKLENGTH = 16; // bytes\n var DEFAULT_BLOCKLENGTH_WORDS = 4; // 32-bit words\n var UINT32_SUP = 0x100000000;\n var INT32_SUP = 0x80000000;\n\n /**\n * Internal: generate an array of secure random words corresponding to the given length of bytes\n * @param bytes\n * @param callback\n */\n var generateRandom;\n if (config.getRandomWordArray) {\n generateRandom = config.getRandomWordArray;\n } else if (typeof Uint32Array !== 'undefined' && config.getRandomValues) {\n var blockRandomArray = new Uint32Array(DEFAULT_BLOCKLENGTH_WORDS);\n generateRandom = function (bytes, callback) {\n var words = bytes / 4,\n nativeArray = words == DEFAULT_BLOCKLENGTH_WORDS ? blockRandomArray : new Uint32Array(words);\n config.getRandomValues(nativeArray, function (err) {\n if (typeof callback !== 'undefined') {\n callback(err, bufferUtils.toWordArray(nativeArray));\n }\n });\n };\n } else {\n generateRandom = function (bytes, callback) {\n _common_lib_util_logger__WEBPACK_IMPORTED_MODULE_3___default.a.logAction(\n _common_lib_util_logger__WEBPACK_IMPORTED_MODULE_3___default.a.LOG_MAJOR,\n 'Ably.Crypto.generateRandom()',\n 'Warning: the browser you are using does not support secure cryptographically secure randomness generation; falling back to insecure Math.random()'\n );\n var words = bytes / 4,\n array = new Array(words);\n for (var i = 0; i < words; i++) {\n /* cryptojs wordarrays use signed ints. When WordArray.create is fed a\n * Uint32Array unsigned are converted to signed automatically, but when\n * fed a normal array they aren't, so need to do so ourselves by\n * subtracting INT32_SUP */\n array[i] = Math.floor(Math.random() * UINT32_SUP) - INT32_SUP;\n }\n\n callback(null, crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create(array));\n };\n }\n\n /**\n * Internal: calculate the padded length of a given plaintext\n * using PKCS5.\n * @param plaintextLength\n * @return\n */\n function getPaddedLength(plaintextLength) {\n return (plaintextLength + DEFAULT_BLOCKLENGTH) & -DEFAULT_BLOCKLENGTH;\n }\n\n /**\n * Internal: checks that the cipherParams are a valid combination. Currently\n * just checks that the calculated keyLength is a valid one for aes-cbc\n */\n function validateCipherParams(params) {\n if (params.algorithm === 'aes' && params.mode === 'cbc') {\n if (params.keyLength === 128 || params.keyLength === 256) {\n return;\n }\n throw new Error(\n 'Unsupported key length ' +\n params.keyLength +\n ' for aes-cbc encryption. Encryption key must be 128 or 256 bits (16 or 32 ASCII characters)'\n );\n }\n }\n\n function normaliseBase64(string) {\n /* url-safe base64 strings use _ and - instread of / and + */\n return string.replace('_', '/').replace('-', '+');\n }\n\n /**\n * Internal: obtain the pkcs5 padding string for a given padded length;\n */\n var pkcs5Padding = [\n crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x10101010, 0x10101010, 0x10101010, 0x10101010], 16),\n crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x01000000], 1),\n crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x02020000], 2),\n crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x03030300], 3),\n crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x04040404], 4),\n crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x05050505, 0x05000000], 5),\n crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x06060606, 0x06060000], 6),\n crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x07070707, 0x07070700], 7),\n crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x08080808, 0x08080808], 8),\n crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x09090909, 0x09090909, 0x09000000], 9),\n crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x0a0a0a0a, 0x0a0a0a0a, 0x0a0a0000], 10),\n crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x0b0b0b0b, 0x0b0b0b0b, 0x0b0b0b00], 11),\n crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x0c0c0c0c, 0x0c0c0c0c, 0x0c0c0c0c], 12),\n crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x0d0d0d0d, 0x0d0d0d0d, 0x0d0d0d0d, 0x0d000000], 13),\n crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x0e0e0e0e, 0x0e0e0e0e, 0x0e0e0e0e, 0x0e0e0000], 14),\n crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x0f0f0f0f, 0x0f0f0f0f, 0x0f0f0f0f, 0x0f0f0f0f], 15),\n crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create([0x10101010, 0x10101010, 0x10101010, 0x10101010], 16),\n ];\n\n /**\n * Utility classes and interfaces for message payload encryption.\n *\n * This class supports AES/CBC/PKCS5 with a default keylength of 128 bits\n * but supporting other keylengths. Other algorithms and chaining modes are\n * not supported directly, but supportable by extending/implementing the base\n * classes and interfaces here.\n *-\n * Secure random data for creation of Initialization Vectors (IVs) and keys\n * is obtained from window.crypto.getRandomValues if available, or from\n * Math.random() if not. Clients who do not want to depend on Math.random()\n * should polyfill window.crypto.getRandomValues with a library that seeds\n * a PRNG with real entropy.\n *\n * Each message payload is encrypted with an IV in CBC mode, and the IV is\n * concatenated with the resulting raw ciphertext to construct the \"ciphertext\"\n * data passed to the recipient.\n */\n function Crypto() {}\n\n /**\n * A class encapsulating the client-specifiable parameters for\n * the cipher.\n *\n * algorithm is the name of the algorithm in the default system provider,\n * or the lower-cased version of it; eg \"aes\" or \"AES\".\n *\n * Clients are recommended to not call this directly, but instead to use the\n * Crypto.getDefaultParams helper, which will fill in any fields not supplied\n * with default values and validation the result.\n */\n function CipherParams() {\n this.algorithm = null;\n this.keyLength = null;\n this.mode = null;\n this.key = null;\n }\n Crypto.CipherParams = CipherParams;\n\n /**\n * Obtain a complete CipherParams instance from the provided params, filling\n * in any not provided with default values, calculating a keyLength from\n * the supplied key, and validating the result.\n * @param params an object containing at a minimum a `key` key with value the\n * key, as either a binary (ArrayBuffer, Array, WordArray) or a\n * base64-encoded string. May optionally also contain: algorithm (defaults to\n * AES), mode (defaults to 'cbc')\n */\n Crypto.getDefaultParams = function (params) {\n var key;\n /* Backward compatibility */\n if (typeof params === 'function' || typeof params === 'string') {\n _common_lib_util_logger__WEBPACK_IMPORTED_MODULE_3___default.a.deprecated('Crypto.getDefaultParams(key, callback)', 'Crypto.getDefaultParams({key: key})');\n if (typeof params === 'function') {\n Crypto.generateRandomKey(function (key) {\n params(null, Crypto.getDefaultParams({ key: key }));\n });\n } else if (typeof arguments[1] === 'function') {\n arguments[1](null, Crypto.getDefaultParams({ key: params }));\n } else {\n throw new Error('Invalid arguments for Crypto.getDefaultParams');\n }\n return;\n }\n\n if (!params.key) {\n throw new Error('Crypto.getDefaultParams: a key is required');\n }\n\n if (typeof params.key === 'string') {\n key = Object(crypto_js_build_enc_base64__WEBPACK_IMPORTED_MODULE_1__[\"parse\"])(normaliseBase64(params.key));\n } else {\n key = bufferUtils.toWordArray(params.key); // Expect key to be an Array, ArrayBuffer, or WordArray at this point\n }\n\n var cipherParams = new CipherParams();\n cipherParams.key = key;\n cipherParams.algorithm = params.algorithm || DEFAULT_ALGORITHM;\n cipherParams.keyLength = key.words.length * (4 * 8);\n cipherParams.mode = params.mode || DEFAULT_MODE;\n\n if (params.keyLength && params.keyLength !== cipherParams.keyLength) {\n throw new Error(\n 'Crypto.getDefaultParams: a keyLength of ' +\n params.keyLength +\n ' was specified, but the key actually has length ' +\n cipherParams.keyLength\n );\n }\n\n validateCipherParams(cipherParams);\n return cipherParams;\n };\n\n /**\n * Generate a random encryption key from the supplied keylength (or the\n * default keyLength if none supplied) as a CryptoJS WordArray\n * @param keyLength (optional) the required keyLength in bits\n * @param callback (optional) (err, key)\n */\n Crypto.generateRandomKey = function (keyLength, callback) {\n if (arguments.length == 1 && typeof keyLength == 'function') {\n callback = keyLength;\n keyLength = undefined;\n }\n\n generateRandom((keyLength || DEFAULT_KEYLENGTH) / 8, function (err, buf) {\n if (callback !== undefined) {\n callback(err ? common_lib_types_errorinfo__WEBPACK_IMPORTED_MODULE_4___default.a.fromValues(err) : null, buf);\n }\n });\n };\n\n /**\n * Internal; get a ChannelCipher instance based on the given cipherParams\n * @param params either a CipherParams instance or some subset of its\n * fields that includes a key\n */\n Crypto.getCipher = function (params) {\n var cipherParams = params instanceof CipherParams ? params : Crypto.getDefaultParams(params);\n\n return { cipherParams: cipherParams, cipher: new CBCCipher(cipherParams, DEFAULT_BLOCKLENGTH_WORDS, params.iv) };\n };\n\n function CBCCipher(params, blockLengthWords, iv) {\n this.algorithm = params.algorithm + '-' + String(params.keyLength) + '-' + params.mode;\n this.cjsAlgorithm = params.algorithm.toUpperCase().replace(/-\\d+$/, '');\n this.key = bufferUtils.toWordArray(params.key);\n if (iv) {\n this.iv = bufferUtils.toWordArray(iv).clone();\n }\n this.blockLengthWords = blockLengthWords;\n }\n\n CBCCipher.prototype.encrypt = function (plaintext, callback) {\n _common_lib_util_logger__WEBPACK_IMPORTED_MODULE_3___default.a.logAction(_common_lib_util_logger__WEBPACK_IMPORTED_MODULE_3___default.a.LOG_MICRO, 'CBCCipher.encrypt()', '');\n plaintext = bufferUtils.toWordArray(plaintext);\n var plaintextLength = plaintext.sigBytes,\n paddedLength = getPaddedLength(plaintextLength),\n self = this;\n\n var then = function () {\n self.getIv(function (err, iv) {\n if (err) {\n callback(err);\n return;\n }\n var cipherOut = self.encryptCipher.process(plaintext.concat(pkcs5Padding[paddedLength - plaintextLength]));\n var ciphertext = iv.concat(cipherOut);\n callback(null, ciphertext);\n });\n };\n\n if (!this.encryptCipher) {\n if (this.iv) {\n this.encryptCipher = crypto_js_build__WEBPACK_IMPORTED_MODULE_2___default.a.algo[this.cjsAlgorithm].createEncryptor(this.key, { iv: this.iv });\n then();\n } else {\n generateRandom(DEFAULT_BLOCKLENGTH, function (err, iv) {\n if (err) {\n callback(err);\n return;\n }\n self.encryptCipher = crypto_js_build__WEBPACK_IMPORTED_MODULE_2___default.a.algo[self.cjsAlgorithm].createEncryptor(self.key, { iv: iv });\n self.iv = iv;\n then();\n });\n }\n } else {\n then();\n }\n };\n\n CBCCipher.prototype.decrypt = function (ciphertext) {\n _common_lib_util_logger__WEBPACK_IMPORTED_MODULE_3___default.a.logAction(_common_lib_util_logger__WEBPACK_IMPORTED_MODULE_3___default.a.LOG_MICRO, 'CBCCipher.decrypt()', '');\n ciphertext = bufferUtils.toWordArray(ciphertext);\n var blockLengthWords = this.blockLengthWords,\n ciphertextWords = ciphertext.words,\n iv = crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create(ciphertextWords.slice(0, blockLengthWords)),\n ciphertextBody = crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default.a.create(ciphertextWords.slice(blockLengthWords));\n\n var decryptCipher = crypto_js_build__WEBPACK_IMPORTED_MODULE_2___default.a.algo[this.cjsAlgorithm].createDecryptor(this.key, { iv: iv });\n var plaintext = decryptCipher.process(ciphertextBody);\n var epilogue = decryptCipher.finalize();\n decryptCipher.reset();\n if (epilogue && epilogue.sigBytes) plaintext.concat(epilogue);\n return plaintext;\n };\n\n CBCCipher.prototype.getIv = function (callback) {\n if (this.iv) {\n var iv = this.iv;\n this.iv = null;\n callback(null, iv);\n return;\n }\n\n /* Since the iv for a new block is the ciphertext of the last, this\n * sets a new iv (= aes(randomBlock XOR lastCipherText)) as well as\n * returning it */\n var self = this;\n generateRandom(DEFAULT_BLOCKLENGTH, function (err, randomBlock) {\n if (err) {\n callback(err);\n return;\n }\n callback(null, self.encryptCipher.process(randomBlock));\n });\n };\n\n return Crypto;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (CryptoFactory);\n\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(6));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * UTF-16 BE encoding strategy.\n\t */\n\t var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {\n\t /**\n\t * Converts a word array to a UTF-16 BE string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-16 BE string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var utf16Chars = [];\n\t for (var i = 0; i < sigBytes; i += 2) {\n\t var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff;\n\t utf16Chars.push(String.fromCharCode(codePoint));\n\t }\n\n\t return utf16Chars.join('');\n\t },\n\n\t /**\n\t * Converts a UTF-16 BE string to a word array.\n\t *\n\t * @param {string} utf16Str The UTF-16 BE string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf16.parse(utf16String);\n\t */\n\t parse: function (utf16Str) {\n\t // Shortcut\n\t var utf16StrLength = utf16Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < utf16StrLength; i++) {\n\t words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16);\n\t }\n\n\t return WordArray.create(words, utf16StrLength * 2);\n\t }\n\t };\n\n\t /**\n\t * UTF-16 LE encoding strategy.\n\t */\n\t C_enc.Utf16LE = {\n\t /**\n\t * Converts a word array to a UTF-16 LE string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-16 LE string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var utf16Chars = [];\n\t for (var i = 0; i < sigBytes; i += 2) {\n\t var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff);\n\t utf16Chars.push(String.fromCharCode(codePoint));\n\t }\n\n\t return utf16Chars.join('');\n\t },\n\n\t /**\n\t * Converts a UTF-16 LE string to a word array.\n\t *\n\t * @param {string} utf16Str The UTF-16 LE string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);\n\t */\n\t parse: function (utf16Str) {\n\t // Shortcut\n\t var utf16StrLength = utf16Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < utf16StrLength; i++) {\n\t words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16));\n\t }\n\n\t return WordArray.create(words, utf16StrLength * 2);\n\t }\n\t };\n\n\t function swapEndian(word) {\n\t return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Utf16;\n\n}));\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(6), __webpack_require__(28));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var CipherParams = C_lib.CipherParams;\n\t var C_enc = C.enc;\n\t var Hex = C_enc.Hex;\n\t var C_format = C.format;\n\n\t var HexFormatter = C_format.Hex = {\n\t /**\n\t * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The hexadecimally encoded string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.format.Hex.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t return cipherParams.ciphertext.toString(Hex);\n\t },\n\n\t /**\n\t * Converts a hexadecimally encoded ciphertext string to a cipher params object.\n\t *\n\t * @param {string} input The hexadecimally encoded string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.Hex.parse(hexString);\n\t */\n\t parse: function (input) {\n\t var ciphertext = Hex.parse(input);\n\t return CipherParams.create({ ciphertext: ciphertext });\n\t }\n\t };\n\t}());\n\n\n\treturn CryptoJS.format.Hex;\n\n}));\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(6), __webpack_require__(11), __webpack_require__(61), __webpack_require__(27), __webpack_require__(28));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Lookup tables\n\t var SBOX = [];\n\t var INV_SBOX = [];\n\t var SUB_MIX_0 = [];\n\t var SUB_MIX_1 = [];\n\t var SUB_MIX_2 = [];\n\t var SUB_MIX_3 = [];\n\t var INV_SUB_MIX_0 = [];\n\t var INV_SUB_MIX_1 = [];\n\t var INV_SUB_MIX_2 = [];\n\t var INV_SUB_MIX_3 = [];\n\n\t // Compute lookup tables\n\t (function () {\n\t // Compute double table\n\t var d = [];\n\t for (var i = 0; i < 256; i++) {\n\t if (i < 128) {\n\t d[i] = i << 1;\n\t } else {\n\t d[i] = (i << 1) ^ 0x11b;\n\t }\n\t }\n\n\t // Walk GF(2^8)\n\t var x = 0;\n\t var xi = 0;\n\t for (var i = 0; i < 256; i++) {\n\t // Compute sbox\n\t var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);\n\t sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;\n\t SBOX[x] = sx;\n\t INV_SBOX[sx] = x;\n\n\t // Compute multiplication\n\t var x2 = d[x];\n\t var x4 = d[x2];\n\t var x8 = d[x4];\n\n\t // Compute sub bytes, mix columns tables\n\t var t = (d[sx] * 0x101) ^ (sx * 0x1010100);\n\t SUB_MIX_0[x] = (t << 24) | (t >>> 8);\n\t SUB_MIX_1[x] = (t << 16) | (t >>> 16);\n\t SUB_MIX_2[x] = (t << 8) | (t >>> 24);\n\t SUB_MIX_3[x] = t;\n\n\t // Compute inv sub bytes, inv mix columns tables\n\t var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);\n\t INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);\n\t INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);\n\t INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24);\n\t INV_SUB_MIX_3[sx] = t;\n\n\t // Compute next counter\n\t if (!x) {\n\t x = xi = 1;\n\t } else {\n\t x = x2 ^ d[d[d[x8 ^ x2]]];\n\t xi ^= d[d[xi]];\n\t }\n\t }\n\t }());\n\n\t // Precomputed Rcon lookup\n\t var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\n\n\t /**\n\t * AES block cipher algorithm.\n\t */\n\t var AES = C_algo.AES = BlockCipher.extend({\n\t _doReset: function () {\n\t var t;\n\n\t // Skip reset of nRounds has been set before and key did not change\n\t if (this._nRounds && this._keyPriorReset === this._key) {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var key = this._keyPriorReset = this._key;\n\t var keyWords = key.words;\n\t var keySize = key.sigBytes / 4;\n\n\t // Compute number of rounds\n\t var nRounds = this._nRounds = keySize + 6;\n\n\t // Compute number of key schedule rows\n\t var ksRows = (nRounds + 1) * 4;\n\n\t // Compute key schedule\n\t var keySchedule = this._keySchedule = [];\n\t for (var ksRow = 0; ksRow < ksRows; ksRow++) {\n\t if (ksRow < keySize) {\n\t keySchedule[ksRow] = keyWords[ksRow];\n\t } else {\n\t t = keySchedule[ksRow - 1];\n\n\t if (!(ksRow % keySize)) {\n\t // Rot word\n\t t = (t << 8) | (t >>> 24);\n\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\n\t // Mix Rcon\n\t t ^= RCON[(ksRow / keySize) | 0] << 24;\n\t } else if (keySize > 6 && ksRow % keySize == 4) {\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\t }\n\n\t keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;\n\t }\n\t }\n\n\t // Compute inv key schedule\n\t var invKeySchedule = this._invKeySchedule = [];\n\t for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {\n\t var ksRow = ksRows - invKsRow;\n\n\t if (invKsRow % 4) {\n\t var t = keySchedule[ksRow];\n\t } else {\n\t var t = keySchedule[ksRow - 4];\n\t }\n\n\t if (invKsRow < 4 || ksRow <= 4) {\n\t invKeySchedule[invKsRow] = t;\n\t } else {\n\t invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^\n\t INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];\n\t }\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t // Swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\n\t this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);\n\n\t // Inv swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\t },\n\n\t _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {\n\t // Shortcut\n\t var nRounds = this._nRounds;\n\n\t // Get input, add round key\n\t var s0 = M[offset] ^ keySchedule[0];\n\t var s1 = M[offset + 1] ^ keySchedule[1];\n\t var s2 = M[offset + 2] ^ keySchedule[2];\n\t var s3 = M[offset + 3] ^ keySchedule[3];\n\n\t // Key schedule row counter\n\t var ksRow = 4;\n\n\t // Rounds\n\t for (var round = 1; round < nRounds; round++) {\n\t // Shift rows, sub bytes, mix columns, add round key\n\t var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];\n\t var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];\n\t var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];\n\t var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];\n\n\t // Update state\n\t s0 = t0;\n\t s1 = t1;\n\t s2 = t2;\n\t s3 = t3;\n\t }\n\n\t // Shift rows, sub bytes, add round key\n\t var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];\n\t var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];\n\t var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];\n\t var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];\n\n\t // Set output\n\t M[offset] = t0;\n\t M[offset + 1] = t1;\n\t M[offset + 2] = t2;\n\t M[offset + 3] = t3;\n\t },\n\n\t keySize: 256/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.AES = BlockCipher._createHelper(AES);\n\t}());\n\n\n\treturn CryptoJS.AES;\n\n}));\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n;(function (root, factory) {\n\tif (true) {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(__webpack_require__(6));\n\t}\n\telse {}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var T = [];\n\n\t // Compute constants\n\t (function () {\n\t for (var i = 0; i < 64; i++) {\n\t T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\n\t }\n\t }());\n\n\t /**\n\t * MD5 hash algorithm.\n\t */\n\t var MD5 = C_algo.MD5 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var M_offset_0 = M[offset + 0];\n\t var M_offset_1 = M[offset + 1];\n\t var M_offset_2 = M[offset + 2];\n\t var M_offset_3 = M[offset + 3];\n\t var M_offset_4 = M[offset + 4];\n\t var M_offset_5 = M[offset + 5];\n\t var M_offset_6 = M[offset + 6];\n\t var M_offset_7 = M[offset + 7];\n\t var M_offset_8 = M[offset + 8];\n\t var M_offset_9 = M[offset + 9];\n\t var M_offset_10 = M[offset + 10];\n\t var M_offset_11 = M[offset + 11];\n\t var M_offset_12 = M[offset + 12];\n\t var M_offset_13 = M[offset + 13];\n\t var M_offset_14 = M[offset + 14];\n\t var M_offset_15 = M[offset + 15];\n\n\t // Working varialbes\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\n\t // Computation\n\t a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n\t d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n\t c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n\t b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n\t a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n\t d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n\t c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n\t b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n\t a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n\t d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n\t c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n\t b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n\t a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n\t d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n\t c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n\t b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n\n\t a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n\t d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n\t c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n\t b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n\t a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n\t d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n\t c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n\t b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n\t a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n\t d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n\t c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n\t b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n\t a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n\t d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n\t c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n\t b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n\n\t a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n\t d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n\t c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n\t b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n\t a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n\t d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n\t c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n\t b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n\t a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n\t d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n\t c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n\t b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n\t a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n\t d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n\t c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n\t b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n\n\t a = II(a, b, c, d, M_offset_0, 6, T[48]);\n\t d = II(d, a, b, c, M_offset_7, 10, T[49]);\n\t c = II(c, d, a, b, M_offset_14, 15, T[50]);\n\t b = II(b, c, d, a, M_offset_5, 21, T[51]);\n\t a = II(a, b, c, d, M_offset_12, 6, T[52]);\n\t d = II(d, a, b, c, M_offset_3, 10, T[53]);\n\t c = II(c, d, a, b, M_offset_10, 15, T[54]);\n\t b = II(b, c, d, a, M_offset_1, 21, T[55]);\n\t a = II(a, b, c, d, M_offset_8, 6, T[56]);\n\t d = II(d, a, b, c, M_offset_15, 10, T[57]);\n\t c = II(c, d, a, b, M_offset_6, 15, T[58]);\n\t b = II(b, c, d, a, M_offset_13, 21, T[59]);\n\t a = II(a, b, c, d, M_offset_4, 6, T[60]);\n\t d = II(d, a, b, c, M_offset_11, 10, T[61]);\n\t c = II(c, d, a, b, M_offset_2, 15, T[62]);\n\t b = II(b, c, d, a, M_offset_9, 21, T[63]);\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\n\t var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n\t var nBitsTotalL = nBitsTotal;\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (\n\t (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)\n\t );\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)\n\t );\n\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t function FF(a, b, c, d, x, s, t) {\n\t var n = a + ((b & c) | (~b & d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function GG(a, b, c, d, x, s, t) {\n\t var n = a + ((b & d) | (c & ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function HH(a, b, c, d, x, s, t) {\n\t var n = a + (b ^ c ^ d) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function II(a, b, c, d, x, s, t) {\n\t var n = a + (c ^ (b | ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.MD5('message');\n\t * var hash = CryptoJS.MD5(wordArray);\n\t */\n\t C.MD5 = Hasher._createHelper(MD5);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacMD5(message, key);\n\t */\n\t C.HmacMD5 = Hasher._createHmacHelper(MD5);\n\t}(Math));\n\n\n\treturn CryptoJS.MD5;\n\n}));\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\nvar platform_1 = tslib_1.__importDefault(__webpack_require__(3));\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\nvar defaults_1 = tslib_1.__importDefault(__webpack_require__(8));\nvar errorinfo_1 = __webpack_require__(4);\nvar HttpMethods_1 = tslib_1.__importDefault(__webpack_require__(18));\nvar xhrrequest_1 = tslib_1.__importDefault(__webpack_require__(16));\nvar XHRStates_1 = tslib_1.__importDefault(__webpack_require__(21));\nvar logger_1 = tslib_1.__importDefault(__webpack_require__(2));\nvar jsonptransport_1 = __webpack_require__(29);\nvar fetchrequest_1 = tslib_1.__importDefault(__webpack_require__(63));\nvar HttpStatusCodes_1 = __webpack_require__(25);\nfunction shouldFallback(errorInfo) {\n var statusCode = errorInfo.statusCode;\n /* 400 + no code = a generic xhr onerror. Browser doesn't give us enough\n * detail to know whether it's fallback-fixable, but it may be (eg if a\n * network issue), so try just in case */\n return ((statusCode === 408 && !errorInfo.code) ||\n (statusCode === 400 && !errorInfo.code) ||\n (statusCode >= 500 && statusCode <= 504));\n}\nfunction getHosts(client) {\n /* If we're a connected realtime client, try the endpoint we're connected\n * to first -- but still have fallbacks, being connected is not an absolute\n * guarantee that a datacenter has free capacity to service REST requests. */\n var connection = client.connection, connectionHost = connection && connection.connectionManager.host;\n if (connectionHost) {\n return [connectionHost].concat(defaults_1.default.getFallbackHosts(client.options));\n }\n return defaults_1.default.getHosts(client.options);\n}\nvar Http = (_a = /** @class */ (function () {\n function class_1(options) {\n this.checksInProgress = null;\n this.checkConnectivity = undefined;\n this.supportsAuthHeaders = false;\n this.supportsLinkHeaders = false;\n this._getHosts = getHosts;\n this.options = options || {};\n var connectivityCheckUrl = this.options.connectivityCheckUrl || defaults_1.default.connectivityCheckUrl;\n var connectivityCheckParams = this.options.connectivityCheckParams;\n var connectivityUrlIsDefault = !this.options.connectivityCheckUrl;\n if (platform_1.default.Config.xhrSupported) {\n this.supportsAuthHeaders = true;\n this.Request = function (method, rest, uri, headers, params, body, callback) {\n var req = xhrrequest_1.default.createRequest(uri, headers, params, body, XHRStates_1.default.REQ_SEND, rest && rest.options.timeouts, method);\n req.once('complete', callback);\n req.exec();\n return req;\n };\n if (this.options.disableConnectivityCheck) {\n this.checkConnectivity = function (callback) {\n callback(null, true);\n };\n }\n else {\n this.checkConnectivity = function (callback) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, '(XHRRequest)Http.checkConnectivity()', 'Sending; ' + connectivityCheckUrl);\n this.doUri(HttpMethods_1.default.Get, null, connectivityCheckUrl, null, null, connectivityCheckParams, function (err, responseText, headers, unpacked, statusCode) {\n var result = false;\n if (!connectivityUrlIsDefault) {\n result = !err && (0, HttpStatusCodes_1.isSuccessCode)(statusCode);\n }\n else {\n result = !err && (responseText === null || responseText === void 0 ? void 0 : responseText.replace(/\\n/, '')) == 'yes';\n }\n logger_1.default.logAction(logger_1.default.LOG_MICRO, '(XHRRequest)Http.checkConnectivity()', 'Result: ' + result);\n callback(null, result);\n });\n };\n }\n }\n else if (platform_1.default.Config.jsonpSupported) {\n this.Request = function (method, rest, uri, headers, params, body, callback) {\n var req = (0, jsonptransport_1.createRequest)(uri, headers, params, body, XHRStates_1.default.REQ_SEND, rest && rest.options.timeouts, method);\n req.once('complete', callback);\n platform_1.default.Config.nextTick(function () {\n req.exec();\n });\n return req;\n };\n if (this.options.disableConnectivityCheck) {\n this.checkConnectivity = function (callback) {\n callback(null, true);\n };\n }\n else {\n this.checkConnectivity = function (callback) {\n var _this = this;\n var upUrl = defaults_1.default.jsonpInternetUpUrl;\n if (this.checksInProgress) {\n this.checksInProgress.push(callback);\n return;\n }\n this.checksInProgress = [callback];\n logger_1.default.logAction(logger_1.default.LOG_MICRO, '(JSONP)Http.checkConnectivity()', 'Sending; ' + upUrl);\n var req = new jsonptransport_1.Request('isTheInternetUp', upUrl, null, null, null, XHRStates_1.default.REQ_SEND, defaults_1.default.TIMEOUTS);\n req.once('complete', function (err, response) {\n var result = !err && response;\n logger_1.default.logAction(logger_1.default.LOG_MICRO, '(JSONP)Http.checkConnectivity()', 'Result: ' + result);\n for (var i = 0; i < _this.checksInProgress.length; i++)\n _this.checksInProgress[i](null, result);\n _this.checksInProgress = null;\n });\n platform_1.default.Config.nextTick(function () {\n req.exec();\n });\n };\n }\n }\n else if (platform_1.default.Config.fetchSupported) {\n this.supportsAuthHeaders = true;\n this.Request = fetchrequest_1.default;\n this.checkConnectivity = function (callback) {\n logger_1.default.logAction(logger_1.default.LOG_MICRO, '(Fetch)Http.checkConnectivity()', 'Sending; ' + connectivityCheckUrl);\n this.doUri(HttpMethods_1.default.Get, null, connectivityCheckUrl, null, null, null, function (err, responseText) {\n var result = !err && (responseText === null || responseText === void 0 ? void 0 : responseText.replace(/\\n/, '')) == 'yes';\n logger_1.default.logAction(logger_1.default.LOG_MICRO, '(Fetch)Http.checkConnectivity()', 'Result: ' + result);\n callback(null, result);\n });\n };\n }\n else {\n this.Request = function (method, rest, uri, headers, params, body, callback) {\n callback(new errorinfo_1.PartialErrorInfo('no supported HTTP transports available', null, 400), null);\n };\n }\n }\n /* Unlike for doUri, the 'rest' param here is mandatory, as it's used to generate the hosts */\n class_1.prototype.do = function (method, rest, path, headers, body, params, callback) {\n var _this = this;\n var uriFromHost = typeof path == 'function'\n ? path\n : function (host) {\n return rest.baseUri(host) + path;\n };\n var currentFallback = rest._currentFallback;\n if (currentFallback) {\n if (currentFallback.validUntil > Utils.now()) {\n /* Use stored fallback */\n if (!this.Request) {\n callback === null || callback === void 0 ? void 0 : callback(new errorinfo_1.PartialErrorInfo('Request invoked before assigned to', null, 500));\n return;\n }\n this.Request(method, rest, uriFromHost(currentFallback.host), headers, params, body, function (err) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n // This typecast is safe because ErrnoExceptions are only thrown in NodeJS\n if (err && shouldFallback(err)) {\n /* unstore the fallback and start from the top with the default sequence */\n rest._currentFallback = null;\n _this.do(method, rest, path, headers, body, params, callback);\n return;\n }\n callback === null || callback === void 0 ? void 0 : callback.apply(void 0, tslib_1.__spreadArray([err], args, false));\n });\n return;\n }\n else {\n /* Fallback expired; remove it and fallthrough to normal sequence */\n rest._currentFallback = null;\n }\n }\n var hosts = getHosts(rest);\n /* if there is only one host do it */\n if (hosts.length === 1) {\n this.doUri(method, rest, uriFromHost(hosts[0]), headers, body, params, callback);\n return;\n }\n /* hosts is an array with preferred host plus at least one fallback */\n var tryAHost = function (candidateHosts, persistOnSuccess) {\n var host = candidateHosts.shift();\n _this.doUri(method, rest, uriFromHost(host), headers, body, params, function (err) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n // This typecast is safe because ErrnoExceptions are only thrown in NodeJS\n if (err && shouldFallback(err) && candidateHosts.length) {\n tryAHost(candidateHosts, true);\n return;\n }\n if (persistOnSuccess) {\n /* RSC15f */\n rest._currentFallback = {\n host: host,\n validUntil: Utils.now() + rest.options.timeouts.fallbackRetryTimeout,\n };\n }\n callback === null || callback === void 0 ? void 0 : callback.apply(void 0, tslib_1.__spreadArray([err], args, false));\n });\n };\n tryAHost(hosts);\n };\n class_1.prototype.doUri = function (method, rest, uri, headers, body, params, callback) {\n if (!this.Request) {\n callback(new errorinfo_1.PartialErrorInfo('Request invoked before assigned to', null, 500));\n return;\n }\n this.Request(method, rest, uri, headers, params, body, callback);\n };\n return class_1;\n }()),\n _a.methods = [HttpMethods_1.default.Get, HttpMethods_1.default.Delete, HttpMethods_1.default.Post, HttpMethods_1.default.Put, HttpMethods_1.default.Patch],\n _a.methodsWithoutBody = [HttpMethods_1.default.Get, HttpMethods_1.default.Delete],\n _a.methodsWithBody = [HttpMethods_1.default.Post, HttpMethods_1.default.Put, HttpMethods_1.default.Patch],\n _a);\nexports.default = Http;\n\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\nvar errorinfo_1 = tslib_1.__importStar(__webpack_require__(4));\nvar platform_1 = tslib_1.__importDefault(__webpack_require__(3));\nvar defaults_1 = tslib_1.__importDefault(__webpack_require__(8));\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\nvar utils_1 = __webpack_require__(1);\nfunction isAblyError(responseBody, headers) {\n return !!headers.get('x-ably-errorcode');\n}\nfunction getAblyError(responseBody, headers) {\n if (isAblyError(responseBody, headers)) {\n return responseBody.error && errorinfo_1.default.fromValues(responseBody.error);\n }\n}\nfunction fetchRequest(method, rest, uri, headers, params, body, callback) {\n var fetchHeaders = new Headers(headers || {});\n var _method = method ? method.toUpperCase() : Utils.isEmptyArg(body) ? 'GET' : 'POST';\n var controller = new AbortController();\n var timeout = setTimeout(function () {\n controller.abort();\n callback(new errorinfo_1.PartialErrorInfo('Request timed out', null, 408));\n }, rest ? rest.options.timeouts.httpRequestTimeout : defaults_1.default.TIMEOUTS.httpRequestTimeout);\n var requestInit = {\n method: _method,\n headers: fetchHeaders,\n body: body,\n };\n if (!platform_1.default.Config.isWebworker) {\n requestInit.credentials = fetchHeaders.has('authorization') ? 'include' : 'same-origin';\n }\n (0, utils_1.getGlobalObject)()\n .fetch(uri + '?' + new URLSearchParams(params || {}), requestInit)\n .then(function (res) {\n clearTimeout(timeout);\n var contentType = res.headers.get('Content-Type');\n var prom;\n if (contentType && contentType.indexOf('application/x-msgpack') > -1) {\n prom = res.arrayBuffer();\n }\n else if (contentType && contentType.indexOf('application/json') > -1) {\n prom = res.json();\n }\n else {\n prom = res.text();\n }\n prom.then(function (body) {\n var unpacked = !!contentType && contentType.indexOf('application/x-msgpack') === -1;\n if (!res.ok) {\n var err = getAblyError(body, res.headers) ||\n new errorinfo_1.PartialErrorInfo('Error response received from server: ' + res.status + ' body was: ' + platform_1.default.Config.inspect(body), null, res.status);\n callback(err, body, res.headers, unpacked, res.status);\n }\n else {\n callback(null, body, res.headers, unpacked, res.status);\n }\n });\n })\n .catch(function (err) {\n clearTimeout(timeout);\n callback(err);\n });\n}\nexports.default = fetchRequest;\n\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\nvar msgpack_1 = tslib_1.__importDefault(__webpack_require__(41));\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\n// Workaround for salesforce lightning locker compat\nvar globalObject = Utils.getGlobalObject();\nif (typeof Window === 'undefined' && typeof WorkerGlobalScope === 'undefined') {\n console.log(\"Warning: this distribution of Ably is intended for browsers. On nodejs, please use the 'ably' package on npm\");\n}\nfunction allowComet() {\n /* xhr requests from local files are unreliable in some browsers, such as Chrome 65 and higher -- see eg\n * https://stackoverflow.com/questions/49256429/chrome-65-unable-to-make-post-requests-from-local-files-to-flask\n * So if websockets are supported, then just forget about comet transports and use that */\n var loc = globalObject.location;\n return !globalObject.WebSocket || !loc || !loc.origin || loc.origin.indexOf('http') > -1;\n}\nvar userAgent = globalObject.navigator && globalObject.navigator.userAgent.toString();\nvar currentUrl = globalObject.location && globalObject.location.href;\nvar Config = {\n agent: 'browser',\n logTimestamps: true,\n userAgent: userAgent,\n currentUrl: currentUrl,\n noUpgrade: userAgent && !!userAgent.match(/MSIE\\s8\\.0/),\n binaryType: 'arraybuffer',\n WebSocket: globalObject.WebSocket,\n fetchSupported: !!globalObject.fetch,\n xhrSupported: globalObject.XMLHttpRequest && 'withCredentials' in new XMLHttpRequest(),\n jsonpSupported: typeof document !== 'undefined',\n allowComet: allowComet(),\n streamingSupported: true,\n useProtocolHeartbeats: true,\n createHmac: null,\n msgpack: msgpack_1.default,\n supportsBinary: !!globalObject.TextDecoder,\n preferBinary: false,\n ArrayBuffer: globalObject.ArrayBuffer,\n atob: globalObject.atob,\n nextTick: typeof globalObject.setImmediate !== 'undefined'\n ? globalObject.setImmediate.bind(globalObject)\n : function (f) {\n setTimeout(f, 0);\n },\n addEventListener: globalObject.addEventListener,\n inspect: JSON.stringify,\n stringByteSize: function (str) {\n /* str.length will be an underestimate for non-ascii strings. But if we're\n * in a browser too old to support TextDecoder, not much we can do. Better\n * to underestimate, so if we do go over-size, the server will reject the\n * message */\n return (globalObject.TextDecoder && new globalObject.TextEncoder().encode(str).length) || str.length;\n },\n TextEncoder: globalObject.TextEncoder,\n TextDecoder: globalObject.TextDecoder,\n Promise: globalObject.Promise,\n getRandomValues: (function (crypto) {\n if (crypto === undefined) {\n return undefined;\n }\n return function (arr, callback) {\n crypto.getRandomValues(arr);\n if (callback) {\n callback(null);\n }\n };\n })(globalObject.crypto || msCrypto),\n};\nexports.default = Config;\n\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\nvar Utils = tslib_1.__importStar(__webpack_require__(1));\nvar test = 'ablyjs-storage-test';\nvar Webstorage = /** @class */ (function () {\n function Webstorage() {\n /* Even just accessing the session/localStorage object can throw a\n * security exception in some circumstances with some browsers. In\n * others, calling setItem will throw. So have to check in this\n * somewhat roundabout way. (If unsupported or no global object,\n * will throw on accessing a property of undefined) */\n try {\n global.sessionStorage.setItem(test, test);\n global.sessionStorage.removeItem(test);\n this.sessionSupported = true;\n }\n catch (e) {\n this.sessionSupported = false;\n }\n try {\n global.localStorage.setItem(test, test);\n global.localStorage.removeItem(test);\n this.localSupported = true;\n }\n catch (e) {\n this.localSupported = false;\n }\n }\n Webstorage.prototype.get = function (name) {\n return this._get(name, false);\n };\n Webstorage.prototype.getSession = function (name) {\n return this._get(name, true);\n };\n Webstorage.prototype.remove = function (name) {\n return this._remove(name, false);\n };\n Webstorage.prototype.removeSession = function (name) {\n return this._remove(name, true);\n };\n Webstorage.prototype.set = function (name, value, ttl) {\n return this._set(name, value, ttl, false);\n };\n Webstorage.prototype.setSession = function (name, value, ttl) {\n return this._set(name, value, ttl, true);\n };\n Webstorage.prototype._set = function (name, value, ttl, session) {\n var wrappedValue = { value: value };\n if (ttl) {\n wrappedValue.expires = Utils.now() + ttl;\n }\n return this.storageInterface(session).setItem(name, JSON.stringify(wrappedValue));\n };\n Webstorage.prototype._get = function (name, session) {\n if (session && !this.sessionSupported)\n throw new Error('Session Storage not supported');\n if (!session && !this.localSupported)\n throw new Error('Local Storage not supported');\n var rawItem = this.storageInterface(session).getItem(name);\n if (!rawItem)\n return null;\n var wrappedValue = JSON.parse(rawItem);\n if (wrappedValue.expires && wrappedValue.expires < Utils.now()) {\n this.storageInterface(session).removeItem(name);\n return null;\n }\n return wrappedValue.value;\n };\n Webstorage.prototype._remove = function (name, session) {\n return this.storageInterface(session).removeItem(name);\n };\n Webstorage.prototype.storageInterface = function (session) {\n return session ? global.sessionStorage : global.localStorage;\n };\n return Webstorage;\n}());\nexports.default = new Webstorage();\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(13)))\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(0);\nvar TransportNames_1 = tslib_1.__importDefault(__webpack_require__(67));\nvar Defaults = {\n connectivityCheckUrl: 'https://internet-up.ably-realtime.com/is-the-internet-up.txt',\n jsonpInternetUpUrl: 'https://internet-up.ably-realtime.com/is-the-internet-up-0-9.js',\n /* Order matters here: the base transport is the leftmost one in the\n * intersection of baseTransportOrder and the transports clientOption that's\n * supported. This is not quite the same as the preference order -- e.g.\n * xhr_polling is preferred to jsonp, but for browsers that support it we want\n * the base transport to be xhr_polling, not jsonp */\n defaultTransports: [\n TransportNames_1.default.XhrPolling,\n TransportNames_1.default.XhrStreaming,\n TransportNames_1.default.JsonP,\n TransportNames_1.default.WebSocket,\n ],\n baseTransportOrder: [\n TransportNames_1.default.XhrPolling,\n TransportNames_1.default.XhrStreaming,\n TransportNames_1.default.JsonP,\n TransportNames_1.default.WebSocket,\n ],\n transportPreferenceOrder: [\n TransportNames_1.default.JsonP,\n TransportNames_1.default.XhrPolling,\n TransportNames_1.default.XhrStreaming,\n TransportNames_1.default.WebSocket,\n ],\n upgradeTransports: [TransportNames_1.default.XhrStreaming, TransportNames_1.default.WebSocket],\n};\nexports.default = Defaults;\n\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar TransportNames;\n(function (TransportNames) {\n TransportNames[\"WebSocket\"] = \"web_socket\";\n TransportNames[\"Comet\"] = \"comet\";\n TransportNames[\"XhrStreaming\"] = \"xhr_streaming\";\n TransportNames[\"XhrPolling\"] = \"xhr_polling\";\n TransportNames[\"JsonP\"] = \"jsonp\";\n})(TransportNames || (TransportNames = {}));\nexports.default = TransportNames;\n\n\n/***/ }),\n/* 68 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: ./src/platform/web/lib/transport/jsonptransport.ts\nvar jsonptransport = __webpack_require__(29);\nvar jsonptransport_default = /*#__PURE__*/__webpack_require__.n(jsonptransport);\n\n// EXTERNAL MODULE: ./src/common/lib/util/utils.ts\nvar utils = __webpack_require__(1);\n\n// EXTERNAL MODULE: ./src/common/platform.ts\nvar platform = __webpack_require__(3);\nvar platform_default = /*#__PURE__*/__webpack_require__.n(platform);\n\n// EXTERNAL MODULE: ./src/common/lib/transport/comettransport.ts\nvar comettransport = __webpack_require__(12);\nvar comettransport_default = /*#__PURE__*/__webpack_require__.n(comettransport);\n\n// EXTERNAL MODULE: ./src/platform/web/lib/transport/xhrrequest.ts\nvar xhrrequest = __webpack_require__(16);\nvar xhrrequest_default = /*#__PURE__*/__webpack_require__.n(xhrrequest);\n\n// CONCATENATED MODULE: ./src/platform/web/lib/transport/xhrpollingtransport.js\n\n\n\n\n\nvar xhrpollingtransport_XHRPollingTransport = function (connectionManager) {\n var shortName = 'xhr_polling';\n\n function XHRPollingTransport(connectionManager, auth, params) {\n params.stream = false;\n comettransport_default.a.call(this, connectionManager, auth, params);\n this.shortName = shortName;\n }\n utils[\"inherits\"](XHRPollingTransport, comettransport_default.a);\n\n XHRPollingTransport.isAvailable = function () {\n return platform_default.a.Config.xhrSupported && platform_default.a.Config.allowComet;\n };\n\n XHRPollingTransport.prototype.toString = function () {\n return 'XHRPollingTransport; uri=' + this.baseUri + '; isConnected=' + this.isConnected;\n };\n\n XHRPollingTransport.prototype.createRequest = function (uri, headers, params, body, requestMode) {\n return xhrrequest_default.a.createRequest(uri, headers, params, body, requestMode, this.timeouts);\n };\n\n if (typeof connectionManager !== 'undefined' && XHRPollingTransport.isAvailable()) {\n connectionManager.supportedTransports[shortName] = XHRPollingTransport;\n }\n\n return XHRPollingTransport;\n};\n\n/* harmony default export */ var xhrpollingtransport = (xhrpollingtransport_XHRPollingTransport);\n\n// CONCATENATED MODULE: ./src/platform/web/lib/transport/xhrstreamingtransport.js\n\n\n\n\n\nvar xhrstreamingtransport_XHRStreamingTransport = function (connectionManager) {\n var shortName = 'xhr_streaming';\n\n /* public constructor */\n function XHRStreamingTransport(connectionManager, auth, params) {\n comettransport_default.a.call(this, connectionManager, auth, params);\n this.shortName = shortName;\n }\n utils[\"inherits\"](XHRStreamingTransport, comettransport_default.a);\n\n XHRStreamingTransport.isAvailable = function () {\n return platform_default.a.Config.xhrSupported && platform_default.a.Config.streamingSupported && platform_default.a.Config.allowComet;\n };\n\n XHRStreamingTransport.prototype.toString = function () {\n return 'XHRStreamingTransport; uri=' + this.baseUri + '; isConnected=' + this.isConnected;\n };\n\n XHRStreamingTransport.prototype.createRequest = function (uri, headers, params, body, requestMode) {\n return xhrrequest_default.a.createRequest(uri, headers, params, body, requestMode, this.timeouts);\n };\n\n if (typeof connectionManager !== 'undefined' && XHRStreamingTransport.isAvailable()) {\n connectionManager.supportedTransports[shortName] = XHRStreamingTransport;\n }\n\n return XHRStreamingTransport;\n};\n\n/* harmony default export */ var xhrstreamingtransport = (xhrstreamingtransport_XHRStreamingTransport);\n\n// CONCATENATED MODULE: ./src/platform/web/lib/transport/index.js\n\n\n\n\n/* harmony default export */ var transport = __webpack_exports__[\"default\"] = ([jsonptransport_default.a, xhrpollingtransport, xhrstreamingtransport]);\n\n\n/***/ })\n/******/ ])[\"default\"];\n});","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.bowser=t():e.bowser=t()}(this,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=90)}({17:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n=r(18),i=function(){function e(){}return e.getFirstMatch=function(e,t){var r=t.match(e);return r&&r.length>0&&r[1]||\"\"},e.getSecondMatch=function(e,t){var r=t.match(e);return r&&r.length>1&&r[2]||\"\"},e.matchAndReturnConst=function(e,t,r){if(e.test(t))return r},e.getWindowsVersionName=function(e){switch(e){case\"NT\":return\"NT\";case\"XP\":return\"XP\";case\"NT 5.0\":return\"2000\";case\"NT 5.1\":return\"XP\";case\"NT 5.2\":return\"2003\";case\"NT 6.0\":return\"Vista\";case\"NT 6.1\":return\"7\";case\"NT 6.2\":return\"8\";case\"NT 6.3\":return\"8.1\";case\"NT 10.0\":return\"10\";default:return}},e.getMacOSVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),10===t[0])switch(t[1]){case 5:return\"Leopard\";case 6:return\"Snow Leopard\";case 7:return\"Lion\";case 8:return\"Mountain Lion\";case 9:return\"Mavericks\";case 10:return\"Yosemite\";case 11:return\"El Capitan\";case 12:return\"Sierra\";case 13:return\"High Sierra\";case 14:return\"Mojave\";case 15:return\"Catalina\";default:return}},e.getAndroidVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?\"Cupcake\":1===t[0]&&t[1]>=6?\"Donut\":2===t[0]&&t[1]<2?\"Eclair\":2===t[0]&&2===t[1]?\"Froyo\":2===t[0]&&t[1]>2?\"Gingerbread\":3===t[0]?\"Honeycomb\":4===t[0]&&t[1]<1?\"Ice Cream Sandwich\":4===t[0]&&t[1]<4?\"Jelly Bean\":4===t[0]&&t[1]>=4?\"KitKat\":5===t[0]?\"Lollipop\":6===t[0]?\"Marshmallow\":7===t[0]?\"Nougat\":8===t[0]?\"Oreo\":9===t[0]?\"Pie\":void 0},e.getVersionPrecision=function(e){return e.split(\".\").length},e.compareVersions=function(t,r,n){void 0===n&&(n=!1);var i=e.getVersionPrecision(t),s=e.getVersionPrecision(r),a=Math.max(i,s),o=0,u=e.map([t,r],(function(t){var r=a-e.getVersionPrecision(t),n=t+new Array(r+1).join(\".0\");return e.map(n.split(\".\"),(function(e){return new Array(20-e.length).join(\"0\")+e})).reverse()}));for(n&&(o=a-Math.min(i,s)),a-=1;a>=o;){if(u[0][a]>u[1][a])return 1;if(u[0][a]===u[1][a]){if(a===o)return 0;a-=1}else if(u[0][a]<u[1][a])return-1}},e.map=function(e,t){var r,n=[];if(Array.prototype.map)return Array.prototype.map.call(e,t);for(r=0;r<e.length;r+=1)n.push(t(e[r]));return n},e.find=function(e,t){var r,n;if(Array.prototype.find)return Array.prototype.find.call(e,t);for(r=0,n=e.length;r<n;r+=1){var i=e[r];if(t(i,r))return i}},e.assign=function(e){for(var t,r,n=e,i=arguments.length,s=new Array(i>1?i-1:0),a=1;a<i;a++)s[a-1]=arguments[a];if(Object.assign)return Object.assign.apply(Object,[e].concat(s));var o=function(){var e=s[t];\"object\"==typeof e&&null!==e&&Object.keys(e).forEach((function(t){n[t]=e[t]}))};for(t=0,r=s.length;t<r;t+=1)o();return e},e.getBrowserAlias=function(e){return n.BROWSER_ALIASES_MAP[e]},e.getBrowserTypeByAlias=function(e){return n.BROWSER_MAP[e]||\"\"},e}();t.default=i,e.exports=t.default},18:function(e,t,r){\"use strict\";t.__esModule=!0,t.ENGINE_MAP=t.OS_MAP=t.PLATFORMS_MAP=t.BROWSER_MAP=t.BROWSER_ALIASES_MAP=void 0;t.BROWSER_ALIASES_MAP={\"Amazon Silk\":\"amazon_silk\",\"Android Browser\":\"android\",Bada:\"bada\",BlackBerry:\"blackberry\",Chrome:\"chrome\",Chromium:\"chromium\",Electron:\"electron\",Epiphany:\"epiphany\",Firefox:\"firefox\",Focus:\"focus\",Generic:\"generic\",\"Google Search\":\"google_search\",Googlebot:\"googlebot\",\"Internet Explorer\":\"ie\",\"K-Meleon\":\"k_meleon\",Maxthon:\"maxthon\",\"Microsoft Edge\":\"edge\",\"MZ Browser\":\"mz\",\"NAVER Whale Browser\":\"naver\",Opera:\"opera\",\"Opera Coast\":\"opera_coast\",PhantomJS:\"phantomjs\",Puffin:\"puffin\",QupZilla:\"qupzilla\",QQ:\"qq\",QQLite:\"qqlite\",Safari:\"safari\",Sailfish:\"sailfish\",\"Samsung Internet for Android\":\"samsung_internet\",SeaMonkey:\"seamonkey\",Sleipnir:\"sleipnir\",Swing:\"swing\",Tizen:\"tizen\",\"UC Browser\":\"uc\",Vivaldi:\"vivaldi\",\"WebOS Browser\":\"webos\",WeChat:\"wechat\",\"Yandex Browser\":\"yandex\",Roku:\"roku\"};t.BROWSER_MAP={amazon_silk:\"Amazon Silk\",android:\"Android Browser\",bada:\"Bada\",blackberry:\"BlackBerry\",chrome:\"Chrome\",chromium:\"Chromium\",electron:\"Electron\",epiphany:\"Epiphany\",firefox:\"Firefox\",focus:\"Focus\",generic:\"Generic\",googlebot:\"Googlebot\",google_search:\"Google Search\",ie:\"Internet Explorer\",k_meleon:\"K-Meleon\",maxthon:\"Maxthon\",edge:\"Microsoft Edge\",mz:\"MZ Browser\",naver:\"NAVER Whale Browser\",opera:\"Opera\",opera_coast:\"Opera Coast\",phantomjs:\"PhantomJS\",puffin:\"Puffin\",qupzilla:\"QupZilla\",qq:\"QQ Browser\",qqlite:\"QQ Browser Lite\",safari:\"Safari\",sailfish:\"Sailfish\",samsung_internet:\"Samsung Internet for Android\",seamonkey:\"SeaMonkey\",sleipnir:\"Sleipnir\",swing:\"Swing\",tizen:\"Tizen\",uc:\"UC Browser\",vivaldi:\"Vivaldi\",webos:\"WebOS Browser\",wechat:\"WeChat\",yandex:\"Yandex Browser\"};t.PLATFORMS_MAP={tablet:\"tablet\",mobile:\"mobile\",desktop:\"desktop\",tv:\"tv\"};t.OS_MAP={WindowsPhone:\"Windows Phone\",Windows:\"Windows\",MacOS:\"macOS\",iOS:\"iOS\",Android:\"Android\",WebOS:\"WebOS\",BlackBerry:\"BlackBerry\",Bada:\"Bada\",Tizen:\"Tizen\",Linux:\"Linux\",ChromeOS:\"Chrome OS\",PlayStation4:\"PlayStation 4\",Roku:\"Roku\"};t.ENGINE_MAP={EdgeHTML:\"EdgeHTML\",Blink:\"Blink\",Trident:\"Trident\",Presto:\"Presto\",Gecko:\"Gecko\",WebKit:\"WebKit\"}},90:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(91))&&n.__esModule?n:{default:n},s=r(18);function a(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var o=function(){function e(){}var t,r,n;return e.getParser=function(e,t){if(void 0===t&&(t=!1),\"string\"!=typeof e)throw new Error(\"UserAgent should be a string\");return new i.default(e,t)},e.parse=function(e){return new i.default(e).getResult()},t=e,n=[{key:\"BROWSER_MAP\",get:function(){return s.BROWSER_MAP}},{key:\"ENGINE_MAP\",get:function(){return s.ENGINE_MAP}},{key:\"OS_MAP\",get:function(){return s.OS_MAP}},{key:\"PLATFORMS_MAP\",get:function(){return s.PLATFORMS_MAP}}],(r=null)&&a(t.prototype,r),n&&a(t,n),e}();t.default=o,e.exports=t.default},91:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n=u(r(92)),i=u(r(93)),s=u(r(94)),a=u(r(95)),o=u(r(17));function u(e){return e&&e.__esModule?e:{default:e}}var d=function(){function e(e,t){if(void 0===t&&(t=!1),null==e||\"\"===e)throw new Error(\"UserAgent parameter can't be empty\");this._ua=e,this.parsedResult={},!0!==t&&this.parse()}var t=e.prototype;return t.getUA=function(){return this._ua},t.test=function(e){return e.test(this._ua)},t.parseBrowser=function(){var e=this;this.parsedResult.browser={};var t=o.default.find(n.default,(function(t){if(\"function\"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.browser=t.describe(this.getUA())),this.parsedResult.browser},t.getBrowser=function(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()},t.getBrowserName=function(e){return e?String(this.getBrowser().name).toLowerCase()||\"\":this.getBrowser().name||\"\"},t.getBrowserVersion=function(){return this.getBrowser().version},t.getOS=function(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()},t.parseOS=function(){var e=this;this.parsedResult.os={};var t=o.default.find(i.default,(function(t){if(\"function\"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.os=t.describe(this.getUA())),this.parsedResult.os},t.getOSName=function(e){var t=this.getOS().name;return e?String(t).toLowerCase()||\"\":t||\"\"},t.getOSVersion=function(){return this.getOS().version},t.getPlatform=function(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()},t.getPlatformType=function(e){void 0===e&&(e=!1);var t=this.getPlatform().type;return e?String(t).toLowerCase()||\"\":t||\"\"},t.parsePlatform=function(){var e=this;this.parsedResult.platform={};var t=o.default.find(s.default,(function(t){if(\"function\"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.platform=t.describe(this.getUA())),this.parsedResult.platform},t.getEngine=function(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()},t.getEngineName=function(e){return e?String(this.getEngine().name).toLowerCase()||\"\":this.getEngine().name||\"\"},t.parseEngine=function(){var e=this;this.parsedResult.engine={};var t=o.default.find(a.default,(function(t){if(\"function\"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.engine=t.describe(this.getUA())),this.parsedResult.engine},t.parse=function(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this},t.getResult=function(){return o.default.assign({},this.parsedResult)},t.satisfies=function(e){var t=this,r={},n=0,i={},s=0;if(Object.keys(e).forEach((function(t){var a=e[t];\"string\"==typeof a?(i[t]=a,s+=1):\"object\"==typeof a&&(r[t]=a,n+=1)})),n>0){var a=Object.keys(r),u=o.default.find(a,(function(e){return t.isOS(e)}));if(u){var d=this.satisfies(r[u]);if(void 0!==d)return d}var c=o.default.find(a,(function(e){return t.isPlatform(e)}));if(c){var f=this.satisfies(r[c]);if(void 0!==f)return f}}if(s>0){var l=Object.keys(i),h=o.default.find(l,(function(e){return t.isBrowser(e,!0)}));if(void 0!==h)return this.compareVersion(i[h])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var r=this.getBrowserName().toLowerCase(),n=e.toLowerCase(),i=o.default.getBrowserTypeByAlias(n);return t&&i&&(n=i.toLowerCase()),n===r},t.compareVersion=function(e){var t=[0],r=e,n=!1,i=this.getBrowserVersion();if(\"string\"==typeof i)return\">\"===e[0]||\"<\"===e[0]?(r=e.substr(1),\"=\"===e[1]?(n=!0,r=e.substr(2)):t=[],\">\"===e[0]?t.push(1):t.push(-1)):\"=\"===e[0]?r=e.substr(1):\"~\"===e[0]&&(n=!0,r=e.substr(1)),t.indexOf(o.default.compareVersions(i,r,n))>-1},t.isOS=function(e){return this.getOSName(!0)===String(e).toLowerCase()},t.isPlatform=function(e){return this.getPlatformType(!0)===String(e).toLowerCase()},t.isEngine=function(e){return this.getEngineName(!0)===String(e).toLowerCase()},t.is=function(e,t){return void 0===t&&(t=!1),this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)},t.some=function(e){var t=this;return void 0===e&&(e=[]),e.some((function(e){return t.is(e)}))},e}();t.default=d,e.exports=t.default},92:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n};var s=/version\\/(\\d+(\\.?_?\\d+)+)/i,a=[{test:[/googlebot/i],describe:function(e){var t={name:\"Googlebot\"},r=i.default.getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/opera/i],describe:function(e){var t={name:\"Opera\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:opera)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opr\\/|opios/i],describe:function(e){var t={name:\"Opera\"},r=i.default.getFirstMatch(/(?:opr|opios)[\\s/](\\S+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:\"Samsung Internet for Android\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:SamsungBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Whale/i],describe:function(e){var t={name:\"NAVER Whale Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:whale)[\\s/](\\d+(?:\\.\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:\"MZ Browser\"},r=i.default.getFirstMatch(/(?:MZBrowser)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:\"Focus\"},r=i.default.getFirstMatch(/(?:focus)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:\"Swing\"},r=i.default.getFirstMatch(/(?:swing)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:\"Opera Coast\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:coast)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opt\\/\\d+(?:.?_?\\d+)+/i],describe:function(e){var t={name:\"Opera Touch\"},r=i.default.getFirstMatch(/(?:opt)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:\"Yandex Browser\"},r=i.default.getFirstMatch(/(?:yabrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:\"UC Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:ucbrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Maxthon|mxios/i],describe:function(e){var t={name:\"Maxthon\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:Maxthon|mxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/epiphany/i],describe:function(e){var t={name:\"Epiphany\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:epiphany)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe:function(e){var t={name:\"Puffin\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:puffin)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe:function(e){var t={name:\"Sleipnir\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:sleipnir)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/k-meleon/i],describe:function(e){var t={name:\"K-Meleon\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:k-meleon)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/micromessenger/i],describe:function(e){var t={name:\"WeChat\"},r=i.default.getFirstMatch(/(?:micromessenger)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qqbrowser/i],describe:function(e){var t={name:/qqbrowserlite/i.test(e)?\"QQ Browser Lite\":\"QQ Browser\"},r=i.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:\"Internet Explorer\"},r=i.default.getFirstMatch(/(?:msie |rv:)(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/\\sedg\\//i],describe:function(e){var t={name:\"Microsoft Edge\"},r=i.default.getFirstMatch(/\\sedg\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/edg([ea]|ios)/i],describe:function(e){var t={name:\"Microsoft Edge\"},r=i.default.getSecondMatch(/edg([ea]|ios)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/vivaldi/i],describe:function(e){var t={name:\"Vivaldi\"},r=i.default.getFirstMatch(/vivaldi\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:\"SeaMonkey\"},r=i.default.getFirstMatch(/seamonkey\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:\"Sailfish\"},r=i.default.getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i,e);return r&&(t.version=r),t}},{test:[/silk/i],describe:function(e){var t={name:\"Amazon Silk\"},r=i.default.getFirstMatch(/silk\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:\"PhantomJS\"},r=i.default.getFirstMatch(/phantomjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:\"SlimerJS\"},r=i.default.getFirstMatch(/slimerjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t={name:\"BlackBerry\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t={name:\"WebOS Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/bada/i],describe:function(e){var t={name:\"Bada\"},r=i.default.getFirstMatch(/dolfin\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:\"Tizen\"},r=i.default.getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:\"QupZilla\"},r=i.default.getFirstMatch(/(?:qupzilla)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:\"Firefox\"},r=i.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/electron/i],describe:function(e){var t={name:\"Electron\"},r=i.default.getFirstMatch(/(?:electron)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:\"Miui\"},r=i.default.getFirstMatch(/(?:MiuiBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe:function(e){var t={name:\"Chromium\"},r=i.default.getFirstMatch(/(?:chromium)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:\"Chrome\"},r=i.default.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/GSA/i],describe:function(e){var t={name:\"Google Search\"},r=i.default.getFirstMatch(/(?:GSA)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t={name:\"Android Browser\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:\"PlayStation 4\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:\"Safari\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search(\"\\\\(\")?/^(.*)\\/(.*)[ \\t]\\((.*)/:/^(.*)\\/(.*) /;return{name:i.default.getFirstMatch(t,e),version:i.default.getSecondMatch(t,e)}}}];t.default=a,e.exports=t.default},93:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:[/Roku\\/DVP/],describe:function(e){var t=i.default.getFirstMatch(/Roku\\/DVP-(\\d+\\.\\d+)/i,e);return{name:s.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=i.default.getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=i.default.getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i,e),r=i.default.getWindowsVersionName(t);return{name:s.OS_MAP.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:function(e){var t={name:s.OS_MAP.iOS},r=i.default.getSecondMatch(/(Version\\/)(\\d[\\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe:function(e){var t=i.default.getFirstMatch(/mac os x (\\d+(\\.?_?\\d+)+)/i,e).replace(/[_\\s]/g,\".\"),r=i.default.getMacOSVersionName(t),n={name:s.OS_MAP.MacOS,version:t};return r&&(n.versionName=r),n}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=i.default.getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i,e).replace(/[_\\s]/g,\".\");return{name:s.OS_MAP.iOS,version:t}}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t=i.default.getFirstMatch(/android[\\s/-](\\d+(\\.\\d+)*)/i,e),r=i.default.getAndroidVersionName(t),n={name:s.OS_MAP.Android,version:t};return r&&(n.versionName=r),n}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=i.default.getFirstMatch(/(?:web|hpw)[o0]s\\/(\\d+(\\.\\d+)*)/i,e),r={name:s.OS_MAP.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t=i.default.getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i,e)||i.default.getFirstMatch(/blackberry\\d+\\/(\\d+([_\\s]\\d+)*)/i,e)||i.default.getFirstMatch(/\\bbb(\\d+)/i,e);return{name:s.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=i.default.getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=i.default.getFirstMatch(/tizen[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:s.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:s.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=i.default.getFirstMatch(/PlayStation 4[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.PlayStation4,version:t}}}];t.default=a,e.exports=t.default},94:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:[/googlebot/i],describe:function(){return{type:\"bot\",vendor:\"Google\"}}},{test:[/huawei/i],describe:function(e){var t=i.default.getFirstMatch(/(can-l01)/i,e)&&\"Nova\",r={type:s.PLATFORMS_MAP.mobile,vendor:\"Huawei\"};return t&&(r.model=t),r}},{test:[/nexus\\s*(?:7|8|9|10).*/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Nexus\"}}},{test:[/ipad/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/kftt build/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Amazon\",model:\"Kindle Fire HD 7\"}}},{test:[/silk/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Amazon\"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){var t=e.test(/ipod|iphone/i),r=e.test(/like (ipod|iphone)/i);return t&&!r},describe:function(e){var t=i.default.getFirstMatch(/(ipod|iphone)/i,e);return{type:s.PLATFORMS_MAP.mobile,vendor:\"Apple\",model:t}}},{test:[/nexus\\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"Nexus\"}}},{test:[/[^-]mobi/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"blackberry\"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"BlackBerry\"}}},{test:function(e){return\"bada\"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"windows phone\"===e.getBrowserName()},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"Microsoft\"}}},{test:function(e){var t=Number(String(e.getOSVersion()).split(\".\")[0]);return\"android\"===e.getOSName(!0)&&t>=3},describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){return\"android\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"macos\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop,vendor:\"Apple\"}}},{test:function(e){return\"windows\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return\"linux\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return\"playstation 4\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}},{test:function(e){return\"roku\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}}];t.default=a,e.exports=t.default},95:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:function(e){return\"microsoft edge\"===e.getBrowserName(!0)},describe:function(e){if(/\\sedg\\//i.test(e))return{name:s.ENGINE_MAP.Blink};var t=i.default.getFirstMatch(/edge\\/(\\d+(\\.?_?\\d+)+)/i,e);return{name:s.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:s.ENGINE_MAP.Trident},r=i.default.getFirstMatch(/trident\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){return e.test(/presto/i)},describe:function(e){var t={name:s.ENGINE_MAP.Presto},r=i.default.getFirstMatch(/presto\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=e.test(/gecko/i),r=e.test(/like gecko/i);return t&&!r},describe:function(e){var t={name:s.ENGINE_MAP.Gecko},r=i.default.getFirstMatch(/gecko\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\\/537\\.36/i],describe:function(){return{name:s.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:s.ENGINE_MAP.WebKit},r=i.default.getFirstMatch(/webkit\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}}];t.default=a,e.exports=t.default}})}));","/*! For license information please see contentstack.js.LICENSE.txt */\n!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.Contentstack=t():e.Contentstack=t()}(self,(()=>(()=>{\"use strict\";var e={971:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.default={protocol:\"https\",host:\"cdn.contentstack.io\",port:443,version:\"v3\",urls:{sync:\"/stacks/sync\",content_types:\"/content_types/\",entries:\"/entries/\",assets:\"/assets/\",environments:\"/environments/\"},live_preview:{enable:!1,host:\"api.contentstack.io\"}}},472:()=>{},776:(e,t)=>{var r,n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};function i(e){return{text:e[\"#text\"],itemUid:e[\"data-sys-entry-uid\"]||e[\"data-sys-asset-uid\"],itemType:e.type,styleType:e[\"sys-style-type\"],attributes:e,contentTypeUid:e[\"data-sys-content-type-uid\"]}}Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){e.BLOCK=\"block\",e.INLINE=\"inline\",e.LINK=\"link\",e.DISPLAY=\"display\",e.DOWNLOAD=\"download\"}(r||(r={}));var o=r,s=function(e,t){return s=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},s(e,t)};function u(e,t){function r(){this.constructor=e}s(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var a=function(){return a=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var i in t=arguments[r])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},a.apply(this,arguments)};function c(e){for(var t={},r=0;r<e.attributes.length;r++)t[e.attributes.item(r).name]=e.attributes.item(r).value;return e.childNodes.forEach((function(e){var r=e;t=a(a({},t),function(e){var t={};return 3===e.nodeType?t[\"#text\"]=e.textContent:1===e.nodeType&&(t[e.nodeName.toLowerCase()]=c(e)),t}(r))})),t}var f,l=\"documentfragmentcontainer\";String.prototype.forEachEmbeddedItem=function(e){var t=\"<\".concat(l,\">\").concat(this.toString(),\"</\").concat(l,\">\"),r=(new DOMParser).parseFromString(t,\"text/html\");r.querySelectorAll(\".embedded-entry\").forEach((function(t){e(t.outerHTML,i(c(t)))})),r.querySelectorAll(\".embedded-asset\").forEach((function(t){e(t.outerHTML,i(c(t)))}))};var h,y=((f={})[o.BLOCK]=function(e){return\"<div><p>\".concat(e.title||e.uid,\"</p><p>Content type: <span>\").concat(e._content_type_uid||(e.system?e.system.content_type_uid:\"\"),\"</span></p></div>\")},f[o.INLINE]=function(e){return\"<span>\".concat(e.title||e.uid,\"</span>\")},f[o.LINK]=function(e,t){return'<a href=\"'.concat(e.url,'\">').concat(t.text||e.title||e.uid||(e.system?e.system.uid:\"\"),\"</a>\")},f[o.DISPLAY]=function(e,t){return'<img src=\"'.concat(e.url,'\" alt=\"').concat(t.attributes.alt||e.title||e.filename||e.uid||(e.system?e.system.uid:\"\"),'\" />')},f[o.DOWNLOAD]=function(e,t){return'<a href=\"'.concat(e.url,'\">').concat(t.text||e.title||e.uid||(e.system?e.system.content_type_uid:\"\"),\"</a>\")},f);function d(e,t){return\"entry\"===e.itemType?(r=e.itemUid,n=e.contentTypeUid,void 0===(i=t)&&(i=[]),i.filter((function(e){if(e.uid&&e.uid===r&&e._content_type_uid===n||e.system&&e.system.uid===r&&e.system.content_type_uid===n)return e}))):function(e,t){return void 0===t&&(t=[]),t.filter((function(t){if(t.uid&&t.uid===e||t.system&&t.system.uid===e)return t}))}(e.itemUid,t);var r,n,i}function p(e,t){if(e&&void 0!==e&&t&&void 0!==t&&void 0!==t._embedded_items){var r=t;return d(e,Object.values(r._embedded_items||[]).reduce((function(e,t){return e.concat(t)}),[]))}return[]}function v(e,t,r){if(!e&&void 0===e||!t&&void 0===t)return\"\";if(r&&void 0!==r[t.styleType]){var n=r[t.styleType];if(void 0!==t.attributes[\"data-sys-content-type-uid\"]&&\"function\"!=typeof n&&void 0!==n[t.attributes[\"data-sys-content-type-uid\"]])return n[t.attributes[\"data-sys-content-type-uid\"]](e,t);if(void 0!==t.attributes[\"data-sys-content-type-uid\"]&&\"function\"!=typeof n&&void 0!==n.$default)return n.$default(e,t);if(void 0!==t.contentTypeUid&&\"function\"!=typeof n&&void 0!==n[t.contentTypeUid])return n[t.contentTypeUid](e,t);if(void 0!==t.contentTypeUid&&\"function\"!=typeof n&&void 0!==n.$default)return n.$default(e,t);if(\"function\"==typeof n)return n(e,t)}return(0,y[t.styleType])(e,t)}function _(e,t,r){b(e.split(\".\"),t,r)}function b(e,t,r){if(e){var i=e[0];if(1===e.length&&t[i])t[i]=r(t[i]);else if(e.length>0&&t[i]){var o=e.slice(1);if(Array.isArray(t[i]))for(var s=0,u=t[i];s<u.length;s++)b(o,u[s],r);else\"object\"===n(t[i])&&b(o,t[i],r)}}}function m(e,t){if(!e||void 0===e)return\"\";if(\"string\"==typeof e){var r=e;return e.forEachEmbeddedItem((function(e,n){r=function(e,t,r,n){var i=v(p(r,n.entry)[0],r,n.renderOption);return e.replace(t,i)}(r,e,n,t)})),r}var n=[];return e.forEach((function(e){n.push(m(e,t))})),n}!function(e){e.DOCUMENT=\"doc\",e.PARAGRAPH=\"p\",e.LINK=\"a\",e.IMAGE=\"img\",e.EMBED=\"embed\",e.HEADING_1=\"h1\",e.HEADING_2=\"h2\",e.HEADING_3=\"h3\",e.HEADING_4=\"h4\",e.HEADING_5=\"h5\",e.HEADING_6=\"h6\",e.ORDER_LIST=\"ol\",e.UNORDER_LIST=\"ul\",e.LIST_ITEM=\"li\",e.HR=\"hr\",e.TABLE=\"table\",e.TABLE_HEADER=\"thead\",e.TABLE_BODY=\"tbody\",e.TABLE_FOOTER=\"tfoot\",e.TABLE_ROW=\"tr\",e.TABLE_HEAD=\"th\",e.TABLE_DATA=\"td\",e.BLOCK_QUOTE=\"blockquote\",e.CODE=\"code\",e.TEXT=\"text\",e.REFERENCE=\"reference\"}(h||(h={}));var g,O=h;!function(e){e.BOLD=\"bold\",e.ITALIC=\"italic\",e.UNDERLINE=\"underline\",e.STRIKE_THROUGH=\"strikethrough\",e.INLINE_CODE=\"inlineCode\",e.SUBSCRIPT=\"subscript\",e.SUPERSCRIPT=\"superscript\"}(g||(g={}));var q,w=g,E=function(){},T=function(e){function t(){var t=e.call(this)||this;return t.type=O.DOCUMENT,t}return u(t,e),t}(E),A=function(e){function t(t){var r=e.call(this)||this;return r.text=t,r}return u(t,e),t}(E),P=((q={})[O.DOCUMENT]=function(e){return\"\"},q[O.PARAGRAPH]=function(e,t){return\"<p>\".concat(t(e.children),\"</p>\")},q[O.LINK]=function(e,t){return'<a href=\"'.concat(e.attrs.href||e.attrs.url,'\">').concat(t(e.children),\"</a>\")},q[O.IMAGE]=function(e,t){return'<img src=\"'.concat(e.attrs.src||e.attrs.url,'\" />').concat(t(e.children))},q[O.EMBED]=function(e,t){return'<iframe src=\"'.concat(e.attrs.src||e.attrs.url,'\">').concat(t(e.children),\"</iframe>\")},q[O.HEADING_1]=function(e,t){return\"<h1>\".concat(t(e.children),\"</h1>\")},q[O.HEADING_2]=function(e,t){return\"<h2>\".concat(t(e.children),\"</h2>\")},q[O.HEADING_3]=function(e,t){return\"<h3>\".concat(t(e.children),\"</h3>\")},q[O.HEADING_4]=function(e,t){return\"<h4>\".concat(t(e.children),\"</h4>\")},q[O.HEADING_5]=function(e,t){return\"<h5>\".concat(t(e.children),\"</h5>\")},q[O.HEADING_6]=function(e,t){return\"<h6>\".concat(t(e.children),\"</h6>\")},q[O.ORDER_LIST]=function(e,t){return\"<ol>\".concat(t(e.children),\"</ol>\")},q[O.UNORDER_LIST]=function(e,t){return\"<ul>\".concat(t(e.children),\"</ul>\")},q[O.LIST_ITEM]=function(e,t){return\"<li>\".concat(t(e.children),\"</li>\")},q[O.HR]=function(e,t){return\"<hr>\"},q[O.TABLE]=function(e,t){return\"<table>\".concat(t(e.children),\"</table>\")},q[O.TABLE_HEADER]=function(e,t){return\"<thead>\".concat(t(e.children),\"</thead>\")},q[O.TABLE_BODY]=function(e,t){return\"<tbody>\".concat(t(e.children),\"</tbody>\")},q[O.TABLE_FOOTER]=function(e,t){return\"<tfoot>\".concat(t(e.children),\"</tfoot>\")},q[O.TABLE_ROW]=function(e,t){return\"<tr>\".concat(t(e.children),\"</tr>\")},q[O.TABLE_HEAD]=function(e,t){return\"<th>\".concat(t(e.children),\"</th>\")},q[O.TABLE_DATA]=function(e,t){return\"<td>\".concat(t(e.children),\"</td>\")},q[O.BLOCK_QUOTE]=function(e,t){return\"<blockquote>\".concat(t(e.children),\"</blockquote>\")},q[O.CODE]=function(e,t){return\"<code>\".concat(t(e.children),\"</code>\")},q.reference=function(e,t){return\"\"},q.default=function(e,t){return t(e.children)},q[w.BOLD]=function(e){return\"<strong>\".concat(e,\"</strong>\")},q[w.ITALIC]=function(e){return\"<em>\".concat(e,\"</em>\")},q[w.UNDERLINE]=function(e){return\"<u>\".concat(e,\"</u>\")},q[w.STRIKE_THROUGH]=function(e){return\"<strike>\".concat(e,\"</strike>\")},q[w.INLINE_CODE]=function(e){return\"<span>\".concat(e,\"</span>\")},q[w.SUBSCRIPT]=function(e){return\"<sub>\".concat(e,\"</sub>\")},q[w.SUPERSCRIPT]=function(e){return\"<sup>\".concat(e,\"</sup>\")},q);function k(e,t){for(var r=0,n=e;r<n.length;r++)t(n[r])}function S(e,t,r){if(!(e instanceof Array)&&\"doc\"!==e.type)return e;if(e instanceof Array){var n=[];return e.forEach((function(e){n.push(S(e,t,r))})),n}var i=a(a({},P),t);return j(e.children,i,r)}function j(e,t,r){return e.map((function(e){return function(e,t,r){if(e.type){if(\"reference\"===e.type)return function(e,t,r){function n(e){return t[e.type](e,void 0)}if(!r&&void 0!==t[e.type])return n(e);if(!r)return\"\";var i,o=(i=e.attrs,{text:(e.children&&e.children.length>0?e.children[0]:{}).text,itemUid:i[\"entry-uid\"]||i[\"asset-uid\"],itemType:i.type,styleType:i[\"display-type\"],attributes:i,contentTypeUid:i[\"content-type-uid\"]}),s=r(o);return s||void 0===t[e.type]?v(s,o,t):n(e)}(e,t,r);var n=function(e){return j(e,t,r)};return void 0!==t[e.type]?t[e.type](e,n):t.default(e,n)}return function(e,t){var r=e.text;return e.superscript&&(r=t[w.SUPERSCRIPT](r)),e.subscript&&(r=t[w.SUBSCRIPT](r)),e.inlineCode&&(r=t[w.INLINE_CODE](r)),e.strikethrough&&(r=t[w.STRIKE_THROUGH](r)),e.underline&&(r=t[w.UNDERLINE](r)),e.italic&&(r=t[w.ITALIC](r)),e.bold&&(r=t[w.BOLD](r)),r}(e,t)}(e,t,r)})).join(\"\")}var D={jsonToHTML:function e(t){t.entry instanceof Array?k(t.entry,(function(r){e({entry:r,paths:t.paths,renderOption:t.renderOption})})):function(e){for(var t=0,r=e.paths;t<r.length;t++)_(r[t],e.entry,(function(t){if(t&&t.json){var r=t.embedded_itemsConnection?t.embedded_itemsConnection.edges:[],n=Object.values(r||[]).reduce((function(e,t){return e.concat(t.node)}),[]);return S(t.json,e.renderOption,(function(e){return d(e,n)[0]}))}return t}))}({entry:t.entry,paths:t.paths,renderOption:t.renderOption})}};function C(e,t,r,i){var o={};return Object.entries(e).forEach((function(e){var s=e[0],u=e[1];\"object\"===(void 0===u?\"undefined\":n(u))?Array.isArray(u)?u.forEach((function(e,a){null!=e&&void 0!==e._content_type_uid&&void 0!==e.uid?u[a].$=C(e,\"\".concat(e._content_type_uid,\".\").concat(e.uid,\".\").concat(e.locale||i),r,i):\"object\"===(void 0===e?\"undefined\":n(e))?e.$=C(e,\"\".concat(t,\".\").concat(s,\".\").concat(a),r,i):o[s]=I(\"\".concat(t,\".\").concat(s),r)})):u&&(u.$=C(u,\"\".concat(t,\".\").concat(s),r,i)):o[s]=I(\"\".concat(t,\".\").concat(s),r)})),o}function I(e,t){return t?{\"data-cslp\":e}:\"data-cslp=\".concat(e)}t.Document=T,t.GQL=D,t.MarkType=w,t.Node=E,t.NodeType=O,t.StyleType=o,t.TextNode=A,t.addEditableTags=function(e,t,r,n){void 0===n&&(n=\"en-us\"),e&&(e.$=C(e,\"\".concat(t,\".\").concat(e.uid,\".\").concat(n),r,n))},t.attributeToString=function(e){var t=\"\",r=function(r){if(Object.prototype.hasOwnProperty.call(e,r)){var i=e[r];if(i instanceof Array){var o=\"\",s=!0;i.forEach((function(e){s?(o+=\"\".concat(e),s=!1):o+=\", \".concat(e)})),i=o}else if(\"object\"===(void 0===i?\"undefined\":n(i))){var u=\"\";for(var a in i)if(Object.prototype.hasOwnProperty.call(i,a)){var c=i[a];u+=\"\".concat(a,\":\").concat(c,\"; \")}i=u}t+=\" \".concat(r,'=\"').concat(i,'\"')}};for(var i in e)r(i);return t},t.jsonToHTML=function e(t){t.entry instanceof Array?k(t.entry,(function(r){e({entry:r,paths:t.paths,renderOption:t.renderOption})})):function(e){for(var t=0,r=e.paths;t<r.length;t++)_(r[t],e.entry,(function(t){return S(t,e.renderOption,(function(t){return p(t,e.entry)[0]}))}))}({entry:t.entry,paths:t.paths,renderOption:t.renderOption})},t.render=function(e){function t(t,r){_(t,r,(function(t){return m(t,{entry:r,renderOption:e.renderOption})}))}function r(r){e.paths&&0!==e.paths.length?e.paths.forEach((function(e){t(e,r)})):Object.keys(a({},r._embedded_items)).forEach((function(e){t(e,r)}))}e.entry instanceof Array?e.entry.forEach((function(e){r(e)})):r(e.entry)},t.renderContent=m},483:(e,t,r)=>{var n,i,o,s=r(472),u=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};o=function(){function e(e){return\"function\"==typeof e}var t=Array.isArray?Array.isArray:function(e){return\"[object Array]\"===Object.prototype.toString.call(e)},r=0,n=void 0,i=void 0,o=function(e,t){d[r]=e,d[r+1]=t,2===(r+=2)&&(i?i(p):g())},a=\"undefined\"!=typeof window?window:void 0,c=a||{},f=c.MutationObserver||c.WebKitMutationObserver,l=\"undefined\"==typeof self&&\"undefined\"!=typeof process&&\"[object process]\"==={}.toString.call(process),h=\"undefined\"!=typeof Uint8ClampedArray&&\"undefined\"!=typeof importScripts&&\"undefined\"!=typeof MessageChannel;function y(){var e=setTimeout;return function(){return e(p,1)}}var d=new Array(1e3);function p(){for(var e=0;e<r;e+=2)(0,d[e])(d[e+1]),d[e]=void 0,d[e+1]=void 0;r=0}var v,_,b,m,g=void 0;function O(e,t){var r=this,n=new this.constructor(E);void 0===n[w]&&N(n);var i=r._state;if(i){var s=arguments[i-1];o((function(){return B(i,n,s,r._result)}))}else I(r,n,e,t);return n}function q(e){if(e&&\"object\"===(void 0===e?\"undefined\":u(e))&&e.constructor===this)return e;var t=new this(E);return S(t,e),t}l?g=function(){return process.nextTick(p)}:f?(_=0,b=new f(p),m=document.createTextNode(\"\"),b.observe(m,{characterData:!0}),g=function(){m.data=_=++_%2}):h?((v=new MessageChannel).port1.onmessage=p,g=function(){return v.port2.postMessage(0)}):g=void 0===a?function(){try{var e=Function(\"return this\")().require(\"vertx\");return void 0!==(n=e.runOnLoop||e.runOnContext)?function(){n(p)}:y()}catch(e){return y()}}():y();var w=Math.random().toString(36).substring(2);function E(){}var T=void 0,A=1,P=2;function k(t,r,n){r.constructor===t.constructor&&n===O&&r.constructor.resolve===q?function(e,t){t._state===A?D(e,t._result):t._state===P?C(e,t._result):I(t,void 0,(function(t){return S(e,t)}),(function(t){return C(e,t)}))}(t,r):void 0===n?D(t,r):e(n)?function(e,t,r){o((function(e){var n=!1,i=function(r,i,o,s){try{r.call(i,(function(r){n||(n=!0,t!==r?S(e,r):D(e,r))}),(function(t){n||(n=!0,C(e,t))}))}catch(e){return e}}(r,t,0,0,e._label);!n&&i&&(n=!0,C(e,i))}),e)}(t,r,n):D(t,r)}function S(e,t){if(e===t)C(e,new TypeError(\"You cannot resolve a promise with itself\"));else if(i=void 0===(n=t)?\"undefined\":u(n),null===n||\"object\"!==i&&\"function\"!==i)D(e,t);else{var r=void 0;try{r=t.then}catch(t){return void C(e,t)}k(e,t,r)}var n,i}function j(e){e._onerror&&e._onerror(e._result),R(e)}function D(e,t){e._state===T&&(e._result=t,e._state=A,0!==e._subscribers.length&&o(R,e))}function C(e,t){e._state===T&&(e._state=P,e._result=t,o(j,e))}function I(e,t,r,n){var i=e._subscribers,s=i.length;e._onerror=null,i[s]=t,i[s+A]=r,i[s+P]=n,0===s&&e._state&&o(R,e)}function R(e){var t=e._subscribers,r=e._state;if(0!==t.length){for(var n=void 0,i=void 0,o=e._result,s=0;s<t.length;s+=3)n=t[s],i=t[s+r],n?B(r,n,i,o):i(o);e._subscribers.length=0}}function B(t,r,n,i){var o=e(n),s=void 0,u=void 0,a=!0;if(o){try{s=n(i)}catch(e){a=!1,u=e}if(r===s)return void C(r,new TypeError(\"A promises callback cannot return that same promise.\"))}else s=i;r._state!==T||(o&&a?S(r,s):!1===a?C(r,u):t===A?D(r,s):t===P&&C(r,s))}var H=0;function N(e){e[w]=H++,e._state=void 0,e._result=void 0,e._subscribers=[]}var x=function(){function e(e,r){this._instanceConstructor=e,this.promise=new e(E),this.promise[w]||N(this.promise),t(r)?(this.length=r.length,this._remaining=r.length,this._result=new Array(this.length),0===this.length?D(this.promise,this._result):(this.length=this.length||0,this._enumerate(r),0===this._remaining&&D(this.promise,this._result))):C(this.promise,new Error(\"Array Methods must be provided an Array\"))}return e.prototype._enumerate=function(e){for(var t=0;this._state===T&&t<e.length;t++)this._eachEntry(e[t],t)},e.prototype._eachEntry=function(e,t){var r=this._instanceConstructor,n=r.resolve;if(n===q){var i=void 0,o=void 0,s=!1;try{i=e.then}catch(e){s=!0,o=e}if(i===O&&e._state!==T)this._settledAt(e._state,t,e._result);else if(\"function\"!=typeof i)this._remaining--,this._result[t]=e;else if(r===L){var u=new r(E);s?C(u,o):k(u,e,i),this._willSettleAt(u,t)}else this._willSettleAt(new r((function(t){return t(e)})),t)}else this._willSettleAt(n(e),t)},e.prototype._settledAt=function(e,t,r){var n=this.promise;n._state===T&&(this._remaining--,e===P?C(n,r):this._result[t]=r),0===this._remaining&&D(n,this._result)},e.prototype._willSettleAt=function(e,t){var r=this;I(e,void 0,(function(e){return r._settledAt(A,t,e)}),(function(e){return r._settledAt(P,t,e)}))},e}(),L=function(){function t(e){this[w]=H++,this._result=this._state=void 0,this._subscribers=[],E!==e&&(\"function\"!=typeof e&&function(){throw new TypeError(\"You must pass a resolver function as the first argument to the promise constructor\")}(),this instanceof t?function(e,t){try{t((function(t){S(e,t)}),(function(t){C(e,t)}))}catch(t){C(e,t)}}(this,e):function(){throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\")}())}return t.prototype.catch=function(e){return this.then(null,e)},t.prototype.finally=function(t){var r=this,n=r.constructor;return e(t)?r.then((function(e){return n.resolve(t()).then((function(){return e}))}),(function(e){return n.resolve(t()).then((function(){throw e}))})):r.then(t,t)},t}();return L.prototype.then=O,L.all=function(e){return new x(this,e).promise},L.race=function(e){var r=this;return t(e)?new r((function(t,n){for(var i=e.length,o=0;o<i;o++)r.resolve(e[o]).then(t,n)})):new r((function(e,t){return t(new TypeError(\"You must pass an array to race.\"))}))},L.resolve=q,L.reject=function(e){var t=new this(E);return C(t,e),t},L._setScheduler=function(e){i=e},L._setAsap=function(e){o=e},L._asap=o,L.polyfill=function(){var e=void 0;if(void 0!==s)e=s;else if(\"undefined\"!=typeof self)e=self;else try{e=Function(\"return this\")()}catch(e){throw new Error(\"polyfill failed because global object is unavailable in this environment\")}var t=e.Promise;if(t){var r=null;try{r=Object.prototype.toString.call(t.resolve())}catch(e){}if(\"[object Promise]\"===r&&!t.cast)return}e.Promise=L},L.Promise=L,L},\"object\"===u(t)?e.exports=o():void 0===(i=\"function\"==typeof(n=o)?n.call(t,r,t,e):n)||(e.exports=i)},51:(e,t,r)=>{r(395),e.exports=self.fetch.bind(self)},395:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0});var r=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};t.Headers=f,t.Request=_,t.Response=m,t.fetch=q;var n=\"undefined\"!=typeof globalThis&&globalThis||\"undefined\"!=typeof self&&self||void 0!==n&&n,i={searchParams:\"URLSearchParams\"in n,iterable:\"Symbol\"in n&&\"iterator\"in Symbol,blob:\"FileReader\"in n&&\"Blob\"in n&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:\"FormData\"in n,arrayBuffer:\"ArrayBuffer\"in n};if(i.arrayBuffer)var o=[\"[object Int8Array]\",\"[object Uint8Array]\",\"[object Uint8ClampedArray]\",\"[object Int16Array]\",\"[object Uint16Array]\",\"[object Int32Array]\",\"[object Uint32Array]\",\"[object Float32Array]\",\"[object Float64Array]\"],s=ArrayBuffer.isView||function(e){return e&&o.indexOf(Object.prototype.toString.call(e))>-1};function u(e){if(\"string\"!=typeof e&&(e=String(e)),/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(e)||\"\"===e)throw new TypeError('Invalid character in header field name: \"'+e+'\"');return e.toLowerCase()}function a(e){return\"string\"!=typeof e&&(e=String(e)),e}function c(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return i.iterable&&(t[Symbol.iterator]=function(){return t}),t}function f(e){this.map={},e instanceof f?e.forEach((function(e,t){this.append(t,e)}),this):Array.isArray(e)?e.forEach((function(e){this.append(e[0],e[1])}),this):e&&Object.getOwnPropertyNames(e).forEach((function(t){this.append(t,e[t])}),this)}function l(e){if(e.bodyUsed)return Promise.reject(new TypeError(\"Already read\"));e.bodyUsed=!0}function h(e){return new Promise((function(t,r){e.onload=function(){t(e.result)},e.onerror=function(){r(e.error)}}))}function y(e){var t=new FileReader,r=h(t);return t.readAsArrayBuffer(e),r}function d(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function p(){return this.bodyUsed=!1,this._initBody=function(e){var t;this.bodyUsed=this.bodyUsed,this._bodyInit=e,e?\"string\"==typeof e?this._bodyText=e:i.blob&&Blob.prototype.isPrototypeOf(e)?this._bodyBlob=e:i.formData&&FormData.prototype.isPrototypeOf(e)?this._bodyFormData=e:i.searchParams&&URLSearchParams.prototype.isPrototypeOf(e)?this._bodyText=e.toString():i.arrayBuffer&&i.blob&&(t=e)&&DataView.prototype.isPrototypeOf(t)?(this._bodyArrayBuffer=d(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):i.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(e)||s(e))?this._bodyArrayBuffer=d(e):this._bodyText=e=Object.prototype.toString.call(e):this._bodyText=\"\",this.headers.get(\"content-type\")||(\"string\"==typeof e?this.headers.set(\"content-type\",\"text/plain;charset=UTF-8\"):this._bodyBlob&&this._bodyBlob.type?this.headers.set(\"content-type\",this._bodyBlob.type):i.searchParams&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set(\"content-type\",\"application/x-www-form-urlencoded;charset=UTF-8\"))},i.blob&&(this.blob=function(){var e=l(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error(\"could not read FormData body as blob\");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?l(this)||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer)):this.blob().then(y)}),this.text=function(){var e,t,r,n=l(this);if(n)return n;if(this._bodyBlob)return e=this._bodyBlob,r=h(t=new FileReader),t.readAsText(e),r;if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),r=new Array(t.length),n=0;n<t.length;n++)r[n]=String.fromCharCode(t[n]);return r.join(\"\")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error(\"could not read FormData body as text\");return Promise.resolve(this._bodyText)},i.formData&&(this.formData=function(){return this.text().then(b)}),this.json=function(){return this.text().then(JSON.parse)},this}f.prototype.append=function(e,t){e=u(e),t=a(t);var r=this.map[e];this.map[e]=r?r+\", \"+t:t},f.prototype.delete=function(e){delete this.map[u(e)]},f.prototype.get=function(e){return e=u(e),this.has(e)?this.map[e]:null},f.prototype.has=function(e){return this.map.hasOwnProperty(u(e))},f.prototype.set=function(e,t){this.map[u(e)]=a(t)},f.prototype.forEach=function(e,t){for(var r in this.map)this.map.hasOwnProperty(r)&&e.call(t,this.map[r],r,this)},f.prototype.keys=function(){var e=[];return this.forEach((function(t,r){e.push(r)})),c(e)},f.prototype.values=function(){var e=[];return this.forEach((function(t){e.push(t)})),c(e)},f.prototype.entries=function(){var e=[];return this.forEach((function(t,r){e.push([r,t])})),c(e)},i.iterable&&(f.prototype[Symbol.iterator]=f.prototype.entries);var v=[\"DELETE\",\"GET\",\"HEAD\",\"OPTIONS\",\"POST\",\"PUT\"];function _(e,t){if(!(this instanceof _))throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.');var r,n,i=(t=t||{}).body;if(e instanceof _){if(e.bodyUsed)throw new TypeError(\"Already read\");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new f(e.headers)),this.method=e.method,this.mode=e.mode,this.signal=e.signal,i||null==e._bodyInit||(i=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||\"same-origin\",!t.headers&&this.headers||(this.headers=new f(t.headers)),this.method=(n=(r=t.method||this.method||\"GET\").toUpperCase(),v.indexOf(n)>-1?n:r),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal,this.referrer=null,(\"GET\"===this.method||\"HEAD\"===this.method)&&i)throw new TypeError(\"Body not allowed for GET or HEAD requests\");if(this._initBody(i),!(\"GET\"!==this.method&&\"HEAD\"!==this.method||\"no-store\"!==t.cache&&\"no-cache\"!==t.cache)){var o=/([?&])_=[^&]*/;o.test(this.url)?this.url=this.url.replace(o,\"$1_=\"+(new Date).getTime()):this.url+=(/\\?/.test(this.url)?\"&\":\"?\")+\"_=\"+(new Date).getTime()}}function b(e){var t=new FormData;return e.trim().split(\"&\").forEach((function(e){if(e){var r=e.split(\"=\"),n=r.shift().replace(/\\+/g,\" \"),i=r.join(\"=\").replace(/\\+/g,\" \");t.append(decodeURIComponent(n),decodeURIComponent(i))}})),t}function m(e,t){if(!(this instanceof m))throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.');t||(t={}),this.type=\"default\",this.status=void 0===t.status?200:t.status,this.ok=this.status>=200&&this.status<300,this.statusText=void 0===t.statusText?\"\":\"\"+t.statusText,this.headers=new f(t.headers),this.url=t.url||\"\",this._initBody(e)}_.prototype.clone=function(){return new _(this,{body:this._bodyInit})},p.call(_.prototype),p.call(m.prototype),m.prototype.clone=function(){return new m(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new f(this.headers),url:this.url})},m.error=function(){var e=new m(null,{status:0,statusText:\"\"});return e.type=\"error\",e};var g=[301,302,303,307,308];m.redirect=function(e,t){if(-1===g.indexOf(t))throw new RangeError(\"Invalid status code\");return new m(null,{status:t,headers:{location:e}})};var O=t.DOMException=n.DOMException;try{new O}catch(e){t.DOMException=O=function(e,t){this.message=e,this.name=t;var r=Error(e);this.stack=r.stack},O.prototype=Object.create(Error.prototype),O.prototype.constructor=O}function q(e,t){return new Promise((function(o,s){var u=new _(e,t);if(u.signal&&u.signal.aborted)return s(new O(\"Aborted\",\"AbortError\"));var c=new XMLHttpRequest;function l(){c.abort()}c.onload=function(){var e,t,r={status:c.status,statusText:c.statusText,headers:(e=c.getAllResponseHeaders()||\"\",t=new f,e.replace(/\\r?\\n[\\t ]+/g,\" \").split(\"\\r\").map((function(e){return 0===e.indexOf(\"\\n\")?e.substr(1,e.length):e})).forEach((function(e){var r=e.split(\":\"),n=r.shift().trim();if(n){var i=r.join(\":\").trim();t.append(n,i)}})),t)};r.url=\"responseURL\"in c?c.responseURL:r.headers.get(\"X-Request-URL\");var n=\"response\"in c?c.response:c.responseText;setTimeout((function(){o(new m(n,r))}),0)},c.onerror=function(){setTimeout((function(){s(new TypeError(\"Network request failed\"))}),0)},c.ontimeout=function(){setTimeout((function(){s(new TypeError(\"Network request failed\"))}),0)},c.onabort=function(){setTimeout((function(){s(new O(\"Aborted\",\"AbortError\"))}),0)},c.open(u.method,function(e){try{return\"\"===e&&n.location.href?n.location.href:e}catch(t){return e}}(u.url),!0),\"include\"===u.credentials?c.withCredentials=!0:\"omit\"===u.credentials&&(c.withCredentials=!1),\"responseType\"in c&&(i.blob?c.responseType=\"blob\":i.arrayBuffer&&u.headers.get(\"Content-Type\")&&-1!==u.headers.get(\"Content-Type\").indexOf(\"application/octet-stream\")&&(c.responseType=\"arraybuffer\")),!t||\"object\"!==r(t.headers)||t.headers instanceof f?u.headers.forEach((function(e,t){c.setRequestHeader(t,e)})):Object.getOwnPropertyNames(t.headers).forEach((function(e){c.setRequestHeader(e,a(t.headers[e]))})),u.signal&&(u.signal.addEventListener(\"abort\",l),c.onreadystatechange=function(){4===c.readyState&&u.signal.removeEventListener(\"abort\",l)}),c.send(void 0===u._bodyInit?null:u._bodyInit)}))}q.polyfill=!0,n.fetch||(n.fetch=q,n.Headers=f,n.Request=_,n.Response=m)},900:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:!0});var n,i=(n=r(128))&&n.__esModule?n:{default:n},o={providers:function(e){if(e)return i.default;console.error(\"Kindly provide valid provider.\")},policies:{IGNORE_CACHE:-1,ONLY_NETWORK:0,CACHE_ELSE_NETWORK:1,NETWORK_ELSE_CACHE:2,CACHE_THEN_NETWORK:3}};t.default=o},128:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(r(821)),i={};function o(e,t){!t&&e&&e.length&&e.push(\"\");var r=void 0,i=n.getKeys(),o=n.getStorage();if(e&&e.length){r=e.join(\".\");for(var s=0,u=i.length;s<u;s++)i[s]&&0===i[s].indexOf(r)&&delete o[i[s]]}else for(var a=0,c=i.length;a<c;a++)delete o[i[a]]}i.get=function(e,t){try{t(null,n.get(e))}catch(e){t(e)}},i.set=function(e,t,r){try{e&&t&&n.set(e,t),r()}catch(e){r(e)}},i.clearByContentType=function(){try{if(2===arguments.length||3===arguments.length){var e=Array.prototype.slice.call(arguments),t=e.splice(-1,1).pop(),r=[];r.push.apply(r,e),o(r),t()}}catch(e){callback(e)}},i.clearByQuery=function(e,t){try{for(var r=n.getKeys(),i=n.getStorage(),o=0,s=r.length;o<s;o++)r[o]&&~r[o].indexOf(e)&&delete i[r[o]];t()}catch(e){t(e)}},i.clearAll=function(e){try{o(),e()}catch(t){e(t)}},t.default=i},821:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:!0});var n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};t.get=function(e){var t=o.default.getItem(e);try{t=JSON.parse(t)}catch(e){return t}return t||null},t.set=function(e,t){try{\"object\"===(void 0===t?\"undefined\":n(t))?o.default.setItem(e,JSON.stringify(t)):o.default.setItem(e,t)}catch(e){}},t.getStorage=function(){return o.default||null},t.getKeys=function(){return o.default?Object.keys(o.default):[]};var i,o=(i=r(769))&&i.__esModule?i:{default:i}},32:(e,t,r)=>{var n=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}(),i=u(r(533)),o=u(r(900)),s=u(r(764));function u(e){return e&&e.__esModule?e:{default:e}}var a=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,e),this.CachePolicy=o.default.policies,this.Region=s.default,this.Utils=r(776)}return n(e,[{key:\"Stack\",value:function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return new(Function.prototype.bind.apply(i.default,[null].concat(t)))}}]),e}();e.exports=new a},764:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.default={EU:\"eu\",US:\"us\",AZURE_NA:\"azure-na\",AZURE_EU:\"azure-eu\"}},777:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:!0});var n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};t.default=function(e,t){var r=e.requestParams;return new Promise((function(i,o){var s=void 0;return r.headers[\"Content-Type\"]=\"application/json; charset=UTF-8\",r.headers[\"X-User-Agent\"]=\"contentstack-web/\"+u,r.body&&\"object\"===n(r.body)&&(delete r.body._method,\"object\"===n(r.body.query)&&0===Object.keys(r.body.query).length&&delete r.body.query,s=function e(t,r){var i=[];if(\"object\"===(void 0===t?\"undefined\":n(t))&&void 0!==t.length)for(var o=0,s=t.length;o<s;o++)i.push(r+\"[]=\"+t[o]);else for(var u in t){var a=r?r+\"[\"+u+\"]\":u,c=t[u];i.push(null!==c&&\"object\"===(void 0===c?\"undefined\":n(c))&&\"query\"!==u?e(c,a):a+\"=\"+encodeURIComponent(\"query\"!==u?c:JSON.stringify(c)))}return i.join(\"&\")}(r.body)),a(e,s,t,i,o,t.retryDelay,t.retryLimit)}))};var i,o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(r(540)),s=(i=r(589))&&i.__esModule?i:{default:i},u=\"3.17.1\";function a(e,t,r,n,i){var u=arguments.length>5&&void 0!==arguments[5]?arguments[5]:300,c=arguments.length>6&&void 0!==arguments[6]?arguments[6]:5,f=e.requestParams,l=f.url+\"?\"+t,h=f.headers,y=o.mergeDeep({method:\"GET\",headers:h,timeout:3e4},r);r.debug&&r.logHandler(\"info\",{url:l,option:y});var d={url:l,option:y},p=e.plugins;if(p&&void 0!==p)for(var v=0;v<p.length;v++)\"function\"==typeof p[v].onRequest&&(d=p[v].onRequest(e,d));(0,s.default)(d.url,d.option).then((function(o){r.debug&&r.logHandler(\"info\",o);var s=o.json();if(o.ok&&200===o.status)s.then((function(t){for(var r=0;r<p.length&&\"function\"==typeof p[r].onResponse;r++)t=p[r].onResponse(e,d,o,t);n(t)}));else{var f=o.status,l=o.statusText;s.then((function(s){var h={error_message:s.error_message,error_code:s.error_code,errors:s.errors,status:f,statusText:l};r.retryCondition&&r.retryCondition(o)?function(o){if(0===c)r.debug&&r.logHandler(\"error\",o),i(o);else{var s=u;c-=1;var f=r.retryLimit-c;r.retryDelayOptions&&(r.retryDelayOptions.base?s=r.retryDelayOptions.base*f:r.retryDelayOptions.customBackoff&&(s=r.retryDelayOptions.customBackoff(f,o))),function(e){return new Promise((function(t){setTimeout(t,e)}))}(s).then((function(){return a(e,t,r,n,i,u,c)})).catch((function(){return a(e,t,r,n,i,u,c)}))}}(h):(r.debug&&r.logHandler(\"error\",h),i(h))})).catch((function(){r.debug&&r.logHandler(\"error\",{status:f,statusText:l}),i({status:f,statusText:l})}))}})).catch((function(e){r.debug&&r.logHandler(\"error\",e),i(e)}))}},540:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var r=[],n=!0,i=!1,o=void 0;try{for(var s,u=e[Symbol.iterator]();!(n=(s=u.next()).done)&&(r.push(s.value),!t||r.length!==t);n=!0);}catch(e){i=!0,o=e}finally{try{!n&&u.return&&u.return()}finally{if(i)throw o}}return r}(e,t);throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")},i=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};t.transform=function(e){return function(){switch(this._query[e]=this._query[e]||{},arguments.length){case 1:if(Array.isArray(arguments[0])||\"string\"==typeof arguments[0]){var t=this._query[e].BASE||[];return t=t.concat(arguments[0]),this._query[e].BASE=t,this}console.error(\"Kindly provide valid parameters\");break;case 2:if(\"string\"==typeof arguments[0]&&(Array.isArray(arguments[1])||\"string\"==typeof arguments[1])){var r=this._query[e][arguments[0]]||[];return r=r.concat(arguments[1]),this._query[e][arguments[0]]=r,this}console.error(\"Kindly provide valid parameters\");break;default:console.error(\"Kindly provide valid parameters\")}}},t._type=function(e){var t=void 0===e?\"undefined\":i(e);return\"object\"===t&&Array.isArray(e)&&(t=\"array\"),t},t.mergeDeep=function(e,t){var r=this;return function e(t,n){for(var i in n)\"object\"==r._type(n[i])&&r._type(t[i])==r._type(n[i])?e(t[i],n[i]):\"array\"==r._type(n[i])&&r._type(t[i])==r._type(n[i])?t[i]=t[i].concat(n[i]):t[i]=n[i]}(e,t),e},t.merge=a,t.isBrowser=function(){return\"undefined\"!=typeof window&&\"object\"===(\"undefined\"==typeof process?\"undefined\":i(process))&&\"browser\"===process.title},t.parseQueryFromParams=c,t.getHash=f,t.generateHash=l,t.resultWrapper=h,t.spreadResult=y,t.sendRequest=function(e,t){var r=e.environment_uid;r?e._query.environment_uid=r:(e._query||(e._query={}),e._query.environment=e.environment);var n=e,s=void 0!==n.queryCachePolicy?n.queryCachePolicy:n.cachePolicy,u=void 0!==n.tojson&&n.tojson,l=!!(n.entry_uid||n.singleEntry||n.asset_uid),p=f(c(n,l,u));if(e&&e.requestParams&&e.requestParams.body&&e.requestParams.body.query){var v=JSON.parse(JSON.stringify(e.requestParams.body.query));\"object\"!==(void 0===v?\"undefined\":i(v))&&(v=JSON.parse(v)),delete e.requestParams.body.query,e.requestParams.body=a(e.requestParams.body,v),e.live_preview&&!0===e.live_preview.enable&&e.live_preview.live_preview&&\"init\"!==e.live_preview.live_preview&&(e.live_preview.content_type_uid===e.content_type_uid?(e.requestParams.body=a(e.requestParams.body,{live_preview:e.live_preview.live_preview||\"init\"}),s=2,e.requestParams.body.environment&&delete e.requestParams.body.environment,e.requestParams.headers.access_token&&delete e.requestParams.headers.access_token,e.requestParams.headers.authorization=e.live_preview.management_token):e.live_preview.live_preview&&(s=1))}var _=function(){return function(e,t){return new Promise((function(r,n){try{e&&n(e),u||(t=h(t)),r(y(t))}catch(e){n(e)}}))}},b=function(r,i,a){r&&(0,o.default)(e,t).then(function(t){try{n.entry_uid=n.asset_uid=n.tojson=n.queryCachePolicy=void 0;var r={},o={};if(e.singleEntry)if(e.singleEntry=!1,t.schema&&(r.schema=t.schema),t.content_type&&(r.content_type=t.content_type,delete r.schema),t.entries&&t.entries.length)r.entry=t.entries[0];else{if(!t.assets||!t.assets.length)return 2===s&&null!==n.provider?void n.provider.get(p,_()):a({error_code:141,error_message:\"The requested entry doesn't exist.\"});r.assets=t.assets[0]}else t.items?o={items:t.items,pagination_token:t.pagination_token,sync_token:t.sync_token,total_count:t.total_count}:r=t;return-1!==s&&null!==n.provider?(n.provider.set(p,r,(function(e){try{return e&&a(e),u||(r=h(r)),i(y(r))}catch(e){return a(e)}})),i(y(r))):Object.keys(o).length?i(o):(u||(r=h(r)),i(y(r)))}catch(e){return a({message:e.message})}}.bind(n)).catch((function(e){if(2!==s||null===n.provider)return a(e);n.provider.get(p,_())}))};switch(s){case 1:return new Promise((async function(r,i){null!==n.provider?await n.provider.get(p,(async function(n,o){try{if(n||!o)b(!0,r,i);else{try{if(e._query&&Array.isArray(e._query.include)&&e._query.include.length>0){var s=(a=e._query.include,c={},a.forEach((function(e){!function(e){var t=(e=e.replace(/[\\[]/gm,\".\").replace(/[\\]]/gm,\"\")).split(\".\"),r=t.pop();t.reduce((function(e,t){return e[t]=e[t]||{}}),c)[r]={}}(e)})),c);l?await d(s,o.entry,e,t):await Promise.all(o.entries.map((async function(r){await d(s,r,e,t)})))}}catch(e){}try{return u||(o=h(o)),r(y(o))}catch(e){return i(e)}}}catch(e){return i(e)}var a,c})):b(!0,r,i)}));case 2:case 0:case void 0:case-1:return new Promise((function(e,t){b(!0,e,t)}))}if(3===s)return new Promise((function(e,t){null!==n.provider&&n.provider.get(p,(function(r,n){try{r||!n?t(r):(u||(n=h(n)),e(y(n)))}catch(e){t(e)}}))})).then((function(){return new Promise((function(e,t){b(!0,e,t)}))})).catch((function(e){return new Promise((function(e,t){b(!0,e,t)}))}))};var o=u(r(777)),s=u(r(324));function u(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(e&&t)for(var r in t)e[r]=t[r];return e}function c(e,t,r){if(e&&e.requestParams){var n=a({},e.requestParams.body&&e.requestParams.body.query||{});return n.environment_uid&&(delete n.environment_uid,n.environment=e.environment),n.environment=e.environment,{content_type_uid:e.content_type_uid,locale:n.locale||\"en-us\",query:n,entry_uid:e.entry_uid,asset_uid:e.asset_uid,single:t||\"false\",toJSON:r||\"false\",api_key:e.requestParams.headers?e.requestParams.headers.api_key:\"\"}}}function f(e){try{var t=l(JSON.stringify(e)),r=[];return r.push(e.content_type_uid),r.push(e.locale),e.entry_uid&&r.push(e.entry_uid),e.asset_uid&&r.push(e.asset_uid),r.push(t),r.join(\".\")}catch(e){}}function l(e){var t,r=0,n=void 0;if(0===e.length)return r;for(n=0,t=e.length;n<t;n++)r=(r<<5)-r+e.charCodeAt(n),r|=0;return r<-1?-1*r:r}function h(e){if(e&&void 0!==e.entries)if(e.entries&&e.entries.length)for(var t=0,r=e.entries.length;t<r;t++)e.entries[t]=(0,s.default)(e.entries[t]);else e.entries=[];else if(e&&e.assets&&void 0!==e.assets)if(e.assets&&e.assets.length)for(var n=0,i=e.assets.length;n<i;n++)e.assets[n]=(0,s.default)(e.assets[n]);else e.assets=[];else e&&void 0!==e.entry?e.entry=(0,s.default)(e.entry):e&&void 0!==e.asset?e.asset=(0,s.default)(e.asset):e&&void 0!==e.items&&(e.items=(0,s.default)(e.items).toJSON());return e}function y(e){var t=[];return e&&Object.keys(e).length&&(void 0!==e.entries&&(t.push(e.entries),e.content_type&&(t.schema=e.content_type)),void 0!==e.assets&&t.push(e.assets),void 0===e.content_type&&void 0===e.schema||t.push(e.content_type||e.schema),void 0!==e.count&&t.push(e.count),void 0!==e.entry&&(t=e.entry,e.schema&&(t.schema=e.schema),e.content_type&&(t.content_type=e.content_type)),void 0!==e.asset&&(t=e.asset),void 0!==e.items&&t.push(e)),t}async function d(e,t,r,i,s){var u=r.live_preview,a=r.requestParams,c=u.content_type_uid,f=u.management_token;await async function e(t,s,l){if(void 0!==s)if(Array.isArray(s))await Promise.all(s.map((function(r,n){return e(t,r,(function(e){s[n]=e}))})));else if(s._content_type_uid===c)try{r.requestParams=JSON.parse(JSON.stringify(a));var h=function(e){var t=[];return function e(r,i){0===Object.keys(r).length?t.push(i.substring(1)):Object.entries(r).forEach((function(t){var r=n(t,2),o=r[0];e(r[1],[i,o].join(\".\"))}))}(e,\"\"),t.filter((function(e){return\"\"!==e}))}(t);r.requestParams.body.include=h,r.requestParams.body.live_preview=u.live_preview,r.requestParams.body.content_type_uid=c;var y=u.host.match(/^((http[s]?):(\\/\\/)?)?(.+)$/),d=(y[1]||\"https://\")+y[4],p=s.uid,v=d+\"/v3/content_types/\"+s._content_type_uid+\"/entries/\"+p;r.requestParams.url=v,r.requestParams.method=\"GET\",delete r.requestParams.headers.access_token,r.requestParams.headers.authorization=f;var _=await(0,o.default)(r,i);_.entry._content_type_uid=c,_.entry.uid=p,l(_.entry)}catch(e){console.log(\"errror\",e)}else await Promise.all(Object.entries(t).map((async function(t){var r=n(t,2),i=r[0],o=r[1];await e(o,s[i],(function(){}))})))}(e,t,(function(){}))}Promise.prototype.spread||(Promise.prototype.spread=function(e,t){return t=t||function(e){},this.then((function(t){return e.apply(e,t)})).catch((function(e){t(e)}))})},173:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}(),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(r(540)),o=function(){function e(){return function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,e),this._query={},this.only=i.transform(\"only\"),this}return n(e,[{key:\"toJSON\",value:function(){return this.tojson=!0,this}},{key:\"addParam\",value:function(e,t){if(e&&\"string\"==typeof e&&t&&\"string\"==typeof t)return this._query[e]=t,this;this.fetchOptions.debug&&this.fetchOptions.logHandler(\"error\",\"Kindly provide a valid parameters.\")}},{key:\"includeFallback\",value:function(){return this._query.include_fallback=!0,this}},{key:\"includeMetadata\",value:function(){return this._query.include_metadata=!0,this}},{key:\"fetch\",value:function(e){if(this.asset_uid){this.requestParams={method:\"POST\",headers:i.mergeDeep({},this.headers),url:this.config.protocol+\"://\"+this.config.host+\":\"+this.config.port+\"/\"+this.config.version+this.config.urls.assets+this.asset_uid,body:{_method:\"GET\",query:this._query}};var t=i.mergeDeep(this.fetchOptions,e);return i.sendRequest(i.mergeDeep({},this),t)}e.debug&&e.logHandler(\"error\",\"Kindly provide an asset uid. e.g. .Assets('asset_uid')\")}}]),e}();t.default=o},304:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:!0});var n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},i=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}(),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(r(540)),s=function(){function e(){return function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,e),this._query={},this.only=o.transform(\"only\"),this.except=o.transform(\"except\"),this}return i(e,[{key:\"setCacheProvider\",value:function(e){return e&&\"object\"===(void 0===e?\"undefined\":n(e))&&(this.provider=e),this}},{key:\"setCachePolicy\",value:function(e){return\"number\"==typeof e&&e>=-1&&e<4?this._query?this.queryCachePolicy=e:this.cachePolicy=e:this.fetchOptions.debug&&this.fetchOptions.logHandler(\"error\",\"Kindly provide the valid policy\"),this}},{key:\"includeReference\",value:function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];if(Array.isArray(t)||\"string\"==typeof t){if(arguments.length)for(var n=0;n<arguments.length;n++)this._query.include=this._query.include||[],this._query.include=this._query.include.concat(arguments[n]);return this}this.fetchOptions.debug&&this.fetchOptions.logHandler(\"error\",\"Argument should be a String or an Array.\")}},{key:\"language\",value:function(e){if(e&&\"string\"==typeof e)return this._query.locale=e,this;this.fetchOptions.debug&&this.fetchOptions.logHandler(\"error\",\"Argument should be a String.\")}},{key:\"addQuery\",value:function(e,t){if(e&&t&&\"string\"==typeof e)return this._query[e]=t,this;this.fetchOptions.debug&&this.fetchOptions.logHandler(\"error\",\"First argument should be a String.\")}},{key:\"includeEmbeddedItems\",value:function(){return this._query.include_embedded_items=[\"BASE\"],this}},{key:\"includeSchema\",value:function(){return this._query.include_schema=!0,this}},{key:\"includeReferenceContentTypeUID\",value:function(){return this._query.include_reference_content_type_uid=!0,this}},{key:\"includeFallback\",value:function(){return this._query.include_fallback=!0,this}},{key:\"includeBranch\",value:function(){return this._query.include_branch=!0,this}},{key:\"includeMetadata\",value:function(){return this._query.include_metadata=!0,this}},{key:\"includeContentType\",value:function(){return this._query.include_content_type=!0,this}},{key:\"includeOwner\",value:function(){return this._query.include_owner=!0,this}},{key:\"toJSON\",value:function(){return this.tojson=!0,this}},{key:\"addParam\",value:function(e,t){if(e&&t&&\"string\"==typeof e&&\"string\"==typeof t)return this._query[e]=t,this;this.fetchOptions.debug&&this.fetchOptions.logHandler(\"error\",\"Kindly provide valid parameters.\")}},{key:\"fetch\",value:function(e){var t=this.config.host+\":\"+this.config.port;if(this.live_preview&&!0===this.live_preview.enable&&this.live_preview.content_type_uid===this.content_type_uid&&(t=this.live_preview.host),this.entry_uid){this.requestParams={method:\"POST\",headers:o.mergeDeep({},this.headers),url:this.config.protocol+\"://\"+t+\"/\"+this.config.version+this.config.urls.content_types+this.content_type_uid+this.config.urls.entries+this.entry_uid,body:{_method:\"GET\",query:this._query}};var r=o.mergeDeep(this.fetchOptions,e);return o.sendRequest(o.mergeDeep({},this),r)}this.fetchOptions.debug&&this.fetchOptions.logHandler(\"error\",\"Kindly provide an entry uid. e.g. .Entry('asset_uid')\")}}]),e}();t.default=s},566:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:!0});var n,i=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}(),o=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(r(540)),u=(n=r(304))&&n.__esModule?n:{default:n},a=function(e){return function(t,r){if(t&&r&&\"string\"==typeof t&&void 0!==r)return this._query.query[t]=this._query.query.file_size||{},this._query.query[t][e]=r,this;this.fetchOptions.debug&&this.fetchOptions.logHandler(\"error\",\"Kindly provide valid parameters.\")}},c=function(e){var t=e?\"$in\":\"$nin\";return function(e,r){if(e&&r&&\"string\"==typeof e&&Array.isArray(r))return this._query.query[e]=this._query.query[e]||{},this._query.query[e][t]=this._query.query[e][t]||[],this._query.query[e][t]=this._query.query[e][t].concat(r),this;this.fetchOptions.debug&&this.fetchOptions.logHandler(\"error\",\"Kindly provide valid parameters.\")}},f=function(e){return function(t){if(t&&\"string\"==typeof t)return this._query.query[t]=this._query.query[t]||{},this._query.query[t].$exists=e,this;this.fetchOptions.debug&&this.fetchOptions.logHandler(\"error\",\"Kindly provide valid parameters.\")}},l=function(e){return function(){for(var t=[],r=0,n=arguments.length;r<n;r++)arguments[r]instanceof d&&arguments[r]._query.query?t.push(arguments[r]._query.query):\"object\"===o(arguments[r])&&t.push(arguments[r]);return this._query.query[e]?this._query.query[e]=this._query.query[e].concat(t):this._query.query[e]=t,this}},h=function(e){return function(t){if(t&&\"string\"==typeof t)return this._query[e]=t,this;this.fetchOptions.debug&&this.fetchOptions.logHandler(\"error\",\"Argument should be a string.\")}},y=function(e){return function(t){if(\"number\"==typeof t)return this._query[e]=t,this;this.fetchOptions.debug&&this.fetchOptions.logHandler(\"error\",\"Argument should be a number.\")}},d=function(e){function t(){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,t);var e=function(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return e._query=e._query||{},e._query.query=e._query.query||{},e.lessThan=a(\"$lt\"),e.lessThanOrEqualTo=a(\"$lte\"),e.greaterThan=a(\"$gt\"),e.greaterThanOrEqualTo=a(\"$gte\"),e.notEqualTo=a(\"$ne\"),e.containedIn=c(!0),e.notContainedIn=c(!1),e.exists=f(!0),e.notExists=f(!1),e.ascending=h(\"asc\"),e.descending=h(\"desc\"),e.beforeUid=h(\"before_uid\"),e.afterUid=h(\"after_uid\"),e.skip=y(\"skip\"),e.limit=y(\"limit\"),e.or=l(\"$or\"),e.and=l(\"$and\"),e}return function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),i(t,[{key:\"equalTo\",value:function(e,t){if(e&&\"string\"==typeof e)return this._query.query[e]=t,this;this.fetchOptions.debug&&this.fetchOptions.logHandler(\"error\",\"Kindly provide valid parameters.\")}},{key:\"where\",value:function(e,t){if(e&&\"string\"==typeof e)return this._query.query[e]=t,this;this.fetchOptions.debug&&this.fetchOptions.logHandler(\"error\",\"Kindly provide valid parameters.\")}},{key:\"count\",value:function(){var e=this.config.protocol+\"://\"+this.config.host+\":\"+this.config.port+\"/\"+this.config.version,t=this.type&&\"asset\"===this.type?e+this.config.urls.assets:e+this.config.urls.content_types+this.content_type_uid+this.config.urls.entries;return this._query.count=!0,this.requestParams={method:\"POST\",headers:s.mergeDeep({},this.headers),url:t,body:{_method:\"GET\",query:this._query}},this}},{key:\"query\",value:function(e){if(\"object\"===(void 0===e?\"undefined\":o(e)))return this._query.query=s.mergeDeep(this._query.query,e),this;this.fetchOptions.debug&&this.fetchOptions.logHandler(\"error\",\"Kindly provide valid parameters\")}},{key:\"referenceIn\",value:function(e,r){var n={};return r instanceof t&&r._query.query?n.$in_query=r._query.query:\"object\"===(void 0===r?\"undefined\":o(r))&&(n.$in_query=r),this._query.query[e]?this._query.query[e]=this._query.query[e].concat(n):this._query.query[e]=n,this}},{key:\"referenceNotIn\",value:function(e,r){var n={};return r instanceof t&&r._query.query?n.$nin_query=r._query.query:\"object\"===(void 0===r?\"undefined\":o(r))&&(n.$nin_query=r),this._query.query[e]?this._query.query[e]=this._query.query[e].concat(n):this._query.query[e]=n,this}},{key:\"tags\",value:function(e){if(Array.isArray(e))return this._query.tags=e,this;this.fetchOptions.debug&&this.fetchOptions.logHandler(\"error\",\"Kindly provide valid parameters\")}},{key:\"includeReferenceContentTypeUID\",value:function(){return this._query.include_reference_content_type_uid=!0,this}},{key:\"includeCount\",value:function(){return this._query.include_count=!0,this}},{key:\"addParam\",value:function(e,t){if(e&&t&&\"string\"==typeof e&&\"string\"==typeof t)return this._query[e]=t,this;this.fetchOptions.debug&&this.fetchOptions.logHandler(\"error\",\"Kindly provide valid parameters.\")}},{key:\"getQuery\",value:function(){return this._query.query||{}}},{key:\"regex\",value:function(e,t,r){if(e&&t&&\"string\"==typeof e&&\"string\"==typeof t)return this._query.query[e]={$regex:t},r&&(this._query.query[e].$options=r),this;this.fetchOptions.debug&&this.fetchOptions.logHandler(\"error\",\"Kindly provide valid parameters.\")}},{key:\"search\",value:function(e){if(e&&\"string\"==typeof e)return this._query.typeahead=e,this;this.fetchOptions.debug&&this.fetchOptions.logHandler(\"error\",\"Kindly provide valid parameters.\")}},{key:\"find\",value:function(e){var t=this.config.host+\":\"+this.config.port;this.type&&\"asset\"!==this.type&&this.live_preview&&!0===this.live_preview.enable&&this.live_preview.content_type_uid===this.content_type_uid&&(t=this.live_preview.host);var r=this.config.protocol+\"://\"+t+\"/\"+this.config.version,n=this.type&&\"asset\"===this.type?r+this.config.urls.assets:r+this.config.urls.content_types+this.content_type_uid+this.config.urls.entries;this.requestParams={method:\"POST\",headers:s.mergeDeep({},this.headers),url:n,body:{_method:\"GET\",query:this._query}};var i=s.mergeDeep(this.fetchOptions,e);return s.sendRequest(s.mergeDeep({},this),i)}},{key:\"findOne\",value:function(){var e=this.config.protocol+\"://\"+this.config.host+\":\"+this.config.port+\"/\"+this.config.version;this.type&&\"asset\"!==this.type&&this.live_preview&&!0===this.live_preview.enable&&this.live_preview.content_type_uid===this.content_type_uid&&(e=this.config.protocol+\"://\"+this.live_preview.host+\"/\"+this.config.version);var t=this.type&&\"asset\"===this.type?e+this.config.urls.assets:e+this.config.urls.content_types+this.content_type_uid+this.config.urls.entries;this.singleEntry=!0,this._query.limit=1,this.requestParams={method:\"POST\",headers:s.mergeDeep({},this.headers),url:t,body:{_method:\"GET\",query:this._query}};var r=s.mergeDeep({},this.fetchOptions);return s.sendRequest(s.mergeDeep({},this),r)}}]),t}(u.default);t.default=d},324:(e,t,r)=>{var n=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}(),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(r(540)),o=function(){function e(t){return function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,e),t&&(this.object=function(){return t}),this}return n(e,[{key:\"toJSON\",value:function(){return this.object()?i.mergeDeep(JSON.parse(JSON.stringify({})),this.object()):null}},{key:\"get\",value:function(e){if(this.object()&&e)return e.split(\".\").reduce((function(e,t){return e[t]}),this.object())}},{key:\"getDownloadUrl\",value:function(e){if(this.object()){var t=this.object().url?this.object().url:null;return t?t+\"?disposition=\"+(e&&\"string\"==typeof e?e:\"attachment\"):null}}}]),e}();e.exports=function(e){return new o(e)}},533:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:!0});var n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},i=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}(),o=h(r(971)),s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(r(540)),u=h(r(304)),a=h(r(173)),c=h(r(566)),f=h(r(777)),l=h(r(900));function h(e){return e&&e.__esModule?e:{default:e}}var y=[408,429],d=function(){function e(){var t=this;!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,e),this.fetchOptions={retryLimit:5,retryCondition:function(e){return!!y.includes(e.status)},debug:!1,logHandler:function(e,t){\"error\"===e&&t?console.error(\"[error] \"+t):\"warning\"===e&&t?console.warn(\"[warning] \"+t):\"info\"===e&&t&&console.info(\"[info] \"+t)}},this.config=s.mergeDeep({},o.default),this.plugins=[];for(var r=arguments.length,i=Array(r),u=0;u<r;u++)i[u]=arguments[u];switch(i[0].region&&void 0!==i[0].region&&\"us\"!==i[0].region&&(this.config.host=i[0].region+\"-cdn.contentstack.com\"),i[0].fetchOptions&&void 0!==i[0].fetchOptions&&(this.fetchOptions=s.mergeDeep(this.fetchOptions,i[0].fetchOptions)),i[0].plugins&&void 0!==i[0].plugins&&i[0].plugins.forEach((function(e){t.plugins.push(e)})),this.cachePolicy=l.default.policies.IGNORE_CACHE,this.provider=l.default.providers(\"localstorage\"),i.length){case 1:if(\"object\"===n(i[0])&&\"string\"==typeof i[0].api_key&&\"string\"==typeof i[0].delivery_token&&\"string\"==typeof i[0].environment)return this.headers={api_key:i[0].api_key,access_token:i[0].delivery_token},\"object\"==n(i[0].live_preview)&&(this.live_preview=s.mergeDeep(this.config.live_preview,i[0].live_preview)),\"string\"==typeof i[0].branch&&void 0!==i[0].branch&&(this.headers.branch=i[0].branch),this.environment=i[0].environment,this;this.fetchOptions.debug&&this.fetchOptions.logHandler(\"error\",\"Kindly provide valid object parameters. The specified API Key, Delivery Token, or Environment Name is invalid.\");case 3:if(this.fetchOptions.debug&&this.fetchOptions.logHandler(\"warning\",\"WARNING! Obsolete function called. Function 'Contentstack.Stack(api_key, delivery_token, environment)' has been deprecated, please use 'Contentstack.Stack({api_key, delivery_token, environment, region, branch, fetchOptions})' function instead!\"),\"string\"==typeof i[0]&&\"string\"==typeof i[1]&&\"string\"==typeof i[2])return this.headers={api_key:i[0],access_token:i[1]},this.environment=i[2],this;this.fetchOptions.debug&&this.fetchOptions.logHandler(\"error\",\"Kindly provide valid string parameters.\");case 4:return this.fetchOptions.debug&&this.fetchOptions.logHandler(\"warning\",\"WARNING! Obsolete function called. Function 'Contentstack.Stack(api_key, delivery_token, environment)' has been deprecated, please use 'Contentstack.Stack({api_key, delivery_token, environment, region, branch, fetchOptions})' function instead!\"),\"string\"==typeof i[0]&&\"string\"==typeof i[1]&&\"string\"==typeof i[2]?(this.headers={api_key:i[0],access_token:i[1]},this.environment=i[2]):this.fetchOptions.debug&&this.fetchOptions.logHandler(\"error\",\"Kindly provide valid string parameters.\"),i[3]&&(\"string\"==typeof i[3]&&void 0!==i[3]&&\"us\"!==i[3]?this.config.host=i[3]+\"-cdn.contentstack.com\":\"object\"===n(i[3])&&(this.fetchOptions=s.mergeDeep(this.fetchOptions,i[3]))),this;case 5:return this.fetchOptions.debug&&this.fetchOptions.logHandler(\"warning\",\"WARNING! Obsolete function called. Function 'Contentstack.Stack(api_key, delivery_token, environment)' has been deprecated, please use 'Contentstack.Stack({api_key, delivery_token, environment, region, branch, fetchOptions})' function instead!\"),\"string\"==typeof i[0]&&\"string\"==typeof i[1]&&\"string\"==typeof i[2]?(this.headers={api_key:i[0],access_token:i[1]},this.environment=i[2]):this.fetchOptions.debug&&this.fetchOptions.logHandler(\"error\",\"Kindly provide valid string parameters.\"),i[3]&&(\"string\"==typeof i[3]&&void 0!==i[3]&&\"us\"!==i[3]?this.config.host=i[3]+\"-cdn.contentstack.com\":\"object\"===n(i[3])&&(this.fetchOptions=s.mergeDeep(this.fetchOptions,i[3]))),i[4]&&\"object\"===n(i[4])&&(this.fetchOptions=s.mergeDeep(this.fetchOptions,i[4])),this;default:this.fetchOptions.debug&&this.fetchOptions.logHandler(\"error\",\"Kindly provide valid parameters to initialize the Contentstack javascript-SDK Stack.\")}}return i(e,[{key:\"setPort\",value:function(e){return\"number\"==typeof e&&(this.config.port=e),this}},{key:\"setProtocol\",value:function(e){return\"string\"==typeof e&&~[\"https\",\"http\"].indexOf(e)&&(this.config.protocol=e),this}},{key:\"setHost\",value:function(e){return\"string\"==typeof e&&e&&(this.config.host=e),this}},{key:\"setCachePolicy\",value:function(e){return\"number\"==typeof e&&e>=-1&&e<4?this._query?this.queryCachePolicy=e:this.cachePolicy=e:this.fetchOptions.debug&&this.fetchOptions.logHandler(\"error\",\"Kindly provide the valid policy\"),this}},{key:\"livePreviewQuery\",value:function(e){this.live_preview&&(this.live_preview.live_preview=e.live_preview||\"init\",this.live_preview.content_type_uid=e.content_type_uid,this.live_preview.entry_uid=e.entry_uid)}},{key:\"setCacheProvider\",value:function(e){return e&&\"object\"===(void 0===e?\"undefined\":n(e))&&(this.provider=e),this}},{key:\"clearByQuery\",value:function(){if(this.provider&&\"function\"==typeof this.provider.clearByQuery)return this.provider.clearByQuery.apply(this.provider,arguments)}},{key:\"clearByContentType\",value:function(){if(this.provider&&\"function\"==typeof this.provider.clearByContentType)return this.provider.clearByContentType.apply(this.provider,arguments)}},{key:\"clearAll\",value:function(){if(this.provider&&\"function\"==typeof this.provider.clearAll)return this.provider.clearAll.apply(this.provider,arguments)}},{key:\"getCacheProvider\",value:function(){return this.provider}},{key:\"ContentType\",value:function(e){return e&&\"string\"==typeof e&&(this.content_type_uid=e,this.type=\"contentType\"),this}},{key:\"Entry\",value:function(e){var t=new u.default;return e&&\"string\"==typeof e&&(t.entry_uid=e),s.merge(t,this)}},{key:\"fetch\",value:function(e){this.requestParams={method:\"POST\",headers:s.mergeDeep({},this.headers),plugins:this.plugins,url:this.config.protocol+\"://\"+this.config.host+\":\"+this.config.port+\"/\"+this.config.version+this.config.urls.content_types+this.content_type_uid,body:{_method:\"GET\",environment:this.environment}};var t=s.mergeDeep(this.fetchOptions,e);return(0,f.default)(this,t)}},{key:\"Assets\",value:function(e){if(this.type=\"asset\",e&&\"string\"==typeof e){var t=new a.default;return t.asset_uid=e,s.merge(t,this)}return this}},{key:\"Query\",value:function(){var e=new c.default;return s.merge(e,this)}},{key:\"getLastActivities\",value:function(){return this.requestParams={method:\"POST\",headers:s.mergeDeep({},this.headers),url:this.config.protocol+\"://\"+this.config.host+\":\"+this.config.port+\"/\"+this.config.version+this.config.urls.content_types,body:{_method:\"GET\",only_last_activity:!0,environment:this.environment}},(0,f.default)(this,this.fetchOptions)}},{key:\"getContentTypes\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this.requestParams={method:\"POST\",headers:s.mergeDeep({},this.headers),url:this.config.protocol+\"://\"+this.config.host+\":\"+this.config.port+\"/\"+this.config.version+this.config.urls.content_types,body:{_method:\"GET\",environment:this.environment}},e)for(var t in e)this.requestParams.body[t]=e[t];return(0,f.default)(this,this.fetchOptions)}},{key:\"sync\",value:function(e,t){this._query={},this._query=s.mergeDeep(this._query,e),this.requestParams={method:\"POST\",headers:s.mergeDeep({},this.headers),url:this.config.protocol+\"://\"+this.config.host+\":\"+this.config.port+\"/\"+this.config.version+this.config.urls.sync,body:{_method:\"GET\",query:this._query}};var r=s.mergeDeep(this.fetchOptions,t);return s.sendRequest(s.mergeDeep({},this),r)}},{key:\"imageTransform\",value:function(e,t){if(e&&\"string\"==typeof e&&\"object\"===(void 0===t?\"undefined\":n(t))&&void 0===t.length){var r=[];for(var i in t)r.push(i+\"=\"+t[i]);e+=e.indexOf(\"?\")<=-1?\"?\"+r.join(\"&\"):\"&\"+r.join(\"&\")}return e}}]),e}();t.default=d},589:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:!0});var n=o(r(483)),i=o(r(51));function o(e){return e&&e.__esModule?e:{default:e}}n.default.polyfill(),t.default=i.default},769:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=function(){try{return window.localStorage}catch(e){return null}}()}},t={};return function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n](o,o.exports,r),o.exports}(32)})()));","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar __toString = Object.prototype.toString\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var dec = opt.decode || decode;\n\n var index = 0\n while (index < str.length) {\n var eqIdx = str.indexOf('=', index)\n\n // no more cookie pairs\n if (eqIdx === -1) {\n break\n }\n\n var endIdx = str.indexOf(';', index)\n\n if (endIdx === -1) {\n endIdx = str.length\n } else if (endIdx < eqIdx) {\n // backtrack on prior semicolon\n index = str.lastIndexOf(';', eqIdx - 1) + 1\n continue\n }\n\n var key = str.slice(index, eqIdx).trim()\n\n // only assign once\n if (undefined === obj[key]) {\n var val = str.slice(eqIdx + 1, endIdx).trim()\n\n // quoted values\n if (val.charCodeAt(0) === 0x22) {\n val = val.slice(1, -1)\n }\n\n obj[key] = tryDecode(val, dec);\n }\n\n index = endIdx + 1\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n var expires = opt.expires\n\n if (!isDate(expires) || isNaN(expires.valueOf())) {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + expires.toUTCString()\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.priority) {\n var priority = typeof opt.priority === 'string'\n ? opt.priority.toLowerCase()\n : opt.priority\n\n switch (priority) {\n case 'low':\n str += '; Priority=Low'\n break\n case 'medium':\n str += '; Priority=Medium'\n break\n case 'high':\n str += '; Priority=High'\n break\n default:\n throw new TypeError('option priority is invalid')\n }\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * URL-decode string value. Optimized to skip native call when no %.\n *\n * @param {string} str\n * @returns {string}\n */\n\nfunction decode (str) {\n return str.indexOf('%') !== -1\n ? decodeURIComponent(str)\n : str\n}\n\n/**\n * URL-encode value.\n *\n * @param {string} str\n * @returns {string}\n */\n\nfunction encode (val) {\n return encodeURIComponent(val)\n}\n\n/**\n * Determine if value is a Date.\n *\n * @param {*} val\n * @private\n */\n\nfunction isDate (val) {\n return __toString.call(val) === '[object Date]' ||\n val instanceof Date\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n","/**\n * @license\n * Lodash <https://lodash.com/>\n * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n;(function() {\n\n /** Used as a safe reference for `undefined` in pre-ES5 environments. */\n var undefined;\n\n /** Used as the semantic version number. */\n var VERSION = '4.17.21';\n\n /** Used as the size to enable large array optimizations. */\n var LARGE_ARRAY_SIZE = 200;\n\n /** Error message constants. */\n var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',\n FUNC_ERROR_TEXT = 'Expected a function',\n INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';\n\n /** Used to stand-in for `undefined` hash values. */\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n /** Used as the maximum memoize cache size. */\n var MAX_MEMOIZE_SIZE = 500;\n\n /** Used as the internal argument placeholder. */\n var PLACEHOLDER = '__lodash_placeholder__';\n\n /** Used to compose bitmasks for cloning. */\n var CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n /** Used to compose bitmasks for value comparisons. */\n var COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n /** Used to compose bitmasks for function metadata. */\n var WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n /** Used as default options for `_.truncate`. */\n var DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n /** Used to detect hot functions by number of calls within a span of milliseconds. */\n var HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n /** Used to indicate the type of lazy iteratees. */\n var LAZY_FILTER_FLAG = 1,\n LAZY_MAP_FLAG = 2,\n LAZY_WHILE_FLAG = 3;\n\n /** Used as references for various `Number` constants. */\n var INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n /** Used as references for the maximum length and index of an array. */\n var MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n /** Used to associate wrap methods with their bit flags. */\n var wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n ];\n\n /** `Object#toString` result references. */\n var argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n domExcTag = '[object DOMException]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]',\n weakSetTag = '[object WeakSet]';\n\n var arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n /** Used to match empty string literals in compiled template source. */\n var reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n /** Used to match HTML entities and HTML characters. */\n var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n reUnescapedHtml = /[&<>\"']/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source),\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n /** Used to match template delimiters. */\n var reEscape = /<%-([\\s\\S]+?)%>/g,\n reEvaluate = /<%([\\s\\S]+?)%>/g,\n reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\n /** Used to match property names within property paths. */\n var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n /**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n /** Used to match leading whitespace. */\n var reTrimStart = /^\\s+/;\n\n /** Used to match a single whitespace character. */\n var reWhitespace = /\\s/;\n\n /** Used to match wrap detail comments. */\n var reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,\n reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n /** Used to match words composed of alphanumeric characters. */\n var reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n /**\n * Used to validate the `validate` option in `_.template` variable.\n *\n * Forbids characters which could potentially change the meaning of the function argument definition:\n * - \"(),\" (modification of function parameters)\n * - \"=\" (default value)\n * - \"[]{}\" (destructuring of function parameters)\n * - \"/\" (beginning of a comment)\n * - whitespace\n */\n var reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n\n /** Used to match backslashes in property paths. */\n var reEscapeChar = /\\\\(\\\\)?/g;\n\n /**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\n var reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n /** Used to match `RegExp` flags from their coerced string values. */\n var reFlags = /\\w*$/;\n\n /** Used to detect bad signed hexadecimal string values. */\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n /** Used to detect binary string values. */\n var reIsBinary = /^0b[01]+$/i;\n\n /** Used to detect host constructors (Safari). */\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n /** Used to detect octal string values. */\n var reIsOctal = /^0o[0-7]+$/i;\n\n /** Used to detect unsigned integer values. */\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n /** Used to match Latin Unicode letters (excluding mathematical operators). */\n var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n /** Used to ensure capturing order of template delimiters. */\n var reNoMatch = /($^)/;\n\n /** Used to match unescaped characters in compiled string literals. */\n var reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n /** Used to compose unicode character classes. */\n var rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n /** Used to compose unicode capture groups. */\n var rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n /** Used to compose unicode regexes. */\n var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n /** Used to match apostrophes. */\n var reApos = RegExp(rsApos, 'g');\n\n /**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\n var reComboMark = RegExp(rsCombo, 'g');\n\n /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\n var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n /** Used to match complex or compound words. */\n var reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n ].join('|'), 'g');\n\n /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\n var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n /** Used to detect strings that need a more robust regexp to match words. */\n var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n /** Used to assign default `context` object properties. */\n var contextProps = [\n 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array',\n 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',\n 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array',\n 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',\n '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'\n ];\n\n /** Used to make template sourceURLs easier to identify. */\n var templateCounter = -1;\n\n /** Used to identify `toStringTag` values of typed arrays. */\n var typedArrayTags = {};\n typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\n typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\n typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\n typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\n typedArrayTags[uint32Tag] = true;\n typedArrayTags[argsTag] = typedArrayTags[arrayTag] =\n typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\n typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\n typedArrayTags[errorTag] = typedArrayTags[funcTag] =\n typedArrayTags[mapTag] = typedArrayTags[numberTag] =\n typedArrayTags[objectTag] = typedArrayTags[regexpTag] =\n typedArrayTags[setTag] = typedArrayTags[stringTag] =\n typedArrayTags[weakMapTag] = false;\n\n /** Used to identify `toStringTag` values supported by `_.clone`. */\n var cloneableTags = {};\n cloneableTags[argsTag] = cloneableTags[arrayTag] =\n cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n cloneableTags[boolTag] = cloneableTags[dateTag] =\n cloneableTags[float32Tag] = cloneableTags[float64Tag] =\n cloneableTags[int8Tag] = cloneableTags[int16Tag] =\n cloneableTags[int32Tag] = cloneableTags[mapTag] =\n cloneableTags[numberTag] = cloneableTags[objectTag] =\n cloneableTags[regexpTag] = cloneableTags[setTag] =\n cloneableTags[stringTag] = cloneableTags[symbolTag] =\n cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n cloneableTags[errorTag] = cloneableTags[funcTag] =\n cloneableTags[weakMapTag] = false;\n\n /** Used to map Latin Unicode letters to basic Latin letters. */\n var deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n };\n\n /** Used to map characters to HTML entities. */\n var htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n\n /** Used to map HTML entities to characters. */\n var htmlUnescapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n };\n\n /** Used to escape characters for inclusion in compiled string literals. */\n var stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n /** Built-in method references without a dependency on `root`. */\n var freeParseFloat = parseFloat,\n freeParseInt = parseInt;\n\n /** Detect free variable `global` from Node.js. */\n var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n /** Detect free variable `self`. */\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n /** Used as a reference to the global object. */\n var root = freeGlobal || freeSelf || Function('return this')();\n\n /** Detect free variable `exports`. */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n /** Detect free variable `module`. */\n var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n /** Detect the popular CommonJS extension `module.exports`. */\n var moduleExports = freeModule && freeModule.exports === freeExports;\n\n /** Detect free variable `process` from Node.js. */\n var freeProcess = moduleExports && freeGlobal.process;\n\n /** Used to access faster Node.js helpers. */\n var nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n }());\n\n /* Node.js helper references. */\n var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,\n nodeIsDate = nodeUtil && nodeUtil.isDate,\n nodeIsMap = nodeUtil && nodeUtil.isMap,\n nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,\n nodeIsSet = nodeUtil && nodeUtil.isSet,\n nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\n function apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n }\n\n /**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.forEachRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\n function arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n }\n\n /**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n }\n\n /**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\n function arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n }\n\n /**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.reduceRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the last element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[--length];\n }\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n var asciiSize = baseProperty('length');\n\n /**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function asciiToArray(string) {\n return string.split('');\n }\n\n /**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function asciiWords(string) {\n return string.match(reAsciiWord) || [];\n }\n\n /**\n * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n * without support for iteratee shorthands, which iterates over `collection`\n * using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the found element or its key, else `undefined`.\n */\n function baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function(value, key, collection) {\n if (predicate(value, key, collection)) {\n result = key;\n return false;\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n }\n\n /**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\n function baseIsNaN(value) {\n return value !== value;\n }\n\n /**\n * The base implementation of `_.mean` and `_.meanBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the mean.\n */\n function baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? (baseSum(array, iteratee) / length) : NAN;\n }\n\n /**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\n function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\n function baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\n function baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\n function baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n * of key-value pairs for `object` corresponding to the property names of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the key-value pairs.\n */\n function baseToPairs(object, props) {\n return arrayMap(props, function(key) {\n return [key, object[key]];\n });\n }\n\n /**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\n function baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n }\n\n /**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\n function baseUnary(func) {\n return function(value) {\n return func(value);\n };\n }\n\n /**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\n function baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n }\n\n /**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function cacheHas(cache, key) {\n return cache.has(key);\n }\n\n /**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\n function charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\n function charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\n function countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n }\n\n /**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\n var deburrLetter = basePropertyOf(deburredLetters);\n\n /**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n var escapeHtmlChar = basePropertyOf(htmlEscapes);\n\n /**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n function escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n }\n\n /**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function getValue(object, key) {\n return object == null ? undefined : object[key];\n }\n\n /**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\n function hasUnicode(string) {\n return reHasUnicode.test(string);\n }\n\n /**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n function hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n }\n\n /**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\n function iteratorToArray(iterator) {\n var data,\n result = [];\n\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n }\n\n /**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\n function mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n }\n\n /**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n function overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n }\n\n /**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\n function replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n }\n\n /**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\n function setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n }\n\n /**\n * Converts `set` to its value-value pairs.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the value-value pairs.\n */\n function setToPairs(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = [value, value];\n });\n return result;\n }\n\n /**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * A specialized version of `_.lastIndexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n return index;\n }\n\n /**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\n function stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n }\n\n /**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\n function trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n }\n\n /**\n * Used by `_.unescape` to convert HTML entities to characters.\n *\n * @private\n * @param {string} chr The matched character to unescape.\n * @returns {string} Returns the unescaped character.\n */\n var unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n\n /**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n function unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n }\n\n /**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function unicodeToArray(string) {\n return string.match(reUnicode) || [];\n }\n\n /**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n }\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Create a new pristine `lodash` function using the `context` object.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Util\n * @param {Object} [context=root] The context object.\n * @returns {Function} Returns a new `lodash` function.\n * @example\n *\n * _.mixin({ 'foo': _.constant('foo') });\n *\n * var lodash = _.runInContext();\n * lodash.mixin({ 'bar': lodash.constant('bar') });\n *\n * _.isFunction(_.foo);\n * // => true\n * _.isFunction(_.bar);\n * // => false\n *\n * lodash.isFunction(lodash.foo);\n * // => false\n * lodash.isFunction(lodash.bar);\n * // => true\n *\n * // Create a suped-up `defer` in Node.js.\n * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;\n */\n var runInContext = (function runInContext(context) {\n context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));\n\n /** Built-in constructor references. */\n var Array = context.Array,\n Date = context.Date,\n Error = context.Error,\n Function = context.Function,\n Math = context.Math,\n Object = context.Object,\n RegExp = context.RegExp,\n String = context.String,\n TypeError = context.TypeError;\n\n /** Used for built-in method references. */\n var arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n /** Used to detect overreaching core-js shims. */\n var coreJsData = context['__core-js_shared__'];\n\n /** Used to resolve the decompiled source of functions. */\n var funcToString = funcProto.toString;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to generate unique IDs. */\n var idCounter = 0;\n\n /** Used to detect methods masquerading as native. */\n var maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n }());\n\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n var nativeObjectToString = objectProto.toString;\n\n /** Used to infer the `Object` constructor. */\n var objectCtorString = funcToString.call(Object);\n\n /** Used to restore the original `_` reference in `_.noConflict`. */\n var oldDash = root._;\n\n /** Used to detect if a method is native. */\n var reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n );\n\n /** Built-in value references. */\n var Buffer = moduleExports ? context.Buffer : undefined,\n Symbol = context.Symbol,\n Uint8Array = context.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,\n symIterator = Symbol ? Symbol.iterator : undefined,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n var defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n }());\n\n /** Mocked built-ins. */\n var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,\n ctxNow = Date && Date.now !== root.Date.now && Date.now,\n ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;\n\n /* Built-in method references for those with the same name as other `lodash` methods. */\n var nativeCeil = Math.ceil,\n nativeFloor = Math.floor,\n nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeIsFinite = context.isFinite,\n nativeJoin = arrayProto.join,\n nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max,\n nativeMin = Math.min,\n nativeNow = Date.now,\n nativeParseInt = context.parseInt,\n nativeRandom = Math.random,\n nativeReverse = arrayProto.reverse;\n\n /* Built-in method references that are verified to be native. */\n var DataView = getNative(context, 'DataView'),\n Map = getNative(context, 'Map'),\n Promise = getNative(context, 'Promise'),\n Set = getNative(context, 'Set'),\n WeakMap = getNative(context, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n /** Used to store function metadata. */\n var metaMap = WeakMap && new WeakMap;\n\n /** Used to lookup unminified function names. */\n var realNames = {};\n\n /** Used to detect maps, sets, and weakmaps. */\n var dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n /** Used to convert symbols to primitives and strings. */\n var symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\n function lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n }\n\n /**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\n var baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n }());\n\n /**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\n function baseLodash() {\n // No operation performed.\n }\n\n /**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\n function LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n }\n\n /**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\n lodash.templateSettings = {\n\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'escape': reEscape,\n\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'evaluate': reEvaluate,\n\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'interpolate': reInterpolate,\n\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n 'variable': '',\n\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n 'imports': {\n\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n '_': lodash\n }\n };\n\n // Ensure wrappers are instances of `baseLodash`.\n lodash.prototype = baseLodash.prototype;\n lodash.prototype.constructor = lodash;\n\n LodashWrapper.prototype = baseCreate(baseLodash.prototype);\n LodashWrapper.prototype.constructor = LodashWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\n function LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n }\n\n /**\n * Creates a clone of the lazy wrapper object.\n *\n * @private\n * @name clone\n * @memberOf LazyWrapper\n * @returns {Object} Returns the cloned `LazyWrapper` object.\n */\n function lazyClone() {\n var result = new LazyWrapper(this.__wrapped__);\n result.__actions__ = copyArray(this.__actions__);\n result.__dir__ = this.__dir__;\n result.__filtered__ = this.__filtered__;\n result.__iteratees__ = copyArray(this.__iteratees__);\n result.__takeCount__ = this.__takeCount__;\n result.__views__ = copyArray(this.__views__);\n return result;\n }\n\n /**\n * Reverses the direction of lazy iteration.\n *\n * @private\n * @name reverse\n * @memberOf LazyWrapper\n * @returns {Object} Returns the new reversed `LazyWrapper` object.\n */\n function lazyReverse() {\n if (this.__filtered__) {\n var result = new LazyWrapper(this);\n result.__dir__ = -1;\n result.__filtered__ = true;\n } else {\n result = this.clone();\n result.__dir__ *= -1;\n }\n return result;\n }\n\n /**\n * Extracts the unwrapped value from its lazy wrapper.\n *\n * @private\n * @name value\n * @memberOf LazyWrapper\n * @returns {*} Returns the unwrapped value.\n */\n function lazyValue() {\n var array = this.__wrapped__.value(),\n dir = this.__dir__,\n isArr = isArray(array),\n isRight = dir < 0,\n arrLength = isArr ? array.length : 0,\n view = getView(0, arrLength, this.__views__),\n start = view.start,\n end = view.end,\n length = end - start,\n index = isRight ? end : (start - 1),\n iteratees = this.__iteratees__,\n iterLength = iteratees.length,\n resIndex = 0,\n takeCount = nativeMin(length, this.__takeCount__);\n\n if (!isArr || (!isRight && arrLength == length && takeCount == length)) {\n return baseWrapperValue(array, this.__actions__);\n }\n var result = [];\n\n outer:\n while (length-- && resIndex < takeCount) {\n index += dir;\n\n var iterIndex = -1,\n value = array[index];\n\n while (++iterIndex < iterLength) {\n var data = iteratees[iterIndex],\n iteratee = data.iteratee,\n type = data.type,\n computed = iteratee(value);\n\n if (type == LAZY_MAP_FLAG) {\n value = computed;\n } else if (!computed) {\n if (type == LAZY_FILTER_FLAG) {\n continue outer;\n } else {\n break outer;\n }\n }\n }\n result[resIndex++] = value;\n }\n return result;\n }\n\n // Ensure `LazyWrapper` is an instance of `baseLodash`.\n LazyWrapper.prototype = baseCreate(baseLodash.prototype);\n LazyWrapper.prototype.constructor = LazyWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n }\n\n /**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n }\n\n /**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\n function hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n }\n\n // Add methods to `Hash`.\n Hash.prototype.clear = hashClear;\n Hash.prototype['delete'] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n }\n\n /**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n }\n\n /**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n }\n\n /**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\n function listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n }\n\n // Add methods to `ListCache`.\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype['delete'] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n function mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n }\n\n /**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\n }\n\n /**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\n }\n\n /**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\n function mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n }\n\n // Add methods to `MapCache`.\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype['delete'] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\n function SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n }\n\n /**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\n function setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n }\n\n /**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\n function setCacheHas(value) {\n return this.__data__.has(value);\n }\n\n // Add methods to `SetCache`.\n SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n SetCache.prototype.has = setCacheHas;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n }\n\n /**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n function stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n }\n\n /**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function stackGet(key) {\n return this.__data__.get(key);\n }\n\n /**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function stackHas(key) {\n return this.__data__.has(key);\n }\n\n /**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\n function stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n }\n\n // Add methods to `Stack`.\n Stack.prototype.clear = stackClear;\n Stack.prototype['delete'] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\n function arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.sample` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @returns {*} Returns the random element.\n */\n function arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined;\n }\n\n /**\n * A specialized version of `_.sampleSize` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n }\n\n /**\n * A specialized version of `_.shuffle` for arrays.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n }\n\n /**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n }\n\n /**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n }\n\n /**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n }\n\n /**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n }\n\n /**\n * The base implementation of `_.at` without support for individual paths.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {string[]} paths The property paths to pick.\n * @returns {Array} Returns the picked elements.\n */\n function baseAt(object, paths) {\n var index = -1,\n length = paths.length,\n result = Array(length),\n skip = object == null;\n\n while (++index < length) {\n result[index] = skip ? undefined : get(object, paths[index]);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\n function baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n }\n\n /**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\n function baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n }\n\n /**\n * The base implementation of `_.conforms` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n */\n function baseConforms(source) {\n var props = keys(source);\n return function(object) {\n return baseConformsTo(object, source, props);\n };\n }\n\n /**\n * The base implementation of `_.conformsTo` which accepts `props` to check.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n */\n function baseConformsTo(object, source, props) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (length--) {\n var key = props[length],\n predicate = source[key],\n value = object[key];\n\n if ((value === undefined && !(key in object)) || !predicate(value)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n function baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n }\n\n /**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\n function baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEach = createBaseEach(baseForOwn);\n\n /**\n * The base implementation of `_.forEachRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEachRight = createBaseEach(baseForOwnRight, true);\n\n /**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\n function baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n }\n\n /**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\n function baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.fill` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n */\n function baseFill(array, value, start, end) {\n var length = array.length;\n\n start = toInteger(start);\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = (end === undefined || end > length) ? length : toInteger(end);\n if (end < 0) {\n end += length;\n }\n end = start > end ? 0 : toLength(end);\n while (start < end) {\n array[start++] = value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\n function baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseFor = createBaseFor();\n\n /**\n * This function is like `baseFor` except that it iterates over properties\n * in the opposite order.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseForRight = createBaseFor(true);\n\n /**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.forOwnRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwnRight(object, iteratee) {\n return object && baseForRight(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\n function baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n }\n\n /**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\n function baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n }\n\n /**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n }\n\n /**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n }\n\n /**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\n function baseGt(value, other) {\n return value > other;\n }\n\n /**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n }\n\n /**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHasIn(object, key) {\n return object != null && key in Object(object);\n }\n\n /**\n * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\n function baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n }\n\n /**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\n function baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.invoke` without support for individual\n * method arguments.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {Array} args The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n */\n function baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined : apply(func, object, args);\n }\n\n /**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\n function baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n }\n\n /**\n * The base implementation of `_.isArrayBuffer` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n */\n function baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n }\n\n /**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\n function baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n }\n\n /**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\n function baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n }\n\n /**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n }\n\n /**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\n function baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n }\n\n /**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\n function baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\n function baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n }\n\n /**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\n function baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n }\n\n /**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\n function baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n }\n\n /**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\n function baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n }\n\n /**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\n function baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n }\n\n /**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\n function baseLt(value, other) {\n return value < other;\n }\n\n /**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n }\n\n /**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n }\n\n /**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n }\n\n /**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n }\n\n /**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n }\n\n /**\n * The base implementation of `_.nth` which doesn't coerce arguments.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {number} n The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n */\n function baseNth(array, n) {\n var length = array.length;\n if (!length) {\n return;\n }\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined;\n }\n\n /**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\n function baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n }\n\n /**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\n function basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n }\n\n /**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\n function basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n }\n\n /**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\n function basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\n function basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\n function baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n }\n\n /**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\n function baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n }\n\n /**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\n function baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n }\n\n /**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n }\n\n /**\n * The base implementation of `_.sample`.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n */\n function baseSample(collection) {\n return arraySample(values(collection));\n }\n\n /**\n * The base implementation of `_.sampleSize` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n }\n\n /**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n }\n\n /**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n };\n\n /**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n };\n\n /**\n * The base implementation of `_.shuffle`.\n *\n * @private\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function baseShuffle(collection) {\n return shuffleSelf(values(collection));\n }\n\n /**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n }\n\n /**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n }\n\n /**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = (low + high) >>> 1,\n computed = array[mid];\n\n if (computed !== null && !isSymbol(computed) &&\n (retHighest ? (computed <= value) : (computed < value))) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n }\n\n /**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndexBy(array, value, iteratee, retHighest) {\n var low = 0,\n high = array == null ? 0 : array.length;\n if (high === 0) {\n return 0;\n }\n\n value = iteratee(value);\n var valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined;\n\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? (computed <= value) : (computed < value);\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n }\n\n /**\n * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseSortedUniq(array, iteratee) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toNumber` which doesn't ensure correct\n * conversions of binary, hexadecimal, or octal string values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n */\n function baseToNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n }\n\n /**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\n function baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\n function baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n }\n\n /**\n * The base implementation of `_.update`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to update.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseUpdate(object, path, updater, customizer) {\n return baseSet(object, path, updater(baseGet(object, path)), customizer);\n }\n\n /**\n * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n * without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length) &&\n predicate(array[index], index, array)) {}\n\n return isDrop\n ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))\n : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));\n }\n\n /**\n * The base implementation of `wrapperValue` which returns the result of\n * performing a sequence of actions on the unwrapped `value`, where each\n * successive action is supplied the return value of the previous.\n *\n * @private\n * @param {*} value The unwrapped value.\n * @param {Array} actions Actions to perform to resolve the unwrapped value.\n * @returns {*} Returns the resolved value.\n */\n function baseWrapperValue(value, actions) {\n var result = value;\n if (result instanceof LazyWrapper) {\n result = result.value();\n }\n return arrayReduce(actions, function(result, action) {\n return action.func.apply(action.thisArg, arrayPush([result], action.args));\n }, result);\n }\n\n /**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\n function baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n }\n\n /**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\n function baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n }\n\n /**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\n function castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n }\n\n /**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\n function castFunction(value) {\n return typeof value == 'function' ? value : identity;\n }\n\n /**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\n function castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n }\n\n /**\n * A `baseRest` alias which can be replaced with `identity` by module\n * replacement plugins.\n *\n * @private\n * @type {Function}\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n var castRest = baseRest;\n\n /**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\n function castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n }\n\n /**\n * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).\n *\n * @private\n * @param {number|Object} id The timer id or timeout object of the timer to clear.\n */\n var clearTimeout = ctxClearTimeout || function(id) {\n return root.clearTimeout(id);\n };\n\n /**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\n function cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n }\n\n /**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\n function cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n }\n\n /**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\n function cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n }\n\n /**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\n function cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n }\n\n /**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\n function cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n }\n\n /**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\n function cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n }\n\n /**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\n function compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n }\n\n /**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\n function compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n }\n\n /**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n }\n\n /**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n }\n\n /**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\n function copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n }\n\n /**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\n function copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n }\n\n /**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n }\n\n /**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n }\n\n /**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\n function createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, getIteratee(iteratee, 2), accumulator);\n };\n }\n\n /**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\n function createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n }\n\n /**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n }\n\n /**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\n function createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n }\n\n /**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n function createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n }\n\n /**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n }\n\n /**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\n function createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = getIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n }\n\n /**\n * Creates a `_.flow` or `_.flowRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new flow function.\n */\n function createFlow(fromRight) {\n return flatRest(function(funcs) {\n var length = funcs.length,\n index = length,\n prereq = LodashWrapper.prototype.thru;\n\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n\n var funcName = getFuncName(func),\n data = funcName == 'wrapper' ? getData(func) : undefined;\n\n if (data && isLaziable(data[0]) &&\n data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&\n !data[4].length && data[9] == 1\n ) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = (func.length == 1 && isLaziable(func))\n ? wrapper[funcName]()\n : wrapper.thru(func);\n }\n }\n return function() {\n var args = arguments,\n value = args[0];\n\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index = 0,\n result = length ? funcs[index].apply(this, args) : value;\n\n while (++index < length) {\n result = funcs[index].call(this, result);\n }\n return result;\n };\n });\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\n function createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n }\n\n /**\n * Creates a function that performs a mathematical operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @param {number} [defaultValue] The value used for `undefined` arguments.\n * @returns {Function} Returns the new mathematical operation function.\n */\n function createMathOperation(operator, defaultValue) {\n return function(value, other) {\n var result;\n if (value === undefined && other === undefined) {\n return defaultValue;\n }\n if (value !== undefined) {\n result = value;\n }\n if (other !== undefined) {\n if (result === undefined) {\n return other;\n }\n if (typeof value == 'string' || typeof other == 'string') {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n result = operator(value, other);\n }\n return result;\n };\n }\n\n /**\n * Creates a function like `_.over`.\n *\n * @private\n * @param {Function} arrayFunc The function to iterate over iteratees.\n * @returns {Function} Returns the new over function.\n */\n function createOver(arrayFunc) {\n return flatRest(function(iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n return baseRest(function(args) {\n var thisArg = this;\n return arrayFunc(iteratees, function(iteratee) {\n return apply(iteratee, thisArg, args);\n });\n });\n });\n }\n\n /**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\n function createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars)\n ? castSlice(stringToArray(result), 0, length).join('')\n : result.slice(0, length);\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\n function createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\n function createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n }\n\n /**\n * Creates a function that performs a relational operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @returns {Function} Returns the new relational operation function.\n */\n function createRelationalOperation(operator) {\n return function(value, other) {\n if (!(typeof value == 'string' && typeof other == 'string')) {\n value = toNumber(value);\n other = toNumber(other);\n }\n return operator(value, other);\n };\n }\n\n /**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n }\n\n /**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\n function createRound(methodName) {\n var func = Math[methodName];\n return function(number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n if (precision && nativeIsFinite(number)) {\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n var pair = (toString(number) + 'e').split('e'),\n value = func(pair[0] + 'e' + (+pair[1] + precision));\n\n pair = (toString(value) + 'e').split('e');\n return +(pair[0] + 'e' + (+pair[1] - precision));\n }\n return func(number);\n };\n }\n\n /**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\n var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n };\n\n /**\n * Creates a `_.toPairs` or `_.toPairsIn` function.\n *\n * @private\n * @param {Function} keysFunc The function to get the keys of a given object.\n * @returns {Function} Returns the new pairs function.\n */\n function createToPairs(keysFunc) {\n return function(object) {\n var tag = getTag(object);\n if (tag == mapTag) {\n return mapToArray(object);\n }\n if (tag == setTag) {\n return setToPairs(object);\n }\n return baseToPairs(object, keysFunc(object));\n };\n }\n\n /**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n }\n\n /**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined ||\n (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n return srcValue;\n }\n return objValue;\n }\n\n /**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n return objValue;\n }\n\n /**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\n function customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\n function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n function flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n }\n\n /**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n }\n\n /**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n }\n\n /**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\n var getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n };\n\n /**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\n function getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n }\n\n /**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\n function getHolder(func) {\n var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;\n return object.placeholder;\n }\n\n /**\n * Gets the appropriate \"iteratee\" function. If `_.iteratee` is customized,\n * this function returns the custom method, otherwise it returns `baseIteratee`.\n * If arguments are provided, the chosen function is invoked with them and\n * its result is returned.\n *\n * @private\n * @param {*} [value] The value to convert to an iteratee.\n * @param {number} [arity] The arity of the created iteratee.\n * @returns {Function} Returns the chosen function or its result.\n */\n function getIteratee() {\n var result = lodash.iteratee || iteratee;\n result = result === iteratee ? baseIteratee : result;\n return arguments.length ? result(arguments[0], arguments[1]) : result;\n }\n\n /**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\n function getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n }\n\n /**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\n function getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n }\n\n /**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n }\n\n /**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\n function getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n }\n\n /**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n };\n\n /**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n };\n\n /**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n var getTag = baseGetTag;\n\n // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n }\n\n /**\n * Gets the view, applying any `transforms` to the `start` and `end` positions.\n *\n * @private\n * @param {number} start The start of the view.\n * @param {number} end The end of the view.\n * @param {Array} transforms The transformations to apply to the view.\n * @returns {Object} Returns an object containing the `start` and `end`\n * positions of the view.\n */\n function getView(start, end, transforms) {\n var index = -1,\n length = transforms.length;\n\n while (++index < length) {\n var data = transforms[index],\n size = data.size;\n\n switch (data.type) {\n case 'drop': start += size; break;\n case 'dropRight': end -= size; break;\n case 'take': end = nativeMin(end, start + size); break;\n case 'takeRight': start = nativeMax(start, end - size); break;\n }\n }\n return { 'start': start, 'end': end };\n }\n\n /**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\n function getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n }\n\n /**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\n function hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n }\n\n /**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\n function initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n }\n\n /**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n }\n\n /**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n }\n\n /**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\n function insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n }\n\n /**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\n function isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n }\n\n /**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n function isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n }\n\n /**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n }\n\n /**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\n function isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n }\n\n /**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\n function isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n }\n\n /**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\n function isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n }\n\n /**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\n function isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n }\n\n /**\n * Checks if `func` is capable of being masked.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `func` is maskable, else `false`.\n */\n var isMaskable = coreJsData ? isFunction : stubFalse;\n\n /**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\n function isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n }\n\n /**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\n function isStrictComparable(value) {\n return value === value && !isObject(value);\n }\n\n /**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n }\n\n /**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\n function memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n }\n\n /**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\n function mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n }\n\n /**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n\n /**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\n function overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n }\n\n /**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\n function parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n }\n\n /**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\n function reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n }\n\n /**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n }\n\n /**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var setData = shortOut(baseSetData);\n\n /**\n * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n var setTimeout = ctxSetTimeout || function(func, wait) {\n return root.setTimeout(func, wait);\n };\n\n /**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var setToString = shortOut(baseSetToString);\n\n /**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\n function setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n }\n\n /**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\n function shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n }\n\n /**\n * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @param {number} [size=array.length] The size of `array`.\n * @returns {Array} Returns `array`.\n */\n function shuffleSelf(array, size) {\n var index = -1,\n length = array.length,\n lastIndex = length - 1;\n\n size = size === undefined ? length : size;\n while (++index < size) {\n var rand = baseRandom(index, lastIndex),\n value = array[rand];\n\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size;\n return array;\n }\n\n /**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\n var stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n });\n\n /**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\n function toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n }\n\n /**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\n function updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n }\n\n /**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\n function wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\n function chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n }\n\n /**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\n function compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\n function concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n }\n\n /**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\n var difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\n var differenceWith = baseRest(function(array, values) {\n var comparator = last(values);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)\n : [];\n });\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.dropRight([1, 2, 3]);\n * // => [1, 2]\n *\n * _.dropRight([1, 2, 3], 2);\n * // => [1]\n *\n * _.dropRight([1, 2, 3], 5);\n * // => []\n *\n * _.dropRight([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the end.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.dropRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropRightWhile(users, ['active', false]);\n * // => objects for ['barney']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropRightWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the beginning.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.dropWhile(users, function(o) { return !o.active; });\n * // => objects for ['pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropWhile(users, ['active', false]);\n * // => objects for ['pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true)\n : [];\n }\n\n /**\n * Fills elements of `array` with `value` from `start` up to, but not\n * including, `end`.\n *\n * **Note:** This method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Array\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.fill(array, 'a');\n * console.log(array);\n * // => ['a', 'a', 'a']\n *\n * _.fill(Array(3), 2);\n * // => [2, 2, 2]\n *\n * _.fill([4, 6, 8, 10], '*', 1, 3);\n * // => [4, '*', '*', 10]\n */\n function fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n return baseFill(array, value, start, end);\n }\n\n /**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\n function findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index);\n }\n\n /**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\n function findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index, true);\n }\n\n /**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\n\n /**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\n function flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n }\n\n /**\n * Recursively flatten `array` up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * var array = [1, [2, [3, [4]], 5]];\n *\n * _.flattenDepth(array, 1);\n * // => [1, 2, [3, [4]], 5]\n *\n * _.flattenDepth(array, 2);\n * // => [1, 2, 3, [4], 5]\n */\n function flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n }\n\n /**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\n function fromPairs(pairs) {\n var index = -1,\n length = pairs == null ? 0 : pairs.length,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n }\n\n /**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\n function head(array) {\n return (array && array.length) ? array[0] : undefined;\n }\n\n /**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\n function indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseIndexOf(array, value, index);\n }\n\n /**\n * Gets all but the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.initial([1, 2, 3]);\n * // => [1, 2]\n */\n function initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n }\n\n /**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\n var intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `iteratee`\n * which is invoked for each element of each `arrays` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [2.1]\n *\n * // The `_.property` iteratee shorthand.\n * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }]\n */\n var intersectionBy = baseRest(function(arrays) {\n var iteratee = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n if (iteratee === last(mapped)) {\n iteratee = undefined;\n } else {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `comparator`\n * which is invoked to compare elements of `arrays`. The order and references\n * of result values are determined by the first array. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.intersectionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }]\n */\n var intersectionWith = baseRest(function(arrays) {\n var comparator = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n comparator = typeof comparator == 'function' ? comparator : undefined;\n if (comparator) {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, undefined, comparator)\n : [];\n });\n\n /**\n * Converts all elements in `array` into a string separated by `separator`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to convert.\n * @param {string} [separator=','] The element separator.\n * @returns {string} Returns the joined string.\n * @example\n *\n * _.join(['a', 'b', 'c'], '~');\n * // => 'a~b~c'\n */\n function join(array, separator) {\n return array == null ? '' : nativeJoin.call(array, separator);\n }\n\n /**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\n function last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n }\n\n /**\n * This method is like `_.indexOf` except that it iterates over elements of\n * `array` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.lastIndexOf([1, 2, 1, 2], 2);\n * // => 3\n *\n * // Search from the `fromIndex`.\n * _.lastIndexOf([1, 2, 1, 2], 2, 2);\n * // => 1\n */\n function lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return value === value\n ? strictLastIndexOf(array, value, index)\n : baseFindIndex(array, baseIsNaN, index, true);\n }\n\n /**\n * Gets the element at index `n` of `array`. If `n` is negative, the nth\n * element from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.11.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=0] The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n *\n * _.nth(array, 1);\n * // => 'b'\n *\n * _.nth(array, -2);\n * // => 'c';\n */\n function nth(array, n) {\n return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;\n }\n\n /**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\n var pull = baseRest(pullAll);\n\n /**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\n function pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `iteratee` which is\n * invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The iteratee is invoked with one argument: (value).\n *\n * **Note:** Unlike `_.differenceBy`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n *\n * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\n * console.log(array);\n * // => [{ 'x': 2 }]\n */\n function pullAllBy(array, values, iteratee) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, getIteratee(iteratee, 2))\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `comparator` which\n * is invoked to compare elements of `array` to `values`. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.differenceWith`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n *\n * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\n * console.log(array);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n */\n function pullAllWith(array, values, comparator) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, undefined, comparator)\n : array;\n }\n\n /**\n * Removes elements from `array` corresponding to `indexes` and returns an\n * array of removed elements.\n *\n * **Note:** Unlike `_.at`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n * var pulled = _.pullAt(array, [1, 3]);\n *\n * console.log(array);\n * // => ['a', 'c']\n *\n * console.log(pulled);\n * // => ['b', 'd']\n */\n var pullAt = flatRest(function(array, indexes) {\n var length = array == null ? 0 : array.length,\n result = baseAt(array, indexes);\n\n basePullAt(array, arrayMap(indexes, function(index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n\n return result;\n });\n\n /**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\n function remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = getIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n }\n\n /**\n * Reverses `array` so that the first element becomes the last, the second\n * element becomes the second to last, and so on.\n *\n * **Note:** This method mutates `array` and is based on\n * [`Array#reverse`](https://mdn.io/Array/reverse).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.reverse(array);\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n }\n\n /**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n }\n\n /**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\n function sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n }\n\n /**\n * This method is like `_.sortedIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedIndexBy(objects, { 'x': 4 }, 'x');\n * // => 0\n */\n function sortedIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2));\n }\n\n /**\n * This method is like `_.indexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedIndexOf([4, 5, 5, 5, 6], 5);\n * // => 1\n */\n function sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value);\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.sortedIndex` except that it returns the highest\n * index at which `value` should be inserted into `array` in order to\n * maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedLastIndex([4, 5, 5, 5, 6], 5);\n * // => 4\n */\n function sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n }\n\n /**\n * This method is like `_.sortedLastIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 1\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n * // => 1\n */\n function sortedLastIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true);\n }\n\n /**\n * This method is like `_.lastIndexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n * // => 3\n */\n function sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n if (eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.uniq` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniq([1, 1, 2]);\n * // => [1, 2]\n */\n function sortedUniq(array) {\n return (array && array.length)\n ? baseSortedUniq(array)\n : [];\n }\n\n /**\n * This method is like `_.uniqBy` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n * // => [1.1, 2.3]\n */\n function sortedUniqBy(array, iteratee) {\n return (array && array.length)\n ? baseSortedUniq(array, getIteratee(iteratee, 2))\n : [];\n }\n\n /**\n * Gets all but the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.tail([1, 2, 3]);\n * // => [2, 3]\n */\n function tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.take([1, 2, 3]);\n * // => [1]\n *\n * _.take([1, 2, 3], 2);\n * // => [1, 2]\n *\n * _.take([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.take([1, 2, 3], 0);\n * // => []\n */\n function take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.takeRight([1, 2, 3]);\n * // => [3]\n *\n * _.takeRight([1, 2, 3], 2);\n * // => [2, 3]\n *\n * _.takeRight([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.takeRight([1, 2, 3], 0);\n * // => []\n */\n function takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with elements taken from the end. Elements are\n * taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.takeRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeRightWhile(users, ['active', false]);\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeRightWhile(users, 'active');\n * // => []\n */\n function takeRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), false, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` with elements taken from the beginning. Elements\n * are taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.takeWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeWhile(users, ['active', false]);\n * // => objects for ['barney', 'fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeWhile(users, 'active');\n * // => []\n */\n function takeWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3))\n : [];\n }\n\n /**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\n var union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n });\n\n /**\n * This method is like `_.union` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which uniqueness is computed. Result values are chosen from the first\n * array in which the value occurs. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.unionBy([2.1], [1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n var unionBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.union` except that it accepts `comparator` which\n * is invoked to compare elements of `arrays`. Result values are chosen from\n * the first array in which the value occurs. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.unionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var unionWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);\n });\n\n /**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\n function uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n function uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\n function uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n }\n\n /**\n * This method is like `_.zip` except that it accepts an array of grouped\n * elements and creates an array regrouping the elements to their pre-zip\n * configuration.\n *\n * @static\n * @memberOf _\n * @since 1.2.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n *\n * _.unzip(zipped);\n * // => [['a', 'b'], [1, 2], [true, false]]\n */\n function unzip(array) {\n if (!(array && array.length)) {\n return [];\n }\n var length = 0;\n array = arrayFilter(array, function(group) {\n if (isArrayLikeObject(group)) {\n length = nativeMax(group.length, length);\n return true;\n }\n });\n return baseTimes(length, function(index) {\n return arrayMap(array, baseProperty(index));\n });\n }\n\n /**\n * This method is like `_.unzip` except that it accepts `iteratee` to specify\n * how regrouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * regrouped values.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip([1, 2], [10, 20], [100, 200]);\n * // => [[1, 10, 100], [2, 20, 200]]\n *\n * _.unzipWith(zipped, _.add);\n * // => [3, 30, 300]\n */\n function unzipWith(array, iteratee) {\n if (!(array && array.length)) {\n return [];\n }\n var result = unzip(array);\n if (iteratee == null) {\n return result;\n }\n return arrayMap(result, function(group) {\n return apply(iteratee, undefined, group);\n });\n }\n\n /**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\n var without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n });\n\n /**\n * Creates an array of unique values that is the\n * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n * of the given arrays. The order of result values is determined by the order\n * they occur in the arrays.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.without\n * @example\n *\n * _.xor([2, 1], [2, 3]);\n * // => [1, 3]\n */\n var xor = baseRest(function(arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which by which they're compared. The order of result values is determined\n * by the order they occur in the arrays. The iteratee is invoked with one\n * argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2, 3.4]\n *\n * // The `_.property` iteratee shorthand.\n * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var xorBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n });\n\n /**\n * Creates an array of grouped elements, the first of which contains the\n * first elements of the given arrays, the second of which contains the\n * second elements of the given arrays, and so on.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n */\n var zip = baseRest(unzip);\n\n /**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\n function zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n }\n\n /**\n * This method is like `_.zipObject` except that it supports property paths.\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);\n * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n */\n function zipObjectDeep(props, values) {\n return baseZipObject(props || [], values || [], baseSet);\n }\n\n /**\n * This method is like `_.zip` except that it accepts `iteratee` to specify\n * how grouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * grouped values.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {\n * return a + b + c;\n * });\n * // => [111, 222]\n */\n var zipWith = baseRest(function(arrays) {\n var length = arrays.length,\n iteratee = length > 1 ? arrays[length - 1] : undefined;\n\n iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined;\n return unzipWith(arrays, iteratee);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\n function chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n }\n\n /**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\n function tap(value, interceptor) {\n interceptor(value);\n return value;\n }\n\n /**\n * This method is like `_.tap` except that it returns the result of `interceptor`.\n * The purpose of this method is to \"pass thru\" values replacing intermediate\n * results in a method chain sequence.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns the result of `interceptor`.\n * @example\n *\n * _(' abc ')\n * .chain()\n * .trim()\n * .thru(function(value) {\n * return [value];\n * })\n * .value();\n * // => ['abc']\n */\n function thru(value, interceptor) {\n return interceptor(value);\n }\n\n /**\n * This method is the wrapper version of `_.at`.\n *\n * @name at\n * @memberOf _\n * @since 1.0.0\n * @category Seq\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _(object).at(['a[0].b.c', 'a[1]']).value();\n * // => [3, 4]\n */\n var wrapperAt = flatRest(function(paths) {\n var length = paths.length,\n start = length ? paths[0] : 0,\n value = this.__wrapped__,\n interceptor = function(object) { return baseAt(object, paths); };\n\n if (length > 1 || this.__actions__.length ||\n !(value instanceof LazyWrapper) || !isIndex(start)) {\n return this.thru(interceptor);\n }\n value = value.slice(start, +start + (length ? 1 : 0));\n value.__actions__.push({\n 'func': thru,\n 'args': [interceptor],\n 'thisArg': undefined\n });\n return new LodashWrapper(value, this.__chain__).thru(function(array) {\n if (length && !array.length) {\n array.push(undefined);\n }\n return array;\n });\n });\n\n /**\n * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.\n *\n * @name chain\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 }\n * ];\n *\n * // A sequence without explicit chaining.\n * _(users).head();\n * // => { 'user': 'barney', 'age': 36 }\n *\n * // A sequence with explicit chaining.\n * _(users)\n * .chain()\n * .head()\n * .pick('user')\n * .value();\n * // => { 'user': 'barney' }\n */\n function wrapperChain() {\n return chain(this);\n }\n\n /**\n * Executes the chain sequence and returns the wrapped result.\n *\n * @name commit\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2];\n * var wrapped = _(array).push(3);\n *\n * console.log(array);\n * // => [1, 2]\n *\n * wrapped = wrapped.commit();\n * console.log(array);\n * // => [1, 2, 3]\n *\n * wrapped.last();\n * // => 3\n *\n * console.log(array);\n * // => [1, 2, 3]\n */\n function wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n }\n\n /**\n * Gets the next value on a wrapped object following the\n * [iterator protocol](https://mdn.io/iteration_protocols#iterator).\n *\n * @name next\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the next iterator value.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 1 }\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 2 }\n *\n * wrapped.next();\n * // => { 'done': true, 'value': undefined }\n */\n function wrapperNext() {\n if (this.__values__ === undefined) {\n this.__values__ = toArray(this.value());\n }\n var done = this.__index__ >= this.__values__.length,\n value = done ? undefined : this.__values__[this.__index__++];\n\n return { 'done': done, 'value': value };\n }\n\n /**\n * Enables the wrapper to be iterable.\n *\n * @name Symbol.iterator\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the wrapper object.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped[Symbol.iterator]() === wrapped;\n * // => true\n *\n * Array.from(wrapped);\n * // => [1, 2]\n */\n function wrapperToIterator() {\n return this;\n }\n\n /**\n * Creates a clone of the chain sequence planting `value` as the wrapped value.\n *\n * @name plant\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @param {*} value The value to plant.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2]).map(square);\n * var other = wrapped.plant([3, 4]);\n *\n * other.value();\n * // => [9, 16]\n *\n * wrapped.value();\n * // => [1, 4]\n */\n function wrapperPlant(value) {\n var result,\n parent = this;\n\n while (parent instanceof baseLodash) {\n var clone = wrapperClone(parent);\n clone.__index__ = 0;\n clone.__values__ = undefined;\n if (result) {\n previous.__wrapped__ = clone;\n } else {\n result = clone;\n }\n var previous = clone;\n parent = parent.__wrapped__;\n }\n previous.__wrapped__ = value;\n return result;\n }\n\n /**\n * This method is the wrapper version of `_.reverse`.\n *\n * **Note:** This method mutates the wrapped array.\n *\n * @name reverse\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _(array).reverse().value()\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function wrapperReverse() {\n var value = this.__wrapped__;\n if (value instanceof LazyWrapper) {\n var wrapped = value;\n if (this.__actions__.length) {\n wrapped = new LazyWrapper(this);\n }\n wrapped = wrapped.reverse();\n wrapped.__actions__.push({\n 'func': thru,\n 'args': [reverse],\n 'thisArg': undefined\n });\n return new LodashWrapper(wrapped, this.__chain__);\n }\n return this.thru(reverse);\n }\n\n /**\n * Executes the chain sequence to resolve the unwrapped value.\n *\n * @name value\n * @memberOf _\n * @since 0.1.0\n * @alias toJSON, valueOf\n * @category Seq\n * @returns {*} Returns the resolved unwrapped value.\n * @example\n *\n * _([1, 2, 3]).value();\n * // => [1, 2, 3]\n */\n function wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the number of times the key was returned by `iteratee`. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.countBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': 1, '6': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.countBy(['one', 'two', 'three'], 'length');\n * // => { '3': 2, '5': 1 }\n */\n var countBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n ++result[key];\n } else {\n baseAssignValue(result, key, 1);\n }\n });\n\n /**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\n function every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\n function filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\n var find = createFind(findIndex);\n\n /**\n * This method is like `_.find` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=collection.length-1] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * _.findLast([1, 2, 3, 4], function(n) {\n * return n % 2 == 1;\n * });\n * // => 3\n */\n var findLast = createFind(findLastIndex);\n\n /**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDeep([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMapDeep(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), INFINITY);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDepth([1, 2], duplicate, 2);\n * // => [[1, 1], [2, 2]]\n */\n function flatMapDepth(collection, iteratee, depth) {\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee), depth);\n }\n\n /**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forEach` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @alias eachRight\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEach\n * @example\n *\n * _.forEachRight([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `2` then `1`.\n */\n function forEachRight(collection, iteratee) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\n var groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n });\n\n /**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\n function includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n }\n\n /**\n * Invokes the method at `path` of each element in `collection`, returning\n * an array of the results of each invoked method. Any additional arguments\n * are provided to each invoked method. If `path` is a function, it's invoked\n * for, and `this` bound to, each element in `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array|Function|string} path The path of the method to invoke or\n * the function invoked per iteration.\n * @param {...*} [args] The arguments to invoke each method with.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n * // => [[1, 5, 7], [1, 2, 3]]\n *\n * _.invokeMap([123, 456], String.prototype.split, '');\n * // => [['1', '2', '3'], ['4', '5', '6']]\n */\n var invokeMap = baseRest(function(collection, path, args) {\n var index = -1,\n isFunc = typeof path == 'function',\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value) {\n result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result;\n });\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\n var keyBy = createAggregator(function(result, value, key) {\n baseAssignValue(result, key, value);\n });\n\n /**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\n function map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\n function orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n }\n\n /**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\n var partition = createAggregator(function(result, value, key) {\n result[key ? 0 : 1].push(value);\n }, function() { return [[], []]; });\n\n /**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\n function reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n }\n\n /**\n * This method is like `_.reduce` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduce\n * @example\n *\n * var array = [[0, 1], [2, 3], [4, 5]];\n *\n * _.reduceRight(array, function(flattened, other) {\n * return flattened.concat(other);\n * }, []);\n * // => [4, 5, 2, 3, 0, 1]\n */\n function reduceRight(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n }\n\n /**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\n function reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(getIteratee(predicate, 3)));\n }\n\n /**\n * Gets a random element from `collection`.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n * @example\n *\n * _.sample([1, 2, 3, 4]);\n * // => 2\n */\n function sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n }\n\n /**\n * Gets `n` random elements at unique keys from `collection` up to the\n * size of `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @param {number} [n=1] The number of elements to sample.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the random elements.\n * @example\n *\n * _.sampleSize([1, 2, 3], 2);\n * // => [3, 1]\n *\n * _.sampleSize([1, 2, 3], 4);\n * // => [2, 3, 1]\n */\n function sampleSize(collection, n, guard) {\n if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n }\n\n /**\n * Creates an array of shuffled values, using a version of the\n * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n * @example\n *\n * _.shuffle([1, 2, 3, 4]);\n * // => [4, 1, 3, 2]\n */\n function shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n }\n\n /**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\n function size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n }\n\n /**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\n function some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\n var sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n var now = ctxNow || function() {\n return root.Date.now();\n };\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The opposite of `_.before`; this method creates a function that invokes\n * `func` once it's called `n` or more times.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {number} n The number of calls before `func` is invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var saves = ['profile', 'settings'];\n *\n * var done = _.after(saves.length, function() {\n * console.log('done saving!');\n * });\n *\n * _.forEach(saves, function(type) {\n * asyncSave({ 'type': type, 'complete': done });\n * });\n * // => Logs 'done saving!' after the two async saves have completed.\n */\n function after(n, func) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n }\n\n /**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\n function ary(func, n, guard) {\n n = guard ? undefined : n;\n n = (func && n == null) ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n }\n\n /**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\n function before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\n var bind = baseRest(function(func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n });\n\n /**\n * Creates a function that invokes the method at `object[key]` with `partials`\n * prepended to the arguments it receives.\n *\n * This method differs from `_.bind` by allowing bound functions to reference\n * methods that may be redefined or don't yet exist. See\n * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\n * for more details.\n *\n * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Function\n * @param {Object} object The object to invoke the method on.\n * @param {string} key The key of the method.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var object = {\n * 'user': 'fred',\n * 'greet': function(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n * };\n *\n * var bound = _.bindKey(object, 'greet', 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * object.greet = function(greeting, punctuation) {\n * return greeting + 'ya ' + this.user + punctuation;\n * };\n *\n * bound('!');\n * // => 'hiya fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bindKey(object, 'greet', _, '!');\n * bound('hi');\n * // => 'hiya fred!'\n */\n var bindKey = baseRest(function(object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(key, bitmask, object, partials, holders);\n });\n\n /**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\n function curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n }\n\n /**\n * This method is like `_.curry` except that arguments are applied to `func`\n * in the manner of `_.partialRight` instead of `_.partial`.\n *\n * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curryRight(abc);\n *\n * curried(3)(2)(1);\n * // => [1, 2, 3]\n *\n * curried(2, 3)(1);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(3)(1, _)(2);\n * // => [1, 2, 3]\n */\n function curryRight(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curryRight.placeholder;\n return result;\n }\n\n /**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n function debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n\n /**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\n var defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n });\n\n /**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\n var delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n });\n\n /**\n * Creates a function that invokes `func` with arguments reversed.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to flip arguments for.\n * @returns {Function} Returns the new flipped function.\n * @example\n *\n * var flipped = _.flip(function() {\n * return _.toArray(arguments);\n * });\n *\n * flipped('a', 'b', 'c', 'd');\n * // => ['d', 'c', 'b', 'a']\n */\n function flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n }\n\n /**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\n function memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n }\n\n // Expose `MapCache`.\n memoize.Cache = MapCache;\n\n /**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\n function negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n }\n\n /**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\n function once(func) {\n return before(2, func);\n }\n\n /**\n * Creates a function that invokes `func` with its arguments transformed.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Function\n * @param {Function} func The function to wrap.\n * @param {...(Function|Function[])} [transforms=[_.identity]]\n * The argument transforms.\n * @returns {Function} Returns the new function.\n * @example\n *\n * function doubled(n) {\n * return n * 2;\n * }\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var func = _.overArgs(function(x, y) {\n * return [x, y];\n * }, [square, doubled]);\n *\n * func(9, 3);\n * // => [81, 6]\n *\n * func(10, 5);\n * // => [100, 10]\n */\n var overArgs = castRest(function(func, transforms) {\n transforms = (transforms.length == 1 && isArray(transforms[0]))\n ? arrayMap(transforms[0], baseUnary(getIteratee()))\n : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));\n\n var funcsLength = transforms.length;\n return baseRest(function(args) {\n var index = -1,\n length = nativeMin(args.length, funcsLength);\n\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n return apply(func, this, args);\n });\n });\n\n /**\n * Creates a function that invokes `func` with `partials` prepended to the\n * arguments it receives. This method is like `_.bind` except it does **not**\n * alter the `this` binding.\n *\n * The `_.partial.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 0.2.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var sayHelloTo = _.partial(greet, 'hello');\n * sayHelloTo('fred');\n * // => 'hello fred'\n *\n * // Partially applied with placeholders.\n * var greetFred = _.partial(greet, _, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n */\n var partial = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);\n });\n\n /**\n * This method is like `_.partial` except that partially applied arguments\n * are appended to the arguments it receives.\n *\n * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var greetFred = _.partialRight(greet, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n *\n * // Partially applied with placeholders.\n * var sayHelloTo = _.partialRight(greet, 'hello', _);\n * sayHelloTo('fred');\n * // => 'hello fred'\n */\n var partialRight = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n });\n\n /**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\n var rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n });\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as\n * an array.\n *\n * **Note:** This method is based on the\n * [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\n function rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start === undefined ? start : toInteger(start);\n return baseRest(func, start);\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * create function and an array of arguments much like\n * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n *\n * **Note:** This method is based on the\n * [spread operator](https://mdn.io/spread_operator).\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Function\n * @param {Function} func The function to spread arguments over.\n * @param {number} [start=0] The start position of the spread.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.spread(function(who, what) {\n * return who + ' says ' + what;\n * });\n *\n * say(['fred', 'hello']);\n * // => 'fred says hello'\n *\n * var numbers = Promise.all([\n * Promise.resolve(40),\n * Promise.resolve(36)\n * ]);\n *\n * numbers.then(_.spread(function(x, y) {\n * return x + y;\n * }));\n * // => a Promise of 76\n */\n function spread(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start == null ? 0 : nativeMax(toInteger(start), 0);\n return baseRest(function(args) {\n var array = args[start],\n otherArgs = castSlice(args, 0, start);\n\n if (array) {\n arrayPush(otherArgs, array);\n }\n return apply(func, this, otherArgs);\n });\n }\n\n /**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\n function throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n }\n\n /**\n * Creates a function that accepts up to one argument, ignoring any\n * additional arguments.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.unary(parseInt));\n * // => [6, 8, 10]\n */\n function unary(func) {\n return ary(func, 1);\n }\n\n /**\n * Creates a function that provides `value` to `wrapper` as its first\n * argument. Any additional arguments provided to the function are appended\n * to those provided to the `wrapper`. The wrapper is invoked with the `this`\n * binding of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {*} value The value to wrap.\n * @param {Function} [wrapper=identity] The wrapper function.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var p = _.wrap(_.escape, function(func, text) {\n * return '<p>' + func(text) + '</p>';\n * });\n *\n * p('fred, barney, & pebbles');\n * // => '<p>fred, barney, & pebbles</p>'\n */\n function wrap(value, wrapper) {\n return partial(castFunction(wrapper), value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\n function castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n }\n\n /**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\n function clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.clone` except that it accepts `customizer` which\n * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n * cloning is handled by the method instead. The `customizer` is invoked with\n * up to four arguments; (value [, index|key, object, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeepWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(false);\n * }\n * }\n *\n * var el = _.cloneWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 0\n */\n function cloneWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\n function cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\n function cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * Checks if `object` conforms to `source` by invoking the predicate\n * properties of `source` with the corresponding property values of `object`.\n *\n * **Note:** This method is equivalent to `_.conforms` when `source` is\n * partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n * // => true\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n * // => false\n */\n function conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n }\n\n /**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n function eq(value, other) {\n return value === other || (value !== value && other !== other);\n }\n\n /**\n * Checks if `value` is greater than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n * @see _.lt\n * @example\n *\n * _.gt(3, 1);\n * // => true\n *\n * _.gt(3, 3);\n * // => false\n *\n * _.gt(1, 3);\n * // => false\n */\n var gt = createRelationalOperation(baseGt);\n\n /**\n * Checks if `value` is greater than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than or equal to\n * `other`, else `false`.\n * @see _.lte\n * @example\n *\n * _.gte(3, 1);\n * // => true\n *\n * _.gte(3, 3);\n * // => true\n *\n * _.gte(1, 3);\n * // => false\n */\n var gte = createRelationalOperation(function(value, other) {\n return value >= other;\n });\n\n /**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n };\n\n /**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n var isArray = Array.isArray;\n\n /**\n * Checks if `value` is classified as an `ArrayBuffer` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n * @example\n *\n * _.isArrayBuffer(new ArrayBuffer(2));\n * // => true\n *\n * _.isArrayBuffer(new Array(2));\n * // => false\n */\n var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n\n /**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n\n /**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n }\n\n /**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\n function isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n }\n\n /**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\n var isBuffer = nativeIsBuffer || stubFalse;\n\n /**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\n var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\n /**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('<body>');\n * // => false\n */\n function isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n }\n\n /**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\n function isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\n\n /**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\n function isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n }\n\n /**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\n function isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n }\n\n /**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\n function isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n }\n\n /**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n\n /**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\n function isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n }\n\n /**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n function isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\n\n /**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\n }\n\n /**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\n var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\n /**\n * Performs a partial deep comparison between `object` and `source` to\n * determine if `object` contains equivalent property values.\n *\n * **Note:** This method is equivalent to `_.matches` when `source` is\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.isMatch(object, { 'b': 2 });\n * // => true\n *\n * _.isMatch(object, { 'b': 1 });\n * // => false\n */\n function isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n }\n\n /**\n * This method is like `_.isMatch` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with five\n * arguments: (objValue, srcValue, index|key, object, source).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, srcValue) {\n * if (isGreeting(objValue) && isGreeting(srcValue)) {\n * return true;\n * }\n * }\n *\n * var object = { 'greeting': 'hello' };\n * var source = { 'greeting': 'hi' };\n *\n * _.isMatchWith(object, source, customizer);\n * // => true\n */\n function isMatchWith(object, source, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n }\n\n /**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\n function isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n }\n\n /**\n * Checks if `value` is a pristine native function.\n *\n * **Note:** This method can't reliably detect native functions in the presence\n * of the core-js package because core-js circumvents this kind of detection.\n * Despite multiple requests, the core-js maintainer has made it clear: any\n * attempt to fix the detection will be obstructed. As a result, we're left\n * with little choice but to throw an error. Unfortunately, this also affects\n * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n * which rely on core-js.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\n function isNative(value) {\n if (isMaskable(value)) {\n throw new Error(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n }\n\n /**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\n function isNull(value) {\n return value === null;\n }\n\n /**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\n function isNil(value) {\n return value == null;\n }\n\n /**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\n function isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n }\n\n /**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\n function isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n }\n\n /**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\n var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\n /**\n * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n * double precision number which isn't the result of a rounded unsafe integer.\n *\n * **Note:** This method is based on\n * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.\n * @example\n *\n * _.isSafeInteger(3);\n * // => true\n *\n * _.isSafeInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isSafeInteger(Infinity);\n * // => false\n *\n * _.isSafeInteger('3');\n * // => false\n */\n function isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\n var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\n /**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n function isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n }\n\n /**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n function isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n }\n\n /**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n /**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\n function isUndefined(value) {\n return value === undefined;\n }\n\n /**\n * Checks if `value` is classified as a `WeakMap` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\n function isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n }\n\n /**\n * Checks if `value` is classified as a `WeakSet` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.\n * @example\n *\n * _.isWeakSet(new WeakSet);\n * // => true\n *\n * _.isWeakSet(new Set);\n * // => false\n */\n function isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n }\n\n /**\n * Checks if `value` is less than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n * @see _.gt\n * @example\n *\n * _.lt(1, 3);\n * // => true\n *\n * _.lt(3, 3);\n * // => false\n *\n * _.lt(3, 1);\n * // => false\n */\n var lt = createRelationalOperation(baseLt);\n\n /**\n * Checks if `value` is less than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than or equal to\n * `other`, else `false`.\n * @see _.gte\n * @example\n *\n * _.lte(1, 3);\n * // => true\n *\n * _.lte(3, 3);\n * // => true\n *\n * _.lte(3, 1);\n * // => false\n */\n var lte = createRelationalOperation(function(value, other) {\n return value <= other;\n });\n\n /**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\n function toArray(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);\n\n return func(value);\n }\n\n /**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\n function toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n }\n\n /**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\n function toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n }\n\n /**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object.\n *\n * **Note:** This method is based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toLength(3.2);\n * // => 3\n *\n * _.toLength(Number.MIN_VALUE);\n * // => 0\n *\n * _.toLength(Infinity);\n * // => 4294967295\n *\n * _.toLength('3.2');\n * // => 3\n */\n function toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n }\n\n /**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n function toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n }\n\n /**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\n function toPlainObject(value) {\n return copyObject(value, keysIn(value));\n }\n\n /**\n * Converts `value` to a safe integer. A safe integer can be compared and\n * represented correctly.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toSafeInteger(3.2);\n * // => 3\n *\n * _.toSafeInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toSafeInteger(Infinity);\n * // => 9007199254740991\n *\n * _.toSafeInteger('3.2');\n * // => 3\n */\n function toSafeInteger(value) {\n return value\n ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)\n : (value === 0 ? value : 0);\n }\n\n /**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n function toString(value) {\n return value == null ? '' : baseToString(value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\n var assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n });\n\n /**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\n var assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n });\n\n /**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n });\n\n /**\n * This method is like `_.assign` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignInWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n });\n\n /**\n * Creates an array of values corresponding to `paths` of `object`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Array} Returns the picked values.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _.at(object, ['a[0].b.c', 'a[1]']);\n * // => [3, 4]\n */\n var at = flatRest(baseAt);\n\n /**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\n function create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : baseAssign(result, properties);\n }\n\n /**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n });\n\n /**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\n var defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n });\n\n /**\n * This method is like `_.find` except that it returns the key of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findKey(users, function(o) { return o.age < 40; });\n * // => 'barney' (iteration order is not guaranteed)\n *\n * // The `_.matches` iteratee shorthand.\n * _.findKey(users, { 'age': 1, 'active': true });\n * // => 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findKey(users, 'active');\n * // => 'barney'\n */\n function findKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);\n }\n\n /**\n * This method is like `_.findKey` except that it iterates over elements of\n * a collection in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findLastKey(users, function(o) { return o.age < 40; });\n * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastKey(users, { 'age': 36, 'active': true });\n * // => 'barney'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastKey(users, 'active');\n * // => 'pebbles'\n */\n function findLastKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);\n }\n\n /**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\n function forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * This method is like `_.forIn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forInRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n */\n function forInRight(object, iteratee) {\n return object == null\n ? object\n : baseForRight(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forOwn(object, iteratee) {\n return object && baseForOwn(object, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forOwn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwnRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n */\n function forOwnRight(object, iteratee) {\n return object && baseForOwnRight(object, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\n function functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n }\n\n /**\n * Creates an array of function property names from own and inherited\n * enumerable properties of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functions\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functionsIn(new Foo);\n * // => ['a', 'b', 'c']\n */\n function functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n }\n\n /**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\n function get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n }\n\n /**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\n function has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n }\n\n /**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\n function hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n }\n\n /**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\n var invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n }, constant(identity));\n\n /**\n * This method is like `_.invert` except that the inverted object is generated\n * from the results of running each element of `object` thru `iteratee`. The\n * corresponding inverted value of each inverted key is an array of keys\n * responsible for generating the inverted value. The iteratee is invoked\n * with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Object\n * @param {Object} object The object to invert.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invertBy(object);\n * // => { '1': ['a', 'c'], '2': ['b'] }\n *\n * _.invertBy(object, function(value) {\n * return 'group' + value;\n * });\n * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n */\n var invertBy = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n }, getIteratee);\n\n /**\n * Invokes the method at `path` of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\n var invoke = baseRest(baseInvoke);\n\n /**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\n function keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n }\n\n /**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\n function keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n }\n\n /**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\n function mapKeys(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n }\n\n /**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\n function mapValues(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n }\n\n /**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\n var merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n });\n\n /**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\n var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n });\n\n /**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\n var omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n });\n\n /**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\n function omitBy(object, predicate) {\n return pickBy(object, negate(getIteratee(predicate)));\n }\n\n /**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\n var pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n\n /**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\n function pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = getIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n }\n\n /**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\n function result(object, path, defaultValue) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length;\n\n // Ensure the loop is entered when path is empty.\n if (!length) {\n length = 1;\n object = undefined;\n }\n while (++index < length) {\n var value = object == null ? undefined : object[toKey(path[index])];\n if (value === undefined) {\n index = length;\n value = defaultValue;\n }\n object = isFunction(value) ? value.call(object) : value;\n }\n return object;\n }\n\n /**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\n function set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n }\n\n /**\n * This method is like `_.set` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.setWith(object, '[0][1]', 'a', Object);\n * // => { '0': { '1': 'a' } }\n */\n function setWith(object, path, value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseSet(object, path, value, customizer);\n }\n\n /**\n * Creates an array of own enumerable string keyed-value pairs for `object`\n * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n * entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entries\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairs(new Foo);\n * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n */\n var toPairs = createToPairs(keys);\n\n /**\n * Creates an array of own and inherited enumerable string keyed-value pairs\n * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n * or set, its entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entriesIn\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairsIn(new Foo);\n * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n */\n var toPairsIn = createToPairs(keysIn);\n\n /**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n * result.push(n *= n);\n * return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\n function transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n iteratee = getIteratee(iteratee, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor : [];\n }\n else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n }\n else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n return iteratee(accumulator, value, index, object);\n });\n return accumulator;\n }\n\n /**\n * Removes the property at `path` of `object`.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 7 } }] };\n * _.unset(object, 'a[0].b.c');\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n *\n * _.unset(object, ['a', '0', 'b', 'c']);\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n */\n function unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n }\n\n /**\n * This method is like `_.set` except that accepts `updater` to produce the\n * value to set. Use `_.updateWith` to customize `path` creation. The `updater`\n * is invoked with one argument: (value).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.update(object, 'a[0].b.c', function(n) { return n * n; });\n * console.log(object.a[0].b.c);\n * // => 9\n *\n * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });\n * console.log(object.x[0].y.z);\n * // => 0\n */\n function update(object, path, updater) {\n return object == null ? object : baseUpdate(object, path, castFunction(updater));\n }\n\n /**\n * This method is like `_.update` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.updateWith(object, '[0][1]', _.constant('a'), Object);\n * // => { '0': { '1': 'a' } }\n */\n function updateWith(object, path, updater, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n }\n\n /**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\n\n /**\n * Creates an array of the own and inherited enumerable string keyed property\n * values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.valuesIn(new Foo);\n * // => [1, 2, 3] (iteration order is not guaranteed)\n */\n function valuesIn(object) {\n return object == null ? [] : baseValues(object, keysIn(object));\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\n function clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n }\n\n /**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\n function inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n }\n\n /**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\n function random(lower, upper, floating) {\n if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined;\n }\n if (floating === undefined) {\n if (typeof upper == 'boolean') {\n floating = upper;\n upper = undefined;\n }\n else if (typeof lower == 'boolean') {\n floating = lower;\n lower = undefined;\n }\n }\n if (lower === undefined && upper === undefined) {\n lower = 0;\n upper = 1;\n }\n else {\n lower = toFinite(lower);\n if (upper === undefined) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);\n }\n return baseRandom(lower, upper);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\n var camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n });\n\n /**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\n function capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n }\n\n /**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\n function deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n }\n\n /**\n * Checks if `string` ends with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=string.length] The position to search up to.\n * @returns {boolean} Returns `true` if `string` ends with `target`,\n * else `false`.\n * @example\n *\n * _.endsWith('abc', 'c');\n * // => true\n *\n * _.endsWith('abc', 'b');\n * // => false\n *\n * _.endsWith('abc', 'b', 2);\n * // => true\n */\n function endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n\n var length = string.length;\n position = position === undefined\n ? length\n : baseClamp(toInteger(position), 0, length);\n\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n }\n\n /**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n }\n\n /**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\n function escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n }\n\n /**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n var kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n });\n\n /**\n * Converts `string`, as space separated words, to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\n var lowerCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n });\n\n /**\n * Converts the first character of `string` to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.lowerFirst('Fred');\n * // => 'fred'\n *\n * _.lowerFirst('FRED');\n * // => 'fRED'\n */\n var lowerFirst = createCaseFirst('toLowerCase');\n\n /**\n * Pads `string` on the left and right sides if it's shorter than `length`.\n * Padding characters are truncated if they can't be evenly divided by `length`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.pad('abc', 8);\n * // => ' abc '\n *\n * _.pad('abc', 8, '_-');\n * // => '_-abc_-_'\n *\n * _.pad('abc', 3);\n * // => 'abc'\n */\n function pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n if (!length || strLength >= length) {\n return string;\n }\n var mid = (length - strLength) / 2;\n return (\n createPadding(nativeFloor(mid), chars) +\n string +\n createPadding(nativeCeil(mid), chars)\n );\n }\n\n /**\n * Pads `string` on the right side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padEnd('abc', 6);\n * // => 'abc '\n *\n * _.padEnd('abc', 6, '_-');\n * // => 'abc_-_'\n *\n * _.padEnd('abc', 3);\n * // => 'abc'\n */\n function padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (string + createPadding(length - strLength, chars))\n : string;\n }\n\n /**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\n function padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n }\n\n /**\n * Converts `string` to an integer of the specified radix. If `radix` is\n * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n * hexadecimal, in which case a `radix` of `16` is used.\n *\n * **Note:** This method aligns with the\n * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category String\n * @param {string} string The string to convert.\n * @param {number} [radix=10] The radix to interpret `value` by.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.parseInt('08');\n * // => 8\n *\n * _.map(['6', '08', '10'], _.parseInt);\n * // => [6, 8, 10]\n */\n function parseInt(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n }\n\n /**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\n function repeat(string, n, guard) {\n if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n }\n\n /**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\n function replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n }\n\n /**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\n var snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n });\n\n /**\n * Splits `string` by `separator`.\n *\n * **Note:** This method is based on\n * [`String#split`](https://mdn.io/String/split).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to split.\n * @param {RegExp|string} separator The separator pattern to split by.\n * @param {number} [limit] The length to truncate results to.\n * @returns {Array} Returns the string segments.\n * @example\n *\n * _.split('a-b-c', '-', 2);\n * // => ['a', 'b']\n */\n function split(string, separator, limit) {\n if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined;\n }\n limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n if (!limit) {\n return [];\n }\n string = toString(string);\n if (string && (\n typeof separator == 'string' ||\n (separator != null && !isRegExp(separator))\n )) {\n separator = baseToString(separator);\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n return string.split(separator, limit);\n }\n\n /**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\n var startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n });\n\n /**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\n function startsWith(string, target, position) {\n string = toString(string);\n position = position == null\n ? 0\n : baseClamp(toInteger(position), 0, string.length);\n\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n }\n\n /**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='lodash.templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<b><%- value %></b>');\n * compiled({ 'value': '<script>' });\n * // => '<b><script></b>'\n *\n * // Use the \"evaluate\" delimiter to execute JavaScript and generate HTML.\n * var compiled = _.template('<% _.forEach(users, function(user) { %><li><%- user %></li><% }); %>');\n * compiled({ 'users': ['fred', 'barney'] });\n * // => '<li>fred</li><li>barney</li>'\n *\n * // Use the internal `print` function in \"evaluate\" delimiters.\n * var compiled = _.template('<% print(\"hello \" + user); %>!');\n * compiled({ 'user': 'barney' });\n * // => 'hello barney!'\n *\n * // Use the ES template literal delimiter as an \"interpolate\" delimiter.\n * // Disable support by replacing the \"interpolate\" delimiter.\n * var compiled = _.template('hello ${ user }!');\n * compiled({ 'user': 'pebbles' });\n * // => 'hello pebbles!'\n *\n * // Use backslashes to treat delimiters as plain text.\n * var compiled = _.template('<%= \"\\\\<%- value %\\\\>\" %>');\n * compiled({ 'value': 'ignored' });\n * // => '<%- value %>'\n *\n * // Use the `imports` option to import `jQuery` as `jq`.\n * var text = '<% jq.each(users, function(user) { %><li><%- user %></li><% }); %>';\n * var compiled = _.template(text, { 'imports': { 'jq': jQuery } });\n * compiled({ 'users': ['fred', 'barney'] });\n * // => '<li>fred</li><li>barney</li>'\n *\n * // Use the `sourceURL` option to specify a custom sourceURL for the template.\n * var compiled = _.template('hello <%= user %>!', { 'sourceURL': '/basic/greeting.jst' });\n * compiled(data);\n * // => Find the source of \"greeting.jst\" under the Sources tab or Resources panel of the web inspector.\n *\n * // Use the `variable` option to ensure a with-statement isn't used in the compiled template.\n * var compiled = _.template('hi <%= data.user %>!', { 'variable': 'data' });\n * compiled.source;\n * // => function(data) {\n * // var __t, __p = '';\n * // __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';\n * // return __p;\n * // }\n *\n * // Use custom template delimiters.\n * _.templateSettings.interpolate = /{{([\\s\\S]+?)}}/g;\n * var compiled = _.template('hello {{ user }}!');\n * compiled({ 'user': 'mustache' });\n * // => 'hello mustache!'\n *\n * // Use the `source` property to inline compiled templates for meaningful\n * // line numbers in error messages and stack traces.\n * fs.writeFileSync(path.join(process.cwd(), 'jst.js'), '\\\n * var JST = {\\\n * \"main\": ' + _.template(mainText).source + '\\\n * };\\\n * ');\n */\n function template(string, options, guard) {\n // Based on John Resig's `tmpl` implementation\n // (http://ejohn.org/blog/javascript-micro-templating/)\n // and Laura Doktorova's doT.js (https://github.com/olado/doT).\n var settings = lodash.templateSettings;\n\n if (guard && isIterateeCall(string, options, guard)) {\n options = undefined;\n }\n string = toString(string);\n options = assignInWith({}, options, settings, customDefaultsAssignIn);\n\n var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn),\n importsKeys = keys(imports),\n importsValues = baseValues(imports, importsKeys);\n\n var isEscaping,\n isEvaluating,\n index = 0,\n interpolate = options.interpolate || reNoMatch,\n source = \"__p += '\";\n\n // Compile the regexp to match each delimiter.\n var reDelimiters = RegExp(\n (options.escape || reNoMatch).source + '|' +\n interpolate.source + '|' +\n (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + '|' +\n (options.evaluate || reNoMatch).source + '|$'\n , 'g');\n\n // Use a sourceURL for easier debugging.\n // The sourceURL gets injected into the source that's eval-ed, so be careful\n // to normalize all kinds of whitespace, so e.g. newlines (and unicode versions of it) can't sneak in\n // and escape the comment, thus injecting code that gets evaled.\n var sourceURL = '//# sourceURL=' +\n (hasOwnProperty.call(options, 'sourceURL')\n ? (options.sourceURL + '').replace(/\\s/g, ' ')\n : ('lodash.templateSources[' + (++templateCounter) + ']')\n ) + '\\n';\n\n string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) {\n interpolateValue || (interpolateValue = esTemplateValue);\n\n // Escape characters that can't be included in string literals.\n source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar);\n\n // Replace delimiters with snippets.\n if (escapeValue) {\n isEscaping = true;\n source += \"' +\\n__e(\" + escapeValue + \") +\\n'\";\n }\n if (evaluateValue) {\n isEvaluating = true;\n source += \"';\\n\" + evaluateValue + \";\\n__p += '\";\n }\n if (interpolateValue) {\n source += \"' +\\n((__t = (\" + interpolateValue + \")) == null ? '' : __t) +\\n'\";\n }\n index = offset + match.length;\n\n // The JS engine embedded in Adobe products needs `match` returned in\n // order to produce the correct `offset` value.\n return match;\n });\n\n source += \"';\\n\";\n\n // If `variable` is not specified wrap a with-statement around the generated\n // code to add the data object to the top of the scope chain.\n var variable = hasOwnProperty.call(options, 'variable') && options.variable;\n if (!variable) {\n source = 'with (obj) {\\n' + source + '\\n}\\n';\n }\n // Throw an error if a forbidden character was found in `variable`, to prevent\n // potential command injection attacks.\n else if (reForbiddenIdentifierChars.test(variable)) {\n throw new Error(INVALID_TEMPL_VAR_ERROR_TEXT);\n }\n\n // Cleanup code by stripping empty strings.\n source = (isEvaluating ? source.replace(reEmptyStringLeading, '') : source)\n .replace(reEmptyStringMiddle, '$1')\n .replace(reEmptyStringTrailing, '$1;');\n\n // Frame code as the function body.\n source = 'function(' + (variable || 'obj') + ') {\\n' +\n (variable\n ? ''\n : 'obj || (obj = {});\\n'\n ) +\n \"var __t, __p = ''\" +\n (isEscaping\n ? ', __e = _.escape'\n : ''\n ) +\n (isEvaluating\n ? ', __j = Array.prototype.join;\\n' +\n \"function print() { __p += __j.call(arguments, '') }\\n\"\n : ';\\n'\n ) +\n source +\n 'return __p\\n}';\n\n var result = attempt(function() {\n return Function(importsKeys, sourceURL + 'return ' + source)\n .apply(undefined, importsValues);\n });\n\n // Provide the compiled function's source by its `toString` method or\n // the `source` property as a convenience for inlining compiled templates.\n result.source = source;\n if (isError(result)) {\n throw result;\n }\n return result;\n }\n\n /**\n * Converts `string`, as a whole, to lower case just like\n * [String#toLowerCase](https://mdn.io/toLowerCase).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.toLower('--Foo-Bar--');\n * // => '--foo-bar--'\n *\n * _.toLower('fooBar');\n * // => 'foobar'\n *\n * _.toLower('__FOO_BAR__');\n * // => '__foo_bar__'\n */\n function toLower(value) {\n return toString(value).toLowerCase();\n }\n\n /**\n * Converts `string`, as a whole, to upper case just like\n * [String#toUpperCase](https://mdn.io/toUpperCase).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the upper cased string.\n * @example\n *\n * _.toUpper('--foo-bar--');\n * // => '--FOO-BAR--'\n *\n * _.toUpper('fooBar');\n * // => 'FOOBAR'\n *\n * _.toUpper('__foo_bar__');\n * // => '__FOO_BAR__'\n */\n function toUpper(value) {\n return toString(value).toUpperCase();\n }\n\n /**\n * Removes leading and trailing whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trim(' abc ');\n * // => 'abc'\n *\n * _.trim('-_-abc-_-', '_-');\n * // => 'abc'\n *\n * _.map([' foo ', ' bar '], _.trim);\n * // => ['foo', 'bar']\n */\n function trim(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return baseTrim(string);\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n chrSymbols = stringToArray(chars),\n start = charsStartIndex(strSymbols, chrSymbols),\n end = charsEndIndex(strSymbols, chrSymbols) + 1;\n\n return castSlice(strSymbols, start, end).join('');\n }\n\n /**\n * Removes trailing whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trimEnd(' abc ');\n * // => ' abc'\n *\n * _.trimEnd('-_-abc-_-', '_-');\n * // => '-_-abc'\n */\n function trimEnd(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return string.slice(0, trimmedEndIndex(string) + 1);\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n end = charsEndIndex(strSymbols, stringToArray(chars)) + 1;\n\n return castSlice(strSymbols, 0, end).join('');\n }\n\n /**\n * Removes leading whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trimStart(' abc ');\n * // => 'abc '\n *\n * _.trimStart('-_-abc-_-', '_-');\n * // => 'abc-_-'\n */\n function trimStart(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return string.replace(reTrimStart, '');\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n start = charsStartIndex(strSymbols, stringToArray(chars));\n\n return castSlice(strSymbols, start).join('');\n }\n\n /**\n * Truncates `string` if it's longer than the given maximum string length.\n * The last characters of the truncated string are replaced with the omission\n * string which defaults to \"...\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to truncate.\n * @param {Object} [options={}] The options object.\n * @param {number} [options.length=30] The maximum string length.\n * @param {string} [options.omission='...'] The string to indicate text is omitted.\n * @param {RegExp|string} [options.separator] The separator pattern to truncate to.\n * @returns {string} Returns the truncated string.\n * @example\n *\n * _.truncate('hi-diddly-ho there, neighborino');\n * // => 'hi-diddly-ho there, neighbo...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'length': 24,\n * 'separator': ' '\n * });\n * // => 'hi-diddly-ho there,...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'length': 24,\n * 'separator': /,? +/\n * });\n * // => 'hi-diddly-ho there...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'omission': ' [...]'\n * });\n * // => 'hi-diddly-ho there, neig [...]'\n */\n function truncate(string, options) {\n var length = DEFAULT_TRUNC_LENGTH,\n omission = DEFAULT_TRUNC_OMISSION;\n\n if (isObject(options)) {\n var separator = 'separator' in options ? options.separator : separator;\n length = 'length' in options ? toInteger(options.length) : length;\n omission = 'omission' in options ? baseToString(options.omission) : omission;\n }\n string = toString(string);\n\n var strLength = string.length;\n if (hasUnicode(string)) {\n var strSymbols = stringToArray(string);\n strLength = strSymbols.length;\n }\n if (length >= strLength) {\n return string;\n }\n var end = length - stringSize(omission);\n if (end < 1) {\n return omission;\n }\n var result = strSymbols\n ? castSlice(strSymbols, 0, end).join('')\n : string.slice(0, end);\n\n if (separator === undefined) {\n return result + omission;\n }\n if (strSymbols) {\n end += (result.length - end);\n }\n if (isRegExp(separator)) {\n if (string.slice(end).search(separator)) {\n var match,\n substring = result;\n\n if (!separator.global) {\n separator = RegExp(separator.source, toString(reFlags.exec(separator)) + 'g');\n }\n separator.lastIndex = 0;\n while ((match = separator.exec(substring))) {\n var newEnd = match.index;\n }\n result = result.slice(0, newEnd === undefined ? end : newEnd);\n }\n } else if (string.indexOf(baseToString(separator), end) != end) {\n var index = result.lastIndexOf(separator);\n if (index > -1) {\n result = result.slice(0, index);\n }\n }\n return result + omission;\n }\n\n /**\n * The inverse of `_.escape`; this method converts the HTML entities\n * `&`, `<`, `>`, `"`, and `'` in `string` to\n * their corresponding characters.\n *\n * **Note:** No other HTML entities are unescaped. To unescape additional\n * HTML entities use a third-party library like [_he_](https://mths.be/he).\n *\n * @static\n * @memberOf _\n * @since 0.6.0\n * @category String\n * @param {string} [string=''] The string to unescape.\n * @returns {string} Returns the unescaped string.\n * @example\n *\n * _.unescape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function unescape(string) {\n string = toString(string);\n return (string && reHasEscapedHtml.test(string))\n ? string.replace(reEscapedHtml, unescapeHtmlChar)\n : string;\n }\n\n /**\n * Converts `string`, as space separated words, to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the upper cased string.\n * @example\n *\n * _.upperCase('--foo-bar');\n * // => 'FOO BAR'\n *\n * _.upperCase('fooBar');\n * // => 'FOO BAR'\n *\n * _.upperCase('__foo_bar__');\n * // => 'FOO BAR'\n */\n var upperCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toUpperCase();\n });\n\n /**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\n var upperFirst = createCaseFirst('toUpperCase');\n\n /**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\n function words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Attempts to invoke `func`, returning either the result or the caught error\n * object. Any additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Function} func The function to attempt.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {*} Returns the `func` result or error object.\n * @example\n *\n * // Avoid throwing errors for invalid selectors.\n * var elements = _.attempt(function(selector) {\n * return document.querySelectorAll(selector);\n * }, '>_>');\n *\n * if (_.isError(elements)) {\n * elements = [];\n * }\n */\n var attempt = baseRest(function(func, args) {\n try {\n return apply(func, undefined, args);\n } catch (e) {\n return isError(e) ? e : new Error(e);\n }\n });\n\n /**\n * Binds methods of an object to the object itself, overwriting the existing\n * method.\n *\n * **Note:** This method doesn't set the \"length\" property of bound functions.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {Object} object The object to bind and assign the bound methods to.\n * @param {...(string|string[])} methodNames The object method names to bind.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var view = {\n * 'label': 'docs',\n * 'click': function() {\n * console.log('clicked ' + this.label);\n * }\n * };\n *\n * _.bindAll(view, ['click']);\n * jQuery(element).on('click', view.click);\n * // => Logs 'clicked docs' when clicked.\n */\n var bindAll = flatRest(function(object, methodNames) {\n arrayEach(methodNames, function(key) {\n key = toKey(key);\n baseAssignValue(object, key, bind(object[key], object));\n });\n return object;\n });\n\n /**\n * Creates a function that iterates over `pairs` and invokes the corresponding\n * function of the first predicate to return truthy. The predicate-function\n * pairs are invoked with the `this` binding and arguments of the created\n * function.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {Array} pairs The predicate-function pairs.\n * @returns {Function} Returns the new composite function.\n * @example\n *\n * var func = _.cond([\n * [_.matches({ 'a': 1 }), _.constant('matches A')],\n * [_.conforms({ 'b': _.isNumber }), _.constant('matches B')],\n * [_.stubTrue, _.constant('no match')]\n * ]);\n *\n * func({ 'a': 1, 'b': 2 });\n * // => 'matches A'\n *\n * func({ 'a': 0, 'b': 1 });\n * // => 'matches B'\n *\n * func({ 'a': '1', 'b': '2' });\n * // => 'no match'\n */\n function cond(pairs) {\n var length = pairs == null ? 0 : pairs.length,\n toIteratee = getIteratee();\n\n pairs = !length ? [] : arrayMap(pairs, function(pair) {\n if (typeof pair[1] != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return [toIteratee(pair[0]), pair[1]];\n });\n\n return baseRest(function(args) {\n var index = -1;\n while (++index < length) {\n var pair = pairs[index];\n if (apply(pair[0], this, args)) {\n return apply(pair[1], this, args);\n }\n }\n });\n }\n\n /**\n * Creates a function that invokes the predicate properties of `source` with\n * the corresponding property values of a given object, returning `true` if\n * all predicates return truthy, else `false`.\n *\n * **Note:** The created function is equivalent to `_.conformsTo` with\n * `source` partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 2, 'b': 1 },\n * { 'a': 1, 'b': 2 }\n * ];\n *\n * _.filter(objects, _.conforms({ 'b': function(n) { return n > 1; } }));\n * // => [{ 'a': 1, 'b': 2 }]\n */\n function conforms(source) {\n return baseConforms(baseClone(source, CLONE_DEEP_FLAG));\n }\n\n /**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\n function constant(value) {\n return function() {\n return value;\n };\n }\n\n /**\n * Checks `value` to determine whether a default value should be returned in\n * its place. The `defaultValue` is returned if `value` is `NaN`, `null`,\n * or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Util\n * @param {*} value The value to check.\n * @param {*} defaultValue The default value.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * _.defaultTo(1, 10);\n * // => 1\n *\n * _.defaultTo(undefined, 10);\n * // => 10\n */\n function defaultTo(value, defaultValue) {\n return (value == null || value !== value) ? defaultValue : value;\n }\n\n /**\n * Creates a function that returns the result of invoking the given functions\n * with the `this` binding of the created function, where each successive\n * invocation is supplied the return value of the previous.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {...(Function|Function[])} [funcs] The functions to invoke.\n * @returns {Function} Returns the new composite function.\n * @see _.flowRight\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var addSquare = _.flow([_.add, square]);\n * addSquare(1, 2);\n * // => 9\n */\n var flow = createFlow();\n\n /**\n * This method is like `_.flow` except that it creates a function that\n * invokes the given functions from right to left.\n *\n * @static\n * @since 3.0.0\n * @memberOf _\n * @category Util\n * @param {...(Function|Function[])} [funcs] The functions to invoke.\n * @returns {Function} Returns the new composite function.\n * @see _.flow\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var addSquare = _.flowRight([square, _.add]);\n * addSquare(1, 2);\n * // => 9\n */\n var flowRight = createFlow(true);\n\n /**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\n function identity(value) {\n return value;\n }\n\n /**\n * Creates a function that invokes `func` with the arguments of the created\n * function. If `func` is a property name, the created function returns the\n * property value for a given element. If `func` is an array or object, the\n * created function returns `true` for elements that contain the equivalent\n * source properties, otherwise it returns `false`.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Util\n * @param {*} [func=_.identity] The value to convert to a callback.\n * @returns {Function} Returns the callback.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true }));\n * // => [{ 'user': 'barney', 'age': 36, 'active': true }]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, _.iteratee(['user', 'fred']));\n * // => [{ 'user': 'fred', 'age': 40 }]\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, _.iteratee('user'));\n * // => ['barney', 'fred']\n *\n * // Create custom iteratee shorthands.\n * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) {\n * return !_.isRegExp(func) ? iteratee(func) : function(string) {\n * return func.test(string);\n * };\n * });\n *\n * _.filter(['abc', 'def'], /ef/);\n * // => ['def']\n */\n function iteratee(func) {\n return baseIteratee(typeof func == 'function' ? func : baseClone(func, CLONE_DEEP_FLAG));\n }\n\n /**\n * Creates a function that performs a partial deep comparison between a given\n * object and `source`, returning `true` if the given object has equivalent\n * property values, else `false`.\n *\n * **Note:** The created function is equivalent to `_.isMatch` with `source`\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * **Note:** Multiple values can be checked by combining several matchers\n * using `_.overSome`\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 1, 'b': 2, 'c': 3 },\n * { 'a': 4, 'b': 5, 'c': 6 }\n * ];\n *\n * _.filter(objects, _.matches({ 'a': 4, 'c': 6 }));\n * // => [{ 'a': 4, 'b': 5, 'c': 6 }]\n *\n * // Checking for several possible values\n * _.filter(objects, _.overSome([_.matches({ 'a': 1 }), _.matches({ 'a': 4 })]));\n * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }]\n */\n function matches(source) {\n return baseMatches(baseClone(source, CLONE_DEEP_FLAG));\n }\n\n /**\n * Creates a function that performs a partial deep comparison between the\n * value at `path` of a given object to `srcValue`, returning `true` if the\n * object value is equivalent, else `false`.\n *\n * **Note:** Partial comparisons will match empty array and empty object\n * `srcValue` values against any array or object value, respectively. See\n * `_.isEqual` for a list of supported value comparisons.\n *\n * **Note:** Multiple values can be checked by combining several matchers\n * using `_.overSome`\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 1, 'b': 2, 'c': 3 },\n * { 'a': 4, 'b': 5, 'c': 6 }\n * ];\n *\n * _.find(objects, _.matchesProperty('a', 4));\n * // => { 'a': 4, 'b': 5, 'c': 6 }\n *\n * // Checking for several possible values\n * _.filter(objects, _.overSome([_.matchesProperty('a', 1), _.matchesProperty('a', 4)]));\n * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }]\n */\n function matchesProperty(path, srcValue) {\n return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG));\n }\n\n /**\n * Creates a function that invokes the method at `path` of a given object.\n * Any additional arguments are provided to the invoked method.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Util\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {Function} Returns the new invoker function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': _.constant(2) } },\n * { 'a': { 'b': _.constant(1) } }\n * ];\n *\n * _.map(objects, _.method('a.b'));\n * // => [2, 1]\n *\n * _.map(objects, _.method(['a', 'b']));\n * // => [2, 1]\n */\n var method = baseRest(function(path, args) {\n return function(object) {\n return baseInvoke(object, path, args);\n };\n });\n\n /**\n * The opposite of `_.method`; this method creates a function that invokes\n * the method at a given path of `object`. Any additional arguments are\n * provided to the invoked method.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Util\n * @param {Object} object The object to query.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {Function} Returns the new invoker function.\n * @example\n *\n * var array = _.times(3, _.constant),\n * object = { 'a': array, 'b': array, 'c': array };\n *\n * _.map(['a[2]', 'c[0]'], _.methodOf(object));\n * // => [2, 0]\n *\n * _.map([['a', '2'], ['c', '0']], _.methodOf(object));\n * // => [2, 0]\n */\n var methodOf = baseRest(function(object, args) {\n return function(path) {\n return baseInvoke(object, path, args);\n };\n });\n\n /**\n * Adds all own enumerable string keyed function properties of a source\n * object to the destination object. If `object` is a function, then methods\n * are added to its prototype as well.\n *\n * **Note:** Use `_.runInContext` to create a pristine `lodash` function to\n * avoid conflicts caused by modifying the original.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {Function|Object} [object=lodash] The destination object.\n * @param {Object} source The object of functions to add.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.chain=true] Specify whether mixins are chainable.\n * @returns {Function|Object} Returns `object`.\n * @example\n *\n * function vowels(string) {\n * return _.filter(string, function(v) {\n * return /[aeiou]/i.test(v);\n * });\n * }\n *\n * _.mixin({ 'vowels': vowels });\n * _.vowels('fred');\n * // => ['e']\n *\n * _('fred').vowels().value();\n * // => ['e']\n *\n * _.mixin({ 'vowels': vowels }, { 'chain': false });\n * _('fred').vowels();\n * // => ['e']\n */\n function mixin(object, source, options) {\n var props = keys(source),\n methodNames = baseFunctions(source, props);\n\n if (options == null &&\n !(isObject(source) && (methodNames.length || !props.length))) {\n options = source;\n source = object;\n object = this;\n methodNames = baseFunctions(source, keys(source));\n }\n var chain = !(isObject(options) && 'chain' in options) || !!options.chain,\n isFunc = isFunction(object);\n\n arrayEach(methodNames, function(methodName) {\n var func = source[methodName];\n object[methodName] = func;\n if (isFunc) {\n object.prototype[methodName] = function() {\n var chainAll = this.__chain__;\n if (chain || chainAll) {\n var result = object(this.__wrapped__),\n actions = result.__actions__ = copyArray(this.__actions__);\n\n actions.push({ 'func': func, 'args': arguments, 'thisArg': object });\n result.__chain__ = chainAll;\n return result;\n }\n return func.apply(object, arrayPush([this.value()], arguments));\n };\n }\n });\n\n return object;\n }\n\n /**\n * Reverts the `_` variable to its previous value and returns a reference to\n * the `lodash` function.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @returns {Function} Returns the `lodash` function.\n * @example\n *\n * var lodash = _.noConflict();\n */\n function noConflict() {\n if (root._ === this) {\n root._ = oldDash;\n }\n return this;\n }\n\n /**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\n function noop() {\n // No operation performed.\n }\n\n /**\n * Creates a function that gets the argument at index `n`. If `n` is negative,\n * the nth argument from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {number} [n=0] The index of the argument to return.\n * @returns {Function} Returns the new pass-thru function.\n * @example\n *\n * var func = _.nthArg(1);\n * func('a', 'b', 'c', 'd');\n * // => 'b'\n *\n * var func = _.nthArg(-2);\n * func('a', 'b', 'c', 'd');\n * // => 'c'\n */\n function nthArg(n) {\n n = toInteger(n);\n return baseRest(function(args) {\n return baseNth(args, n);\n });\n }\n\n /**\n * Creates a function that invokes `iteratees` with the arguments it receives\n * and returns their results.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to invoke.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.over([Math.max, Math.min]);\n *\n * func(1, 2, 3, 4);\n * // => [4, 1]\n */\n var over = createOver(arrayMap);\n\n /**\n * Creates a function that checks if **all** of the `predicates` return\n * truthy when invoked with the arguments it receives.\n *\n * Following shorthands are possible for providing predicates.\n * Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate.\n * Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [predicates=[_.identity]]\n * The predicates to check.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.overEvery([Boolean, isFinite]);\n *\n * func('1');\n * // => true\n *\n * func(null);\n * // => false\n *\n * func(NaN);\n * // => false\n */\n var overEvery = createOver(arrayEvery);\n\n /**\n * Creates a function that checks if **any** of the `predicates` return\n * truthy when invoked with the arguments it receives.\n *\n * Following shorthands are possible for providing predicates.\n * Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate.\n * Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [predicates=[_.identity]]\n * The predicates to check.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.overSome([Boolean, isFinite]);\n *\n * func('1');\n * // => true\n *\n * func(null);\n * // => true\n *\n * func(NaN);\n * // => false\n *\n * var matchesFunc = _.overSome([{ 'a': 1 }, { 'a': 2 }])\n * var matchesPropertyFunc = _.overSome([['a', 1], ['a', 2]])\n */\n var overSome = createOver(arraySome);\n\n /**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\n function property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n }\n\n /**\n * The opposite of `_.property`; this method creates a function that returns\n * the value at a given path of `object`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var array = [0, 1, 2],\n * object = { 'a': array, 'b': array, 'c': array };\n *\n * _.map(['a[2]', 'c[0]'], _.propertyOf(object));\n * // => [2, 0]\n *\n * _.map([['a', '2'], ['c', '0']], _.propertyOf(object));\n * // => [2, 0]\n */\n function propertyOf(object) {\n return function(path) {\n return object == null ? undefined : baseGet(object, path);\n };\n }\n\n /**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\n var range = createRange();\n\n /**\n * This method is like `_.range` except that it populates values in\n * descending order.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.range\n * @example\n *\n * _.rangeRight(4);\n * // => [3, 2, 1, 0]\n *\n * _.rangeRight(-4);\n * // => [-3, -2, -1, 0]\n *\n * _.rangeRight(1, 5);\n * // => [4, 3, 2, 1]\n *\n * _.rangeRight(0, 20, 5);\n * // => [15, 10, 5, 0]\n *\n * _.rangeRight(0, -4, -1);\n * // => [-3, -2, -1, 0]\n *\n * _.rangeRight(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.rangeRight(0);\n * // => []\n */\n var rangeRight = createRange(true);\n\n /**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\n function stubArray() {\n return [];\n }\n\n /**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\n function stubFalse() {\n return false;\n }\n\n /**\n * This method returns a new empty object.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Object} Returns the new empty object.\n * @example\n *\n * var objects = _.times(2, _.stubObject);\n *\n * console.log(objects);\n * // => [{}, {}]\n *\n * console.log(objects[0] === objects[1]);\n * // => false\n */\n function stubObject() {\n return {};\n }\n\n /**\n * This method returns an empty string.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {string} Returns the empty string.\n * @example\n *\n * _.times(2, _.stubString);\n * // => ['', '']\n */\n function stubString() {\n return '';\n }\n\n /**\n * This method returns `true`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `true`.\n * @example\n *\n * _.times(2, _.stubTrue);\n * // => [true, true]\n */\n function stubTrue() {\n return true;\n }\n\n /**\n * Invokes the iteratee `n` times, returning an array of the results of\n * each invocation. The iteratee is invoked with one argument; (index).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.times(3, String);\n * // => ['0', '1', '2']\n *\n * _.times(4, _.constant(0));\n * // => [0, 0, 0, 0]\n */\n function times(n, iteratee) {\n n = toInteger(n);\n if (n < 1 || n > MAX_SAFE_INTEGER) {\n return [];\n }\n var index = MAX_ARRAY_LENGTH,\n length = nativeMin(n, MAX_ARRAY_LENGTH);\n\n iteratee = getIteratee(iteratee);\n n -= MAX_ARRAY_LENGTH;\n\n var result = baseTimes(length, iteratee);\n while (++index < n) {\n iteratee(index);\n }\n return result;\n }\n\n /**\n * Converts `value` to a property path array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {*} value The value to convert.\n * @returns {Array} Returns the new property path array.\n * @example\n *\n * _.toPath('a.b.c');\n * // => ['a', 'b', 'c']\n *\n * _.toPath('a[0].b.c');\n * // => ['a', '0', 'b', 'c']\n */\n function toPath(value) {\n if (isArray(value)) {\n return arrayMap(value, toKey);\n }\n return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));\n }\n\n /**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\n function uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Adds two numbers.\n *\n * @static\n * @memberOf _\n * @since 3.4.0\n * @category Math\n * @param {number} augend The first number in an addition.\n * @param {number} addend The second number in an addition.\n * @returns {number} Returns the total.\n * @example\n *\n * _.add(6, 4);\n * // => 10\n */\n var add = createMathOperation(function(augend, addend) {\n return augend + addend;\n }, 0);\n\n /**\n * Computes `number` rounded up to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round up.\n * @param {number} [precision=0] The precision to round up to.\n * @returns {number} Returns the rounded up number.\n * @example\n *\n * _.ceil(4.006);\n * // => 5\n *\n * _.ceil(6.004, 2);\n * // => 6.01\n *\n * _.ceil(6040, -2);\n * // => 6100\n */\n var ceil = createRound('ceil');\n\n /**\n * Divide two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {number} dividend The first number in a division.\n * @param {number} divisor The second number in a division.\n * @returns {number} Returns the quotient.\n * @example\n *\n * _.divide(6, 4);\n * // => 1.5\n */\n var divide = createMathOperation(function(dividend, divisor) {\n return dividend / divisor;\n }, 1);\n\n /**\n * Computes `number` rounded down to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round down.\n * @param {number} [precision=0] The precision to round down to.\n * @returns {number} Returns the rounded down number.\n * @example\n *\n * _.floor(4.006);\n * // => 4\n *\n * _.floor(0.046, 2);\n * // => 0.04\n *\n * _.floor(4060, -2);\n * // => 4000\n */\n var floor = createRound('floor');\n\n /**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\n function max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n }\n\n /**\n * This method is like `_.max` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.maxBy(objects, function(o) { return o.n; });\n * // => { 'n': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.maxBy(objects, 'n');\n * // => { 'n': 2 }\n */\n function maxBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, getIteratee(iteratee, 2), baseGt)\n : undefined;\n }\n\n /**\n * Computes the mean of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the mean.\n * @example\n *\n * _.mean([4, 2, 8, 6]);\n * // => 5\n */\n function mean(array) {\n return baseMean(array, identity);\n }\n\n /**\n * This method is like `_.mean` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the value to be averaged.\n * The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the mean.\n * @example\n *\n * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n *\n * _.meanBy(objects, function(o) { return o.n; });\n * // => 5\n *\n * // The `_.property` iteratee shorthand.\n * _.meanBy(objects, 'n');\n * // => 5\n */\n function meanBy(array, iteratee) {\n return baseMean(array, getIteratee(iteratee, 2));\n }\n\n /**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\n function min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n }\n\n /**\n * This method is like `_.min` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.minBy(objects, function(o) { return o.n; });\n * // => { 'n': 1 }\n *\n * // The `_.property` iteratee shorthand.\n * _.minBy(objects, 'n');\n * // => { 'n': 1 }\n */\n function minBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, getIteratee(iteratee, 2), baseLt)\n : undefined;\n }\n\n /**\n * Multiply two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {number} multiplier The first number in a multiplication.\n * @param {number} multiplicand The second number in a multiplication.\n * @returns {number} Returns the product.\n * @example\n *\n * _.multiply(6, 4);\n * // => 24\n */\n var multiply = createMathOperation(function(multiplier, multiplicand) {\n return multiplier * multiplicand;\n }, 1);\n\n /**\n * Computes `number` rounded to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round.\n * @param {number} [precision=0] The precision to round to.\n * @returns {number} Returns the rounded number.\n * @example\n *\n * _.round(4.006);\n * // => 4\n *\n * _.round(4.006, 2);\n * // => 4.01\n *\n * _.round(4060, -2);\n * // => 4100\n */\n var round = createRound('round');\n\n /**\n * Subtract two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {number} minuend The first number in a subtraction.\n * @param {number} subtrahend The second number in a subtraction.\n * @returns {number} Returns the difference.\n * @example\n *\n * _.subtract(6, 4);\n * // => 2\n */\n var subtract = createMathOperation(function(minuend, subtrahend) {\n return minuend - subtrahend;\n }, 0);\n\n /**\n * Computes the sum of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 3.4.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the sum.\n * @example\n *\n * _.sum([4, 2, 8, 6]);\n * // => 20\n */\n function sum(array) {\n return (array && array.length)\n ? baseSum(array, identity)\n : 0;\n }\n\n /**\n * This method is like `_.sum` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the value to be summed.\n * The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the sum.\n * @example\n *\n * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n *\n * _.sumBy(objects, function(o) { return o.n; });\n * // => 20\n *\n * // The `_.property` iteratee shorthand.\n * _.sumBy(objects, 'n');\n * // => 20\n */\n function sumBy(array, iteratee) {\n return (array && array.length)\n ? baseSum(array, getIteratee(iteratee, 2))\n : 0;\n }\n\n /*------------------------------------------------------------------------*/\n\n // Add methods that return wrapped values in chain sequences.\n lodash.after = after;\n lodash.ary = ary;\n lodash.assign = assign;\n lodash.assignIn = assignIn;\n lodash.assignInWith = assignInWith;\n lodash.assignWith = assignWith;\n lodash.at = at;\n lodash.before = before;\n lodash.bind = bind;\n lodash.bindAll = bindAll;\n lodash.bindKey = bindKey;\n lodash.castArray = castArray;\n lodash.chain = chain;\n lodash.chunk = chunk;\n lodash.compact = compact;\n lodash.concat = concat;\n lodash.cond = cond;\n lodash.conforms = conforms;\n lodash.constant = constant;\n lodash.countBy = countBy;\n lodash.create = create;\n lodash.curry = curry;\n lodash.curryRight = curryRight;\n lodash.debounce = debounce;\n lodash.defaults = defaults;\n lodash.defaultsDeep = defaultsDeep;\n lodash.defer = defer;\n lodash.delay = delay;\n lodash.difference = difference;\n lodash.differenceBy = differenceBy;\n lodash.differenceWith = differenceWith;\n lodash.drop = drop;\n lodash.dropRight = dropRight;\n lodash.dropRightWhile = dropRightWhile;\n lodash.dropWhile = dropWhile;\n lodash.fill = fill;\n lodash.filter = filter;\n lodash.flatMap = flatMap;\n lodash.flatMapDeep = flatMapDeep;\n lodash.flatMapDepth = flatMapDepth;\n lodash.flatten = flatten;\n lodash.flattenDeep = flattenDeep;\n lodash.flattenDepth = flattenDepth;\n lodash.flip = flip;\n lodash.flow = flow;\n lodash.flowRight = flowRight;\n lodash.fromPairs = fromPairs;\n lodash.functions = functions;\n lodash.functionsIn = functionsIn;\n lodash.groupBy = groupBy;\n lodash.initial = initial;\n lodash.intersection = intersection;\n lodash.intersectionBy = intersectionBy;\n lodash.intersectionWith = intersectionWith;\n lodash.invert = invert;\n lodash.invertBy = invertBy;\n lodash.invokeMap = invokeMap;\n lodash.iteratee = iteratee;\n lodash.keyBy = keyBy;\n lodash.keys = keys;\n lodash.keysIn = keysIn;\n lodash.map = map;\n lodash.mapKeys = mapKeys;\n lodash.mapValues = mapValues;\n lodash.matches = matches;\n lodash.matchesProperty = matchesProperty;\n lodash.memoize = memoize;\n lodash.merge = merge;\n lodash.mergeWith = mergeWith;\n lodash.method = method;\n lodash.methodOf = methodOf;\n lodash.mixin = mixin;\n lodash.negate = negate;\n lodash.nthArg = nthArg;\n lodash.omit = omit;\n lodash.omitBy = omitBy;\n lodash.once = once;\n lodash.orderBy = orderBy;\n lodash.over = over;\n lodash.overArgs = overArgs;\n lodash.overEvery = overEvery;\n lodash.overSome = overSome;\n lodash.partial = partial;\n lodash.partialRight = partialRight;\n lodash.partition = partition;\n lodash.pick = pick;\n lodash.pickBy = pickBy;\n lodash.property = property;\n lodash.propertyOf = propertyOf;\n lodash.pull = pull;\n lodash.pullAll = pullAll;\n lodash.pullAllBy = pullAllBy;\n lodash.pullAllWith = pullAllWith;\n lodash.pullAt = pullAt;\n lodash.range = range;\n lodash.rangeRight = rangeRight;\n lodash.rearg = rearg;\n lodash.reject = reject;\n lodash.remove = remove;\n lodash.rest = rest;\n lodash.reverse = reverse;\n lodash.sampleSize = sampleSize;\n lodash.set = set;\n lodash.setWith = setWith;\n lodash.shuffle = shuffle;\n lodash.slice = slice;\n lodash.sortBy = sortBy;\n lodash.sortedUniq = sortedUniq;\n lodash.sortedUniqBy = sortedUniqBy;\n lodash.split = split;\n lodash.spread = spread;\n lodash.tail = tail;\n lodash.take = take;\n lodash.takeRight = takeRight;\n lodash.takeRightWhile = takeRightWhile;\n lodash.takeWhile = takeWhile;\n lodash.tap = tap;\n lodash.throttle = throttle;\n lodash.thru = thru;\n lodash.toArray = toArray;\n lodash.toPairs = toPairs;\n lodash.toPairsIn = toPairsIn;\n lodash.toPath = toPath;\n lodash.toPlainObject = toPlainObject;\n lodash.transform = transform;\n lodash.unary = unary;\n lodash.union = union;\n lodash.unionBy = unionBy;\n lodash.unionWith = unionWith;\n lodash.uniq = uniq;\n lodash.uniqBy = uniqBy;\n lodash.uniqWith = uniqWith;\n lodash.unset = unset;\n lodash.unzip = unzip;\n lodash.unzipWith = unzipWith;\n lodash.update = update;\n lodash.updateWith = updateWith;\n lodash.values = values;\n lodash.valuesIn = valuesIn;\n lodash.without = without;\n lodash.words = words;\n lodash.wrap = wrap;\n lodash.xor = xor;\n lodash.xorBy = xorBy;\n lodash.xorWith = xorWith;\n lodash.zip = zip;\n lodash.zipObject = zipObject;\n lodash.zipObjectDeep = zipObjectDeep;\n lodash.zipWith = zipWith;\n\n // Add aliases.\n lodash.entries = toPairs;\n lodash.entriesIn = toPairsIn;\n lodash.extend = assignIn;\n lodash.extendWith = assignInWith;\n\n // Add methods to `lodash.prototype`.\n mixin(lodash, lodash);\n\n /*------------------------------------------------------------------------*/\n\n // Add methods that return unwrapped values in chain sequences.\n lodash.add = add;\n lodash.attempt = attempt;\n lodash.camelCase = camelCase;\n lodash.capitalize = capitalize;\n lodash.ceil = ceil;\n lodash.clamp = clamp;\n lodash.clone = clone;\n lodash.cloneDeep = cloneDeep;\n lodash.cloneDeepWith = cloneDeepWith;\n lodash.cloneWith = cloneWith;\n lodash.conformsTo = conformsTo;\n lodash.deburr = deburr;\n lodash.defaultTo = defaultTo;\n lodash.divide = divide;\n lodash.endsWith = endsWith;\n lodash.eq = eq;\n lodash.escape = escape;\n lodash.escapeRegExp = escapeRegExp;\n lodash.every = every;\n lodash.find = find;\n lodash.findIndex = findIndex;\n lodash.findKey = findKey;\n lodash.findLast = findLast;\n lodash.findLastIndex = findLastIndex;\n lodash.findLastKey = findLastKey;\n lodash.floor = floor;\n lodash.forEach = forEach;\n lodash.forEachRight = forEachRight;\n lodash.forIn = forIn;\n lodash.forInRight = forInRight;\n lodash.forOwn = forOwn;\n lodash.forOwnRight = forOwnRight;\n lodash.get = get;\n lodash.gt = gt;\n lodash.gte = gte;\n lodash.has = has;\n lodash.hasIn = hasIn;\n lodash.head = head;\n lodash.identity = identity;\n lodash.includes = includes;\n lodash.indexOf = indexOf;\n lodash.inRange = inRange;\n lodash.invoke = invoke;\n lodash.isArguments = isArguments;\n lodash.isArray = isArray;\n lodash.isArrayBuffer = isArrayBuffer;\n lodash.isArrayLike = isArrayLike;\n lodash.isArrayLikeObject = isArrayLikeObject;\n lodash.isBoolean = isBoolean;\n lodash.isBuffer = isBuffer;\n lodash.isDate = isDate;\n lodash.isElement = isElement;\n lodash.isEmpty = isEmpty;\n lodash.isEqual = isEqual;\n lodash.isEqualWith = isEqualWith;\n lodash.isError = isError;\n lodash.isFinite = isFinite;\n lodash.isFunction = isFunction;\n lodash.isInteger = isInteger;\n lodash.isLength = isLength;\n lodash.isMap = isMap;\n lodash.isMatch = isMatch;\n lodash.isMatchWith = isMatchWith;\n lodash.isNaN = isNaN;\n lodash.isNative = isNative;\n lodash.isNil = isNil;\n lodash.isNull = isNull;\n lodash.isNumber = isNumber;\n lodash.isObject = isObject;\n lodash.isObjectLike = isObjectLike;\n lodash.isPlainObject = isPlainObject;\n lodash.isRegExp = isRegExp;\n lodash.isSafeInteger = isSafeInteger;\n lodash.isSet = isSet;\n lodash.isString = isString;\n lodash.isSymbol = isSymbol;\n lodash.isTypedArray = isTypedArray;\n lodash.isUndefined = isUndefined;\n lodash.isWeakMap = isWeakMap;\n lodash.isWeakSet = isWeakSet;\n lodash.join = join;\n lodash.kebabCase = kebabCase;\n lodash.last = last;\n lodash.lastIndexOf = lastIndexOf;\n lodash.lowerCase = lowerCase;\n lodash.lowerFirst = lowerFirst;\n lodash.lt = lt;\n lodash.lte = lte;\n lodash.max = max;\n lodash.maxBy = maxBy;\n lodash.mean = mean;\n lodash.meanBy = meanBy;\n lodash.min = min;\n lodash.minBy = minBy;\n lodash.stubArray = stubArray;\n lodash.stubFalse = stubFalse;\n lodash.stubObject = stubObject;\n lodash.stubString = stubString;\n lodash.stubTrue = stubTrue;\n lodash.multiply = multiply;\n lodash.nth = nth;\n lodash.noConflict = noConflict;\n lodash.noop = noop;\n lodash.now = now;\n lodash.pad = pad;\n lodash.padEnd = padEnd;\n lodash.padStart = padStart;\n lodash.parseInt = parseInt;\n lodash.random = random;\n lodash.reduce = reduce;\n lodash.reduceRight = reduceRight;\n lodash.repeat = repeat;\n lodash.replace = replace;\n lodash.result = result;\n lodash.round = round;\n lodash.runInContext = runInContext;\n lodash.sample = sample;\n lodash.size = size;\n lodash.snakeCase = snakeCase;\n lodash.some = some;\n lodash.sortedIndex = sortedIndex;\n lodash.sortedIndexBy = sortedIndexBy;\n lodash.sortedIndexOf = sortedIndexOf;\n lodash.sortedLastIndex = sortedLastIndex;\n lodash.sortedLastIndexBy = sortedLastIndexBy;\n lodash.sortedLastIndexOf = sortedLastIndexOf;\n lodash.startCase = startCase;\n lodash.startsWith = startsWith;\n lodash.subtract = subtract;\n lodash.sum = sum;\n lodash.sumBy = sumBy;\n lodash.template = template;\n lodash.times = times;\n lodash.toFinite = toFinite;\n lodash.toInteger = toInteger;\n lodash.toLength = toLength;\n lodash.toLower = toLower;\n lodash.toNumber = toNumber;\n lodash.toSafeInteger = toSafeInteger;\n lodash.toString = toString;\n lodash.toUpper = toUpper;\n lodash.trim = trim;\n lodash.trimEnd = trimEnd;\n lodash.trimStart = trimStart;\n lodash.truncate = truncate;\n lodash.unescape = unescape;\n lodash.uniqueId = uniqueId;\n lodash.upperCase = upperCase;\n lodash.upperFirst = upperFirst;\n\n // Add aliases.\n lodash.each = forEach;\n lodash.eachRight = forEachRight;\n lodash.first = head;\n\n mixin(lodash, (function() {\n var source = {};\n baseForOwn(lodash, function(func, methodName) {\n if (!hasOwnProperty.call(lodash.prototype, methodName)) {\n source[methodName] = func;\n }\n });\n return source;\n }()), { 'chain': false });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The semantic version number.\n *\n * @static\n * @memberOf _\n * @type {string}\n */\n lodash.VERSION = VERSION;\n\n // Assign default placeholders.\n arrayEach(['bind', 'bindKey', 'curry', 'curryRight', 'partial', 'partialRight'], function(methodName) {\n lodash[methodName].placeholder = lodash;\n });\n\n // Add `LazyWrapper` methods for `_.drop` and `_.take` variants.\n arrayEach(['drop', 'take'], function(methodName, index) {\n LazyWrapper.prototype[methodName] = function(n) {\n n = n === undefined ? 1 : nativeMax(toInteger(n), 0);\n\n var result = (this.__filtered__ && !index)\n ? new LazyWrapper(this)\n : this.clone();\n\n if (result.__filtered__) {\n result.__takeCount__ = nativeMin(n, result.__takeCount__);\n } else {\n result.__views__.push({\n 'size': nativeMin(n, MAX_ARRAY_LENGTH),\n 'type': methodName + (result.__dir__ < 0 ? 'Right' : '')\n });\n }\n return result;\n };\n\n LazyWrapper.prototype[methodName + 'Right'] = function(n) {\n return this.reverse()[methodName](n).reverse();\n };\n });\n\n // Add `LazyWrapper` methods that accept an `iteratee` value.\n arrayEach(['filter', 'map', 'takeWhile'], function(methodName, index) {\n var type = index + 1,\n isFilter = type == LAZY_FILTER_FLAG || type == LAZY_WHILE_FLAG;\n\n LazyWrapper.prototype[methodName] = function(iteratee) {\n var result = this.clone();\n result.__iteratees__.push({\n 'iteratee': getIteratee(iteratee, 3),\n 'type': type\n });\n result.__filtered__ = result.__filtered__ || isFilter;\n return result;\n };\n });\n\n // Add `LazyWrapper` methods for `_.head` and `_.last`.\n arrayEach(['head', 'last'], function(methodName, index) {\n var takeName = 'take' + (index ? 'Right' : '');\n\n LazyWrapper.prototype[methodName] = function() {\n return this[takeName](1).value()[0];\n };\n });\n\n // Add `LazyWrapper` methods for `_.initial` and `_.tail`.\n arrayEach(['initial', 'tail'], function(methodName, index) {\n var dropName = 'drop' + (index ? '' : 'Right');\n\n LazyWrapper.prototype[methodName] = function() {\n return this.__filtered__ ? new LazyWrapper(this) : this[dropName](1);\n };\n });\n\n LazyWrapper.prototype.compact = function() {\n return this.filter(identity);\n };\n\n LazyWrapper.prototype.find = function(predicate) {\n return this.filter(predicate).head();\n };\n\n LazyWrapper.prototype.findLast = function(predicate) {\n return this.reverse().find(predicate);\n };\n\n LazyWrapper.prototype.invokeMap = baseRest(function(path, args) {\n if (typeof path == 'function') {\n return new LazyWrapper(this);\n }\n return this.map(function(value) {\n return baseInvoke(value, path, args);\n });\n });\n\n LazyWrapper.prototype.reject = function(predicate) {\n return this.filter(negate(getIteratee(predicate)));\n };\n\n LazyWrapper.prototype.slice = function(start, end) {\n start = toInteger(start);\n\n var result = this;\n if (result.__filtered__ && (start > 0 || end < 0)) {\n return new LazyWrapper(result);\n }\n if (start < 0) {\n result = result.takeRight(-start);\n } else if (start) {\n result = result.drop(start);\n }\n if (end !== undefined) {\n end = toInteger(end);\n result = end < 0 ? result.dropRight(-end) : result.take(end - start);\n }\n return result;\n };\n\n LazyWrapper.prototype.takeRightWhile = function(predicate) {\n return this.reverse().takeWhile(predicate).reverse();\n };\n\n LazyWrapper.prototype.toArray = function() {\n return this.take(MAX_ARRAY_LENGTH);\n };\n\n // Add `LazyWrapper` methods to `lodash.prototype`.\n baseForOwn(LazyWrapper.prototype, function(func, methodName) {\n var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName),\n isTaker = /^(?:head|last)$/.test(methodName),\n lodashFunc = lodash[isTaker ? ('take' + (methodName == 'last' ? 'Right' : '')) : methodName],\n retUnwrapped = isTaker || /^find/.test(methodName);\n\n if (!lodashFunc) {\n return;\n }\n lodash.prototype[methodName] = function() {\n var value = this.__wrapped__,\n args = isTaker ? [1] : arguments,\n isLazy = value instanceof LazyWrapper,\n iteratee = args[0],\n useLazy = isLazy || isArray(value);\n\n var interceptor = function(value) {\n var result = lodashFunc.apply(lodash, arrayPush([value], args));\n return (isTaker && chainAll) ? result[0] : result;\n };\n\n if (useLazy && checkIteratee && typeof iteratee == 'function' && iteratee.length != 1) {\n // Avoid lazy use if the iteratee has a \"length\" value other than `1`.\n isLazy = useLazy = false;\n }\n var chainAll = this.__chain__,\n isHybrid = !!this.__actions__.length,\n isUnwrapped = retUnwrapped && !chainAll,\n onlyLazy = isLazy && !isHybrid;\n\n if (!retUnwrapped && useLazy) {\n value = onlyLazy ? value : new LazyWrapper(this);\n var result = func.apply(value, args);\n result.__actions__.push({ 'func': thru, 'args': [interceptor], 'thisArg': undefined });\n return new LodashWrapper(result, chainAll);\n }\n if (isUnwrapped && onlyLazy) {\n return func.apply(this, args);\n }\n result = this.thru(interceptor);\n return isUnwrapped ? (isTaker ? result.value()[0] : result.value()) : result;\n };\n });\n\n // Add `Array` methods to `lodash.prototype`.\n arrayEach(['pop', 'push', 'shift', 'sort', 'splice', 'unshift'], function(methodName) {\n var func = arrayProto[methodName],\n chainName = /^(?:push|sort|unshift)$/.test(methodName) ? 'tap' : 'thru',\n retUnwrapped = /^(?:pop|shift)$/.test(methodName);\n\n lodash.prototype[methodName] = function() {\n var args = arguments;\n if (retUnwrapped && !this.__chain__) {\n var value = this.value();\n return func.apply(isArray(value) ? value : [], args);\n }\n return this[chainName](function(value) {\n return func.apply(isArray(value) ? value : [], args);\n });\n };\n });\n\n // Map minified method names to their real names.\n baseForOwn(LazyWrapper.prototype, function(func, methodName) {\n var lodashFunc = lodash[methodName];\n if (lodashFunc) {\n var key = lodashFunc.name + '';\n if (!hasOwnProperty.call(realNames, key)) {\n realNames[key] = [];\n }\n realNames[key].push({ 'name': methodName, 'func': lodashFunc });\n }\n });\n\n realNames[createHybrid(undefined, WRAP_BIND_KEY_FLAG).name] = [{\n 'name': 'wrapper',\n 'func': undefined\n }];\n\n // Add methods to `LazyWrapper`.\n LazyWrapper.prototype.clone = lazyClone;\n LazyWrapper.prototype.reverse = lazyReverse;\n LazyWrapper.prototype.value = lazyValue;\n\n // Add chain sequence methods to the `lodash` wrapper.\n lodash.prototype.at = wrapperAt;\n lodash.prototype.chain = wrapperChain;\n lodash.prototype.commit = wrapperCommit;\n lodash.prototype.next = wrapperNext;\n lodash.prototype.plant = wrapperPlant;\n lodash.prototype.reverse = wrapperReverse;\n lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue;\n\n // Add lazy aliases.\n lodash.prototype.first = lodash.prototype.head;\n\n if (symIterator) {\n lodash.prototype[symIterator] = wrapperToIterator;\n }\n return lodash;\n });\n\n /*--------------------------------------------------------------------------*/\n\n // Export lodash.\n var _ = runInContext();\n\n // Some AMD build optimizers, like r.js, check for condition patterns like:\n if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {\n // Expose Lodash on the global object to prevent errors when Lodash is\n // loaded by a script tag in the presence of an AMD loader.\n // See http://requirejs.org/docs/errors.html#mismatch for more details.\n // Use `_.noConflict` to remove Lodash from the global object.\n root._ = _;\n\n // Define as an anonymous module so, through path mapping, it can be\n // referenced as the \"underscore\" module.\n define(function() {\n return _;\n });\n }\n // Check for `exports` after `define` in case a build optimizer adds it.\n else if (freeModule) {\n // Export for Node.js.\n (freeModule.exports = _)._ = _;\n // Export for CommonJS support.\n freeExports._ = _;\n }\n else {\n // Export to the global object.\n root._ = _;\n }\n}.call(this));\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', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n };\n\n return hooks;\n\n})));\n","/**\n * @license React\n * react-dom.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/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+\"Capture\",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||\"undefined\"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for(\"react.element\"),wa=Symbol.for(\"react.portal\"),ya=Symbol.for(\"react.fragment\"),za=Symbol.for(\"react.strict_mode\"),Aa=Symbol.for(\"react.profiler\"),Ba=Symbol.for(\"react.provider\"),Ca=Symbol.for(\"react.context\"),Da=Symbol.for(\"react.forward_ref\"),Ea=Symbol.for(\"react.suspense\"),Fa=Symbol.for(\"react.suspense_list\"),Ga=Symbol.for(\"react.memo\"),Ha=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ia=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ja=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=Ja&&a[Ja]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||\"\"}return\"\\n\"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return\"\";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}function kb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nfunction lb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar mb,nb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{mb=mb||document.createElement(\"div\");mb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,\"passive\",{get:function(){Lb=!0}});window.addEventListener(\"test\",Mb,Mb);window.removeEventListener(\"test\",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&\"function\"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a,b){switch(a){case \"focusin\":case \"focusout\":Lc=null;break;case \"dragenter\":case \"dragleave\":Mc=null;break;case \"mouseover\":case \"mouseout\":Nc=null;break;case \"pointerover\":case \"pointerout\":Oc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case \"focusin\":return Lc=Tc(Lc,a,b,c,d,e),!0;case \"dragenter\":return Mc=Tc(Mc,a,b,c,d,e),!0;case \"mouseover\":return Nc=Tc(Nc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&\"CompositionEvent\"in window,be=null;ia&&\"documentMode\"in document&&(be=document.documentMode);var ce=ia&&\"TextEvent\"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var We={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},Xe={},Ye={};\nia&&(Ye=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),\"TransitionEvent\"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze(\"animationend\"),af=Ze(\"animationiteration\"),bf=Ze(\"animationstart\"),cf=Ze(\"transitionend\"),df=new Map,ef=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,\"on\"+kf)}ff($e,\"onAnimationEnd\");ff(af,\"onAnimationIteration\");ff(bf,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(cf,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var lf=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),mf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+\"__bubble\";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){\"selectionchange\"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf(\"selectionchange\",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":n=\"focus\";k=Fd;break;case \"focusout\":n=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var t=0!==(b&4),J=!t&&\"scroll\"===a,x=t?null!==h?h+\"Capture\":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F=\"onMouseLeave\";x=\"onMouseEnter\";w=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)t=Td,F=\"onPointerLeave\",x=\"onPointerEnter\",w=\"pointer\";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+\"leave\",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+\"enter\",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);\"focusout\"===a&&(xa=h._wrapperState)&&\nxa.controlled&&\"number\"===h.type&&cb(h,\"number\",h.value)}xa=d?ue(d):window;switch(a){case \"focusin\":if(me(xa)||\"true\"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case \"compositionstart\":var ba=\"onCompositionStart\";break b;case \"compositionend\":ba=\"onCompositionEnd\";\nbreak b;case \"compositionupdate\":ba=\"onCompositionUpdate\";break b}ba=void 0}else ie?ge(a,c)&&(ba=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(ba=\"onCompositionStart\");ba&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==ba?\"onCompositionEnd\"===ba&&ie&&($a=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),\n0<d.length&&(e=new Ld(\"onBeforeInput\",\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(xf,\"\\n\").replace(yf,\"\")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff=\"function\"===typeof setTimeout?setTimeout:void 0,Gf=\"function\"===typeof clearTimeout?clearTimeout:void 0,Hf=\"function\"===typeof Promise?Promise:void 0,Jf=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of=\"__reactFiber$\"+Nf,Pf=\"__reactProps$\"+Nf,uf=\"__reactContainer$\"+Nf,of=\"__reactEvents$\"+Nf,Qf=\"__reactListeners$\"+Nf,Rf=\"__reactHandles$\"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg=\"\";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;function Lg(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}var Mg=Uf(null),Ng=null,Og=null,Pg=null;function Qg(){Pg=Og=Ng=null}function Rg(a){var b=Mg.current;E(Mg);a._currentValue=b}\nfunction Sg(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}function Tg(a,b){Ng=a;Pg=Og=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(Ug=!0),a.firstContext=null)}\nfunction Vg(a){var b=a._currentValue;if(Pg!==a)if(a={context:a,memoizedValue:b,next:null},null===Og){if(null===Ng)throw Error(p(308));Og=a;Ng.dependencies={lanes:0,firstContext:a}}else Og=Og.next=a;return b}var Wg=null;function Xg(a){null===Wg?Wg=[a]:Wg.push(a)}function Yg(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,Xg(b)):(c.next=e.next,e.next=c);b.interleaved=c;return Zg(a,d)}\nfunction Zg(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var $g=!1;function ah(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction bh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function ch(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction dh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return Zg(a,c)}e=d.interleaved;null===e?(b.next=b,Xg(d)):(b.next=e.next,e.next=b);d.interleaved=b;return Zg(a,c)}function eh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction fh(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction gh(a,b,c,d){var e=a.updateQueue;$g=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:$g=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);hh|=g;a.lanes=g;a.memoizedState=q}}\nfunction ih(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var jh=(new aa.Component).refs;function kh(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar nh={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=L(),d=\nlh(a),e=ch(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=dh(a,e,d);null!==b&&(mh(b,a,d,c),eh(b,a,d))}};function oh(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction ph(a,b,c){var d=!1,e=Vf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=Vg(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=nh;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction qh(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&nh.enqueueReplaceState(b,b.state,null)}\nfunction rh(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=jh;ah(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=Vg(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(kh(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&nh.enqueueReplaceState(e,e.state,null),gh(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}\nfunction sh(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;b===jh&&(b=e.refs={});null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction th(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function uh(a){var b=a._init;return b(a._payload)}\nfunction vh(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=wh(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=xh(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Ha&&uh(f)===b.type))return d=e(b,c.props),d.ref=sh(a,b,c),d.return=a,d;d=yh(c.type,c.key,c.props,null,a.mode,d);d.ref=sh(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=zh(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Ah(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=xh(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=yh(b.type,b.key,b.props,null,a.mode,c),\nc.ref=sh(a,null,b),c.return=a,c;case wa:return b=zh(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Ah(b,a.mode,c,null),b.return=a,b;th(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);th(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);th(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;a<Nh.length;a++)Nh[a]._workInProgressVersionPrimary=null;Nh.length=0}var Ph=ua.ReactCurrentDispatcher,Qh=ua.ReactCurrentBatchConfig,Rh=0,N=null,O=null,P=null,Sh=!1,Th=!1,Uh=0,Vh=0;function Q(){throw Error(p(321));}function Wh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Xh(a,b,c,d,e,f){Rh=f;N=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Ph.current=null===a||null===a.memoizedState?Yh:Zh;a=c(d,e);if(Th){f=0;do{Th=!1;Uh=0;if(25<=f)throw Error(p(301));f+=1;P=O=null;b.updateQueue=null;Ph.current=$h;a=c(d,e)}while(Th)}Ph.current=ai;b=null!==O&&null!==O.next;Rh=0;P=O=N=null;Sh=!1;if(b)throw Error(p(300));return a}function bi(){var a=0!==Uh;Uh=0;return a}\nfunction ci(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function di(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(p(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction ei(a,b){return\"function\"===typeof b?b(a):b}\nfunction fi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Rh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;N.lanes|=m;hh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(Ug=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,N.lanes|=f,hh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction gi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(Ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function hi(){}\nfunction ii(a,b){var c=N,d=di(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,Ug=!0);d=d.queue;ji(ki.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==P&&P.memoizedState.tag&1){c.flags|=2048;li(9,mi.bind(null,c,d,e,b),void 0,null);if(null===R)throw Error(p(349));0!==(Rh&30)||ni(c,b,e)}return e}function ni(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction mi(a,b,c,d){b.value=c;b.getSnapshot=d;oi(b)&&pi(a)}function ki(a,b,c){return c(function(){oi(b)&&pi(a)})}function oi(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function pi(a){var b=Zg(a,1);null!==b&&mh(b,a,1,-1)}\nfunction qi(a){var b=ci();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:ei,lastRenderedState:a};b.queue=a;a=a.dispatch=ri.bind(null,N,a);return[b.memoizedState,a]}\nfunction li(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function si(){return di().memoizedState}function ti(a,b,c,d){var e=ci();N.flags|=a;e.memoizedState=li(1|b,c,void 0,void 0===d?null:d)}\nfunction ui(a,b,c,d){var e=di();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&Wh(d,g.deps)){e.memoizedState=li(b,c,f,d);return}}N.flags|=a;e.memoizedState=li(1|b,c,f,d)}function vi(a,b){return ti(8390656,8,a,b)}function ji(a,b){return ui(2048,8,a,b)}function wi(a,b){return ui(4,2,a,b)}function xi(a,b){return ui(4,4,a,b)}\nfunction yi(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function zi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ui(4,4,yi.bind(null,b,a),c)}function Ai(){}function Bi(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Ci(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Di(a,b,c){if(0===(Rh&21))return a.baseState&&(a.baseState=!1,Ug=!0),a.memoizedState=c;He(c,b)||(c=yc(),N.lanes|=c,hh|=c,a.baseState=!0);return b}function Ei(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Vh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Zh={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:fi,useRef:si,useState:function(){return fi(ei)},\nuseDebugValue:Ai,useDeferredValue:function(a){var b=di();return Di(b,O.memoizedState,a)},useTransition:function(){var a=fi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1},$h={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:gi,useRef:si,useState:function(){return gi(ei)},useDebugValue:Ai,useDeferredValue:function(a){var b=di();return null===\nO?b.memoizedState=a:Di(b,O.memoizedState,a)},useTransition:function(){var a=gi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1};function Ki(a,b){try{var c=\"\",d=b;do c+=Pa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e,digest:null}}function Li(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}\nfunction Mi(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Ni=\"function\"===typeof WeakMap?WeakMap:Map;function Oi(a,b,c){c=ch(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Pi||(Pi=!0,Qi=d);Mi(a,b)};return c}\nfunction Ri(a,b,c){c=ch(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Mi(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Mi(a,b);\"function\"!==typeof d&&(null===Si?Si=new Set([this]):Si.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Ti(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Ni;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ui.bind(null,a,b,c),b.then(a,a))}function Vi(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Wi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=ch(-1,1),b.tag=2,dh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Xi=ua.ReactCurrentOwner,Ug=!1;function Yi(a,b,c,d){b.child=null===a?Ch(b,null,c,d):Bh(b,a.child,c,d)}\nfunction Zi(a,b,c,d,e){c=c.render;var f=b.ref;Tg(b,e);d=Xh(a,b,c,d,f,e);c=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&c&&vg(b);b.flags|=1;Yi(a,b,d,e);return b.child}\nfunction aj(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!bj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,cj(a,b,f,d,e);a=yh(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return $i(a,b,e)}b.flags|=1;a=wh(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction cj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(Ug=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(Ug=!0);else return b.lanes=a.lanes,$i(a,b,e)}return dj(a,b,c,d,e)}\nfunction ej(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(fj,gj),gj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(fj,gj),gj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(fj,gj);gj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(fj,gj),gj|=d;Yi(a,b,e,c);return b.child}function hj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function dj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);Tg(b,e);c=Xh(a,b,c,d,f,e);d=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&d&&vg(b);b.flags|=1;Yi(a,b,c,e);return b.child}\nfunction ij(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;Tg(b,e);if(null===b.stateNode)jj(a,b),ph(b,c,d),rh(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=Vg(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&qh(b,g,d,l);$g=!1;var r=b.memoizedState;g.state=r;gh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||$g?(\"function\"===typeof m&&(kh(b,c,m,d),k=b.memoizedState),(h=$g||oh(b,c,h,d,r,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.flags|=4194308)):\n(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;bh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Lg(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=Vg(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&qh(b,g,d,k);$g=!1;r=b.memoizedState;g.state=r;gh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||$g?(\"function\"===typeof y&&(kh(b,c,y,d),n=b.memoizedState),(l=$g||oh(b,c,l,d,r,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return kj(a,b,c,d,f,e)}\nfunction kj(a,b,c,d,e,f){hj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),$i(a,b,f);d=b.stateNode;Xi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Bh(b,a.child,null,f),b.child=Bh(b,null,h,f)):Yi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function lj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);Ih(a,b.containerInfo)}\nfunction mj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Yi(a,b,c,d);return b.child}var nj={dehydrated:null,treeContext:null,retryLane:0};function oj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction pj(a,b,c){var d=b.pendingProps,e=M.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(M,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:\"hidden\",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=qj(g,d,0,null),a=Ah(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=oj(c),b.memoizedState=nj,a):rj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return sj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:\"hidden\",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=wh(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=wh(h,f):(f=Ah(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?oj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=nj;return d}f=a.child;a=f.sibling;d=wh(f,{mode:\"visible\",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction rj(a,b){b=qj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function tj(a,b,c,d){null!==d&&Jg(d);Bh(b,a.child,null,c);a=rj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction sj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Li(Error(p(422))),tj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=qj({mode:\"visible\",children:d.children},e,0,null);f=Ah(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Bh(b,a.child,null,g);b.child.memoizedState=oj(g);b.memoizedState=nj;return f}if(0===(b.mode&1))return tj(a,b,g,null);if(\"$!\"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Li(f,d,void 0);return tj(a,b,g,d)}h=0!==(g&a.childLanes);if(Ug||h){d=R;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,Zg(a,e),mh(d,a,e,-1))}uj();d=Li(Error(p(421)));return tj(a,b,g,d)}if(\"$?\"===e.data)return b.flags|=128,b.child=a.child,b=vj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=rj(b,d.children);b.flags|=4096;return b}function wj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);Sg(a.return,b,c)}\nfunction xj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction yj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Yi(a,b,d.children,c);d=M.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&wj(a,c,b);else if(19===a.tag)wj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(M,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Mh(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);xj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Mh(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}xj(b,!0,c,null,f);break;case \"together\":xj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction jj(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function $i(a,b,c){null!==a&&(b.dependencies=a.dependencies);hh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=wh(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=wh(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction zj(a,b,c){switch(b.tag){case 3:lj(b);Ig();break;case 5:Kh(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:Ih(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Mg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(M,M.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return pj(a,b,c);G(M,M.current&1);a=$i(a,b,c);return null!==a?a.sibling:null}G(M,M.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return yj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(M,M.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,ej(a,b,c)}return $i(a,b,c)}var Aj,Bj,Cj,Dj;\nAj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Bj=function(){};\nCj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;Hh(Eh.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ea.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&D(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Dj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Ej(a,b){if(!I)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Fj(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;Jh();E(Wf);E(H);Oh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Gj(zg),zg=null));Bj(a,b);S(b);return null;case 5:Lh(b);var e=Hh(Gh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Cj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":D(\"cancel\",d);D(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],d);break;case \"source\":D(\"error\",d);break;case \"img\":case \"image\":case \"link\":D(\"error\",\nd);D(\"load\",d);break;case \"details\":D(\"toggle\",d);break;case \"input\":Za(d,f);D(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};D(\"invalid\",d);break;case \"textarea\":hb(d,f),D(\"invalid\",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=[\"children\",\"\"+h]):ea.hasOwnProperty(g)&&null!=h&&\"onScroll\"===g&&D(\"scroll\",d)}switch(c){case \"input\":Va(d);db(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case \"source\":D(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":D(\"error\",\na);D(\"load\",a);e=d;break;case \"details\":D(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);D(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D(\"invalid\",a);break;case \"textarea\":hb(a,d);e=gb(a,d);D(\"invalid\",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?sb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==\nc||\"\"!==k)&&ob(a,k):\"number\"===typeof k&&ob(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ea.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&D(\"scroll\",a):null!=k&&ta(a,f,k,g))}switch(c){case \"input\":Va(a);db(a,d,!1);break;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Dj(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=Hh(Gh.current);Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(M);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Gj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(M.current&1)?0===T&&(T=3):uj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return Jh(),\nBj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return Rg(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(M);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Ej(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Mh(a);if(null!==g){b.flags|=128;Ej(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(M,M.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Hj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Yj=!1;break a;case 3:X=h.stateNode.containerInfo;Yj=!0;break a;case 4:X=h.stateNode.containerInfo;Yj=!0;break a}h=h.return}if(null===X)throw Error(p(160));ak(f,g,e);X=null;Yj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)ek(b,a),b=b.sibling}\nfunction ek(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:dk(b,a);fk(a);if(d&4){try{Qj(3,a,a.return),Rj(3,a)}catch(t){W(a,a.return,t)}try{Qj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);break;case 5:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,\"\")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{\"input\"===h&&\"radio\"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];\"style\"===m?sb(e,q):\"dangerouslySetInnerHTML\"===m?nb(e,q):\"children\"===m?ob(e,q):ta(e,m,q,l)}switch(h){case \"input\":bb(e,f);break;case \"textarea\":ib(e,f);break;case \"select\":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:\"\",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:dk(b,a);fk(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:dk(b,a);fk(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:dk(b,a);fk(a);break;case 13:dk(b,a);fk(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(gk=B()));d&4&&bk(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,dk(b,a),U=l):dk(b,a);fk(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Qj(4,r,r.return);break;case 1:Mj(r,r.return);var n=r.stateNode;if(\"function\"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Mj(r,r.return);break;case 22:if(null!==r.memoizedState){hk(q);continue}}null!==y?(y.return=r,V=y):hk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty(\"display\")?k.display:null,h.style.display=\nrb(\"display\",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?\"\":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:dk(b,a);fk(a);d&4&&bk(a);break;case 21:break;default:dk(b,\na),fk(a)}}function fk(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Uj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,\"\"),d.flags&=-33);var f=Vj(a);Xj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Vj(a);Wj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function ik(a,b,c){V=a;jk(a,b,c)}\nfunction jk(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Kj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Kj;var l=U;Kj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?kk(e):null!==k?(k.return=g,V=k):kk(e);for(;null!==f;)V=f,jk(f,b,c),f=f.sibling;V=e;Kj=h;U=l}lk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):lk(a,b,c)}}\nfunction lk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Rj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Lg(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&ih(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}ih(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Sj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function hk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction kk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Rj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Sj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Sj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar mk=Math.ceil,nk=ua.ReactCurrentDispatcher,ok=ua.ReactCurrentOwner,pk=ua.ReactCurrentBatchConfig,K=0,R=null,Y=null,Z=0,gj=0,fj=Uf(0),T=0,qk=null,hh=0,rk=0,sk=0,tk=null,uk=null,gk=0,Hj=Infinity,vk=null,Pi=!1,Qi=null,Si=null,wk=!1,xk=null,yk=0,zk=0,Ak=null,Bk=-1,Ck=0;function L(){return 0!==(K&6)?B():-1!==Bk?Bk:Bk=B()}\nfunction lh(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Ck&&(Ck=yc()),Ck;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function mh(a,b,c,d){if(50<zk)throw zk=0,Ak=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==R)a===R&&(0===(K&2)&&(rk|=c),4===T&&Dk(a,Z)),Ek(a,d),1===c&&0===K&&0===(b.mode&1)&&(Hj=B()+500,fg&&jg())}\nfunction Ek(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===R?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Fk.bind(null,a)):hg(Fk.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Gk(c,Hk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Hk(a,b){Bk=-1;Ck=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Ik()&&a.callbackNode!==c)return null;var d=uc(a,a===R?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Jk(a,d);else{b=d;var e=K;K|=2;var f=Kk();if(R!==a||Z!==b)vk=null,Hj=B()+500,Lk(a,b);do try{Mk();break}catch(h){Nk(a,h)}while(1);Qg();nk.current=f;K=e;null!==Y?b=0:(R=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Ok(a,e)));if(1===b)throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;if(6===b)Dk(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Pk(e)&&(b=Jk(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Ok(a,f))),1===b))throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Qk(a,uk,vk);break;case 3:Dk(a,d);if((d&130023424)===d&&(b=gk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){L();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),b);break}Qk(a,uk,vk);break;case 4:Dk(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),d);break}Qk(a,uk,vk);break;case 5:Qk(a,uk,vk);break;default:throw Error(p(329));}}}Ek(a,B());return a.callbackNode===c?Hk.bind(null,a):null}\nfunction Ok(a,b){var c=tk;a.current.memoizedState.isDehydrated&&(Lk(a,b).flags|=256);a=Jk(a,b);2!==a&&(b=uk,uk=c,null!==b&&Gj(b));return a}function Gj(a){null===uk?uk=a:uk.push.apply(uk,a)}\nfunction Pk(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Dk(a,b){b&=~sk;b&=~rk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Fk(a){if(0!==(K&6))throw Error(p(327));Ik();var b=uc(a,0);if(0===(b&1))return Ek(a,B()),null;var c=Jk(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Ok(a,d))}if(1===c)throw c=qk,Lk(a,0),Dk(a,b),Ek(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Qk(a,uk,vk);Ek(a,B());return null}\nfunction Rk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Hj=B()+500,fg&&jg())}}function Sk(a){null!==xk&&0===xk.tag&&0===(K&6)&&Ik();var b=K;K|=1;var c=pk.transition,d=C;try{if(pk.transition=null,C=1,a)return a()}finally{C=d,pk.transition=c,K=b,0===(K&6)&&jg()}}function Ij(){gj=fj.current;E(fj)}\nfunction Lk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:Jh();E(Wf);E(H);Oh();break;case 5:Lh(d);break;case 4:Jh();break;case 13:E(M);break;case 19:E(M);break;case 10:Rg(d.type._context);break;case 22:case 23:Ij()}c=c.return}R=a;Y=a=wh(a.current,null);Z=gj=b;T=0;qk=null;sk=rk=hh=0;uk=tk=null;if(null!==Wg){for(b=\n0;b<Wg.length;b++)if(c=Wg[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}Wg=null}return a}\nfunction Nk(a,b){do{var c=Y;try{Qg();Ph.current=ai;if(Sh){for(var d=N.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Sh=!1}Rh=0;P=O=N=null;Th=!1;Uh=0;ok.current=null;if(null===c||null===c.return){T=1;qk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Vi(g);if(null!==y){y.flags&=-257;Wi(y,g,h,f,b);y.mode&1&&Ti(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Ti(f,l,b);uj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Vi(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Wi(J,g,h,f,b);Jg(Ki(k,h));break a}}f=k=Ki(k,h);4!==T&&(T=2);null===tk?tk=[f]:tk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Oi(f,k,b);fh(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&(\"function\"===typeof w.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===Si||!Si.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Ri(f,h,b);fh(f,F);break a}}f=f.return}while(null!==f)}Tk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Kk(){var a=nk.current;nk.current=ai;return null===a?ai:a}\nfunction uj(){if(0===T||3===T||2===T)T=4;null===R||0===(hh&268435455)&&0===(rk&268435455)||Dk(R,Z)}function Jk(a,b){var c=K;K|=2;var d=Kk();if(R!==a||Z!==b)vk=null,Lk(a,b);do try{Uk();break}catch(e){Nk(a,e)}while(1);Qg();K=c;nk.current=d;if(null!==Y)throw Error(p(261));R=null;Z=0;return T}function Uk(){for(;null!==Y;)Vk(Y)}function Mk(){for(;null!==Y&&!cc();)Vk(Y)}function Vk(a){var b=Wk(a.alternate,a,gj);a.memoizedProps=a.pendingProps;null===b?Tk(a):Y=b;ok.current=null}\nfunction Tk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Fj(c,b,gj),null!==c){Y=c;return}}else{c=Jj(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Qk(a,b,c){var d=C,e=pk.transition;try{pk.transition=null,C=1,Xk(a,b,c,d)}finally{pk.transition=e,C=d}return null}\nfunction Xk(a,b,c,d){do Ik();while(null!==xk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===R&&(Y=R=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||wk||(wk=!0,Gk(hc,function(){Ik();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=pk.transition;pk.transition=null;\nvar g=C;C=1;var h=K;K|=4;ok.current=null;Pj(a,c);ek(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;ik(c,a,e);dc();K=h;C=g;pk.transition=f}else a.current=c;wk&&(wk=!1,xk=a,yk=e);f=a.pendingLanes;0===f&&(Si=null);mc(c.stateNode,d);Ek(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Pi)throw Pi=!1,a=Qi,Qi=null,a;0!==(yk&1)&&0!==a.tag&&Ik();f=a.pendingLanes;0!==(f&1)?a===Ak?zk++:(zk=0,Ak=a):zk=0;jg();return null}\nfunction Ik(){if(null!==xk){var a=Dc(yk),b=pk.transition,c=C;try{pk.transition=null;C=16>a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Qj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Tj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Qj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Rj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&\"function\"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,pk.transition=b}}return!1}function Yk(a,b,c){b=Ki(c,b);b=Oi(a,b,1);a=dh(a,b,1);b=L();null!==a&&(Ac(a,1,b),Ek(a,b))}\nfunction W(a,b,c){if(3===a.tag)Yk(a,a,c);else for(;null!==b;){if(3===b.tag){Yk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Si||!Si.has(d))){a=Ki(c,a);a=Ri(b,a,1);b=dh(b,a,1);a=L();null!==b&&(Ac(b,1,a),Ek(b,a));break}}b=b.return}}\nfunction Ui(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=L();a.pingedLanes|=a.suspendedLanes&c;R===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction el(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction fl(a,b,c,d,e,f,g,h,k){a=cl(c,d,!0,a,e,f,g,h,k);a.context=el(null);c=a.current;d=L();e=lh(c);f=ch(d,e);f.callback=void 0!==b&&null!==b?b:null;dh(c,f,e);a.current.lanes=e;Ac(a,e,d);Ek(a,d);return a}function gl(a,b,c,d){var e=b.current,f=L(),g=lh(e);c=el(c);null===b.context?b.context=c:b.pendingContext=c;b=ch(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=dh(e,b,g);null!==a&&(mh(a,e,g,f),eh(a,e,g));return g}\nfunction hl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function il(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function jl(a,b){il(a,b);(a=a.alternate)&&il(a,b)}function kl(){return null}var ll=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ml(a){this._internalRoot=a}\nnl.prototype.render=ml.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));gl(a,b,null,null)};nl.prototype.unmount=ml.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Sk(function(){gl(null,a,null,null)});b[uf]=null}};function nl(a){this._internalRoot=a}\nnl.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function pl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function ql(){}\nfunction rl(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=hl(g);f.call(a)}}var g=fl(b,d,a,0,null,!1,!1,\"\",ql);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Sk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=hl(k);h.call(a)}}var k=cl(a,0,!1,null,null,!1,!1,\"\",ql);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Sk(function(){gl(b,k,c,d)});return k}\nfunction sl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=hl(g);h.call(a)}}gl(b,g,a,e)}else g=rl(c,b,a,e,d);return hl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Ek(b,B()),0===(K&6)&&(Hj=B()+500,jg()))}break;case 13:Sk(function(){var b=Zg(a,1);if(null!==b){var c=L();mh(b,a,1,c)}}),jl(a,1)}};\nFc=function(a){if(13===a.tag){var b=Zg(a,134217728);if(null!==b){var c=L();mh(b,a,134217728,c)}jl(a,134217728)}};Gc=function(a){if(13===a.tag){var b=lh(a),c=Zg(a,b);if(null!==c){var d=L();mh(c,a,b,d)}jl(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case \"input\":bb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Rk;Hb=Sk;\nvar tl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Rk]},ul={findFiberByHostInstance:Wc,bundleType:0,version:\"18.2.0\",rendererPackageName:\"react-dom\"};\nvar vl={bundleType:ul.bundleType,version:ul.version,rendererPackageName:ul.rendererPackageName,rendererConfig:ul.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:ul.findFiberByHostInstance||\nkl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.2.0-next-9e3b772b8-20220608\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var wl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!wl.isDisabled&&wl.supportsFiber)try{kc=wl.inject(vl),lc=wl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!ol(b))throw Error(p(200));return dl(a,b,null,c)};exports.createRoot=function(a,b){if(!ol(a))throw Error(p(299));var c=!1,d=\"\",e=ll;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=cl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ml(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Sk(a)};exports.hydrate=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!ol(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=ll;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=fl(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new nl(b)};exports.render=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!pl(a))throw Error(p(40));return a._reactRootContainer?(Sk(function(){sl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Rk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!pl(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return sl(a,b,c,!1,d)};exports.version=\"18.2.0-next-9e3b772b8-20220608\";\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\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","/**\n * @license React\n * react-jsx-runtime.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 f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\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=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};exports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;\nexports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=function(){throw Error(\"act(...) is not supported in production builds of React.\");};\nexports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};exports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};\nexports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};exports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};\nexports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.2.0\";\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","'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 * @license React\n * scheduler.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';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\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 if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _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 function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nmodule.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw new Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw new Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"c8d22fd1\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"bad-trader-marketing-site:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\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\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkbad_trader_marketing_site\"] = self[\"webpackChunkbad_trader_marketing_site\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\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}","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}","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 _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: any;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. May be either a URL or the pieces of a\n * URL path.\n */\nexport type To = string | Partial<Path>;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an <a href> attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial<Location>;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route (<Route path=\"*\">) since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant<T>(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly<Location> {\n let location: Readonly<Location> = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial<Path>) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial<Path> {\n let parsedPath: Partial<Path> = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\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}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _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, toPropertyKey(descriptor.key), descriptor);\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}","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 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 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}","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}","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 try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\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 return 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 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 return possibleConstructorReturn(this, result);\n };\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 return assertThisInitialized(self);\n}","import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n };\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw new Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw new Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\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 if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\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 function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\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 return obj;\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 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 _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\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 return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\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 var F = function F() {};\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 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 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}","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 _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 type { Location, Path, To } from \"./history\";\nimport { warning, invariant, parsePath } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: any;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n reloadDocument?: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase<LowerCaseFormMethod>;\n\n/**\n * Users can specify either lowercase or uppercase form methods on <Form>,\n * useSubmit(), <fetcher.Form>, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude<FormMethod, \"get\">;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude<V7_FormMethod, \"GET\">;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: any;\n}\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable<unknown> | null;\n\n/**\n * Route loader function signature\n */\nexport interface LoaderFunction {\n (args: LoaderFunctionArgs): Promise<DataFunctionValue> | DataFunctionValue;\n}\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs): Promise<DataFunctionValue> | DataFunctionValue;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionResult?: DataResult;\n defaultShouldRevalidate: boolean;\n }): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record<string, any>;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set<ImmutableRouteKey>([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne<T, Key = keyof T> = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit<T, K> & Required<Pick<T, K>> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction<R extends AgnosticRouteObject> {\n (): Promise<RequireOne<Omit<R, ImmutableRouteKey>>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction<AgnosticBaseRouteObject>;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record<string, AgnosticDataRouteObject | undefined>;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam<Path extends string> =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam<L> | _PathParam<R>\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\ntype PathParam<Path extends string> =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam<Rest>\n : // look for params in the absence of wildcards\n _PathParam<Path>;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey<Segment extends string> =\n // if could not find path params, fallback to `string`\n [PathParam<Segment>] extends [never] ? string : PathParam<Segment>;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params<Key extends string = string> = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params<ParamKey>;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch<string, AgnosticDataRouteObject> {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial<Location> | string,\n basename = \"/\"\n): AgnosticRouteMatch<string, RouteObjectType>[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch<string, RouteObjectType>(\n branches[i],\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n safelyDecodeURI(pathname)\n );\n }\n\n return matches;\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta<RouteObjectType>[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch<RouteObjectType>[] = [],\n parentsMeta: RouteMeta<RouteObjectType>[] = [],\n parentPath = \"\"\n): RouteBranch<RouteObjectType>[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta<RouteObjectType> = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explodes _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch<RouteObjectType>,\n pathname: string\n): AgnosticRouteMatch<ParamKey, RouteObjectType>[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch<ParamKey, RouteObjectType>[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params<ParamKey>,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath<Path extends string>(\n originalPath: Path,\n params: {\n [key in PathParam<Path>]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam<Path>;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:(\\w+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam<Path>];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern<Path extends string = string> {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch<ParamKey extends string = string> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params<ParamKey>;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable<T> = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey<Path>,\n Path extends string\n>(\n pattern: PathPattern<Path> | Path,\n pathname: string\n): PathMatch<ParamKey> | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, paramNames] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = paramNames.reduce<Mutable<Params>>(\n (memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let paramNames: string[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/\\/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"/([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURI(value: string) {\n try {\n return decodeURI(value);\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial<Path>\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in <Link to=\"...\"> and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * <Route path=\"/\">\n * <Route path=\"accounts\" element={<Link to=\"..\"}>\n * </Route>\n *\n * <Route path=\"/\">\n * <Route path=\"accounts\">\n * <Route element={<AccountsLayout />}> // <-- Does not contribute\n * <Route index element={<Link to=\"..\"} /> // <-- Does not contribute\n * </Route\n * </Route>\n * </Route>\n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial<Path>;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `<Link to>` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (isPathRelative || toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how <a href> works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = <Data>(\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise<any> {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set<string> = new Set<string>();\n private controller: AbortController;\n private abortPromise: Promise<void>;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record<string, unknown>;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record<string, unknown>, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise<unknown> | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record<string, unknown>,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n */\nexport class ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n error?: Error;\n internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n DataResult,\n DeferredData,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DeferredResult,\n ErrorResult,\n FormEncType,\n FormMethod,\n DetectErrorBoundaryFunction,\n RedirectResult,\n RouteData,\n AgnosticRouteObject,\n Submission,\n SuccessResult,\n AgnosticRouteMatch,\n ShouldRevalidateFunction,\n RouteManifest,\n ImmutableRouteKey,\n ActionFunction,\n LoaderFunction,\n V7_MutationFormMethod,\n V7_FormMethod,\n HTMLFormMethod,\n MutationFormMethod,\n MapRoutePropertiesFunction,\n} from \"./utils\";\nimport {\n ErrorResponse,\n ResultType,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record<string, number>,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise<void>;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise<void>;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher<TData = any>(key?: string): Fetcher<TData>;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key?: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map<string, AbortController>;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map<string, DeferredData>;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map<string, Fetcher>;\n\n /**\n * Map of current blockers\n */\n blockers: Map<string, Blocker>;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick<RouterState, \"loaderData\" | \"actionData\" | \"errors\">\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_normalizeFormMethod: boolean;\n v7_prependBasename: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial<FutureConfig>;\n hydrationData?: HydrationState;\n window?: Window;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record<string, Headers>;\n actionHeaders: Record<string, Headers>;\n activeDeferreds: Record<string, DeferredData> | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: { requestContext?: unknown }\n ): Promise<StaticHandlerContext | Response>;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise<any>;\n}\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (state: RouterState): void;\n}\n\ninterface UseMatchesMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: unknown;\n handle: unknown;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UseMatchesMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates<TData = any> = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n};\n\nexport type Fetcher<TData = any> =\n FetcherStates<TData>[keyof FetcherStates<TData>];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set<MutationFormMethod>(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set<FormMethod>(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_normalizeFormMethod: false,\n v7_prependBasename: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set<RouterSubscriber>();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record<string, number> | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from <ScrollRestoration /> until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized =\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n !initialMatches.some((m) => m.route.lazy) &&\n // And we have to either have no loaders or have been provided hydrationData\n (!initialMatches.some((m) => m.route.loader) || init.hydrationData != null);\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map<string, AbortController>();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map<string, number>();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set<string>();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map<string, FetchLoadMatch>();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map<string, DeferredData>();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map<string, BlockerFunction>();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location);\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(newState: Partial<RouterState>): void {\n state = {\n ...state,\n ...newState,\n };\n subscribers.forEach((subscriber) => subscriber(state));\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial<Omit<RouterState, \"action\" | \"location\" | \"navigation\">>\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n updateState({\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n });\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise<void> {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponse;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n }\n ): Promise<void> {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n });\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a <Form method=\"post\">\n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionData: RouteData | undefined;\n let pendingError: RouteData | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError,\n };\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n pendingActionData,\n pendingError\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts: { replace?: boolean } = {}\n ): Promise<HandleActionResult> {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace =\n result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, { submission, replace });\n return { shortCircuited: true };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n ): Promise<HandleLoadersResult> {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionData,\n pendingError\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(location, {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n });\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n if (!isUninterruptedRevalidation) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState({\n navigation: loadingNavigation,\n ...(actionData\n ? Object.keys(actionData).length === 0\n ? { actionData: null }\n : { actionData }\n : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n });\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(state, redirect.result, { replace });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getFetcher<TData = any>(key: string): Fetcher<TData> {\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath })\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error);\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, submission);\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(key, routeId, path, match, matches, submission);\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error);\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n let fetcher = getSubmittingFetcher(submission, existingFetcher);\n state.fetchers.set(key, fetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n manifest,\n mapRouteProperties,\n basename\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n let doneFetcher = getDoneFetcher(undefined);\n state.fetchers.set(key, doneFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n return;\n } else {\n fetchRedirectIds.add(key);\n let loadingFetcher = getLoadingFetcher(submission);\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n return startRedirectNavigation(state, actionResult, {\n submission,\n isFetchActionRedirect: true,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n { [match.route.id]: actionResult.data },\n undefined // No need to send through errors since we short circuit above\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(state, redirect.result);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n let didAbortFetchLoads = abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n ...(didAbortFetchLoads || revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n // Put this fetcher into it's loading state\n let loadingFetcher = getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename\n );\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n let doneFetcher = getDoneFetcher(undefined);\n state.fetchers.set(key, doneFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(state, result);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n state.fetchers.delete(key);\n // TODO: In remix, this would reset to IDLE_NAVIGATION if it was a catch -\n // do we need to behave any differently with our non-redirect errors?\n // What if it was a non-redirect Response?\n updateState({\n fetchers: new Map(state.fetchers),\n errors: {\n [boundaryMatch.route.id]: result.error,\n },\n });\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n state: RouterState,\n redirect: RedirectResult,\n {\n submission,\n replace,\n isFetchActionRedirect,\n }: {\n submission?: Submission;\n replace?: boolean;\n isFetchActionRedirect?: boolean;\n } = {}\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(\n state.location,\n redirect.location,\n // TODO: This can be removed once we get rid of useTransition in Remix v2\n {\n _isRedirect: true,\n ...(isFetchActionRedirect ? { _isFetchActionRedirect: true } : {}),\n }\n );\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.reloadDocument) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(redirect.location)) {\n const url = init.history.createURL(redirect.location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(redirect.location);\n } else {\n routerWindow.location.assign(redirect.location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let activeSubmission =\n submission || getSubmissionFromNavigation(state.navigation);\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n if (\n redirectPreserveMethodStatusCodes.has(redirect.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: redirect.location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else if (isFetchActionRedirect) {\n // For a fetch action redirect, we kick off a new loading navigation\n // without the fetcher submission, but we send it along for shouldRevalidate\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation: getLoadingNavigation(redirectLocation),\n fetcherSubmission: activeSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a submission, we will preserve it through the redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n activeSubmission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename\n )\n ),\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n return callLoaderOrAction(\n \"loader\",\n createClientSideRequest(init.history, f.path, f.controller.signal),\n f.match,\n f.matches,\n manifest,\n mapRouteProperties,\n basename\n );\n } else {\n let error: ErrorResult = {\n type: ResultType.error,\n error: getInternalRouterError(404, { pathname: f.path }),\n };\n return error;\n }\n }),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function setFetcherError(key: string, routeId: string, error: any) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n });\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n state.fetchers.delete(key);\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the <ScrollRestoration> component\n function enableScrollRestoration(\n positions: Record<string, number>,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered <ScrollRestoration/>\n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => createUseMatchesMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n router = {\n get basename() {\n return basename;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\n ): Promise<StaticHandlerContext | Response> {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise<any> {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n match\n );\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch\n ): Promise<Omit<StaticHandlerContext, \"location\" | \"basename\"> | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n isRouteRequest: boolean\n ): Promise<Omit<StaticHandlerContext, \"location\" | \"basename\"> | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n { isStaticRequest: true, isRouteRequest, requestContext }\n );\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n { isStaticRequest: true, isRouteRequest, requestContext }\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map<string, DeferredData>();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError,\n activeDeferreds\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set<string>(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction isSubmissionNavigation(\n opts: RouterNavigateOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId != null && relative !== \"path\") {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route. When using relative:path,\n // fromRouteId is ignored since that is always relative to the current\n // location path\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getPathContributingMatches(contextualMatches).map((m) => m.pathnameBase),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: RouterNavigateOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponse;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId?: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n fetchLoadMatches: Map<string, FetchLoadMatch>,\n fetchRedirectIds: Set<string>,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n if (match.route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n if (match.route.loader == null) {\n return false;\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n defaultShouldRevalidate:\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate if fetcher won't be present in the subsequent render\n if (!matches.some((m) => m.route.id === f.routeId)) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n defaultShouldRevalidate: isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: Parameters<ShouldRevalidateFunction>[0]\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record<string, any> = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n basename: string,\n opts: {\n isStaticRequest?: boolean;\n isRouteRequest?: boolean;\n requestContext?: unknown;\n } = {}\n): Promise<DataResult> {\n let resultType;\n let result;\n let onReject: (() => void) | undefined;\n\n let runHandler = (handler: ActionFunction | LoaderFunction) => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([\n handler({\n request,\n params: match.params,\n context: opts.requestContext,\n }),\n abortPromise,\n ]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let values = await Promise.all([\n runHandler(handler),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still run even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, data: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n location = normalizeTo(\n new URL(request.url),\n matches.slice(0, matches.indexOf(match) + 1),\n basename,\n true,\n location\n );\n } else if (!opts.isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\")\n ? new URL(currentUrl.protocol + location)\n : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (opts.isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n reloadDocument: result.headers.get(\"X-Remix-Reload-Document\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (opts.isRouteRequest) {\n let queryRouteResponse: QueryRouteResponse = {\n type:\n resultType === ResultType.error ? ResultType.error : ResultType.data,\n response: result,\n };\n throw queryRouteResponse;\n }\n\n let data: any;\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n data = await result.json();\n } else {\n data = await result.text();\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponse(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds: Map<string, DeferredData>\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record<string, Headers>;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record<string, Headers> = {};\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map<string, DeferredData>\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponse(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return { result, idx: i };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || obj.type === ResultType.error)\n );\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise<SuccessResult | ErrorResult | undefined> {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\n// Note: This should match the format exported by useMatches, so if you change\n// this please also change that :) Eventually we'll DRY this up\nfunction createUseMatchesMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UseMatchesMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id] as unknown,\n handle: route.handle as unknown,\n };\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n \" _hasFetcherDoneAnything \": true,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n \" _hasFetcherDoneAnything \": true,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n \" _hasFetcherDoneAnything \": true,\n };\n return fetcher;\n}\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticRouteMatch,\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n History,\n Location,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n LazyRouteFunction,\n} from \"@remix-run/router\";\nimport type { Action as NavigationType } from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction<RouteObject>;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction<RouteObject>;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch<ParamKey, RouteObjectType> {}\n\nexport interface DataRouteMatch extends RouteMatch<string, DataRouteObject> {}\n\nexport interface DataRouterContextObject extends NavigationContextObject {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext<DataRouterContextObject | null>(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext<TrackedPromise | null>(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level <Router> API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nexport const NavigationContext = React.createContext<NavigationContextObject>(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext<LocationContextObject>(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext<RouteContextObject>({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext<any>(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n IDLE_BLOCKER,\n UNSAFE_getPathContributingMatches as getPathContributingMatches,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n DataRouteMatch,\n} from \"./context\";\nimport {\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n AwaitContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a <Router> component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a <Router>.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a <Router> component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * <NavLink>.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey<Path>,\n Path extends string\n>(pattern: PathPattern<Path> | Path): PathMatch<ParamKey> | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a <Router> component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath<ParamKey, Path>(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters<typeof React.useLayoutEffect>[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by <Link>s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a <Router> component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext<unknown>(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext<Context = unknown>(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by <Outlet> to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n <OutletContext.Provider value={context}>{outlet}</OutletContext.Provider>\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record<string, string | undefined> = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params<ParamsOrKey> : Partial<ParamsOrKey>\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an <Outlet> to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial<Location> | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial<Location> | string,\n dataRouterState?: RemixRouter[\"state\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a <Router> component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different <Routes> under a <Route>\n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // <Routes>\n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // <Route path=\"blog\" element={<Blog />} />\n // <Route path=\"blog/feed\" element={<BlogFeed />} />\n // </Routes>\n //\n // function Blog() {\n // return (\n // <Routes>\n // <Route path=\"post/:id\" element={<Post />} />\n // </Routes>\n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant <Routes> (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under <Route path=\"${parentPath}\">) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent <Route path=\"${parentPath}\"> to <Route ` +\n `path=\"${parentPath === \"/\" ? \"*\" : `${parentPath}/*`}\">.`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`<Routes location>\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an <Outlet /> with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n <LocationContext.Provider\n value={{\n location: {\n pathname: \"/\",\n search: \"\",\n hash: \"\",\n state: null,\n key: \"default\",\n ...location,\n },\n navigationType: NavigationType.Pop,\n }}\n >\n {renderedMatches}\n </LocationContext.Provider>\n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n <p>💿 Hey developer 👋</p>\n <p>\n You can provide a way better UX than this when your app throws errors\n by providing your own <code style={codeStyles}>ErrorBoundary</code> or{\" \"}\n <code style={codeStyles}>errorElement</code> prop on your route.\n </p>\n </>\n );\n }\n\n return (\n <>\n <h2>Unexpected Application Error!</h2>\n <h3 style={{ fontStyle: \"italic\" }}>{message}</h3>\n {stack ? <pre style={preStyles}>{stack}</pre> : null}\n {devInfo}\n </>\n );\n}\n\nconst defaultErrorElement = <DefaultErrorComponent />;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error || state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error ? (\n <RouteContext.Provider value={this.props.routeContext}>\n <RouteErrorContext.Provider\n value={this.state.error}\n children={this.props.component}\n />\n </RouteContext.Provider>\n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch<string, RouteObject>;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n <RouteContext.Provider value={routeContext}>\n {children}\n </RouteContext.Provider>\n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id]\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n let error = match.route.id ? errors?.[match.route.id] : null;\n // Only data routers handle errors\n let errorElement: React.ReactNode | null = null;\n if (dataRouterState) {\n errorElement = match.route.errorElement || defaultErrorElement;\n }\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `<Route Component={...}>` in `<Routes>` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = <match.route.Component />;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n <RenderedRoute\n match={match}\n routeContext={{\n outlet,\n matches,\n isDataRoute: dataRouterState != null,\n }}\n children={children}\n />\n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n <RenderErrorBoundary\n location={dataRouterState.location}\n revalidation={dataRouterState.revalidation}\n component={errorElement}\n error={error}\n children={getChildren()}\n routeContext={{ outlet: null, matches, isDataRoute: true }}\n />\n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches() {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () =>\n matches.map((match) => {\n let { pathname, params } = match;\n // Note: This structure matches that created by createUseMatchesMatch\n // in the @remix-run/router , so if you change this please also change\n // that :) Eventually we'll DRY this up\n return {\n id: match.route.id,\n pathname,\n params,\n data: loaderData[match.route.id] as unknown,\n handle: match.route.handle as unknown,\n };\n }),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n\n let route = React.useContext(RouteContext);\n invariant(route, `useActionData must be used inside a RouteContext`);\n\n return Object.values(state?.actionData || {})[0];\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor <Await /> value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor <Await /> value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback<BlockerFunction>(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record<string, boolean> = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import * as React from \"react\";\nimport type {\n TrackedPromise,\n InitialEntry,\n Location,\n MemoryHistory,\n Router as RemixRouter,\n To,\n LazyRouteFunction,\n RelativeRoutingType,\n RouterState,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n AbortedDeferredError,\n createMemoryHistory,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n UNSAFE_getPathContributingMatches as getPathContributingMatches,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n RouteMatch,\n RouteObject,\n Navigator,\n NonIndexRouteObject,\n} from \"./context\";\nimport {\n LocationContext,\n NavigationContext,\n DataRouterContext,\n DataRouterStateContext,\n AwaitContext,\n RouteContext,\n} from \"./context\";\nimport {\n useAsyncValue,\n useInRouterContext,\n useNavigate,\n useOutlet,\n useRoutes,\n _renderMatches,\n useRoutesImpl,\n useLocation,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n future?: FutureConfig;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/<Navigate>)\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n let setState = React.useCallback(\n (newState: RouterState) => {\n v7_startTransition && startTransitionImpl\n ? startTransitionImpl(() => setStateImpl(newState))\n : setStateImpl(newState);\n },\n [setStateImpl, v7_startTransition]\n );\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a <script> here\n // containing the hydrated server-side staticContext (from StaticRouterProvider).\n // useId relies on the component tree structure to generate deterministic id's\n // so we need to ensure it remains the same on the client even though\n // we don't need the <script> tag\n return (\n <>\n <DataRouterContext.Provider value={dataRouterContext}>\n <DataRouterStateContext.Provider value={state}>\n <Router\n basename={basename}\n location={state.location}\n navigationType={state.historyAction}\n navigator={navigator}\n >\n {state.initialized ? (\n <DataRoutes routes={router.routes} state={state} />\n ) : (\n fallbackElement\n )}\n </Router>\n </DataRouterStateContext.Provider>\n </DataRouterContext.Provider>\n {null}\n </>\n );\n}\n\nfunction DataRoutes({\n routes,\n state,\n}: {\n routes: DataRouteObject[];\n state: RouterState;\n}): React.ReactElement | null {\n return useRoutesImpl(routes, undefined, state);\n}\n\nexport interface MemoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n future?: FutureConfig;\n}\n\n/**\n * A <Router> that stores all entries in memory.\n *\n * @see https://reactrouter.com/router-components/memory-router\n */\nexport function MemoryRouter({\n basename,\n children,\n initialEntries,\n initialIndex,\n future,\n}: MemoryRouterProps): React.ReactElement {\n let historyRef = React.useRef<MemoryHistory>();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({\n initialEntries,\n initialIndex,\n v5Compat: true,\n });\n }\n\n let history = historyRef.current;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location,\n });\n let { v7_startTransition } = future || {};\n let setState = React.useCallback(\n (newState: { action: NavigationType; location: Location }) => {\n v7_startTransition && startTransitionImpl\n ? startTransitionImpl(() => setStateImpl(newState))\n : setStateImpl(newState);\n },\n [setStateImpl, v7_startTransition]\n );\n\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n />\n );\n}\n\nexport interface NavigateProps {\n to: To;\n replace?: boolean;\n state?: any;\n relative?: RelativeRoutingType;\n}\n\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/components/navigate\n */\nexport function Navigate({\n to,\n replace,\n state,\n relative,\n}: NavigateProps): null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n `<Navigate> may be used only in the context of a <Router> component.`\n );\n\n warning(\n !React.useContext(NavigationContext).static,\n `<Navigate> must not be used on the initial render in a <StaticRouter>. ` +\n `This is a no-op, but you should modify your code so the <Navigate> is ` +\n `only ever rendered in response to some user interaction or state change.`\n );\n\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let navigate = useNavigate();\n\n // Resolve the path outside of the effect so that when effects run twice in\n // StrictMode they navigate to the same place\n let path = resolveTo(\n to,\n getPathContributingMatches(matches).map((match) => match.pathnameBase),\n locationPathname,\n relative === \"path\"\n );\n let jsonPath = JSON.stringify(path);\n\n React.useEffect(\n () => navigate(JSON.parse(jsonPath), { replace, state, relative }),\n [navigate, jsonPath, relative, replace, state]\n );\n\n return null;\n}\n\nexport interface OutletProps {\n context?: unknown;\n}\n\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/components/outlet\n */\nexport function Outlet(props: OutletProps): React.ReactElement | null {\n return useOutlet(props.context);\n}\n\nexport interface PathRouteProps {\n caseSensitive?: NonIndexRouteObject[\"caseSensitive\"];\n path?: NonIndexRouteObject[\"path\"];\n id?: NonIndexRouteObject[\"id\"];\n lazy?: LazyRouteFunction<NonIndexRouteObject>;\n loader?: NonIndexRouteObject[\"loader\"];\n action?: NonIndexRouteObject[\"action\"];\n hasErrorBoundary?: NonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: NonIndexRouteObject[\"shouldRevalidate\"];\n handle?: NonIndexRouteObject[\"handle\"];\n index?: false;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n}\n\nexport interface LayoutRouteProps extends PathRouteProps {}\n\nexport interface IndexRouteProps {\n caseSensitive?: IndexRouteObject[\"caseSensitive\"];\n path?: IndexRouteObject[\"path\"];\n id?: IndexRouteObject[\"id\"];\n lazy?: LazyRouteFunction<IndexRouteObject>;\n loader?: IndexRouteObject[\"loader\"];\n action?: IndexRouteObject[\"action\"];\n hasErrorBoundary?: IndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: IndexRouteObject[\"shouldRevalidate\"];\n handle?: IndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n}\n\nexport type RouteProps = PathRouteProps | LayoutRouteProps | IndexRouteProps;\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/components/route\n */\nexport function Route(_props: RouteProps): React.ReactElement | null {\n invariant(\n false,\n `A <Route> is only ever to be used as the child of <Routes> element, ` +\n `never rendered directly. Please wrap your <Route> in a <Routes>.`\n );\n}\n\nexport interface RouterProps {\n basename?: string;\n children?: React.ReactNode;\n location: Partial<Location> | string;\n navigationType?: NavigationType;\n navigator: Navigator;\n static?: boolean;\n}\n\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a <Router> directly. Instead, you'll render a\n * router that is more specific to your environment such as a <BrowserRouter>\n * in web browsers or a <StaticRouter> for server rendering.\n *\n * @see https://reactrouter.com/router-components/router\n */\nexport function Router({\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = NavigationType.Pop,\n navigator,\n static: staticProp = false,\n}: RouterProps): React.ReactElement | null {\n invariant(\n !useInRouterContext(),\n `You cannot render a <Router> inside another <Router>.` +\n ` You should never have more than one in your app.`\n );\n\n // Preserve trailing slashes on basename, so we can let the user control\n // the enforcement of trailing slashes throughout the app\n let basename = basenameProp.replace(/^\\/*/, \"/\");\n let navigationContext = React.useMemo(\n () => ({ basename, navigator, static: staticProp }),\n [basename, navigator, staticProp]\n );\n\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\",\n } = locationProp;\n\n let locationContext = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n\n if (trailingPathname == null) {\n return null;\n }\n\n return {\n location: {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key,\n },\n navigationType,\n };\n }, [basename, pathname, search, hash, state, key, navigationType]);\n\n warning(\n locationContext != null,\n `<Router basename=\"${basename}\"> is not able to match the URL ` +\n `\"${pathname}${search}${hash}\" because it does not start with the ` +\n `basename, so the <Router> won't render anything.`\n );\n\n if (locationContext == null) {\n return null;\n }\n\n return (\n <NavigationContext.Provider value={navigationContext}>\n <LocationContext.Provider children={children} value={locationContext} />\n </NavigationContext.Provider>\n );\n}\n\nexport interface RoutesProps {\n children?: React.ReactNode;\n location?: Partial<Location> | string;\n}\n\n/**\n * A container for a nested tree of <Route> elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/components/routes\n */\nexport function Routes({\n children,\n location,\n}: RoutesProps): React.ReactElement | null {\n return useRoutes(createRoutesFromChildren(children), location);\n}\n\nexport interface AwaitResolveRenderFunction {\n (data: Awaited<any>): React.ReactNode;\n}\n\nexport interface AwaitProps {\n children: React.ReactNode | AwaitResolveRenderFunction;\n errorElement?: React.ReactNode;\n resolve: TrackedPromise | any;\n}\n\n/**\n * Component to use for rendering lazily loaded data from returning defer()\n * in a loader function\n */\nexport function Await({ children, errorElement, resolve }: AwaitProps) {\n return (\n <AwaitErrorBoundary resolve={resolve} errorElement={errorElement}>\n <ResolveAwait>{children}</ResolveAwait>\n </AwaitErrorBoundary>\n );\n}\n\ntype AwaitErrorBoundaryProps = React.PropsWithChildren<{\n errorElement?: React.ReactNode;\n resolve: TrackedPromise | any;\n}>;\n\ntype AwaitErrorBoundaryState = {\n error: any;\n};\n\nenum AwaitRenderStatus {\n pending,\n success,\n error,\n}\n\nconst neverSettledPromise = new Promise(() => {});\n\nclass AwaitErrorBoundary extends React.Component<\n AwaitErrorBoundaryProps,\n AwaitErrorBoundaryState\n> {\n constructor(props: AwaitErrorBoundaryProps) {\n super(props);\n this.state = { error: null };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"<Await> caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n let { children, errorElement, resolve } = this.props;\n\n let promise: TrackedPromise | null = null;\n let status: AwaitRenderStatus = AwaitRenderStatus.pending;\n\n if (!(resolve instanceof Promise)) {\n // Didn't get a promise - provide as a resolved promise\n status = AwaitRenderStatus.success;\n promise = Promise.resolve();\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n Object.defineProperty(promise, \"_data\", { get: () => resolve });\n } else if (this.state.error) {\n // Caught a render error, provide it as a rejected promise\n status = AwaitRenderStatus.error;\n let renderError = this.state.error;\n promise = Promise.reject().catch(() => {}); // Avoid unhandled rejection warnings\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n Object.defineProperty(promise, \"_error\", { get: () => renderError });\n } else if ((resolve as TrackedPromise)._tracked) {\n // Already tracked promise - check contents\n promise = resolve;\n status =\n promise._error !== undefined\n ? AwaitRenderStatus.error\n : promise._data !== undefined\n ? AwaitRenderStatus.success\n : AwaitRenderStatus.pending;\n } else {\n // Raw (untracked) promise - track it\n status = AwaitRenderStatus.pending;\n Object.defineProperty(resolve, \"_tracked\", { get: () => true });\n promise = resolve.then(\n (data: any) =>\n Object.defineProperty(resolve, \"_data\", { get: () => data }),\n (error: any) =>\n Object.defineProperty(resolve, \"_error\", { get: () => error })\n );\n }\n\n if (\n status === AwaitRenderStatus.error &&\n promise._error instanceof AbortedDeferredError\n ) {\n // Freeze the UI by throwing a never resolved promise\n throw neverSettledPromise;\n }\n\n if (status === AwaitRenderStatus.error && !errorElement) {\n // No errorElement, throw to the nearest route-level error boundary\n throw promise._error;\n }\n\n if (status === AwaitRenderStatus.error) {\n // Render via our errorElement\n return <AwaitContext.Provider value={promise} children={errorElement} />;\n }\n\n if (status === AwaitRenderStatus.success) {\n // Render children with resolved value\n return <AwaitContext.Provider value={promise} children={children} />;\n }\n\n // Throw to the suspense boundary\n throw promise;\n }\n}\n\n/**\n * @private\n * Indirection to leverage useAsyncValue for a render-prop API on <Await>\n */\nfunction ResolveAwait({\n children,\n}: {\n children: React.ReactNode | AwaitResolveRenderFunction;\n}) {\n let data = useAsyncValue();\n let toRender = typeof children === \"function\" ? children(data) : children;\n return <>{toRender}</>;\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `<Route>` element or an array of them. Used internally by\n * `<Routes>` to create a route config from its children.\n *\n * @see https://reactrouter.com/utils/create-routes-from-children\n */\nexport function createRoutesFromChildren(\n children: React.ReactNode,\n parentPath: number[] = []\n): RouteObject[] {\n let routes: RouteObject[] = [];\n\n React.Children.forEach(children, (element, index) => {\n if (!React.isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n\n let treePath = [...parentPath, index];\n\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(\n routes,\n createRoutesFromChildren(element.props.children, treePath)\n );\n return;\n }\n\n invariant(\n element.type === Route,\n `[${\n typeof element.type === \"string\" ? element.type : element.type.name\n }] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`\n );\n\n invariant(\n !element.props.index || !element.props.children,\n \"An index route cannot have child routes.\"\n );\n\n let route: RouteObject = {\n id: element.props.id || treePath.join(\"-\"),\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n Component: element.props.Component,\n index: element.props.index,\n path: element.props.path,\n loader: element.props.loader,\n action: element.props.action,\n errorElement: element.props.errorElement,\n ErrorBoundary: element.props.ErrorBoundary,\n hasErrorBoundary:\n element.props.ErrorBoundary != null ||\n element.props.errorElement != null,\n shouldRevalidate: element.props.shouldRevalidate,\n handle: element.props.handle,\n lazy: element.props.lazy,\n };\n\n if (element.props.children) {\n route.children = createRoutesFromChildren(\n element.props.children,\n treePath\n );\n }\n\n routes.push(route);\n });\n\n return routes;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nexport function renderMatches(\n matches: RouteMatch[] | null\n): React.ReactElement | null {\n return _renderMatches(matches);\n}\n","import * as React from \"react\";\nimport type {\n ActionFunction,\n ActionFunctionArgs,\n Blocker,\n BlockerFunction,\n Fetcher,\n HydrationState,\n JsonFunction,\n LoaderFunction,\n LoaderFunctionArgs,\n Location,\n Navigation,\n Params,\n ParamParseKey,\n Path,\n PathMatch,\n PathPattern,\n RedirectFunction,\n RelativeRoutingType,\n Router as RemixRouter,\n ShouldRevalidateFunction,\n To,\n InitialEntry,\n LazyRouteFunction,\n FutureConfig as RouterFutureConfig,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n createPath,\n createRouter,\n defer,\n generatePath,\n isRouteErrorResponse,\n json,\n matchPath,\n matchRoutes,\n parsePath,\n redirect,\n redirectDocument,\n resolvePath,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n AwaitProps,\n MemoryRouterProps,\n NavigateProps,\n OutletProps,\n RouteProps,\n PathRouteProps,\n LayoutRouteProps,\n IndexRouteProps,\n RouterProps,\n RoutesProps,\n RouterProviderProps,\n FutureConfig,\n} from \"./lib/components\";\nimport {\n createRoutesFromChildren,\n renderMatches,\n Await,\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n RouterProvider,\n Routes,\n} from \"./lib/components\";\nimport type {\n DataRouteMatch,\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NavigateOptions,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./lib/context\";\nimport {\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./lib/context\";\nimport type { NavigateFunction } from \"./lib/hooks\";\nimport {\n useBlocker,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigationType,\n useNavigate,\n useOutlet,\n useOutletContext,\n useParams,\n useResolvedPath,\n useRoutes,\n useActionData,\n useAsyncError,\n useAsyncValue,\n useRouteId,\n useLoaderData,\n useMatches,\n useNavigation,\n useRevalidator,\n useRouteError,\n useRouteLoaderData,\n useRoutesImpl,\n} from \"./lib/hooks\";\n\n// Exported for backwards compatibility, but not being used internally anymore\ntype Hash = string;\ntype Pathname = string;\ntype Search = string;\n\n// Expose react-router public API\nexport type {\n ActionFunction,\n ActionFunctionArgs,\n AwaitProps,\n Blocker as unstable_Blocker,\n BlockerFunction as unstable_BlockerFunction,\n DataRouteMatch,\n DataRouteObject,\n Fetcher,\n FutureConfig,\n Hash,\n IndexRouteObject,\n IndexRouteProps,\n JsonFunction,\n LazyRouteFunction,\n LayoutRouteProps,\n LoaderFunction,\n LoaderFunctionArgs,\n Location,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigation,\n Navigator,\n NonIndexRouteObject,\n OutletProps,\n Params,\n ParamParseKey,\n Path,\n PathMatch,\n Pathname,\n PathPattern,\n PathRouteProps,\n RedirectFunction,\n RelativeRoutingType,\n RouteMatch,\n RouteObject,\n RouteProps,\n RouterProps,\n RouterProviderProps,\n RoutesProps,\n Search,\n ShouldRevalidateFunction,\n To,\n};\nexport {\n AbortedDeferredError,\n Await,\n MemoryRouter,\n Navigate,\n NavigationType,\n Outlet,\n Route,\n Router,\n RouterProvider,\n Routes,\n createPath,\n createRoutesFromChildren,\n createRoutesFromChildren as createRoutesFromElements,\n defer,\n isRouteErrorResponse,\n generatePath,\n json,\n matchPath,\n matchRoutes,\n parsePath,\n redirect,\n redirectDocument,\n renderMatches,\n resolvePath,\n useActionData,\n useAsyncError,\n useAsyncValue,\n useBlocker as unstable_useBlocker,\n useHref,\n useInRouterContext,\n useLoaderData,\n useLocation,\n useMatch,\n useMatches,\n useNavigate,\n useNavigation,\n useNavigationType,\n useOutlet,\n useOutletContext,\n useParams,\n useResolvedPath,\n useRevalidator,\n useRouteError,\n useRouteLoaderData,\n useRoutes,\n};\n\nfunction mapRouteProperties(route: RouteObject) {\n let updates: Partial<RouteObject> & { hasErrorBoundary: boolean } = {\n // Note: this check also occurs in createRoutesFromChildren so update\n // there if you change this -- please and thank you!\n hasErrorBoundary: route.ErrorBoundary != null || route.errorElement != null,\n };\n\n if (route.Component) {\n if (__DEV__) {\n if (route.element) {\n warning(\n false,\n \"You should not include both `Component` and `element` on your route - \" +\n \"`Component` will be used.\"\n );\n }\n }\n Object.assign(updates, {\n element: React.createElement(route.Component),\n Component: undefined,\n });\n }\n\n if (route.ErrorBoundary) {\n if (__DEV__) {\n if (route.errorElement) {\n warning(\n false,\n \"You should not include both `ErrorBoundary` and `errorElement` on your route - \" +\n \"`ErrorBoundary` will be used.\"\n );\n }\n }\n Object.assign(updates, {\n errorElement: React.createElement(route.ErrorBoundary),\n ErrorBoundary: undefined,\n });\n }\n\n return updates;\n}\n\nexport function createMemoryRouter(\n routes: RouteObject[],\n opts?: {\n basename?: string;\n future?: Partial<Omit<RouterFutureConfig, \"v7_prependBasename\">>;\n hydrationData?: HydrationState;\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n }\n): RemixRouter {\n return createRouter({\n basename: opts?.basename,\n future: {\n ...opts?.future,\n v7_prependBasename: true,\n },\n history: createMemoryHistory({\n initialEntries: opts?.initialEntries,\n initialIndex: opts?.initialIndex,\n }),\n hydrationData: opts?.hydrationData,\n routes,\n mapRouteProperties,\n }).initialize();\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n NavigationContext as UNSAFE_NavigationContext,\n LocationContext as UNSAFE_LocationContext,\n RouteContext as UNSAFE_RouteContext,\n DataRouterContext as UNSAFE_DataRouterContext,\n DataRouterStateContext as UNSAFE_DataRouterStateContext,\n mapRouteProperties as UNSAFE_mapRouteProperties,\n useRouteId as UNSAFE_useRouteId,\n useRoutesImpl as UNSAFE_useRoutesImpl,\n};\n","import type {\n FormEncType,\n HTMLFormMethod,\n RelativeRoutingType,\n} from \"@remix-run/router\";\nimport { stripBasename, UNSAFE_warning as warning } from \"@remix-run/router\";\n\nexport const defaultMethod: HTMLFormMethod = \"get\";\nconst defaultEncType: FormEncType = \"application/x-www-form-urlencoded\";\n\nexport function isHtmlElement(object: any): object is HTMLElement {\n return object != null && typeof object.tagName === \"string\";\n}\n\nexport function isButtonElement(object: any): object is HTMLButtonElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\n\nexport function isFormElement(object: any): object is HTMLFormElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\n\nexport function isInputElement(object: any): object is HTMLInputElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\n\ntype LimitedMouseEvent = Pick<\n MouseEvent,\n \"button\" | \"metaKey\" | \"altKey\" | \"ctrlKey\" | \"shiftKey\"\n>;\n\nfunction isModifiedEvent(event: LimitedMouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport function shouldProcessLinkClick(\n event: LimitedMouseEvent,\n target?: string\n) {\n return (\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}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record<string, string | string[]>\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n\nexport function getSearchParamsForLocation(\n locationSearch: string,\n defaultSearchParams: URLSearchParams | null\n) {\n let searchParams = createSearchParams(locationSearch);\n\n if (defaultSearchParams) {\n // Use `defaultSearchParams.forEach(...)` here instead of iterating of\n // `defaultSearchParams.keys()` to work-around a bug in Firefox related to\n // web extensions. Relevant Bugzilla tickets:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1414602\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1023984\n defaultSearchParams.forEach((_, key) => {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n });\n }\n\n return searchParams;\n}\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\nexport type SubmitTarget =\n | HTMLFormElement\n | HTMLButtonElement\n | HTMLInputElement\n | FormData\n | URLSearchParams\n | JsonValue\n | null;\n\n// One-time check for submitter support\nlet _formDataSupportsSubmitter: boolean | null = null;\n\nfunction isFormDataSubmitterSupported() {\n if (_formDataSupportsSubmitter === null) {\n try {\n new FormData(\n document.createElement(\"form\"),\n // @ts-expect-error if FormData supports the submitter parameter, this will throw\n 0\n );\n _formDataSupportsSubmitter = false;\n } catch (e) {\n _formDataSupportsSubmitter = true;\n }\n }\n return _formDataSupportsSubmitter;\n}\n\nexport interface SubmitOptions {\n /**\n * The HTTP method used to submit the form. Overrides `<form method>`.\n * Defaults to \"GET\".\n */\n method?: HTMLFormMethod;\n\n /**\n * The action URL path used to submit the form. Overrides `<form action>`.\n * Defaults to the path of the current route.\n */\n action?: string;\n\n /**\n * The encoding used to submit the form. Overrides `<form encType>`.\n * Defaults to \"application/x-www-form-urlencoded\".\n */\n encType?: FormEncType;\n\n /**\n * Set `true` to replace the current entry in the browser's history stack\n * instead of creating a new one (i.e. stay on \"the same page\"). Defaults\n * to `false`.\n */\n replace?: boolean;\n\n /**\n * State object to add to the history stack entry for this navigation\n */\n state?: any;\n\n /**\n * Determines whether the form action is relative to the route hierarchy or\n * the pathname. Use this if you want to opt out of navigating the route\n * hierarchy and want to instead route based on /-delimited URL segments\n */\n relative?: RelativeRoutingType;\n\n /**\n * In browser-based environments, prevent resetting scroll after this\n * navigation when using the <ScrollRestoration> component\n */\n preventScrollReset?: boolean;\n}\n\nconst supportedFormEncTypes: Set<FormEncType> = new Set([\n \"application/x-www-form-urlencoded\",\n \"multipart/form-data\",\n \"text/plain\",\n]);\n\nfunction getFormEncType(encType: string | null) {\n if (encType != null && !supportedFormEncTypes.has(encType as FormEncType)) {\n warning(\n false,\n `\"${encType}\" is not a valid \\`encType\\` for \\`<Form>\\`/\\`<fetcher.Form>\\` ` +\n `and will default to \"${defaultEncType}\"`\n );\n\n return null;\n }\n return encType;\n}\n\nexport function getFormSubmissionInfo(\n target: SubmitTarget,\n basename: string\n): {\n action: string | null;\n method: string;\n encType: string;\n formData: FormData | undefined;\n body: any;\n} {\n let method: string;\n let action: string | null;\n let encType: string;\n let formData: FormData | undefined;\n let body: any;\n\n if (isFormElement(target)) {\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"enctype\")) || defaultEncType;\n\n formData = new FormData(target);\n } else if (\n isButtonElement(target) ||\n (isInputElement(target) &&\n (target.type === \"submit\" || target.type === \"image\"))\n ) {\n let form = target.form;\n\n if (form == null) {\n throw new Error(\n `Cannot submit a <button> or <input type=\"submit\"> without a <form>`\n );\n }\n\n // <button>/<input type=\"submit\"> may override attributes of <form>\n\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"formaction\") || form.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n\n method =\n target.getAttribute(\"formmethod\") ||\n form.getAttribute(\"method\") ||\n defaultMethod;\n encType =\n getFormEncType(target.getAttribute(\"formenctype\")) ||\n getFormEncType(form.getAttribute(\"enctype\")) ||\n defaultEncType;\n\n // Build a FormData object populated from a form and submitter\n formData = new FormData(form, target);\n\n // If this browser doesn't support the `FormData(el, submitter)` format,\n // then tack on the submitter value at the end. This is a lightweight\n // solution that is not 100% spec compliant. For complete support in older\n // browsers, consider using the `formdata-submitter-polyfill` package\n if (!isFormDataSubmitterSupported()) {\n let { name, type, value } = target;\n if (type === \"image\") {\n let prefix = name ? `${name}.` : \"\";\n formData.append(`${prefix}x`, \"0\");\n formData.append(`${prefix}y`, \"0\");\n } else if (name) {\n formData.append(name, value);\n }\n }\n } else if (isHtmlElement(target)) {\n throw new Error(\n `Cannot submit element that is not <form>, <button>, or ` +\n `<input type=\"submit|image\">`\n );\n } else {\n method = defaultMethod;\n action = null;\n encType = defaultEncType;\n body = target;\n }\n\n // Send body for <Form encType=\"text/plain\" so we encode it into text\n if (formData && encType === \"text/plain\") {\n body = formData;\n formData = undefined;\n }\n\n return { action, method: method.toLowerCase(), encType, formData, body };\n}\n","/**\n * NOTE: If you refactor this to split up the modules into separate files,\n * you'll need to update the rollup config for react-router-dom-v5-compat.\n */\nimport * as React from \"react\";\nimport type {\n FutureConfig,\n Location,\n NavigateOptions,\n NavigationType,\n RelativeRoutingType,\n RouteObject,\n To,\n} from \"react-router\";\nimport {\n Router,\n createPath,\n useHref,\n useLocation,\n useMatches,\n useNavigate,\n useNavigation,\n useResolvedPath,\n unstable_useBlocker as useBlocker,\n UNSAFE_DataRouterContext as DataRouterContext,\n UNSAFE_DataRouterStateContext as DataRouterStateContext,\n UNSAFE_NavigationContext as NavigationContext,\n UNSAFE_RouteContext as RouteContext,\n UNSAFE_mapRouteProperties as mapRouteProperties,\n UNSAFE_useRouteId as useRouteId,\n} from \"react-router\";\nimport type {\n BrowserHistory,\n Fetcher,\n FormEncType,\n FormMethod,\n FutureConfig as RouterFutureConfig,\n GetScrollRestorationKeyFunction,\n HashHistory,\n History,\n HTMLFormMethod,\n HydrationState,\n Router as RemixRouter,\n V7_FormMethod,\n} from \"@remix-run/router\";\nimport {\n createRouter,\n createBrowserHistory,\n createHashHistory,\n joinPaths,\n stripBasename,\n ErrorResponse,\n UNSAFE_invariant as invariant,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n SubmitOptions,\n ParamKeyValuePair,\n URLSearchParamsInit,\n SubmitTarget,\n} from \"./dom\";\nimport {\n createSearchParams,\n defaultMethod,\n getFormSubmissionInfo,\n getSearchParamsForLocation,\n shouldProcessLinkClick,\n} from \"./dom\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Re-exports\n////////////////////////////////////////////////////////////////////////////////\n\nexport type {\n FormEncType,\n FormMethod,\n GetScrollRestorationKeyFunction,\n ParamKeyValuePair,\n SubmitOptions,\n URLSearchParamsInit,\n V7_FormMethod,\n};\nexport { createSearchParams };\n\n// Note: Keep in sync with react-router exports!\nexport type {\n ActionFunction,\n ActionFunctionArgs,\n AwaitProps,\n unstable_Blocker,\n unstable_BlockerFunction,\n DataRouteMatch,\n DataRouteObject,\n Fetcher,\n Hash,\n IndexRouteObject,\n IndexRouteProps,\n JsonFunction,\n LazyRouteFunction,\n LayoutRouteProps,\n LoaderFunction,\n LoaderFunctionArgs,\n Location,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigation,\n Navigator,\n NonIndexRouteObject,\n OutletProps,\n Params,\n ParamParseKey,\n Path,\n PathMatch,\n Pathname,\n PathPattern,\n PathRouteProps,\n RedirectFunction,\n RelativeRoutingType,\n RouteMatch,\n RouteObject,\n RouteProps,\n RouterProps,\n RouterProviderProps,\n RoutesProps,\n Search,\n ShouldRevalidateFunction,\n To,\n} from \"react-router\";\nexport {\n AbortedDeferredError,\n Await,\n MemoryRouter,\n Navigate,\n NavigationType,\n Outlet,\n Route,\n Router,\n RouterProvider,\n Routes,\n createMemoryRouter,\n createPath,\n createRoutesFromChildren,\n createRoutesFromElements,\n defer,\n isRouteErrorResponse,\n generatePath,\n json,\n matchPath,\n matchRoutes,\n parsePath,\n redirect,\n redirectDocument,\n renderMatches,\n resolvePath,\n useActionData,\n useAsyncError,\n useAsyncValue,\n unstable_useBlocker,\n useHref,\n useInRouterContext,\n useLoaderData,\n useLocation,\n useMatch,\n useMatches,\n useNavigate,\n useNavigation,\n useNavigationType,\n useOutlet,\n useOutletContext,\n useParams,\n useResolvedPath,\n useRevalidator,\n useRouteError,\n useRouteLoaderData,\n useRoutes,\n} from \"react-router\";\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n UNSAFE_DataRouterContext,\n UNSAFE_DataRouterStateContext,\n UNSAFE_NavigationContext,\n UNSAFE_LocationContext,\n UNSAFE_RouteContext,\n UNSAFE_useRouteId,\n} from \"react-router\";\n//#endregion\n\ndeclare global {\n var __staticRouterHydrationData: HydrationState | undefined;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Routers\n////////////////////////////////////////////////////////////////////////////////\n\ninterface DOMRouterOpts {\n basename?: string;\n future?: Partial<Omit<RouterFutureConfig, \"v7_prependBasename\">>;\n hydrationData?: HydrationState;\n window?: Window;\n}\n\nexport function createBrowserRouter(\n routes: RouteObject[],\n opts?: DOMRouterOpts\n): RemixRouter {\n return createRouter({\n basename: opts?.basename,\n future: {\n ...opts?.future,\n v7_prependBasename: true,\n },\n history: createBrowserHistory({ window: opts?.window }),\n hydrationData: opts?.hydrationData || parseHydrationData(),\n routes,\n mapRouteProperties,\n }).initialize();\n}\n\nexport function createHashRouter(\n routes: RouteObject[],\n opts?: DOMRouterOpts\n): RemixRouter {\n return createRouter({\n basename: opts?.basename,\n future: {\n ...opts?.future,\n v7_prependBasename: true,\n },\n history: createHashHistory({ window: opts?.window }),\n hydrationData: opts?.hydrationData || parseHydrationData(),\n routes,\n mapRouteProperties,\n }).initialize();\n}\n\nfunction parseHydrationData(): HydrationState | undefined {\n let state = window?.__staticRouterHydrationData;\n if (state && state.errors) {\n state = {\n ...state,\n errors: deserializeErrors(state.errors),\n };\n }\n return state;\n}\n\nfunction deserializeErrors(\n errors: RemixRouter[\"state\"][\"errors\"]\n): RemixRouter[\"state\"][\"errors\"] {\n if (!errors) return null;\n let entries = Object.entries(errors);\n let serialized: RemixRouter[\"state\"][\"errors\"] = {};\n for (let [key, val] of entries) {\n // Hey you! If you change this, please change the corresponding logic in\n // serializeErrors in react-router-dom/server.tsx :)\n if (val && val.__type === \"RouteErrorResponse\") {\n serialized[key] = new ErrorResponse(\n val.status,\n val.statusText,\n val.data,\n val.internal === true\n );\n } else if (val && val.__type === \"Error\") {\n // Attempt to reconstruct the right type of Error (i.e., ReferenceError)\n if (val.__subType) {\n let ErrorConstructor = window[val.__subType];\n if (typeof ErrorConstructor === \"function\") {\n try {\n // @ts-expect-error\n let error = new ErrorConstructor(val.message);\n // Wipe away the client-side stack trace. Nothing to fill it in with\n // because we don't serialize SSR stack traces for security reasons\n error.stack = \"\";\n serialized[key] = error;\n } catch (e) {\n // no-op - fall through and create a normal Error\n }\n }\n }\n\n if (serialized[key] == null) {\n let error = new Error(val.message);\n // Wipe away the client-side stack trace. Nothing to fill it in with\n // because we don't serialize SSR stack traces for security reasons\n error.stack = \"\";\n serialized[key] = error;\n }\n } else {\n serialized[key] = val;\n }\n }\n return serialized;\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Components\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\nexport interface BrowserRouterProps {\n basename?: string;\n children?: React.ReactNode;\n future?: FutureConfig;\n window?: Window;\n}\n\n/**\n * A `<Router>` for use in web browsers. Provides the cleanest URLs.\n */\nexport function BrowserRouter({\n basename,\n children,\n future,\n window,\n}: BrowserRouterProps) {\n let historyRef = React.useRef<BrowserHistory>();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({ window, v5Compat: true });\n }\n\n let history = historyRef.current;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location,\n });\n let { v7_startTransition } = future || {};\n let setState = React.useCallback(\n (newState: { action: NavigationType; location: Location }) => {\n v7_startTransition && startTransitionImpl\n ? startTransitionImpl(() => setStateImpl(newState))\n : setStateImpl(newState);\n },\n [setStateImpl, v7_startTransition]\n );\n\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n />\n );\n}\n\nexport interface HashRouterProps {\n basename?: string;\n children?: React.ReactNode;\n future?: FutureConfig;\n window?: Window;\n}\n\n/**\n * A `<Router>` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nexport function HashRouter({\n basename,\n children,\n future,\n window,\n}: HashRouterProps) {\n let historyRef = React.useRef<HashHistory>();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({ window, v5Compat: true });\n }\n\n let history = historyRef.current;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location,\n });\n let { v7_startTransition } = future || {};\n let setState = React.useCallback(\n (newState: { action: NavigationType; location: Location }) => {\n v7_startTransition && startTransitionImpl\n ? startTransitionImpl(() => setStateImpl(newState))\n : setStateImpl(newState);\n },\n [setStateImpl, v7_startTransition]\n );\n\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n />\n );\n}\n\nexport interface HistoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n future?: FutureConfig;\n history: History;\n}\n\n/**\n * A `<Router>` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter({\n basename,\n children,\n future,\n history,\n}: HistoryRouterProps) {\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location,\n });\n let { v7_startTransition } = future || {};\n let setState = React.useCallback(\n (newState: { action: NavigationType; location: Location }) => {\n v7_startTransition && startTransitionImpl\n ? startTransitionImpl(() => setStateImpl(newState))\n : setStateImpl(newState);\n },\n [setStateImpl, v7_startTransition]\n );\n\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n />\n );\n}\n\nif (__DEV__) {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\n\nexport { HistoryRouter as unstable_HistoryRouter };\n\nexport interface LinkProps\n extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, \"href\"> {\n reloadDocument?: boolean;\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n to: To;\n}\n\nconst isBrowser =\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\";\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\n/**\n * The public API for rendering a history-aware <a>.\n */\nexport const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(\n function LinkWithRef(\n {\n onClick,\n relative,\n reloadDocument,\n replace,\n state,\n target,\n to,\n preventScrollReset,\n ...rest\n },\n ref\n ) {\n let { basename } = React.useContext(NavigationContext);\n\n // Rendered into <a href> for absolute URLs\n let absoluteHref;\n let isExternal = false;\n\n if (typeof to === \"string\" && ABSOLUTE_URL_REGEX.test(to)) {\n // Render the absolute href server- and client-side\n absoluteHref = to;\n\n // Only check for external origins client-side\n if (isBrowser) {\n try {\n let currentUrl = new URL(window.location.href);\n let targetUrl = to.startsWith(\"//\")\n ? new URL(currentUrl.protocol + to)\n : new URL(to);\n let path = stripBasename(targetUrl.pathname, basename);\n\n if (targetUrl.origin === currentUrl.origin && path != null) {\n // Strip the protocol/origin/basename for same-origin absolute URLs\n to = path + targetUrl.search + targetUrl.hash;\n } else {\n isExternal = true;\n }\n } catch (e) {\n // We can't do external URL detection without a valid URL\n warning(\n false,\n `<Link to=\"${to}\"> contains an invalid URL which will probably break ` +\n `when clicked - please update to a valid URL path.`\n );\n }\n }\n }\n\n // Rendered into <a href> for relative URLs\n let href = useHref(to, { relative });\n\n let internalOnClick = useLinkClickHandler(to, {\n replace,\n state,\n target,\n preventScrollReset,\n relative,\n });\n function handleClick(\n event: React.MouseEvent<HTMLAnchorElement, MouseEvent>\n ) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented) {\n internalOnClick(event);\n }\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n <a\n {...rest}\n href={absoluteHref || href}\n onClick={isExternal || reloadDocument ? onClick : handleClick}\n ref={ref}\n target={target}\n />\n );\n }\n);\n\nif (__DEV__) {\n Link.displayName = \"Link\";\n}\n\nexport interface NavLinkProps\n extends Omit<LinkProps, \"className\" | \"style\" | \"children\"> {\n children?:\n | React.ReactNode\n | ((props: { isActive: boolean; isPending: boolean }) => React.ReactNode);\n caseSensitive?: boolean;\n className?:\n | string\n | ((props: {\n isActive: boolean;\n isPending: boolean;\n }) => string | undefined);\n end?: boolean;\n style?:\n | React.CSSProperties\n | ((props: {\n isActive: boolean;\n isPending: boolean;\n }) => React.CSSProperties | undefined);\n}\n\n/**\n * A <Link> wrapper that knows if it's \"active\" or not.\n */\nexport const NavLink = React.forwardRef<HTMLAnchorElement, NavLinkProps>(\n function NavLinkWithRef(\n {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n children,\n ...rest\n },\n ref\n ) {\n let path = useResolvedPath(to, { relative: rest.relative });\n let location = useLocation();\n let routerState = React.useContext(DataRouterStateContext);\n let { navigator } = React.useContext(NavigationContext);\n\n let toPathname = navigator.encodeLocation\n ? navigator.encodeLocation(path).pathname\n : path.pathname;\n let locationPathname = location.pathname;\n let nextLocationPathname =\n routerState && routerState.navigation && routerState.navigation.location\n ? routerState.navigation.location.pathname\n : null;\n\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n nextLocationPathname = nextLocationPathname\n ? nextLocationPathname.toLowerCase()\n : null;\n toPathname = toPathname.toLowerCase();\n }\n\n let isActive =\n locationPathname === toPathname ||\n (!end &&\n locationPathname.startsWith(toPathname) &&\n locationPathname.charAt(toPathname.length) === \"/\");\n\n let isPending =\n nextLocationPathname != null &&\n (nextLocationPathname === toPathname ||\n (!end &&\n nextLocationPathname.startsWith(toPathname) &&\n nextLocationPathname.charAt(toPathname.length) === \"/\"));\n\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n\n let className: string | undefined;\n if (typeof classNameProp === \"function\") {\n className = classNameProp({ isActive, isPending });\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for <NavLink />s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [\n classNameProp,\n isActive ? \"active\" : null,\n isPending ? \"pending\" : null,\n ]\n .filter(Boolean)\n .join(\" \");\n }\n\n let style =\n typeof styleProp === \"function\"\n ? styleProp({ isActive, isPending })\n : styleProp;\n\n return (\n <Link\n {...rest}\n aria-current={ariaCurrent}\n className={className}\n ref={ref}\n style={style}\n to={to}\n >\n {typeof children === \"function\"\n ? children({ isActive, isPending })\n : children}\n </Link>\n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n}\n\nexport interface FetcherFormProps\n extends React.FormHTMLAttributes<HTMLFormElement> {\n /**\n * The HTTP verb to use when the form is submit. Supports \"get\", \"post\",\n * \"put\", \"delete\", \"patch\".\n */\n method?: HTMLFormMethod;\n\n /**\n * `<form encType>` - enhancing beyond the normal string type and limiting\n * to the built-in browser supported values\n */\n encType?:\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"text/plain\";\n\n /**\n * Normal `<form action>` but supports React Router's relative paths.\n */\n action?: string;\n\n /**\n * Determines whether the form action is relative to the route hierarchy or\n * the pathname. Use this if you want to opt out of navigating the route\n * hierarchy and want to instead route based on /-delimited URL segments\n */\n relative?: RelativeRoutingType;\n\n /**\n * Prevent the scroll position from resetting to the top of the viewport on\n * completion of the navigation when using the <ScrollRestoration> component\n */\n preventScrollReset?: boolean;\n\n /**\n * A function to call when the form is submitted. If you call\n * `event.preventDefault()` then this form will not do anything.\n */\n onSubmit?: React.FormEventHandler<HTMLFormElement>;\n}\n\nexport interface FormProps extends FetcherFormProps {\n /**\n * Forces a full document navigation instead of a fetch.\n */\n reloadDocument?: boolean;\n\n /**\n * Replaces the current entry in the browser history stack when the form\n * navigates. Use this if you don't want the user to be able to click \"back\"\n * to the page with the form on it.\n */\n replace?: boolean;\n\n /**\n * State object to add to the history stack entry for this navigation\n */\n state?: any;\n}\n\n/**\n * A `@remix-run/router`-aware `<form>`. It behaves like a normal form except\n * that the interaction with the server is with `fetch` instead of new document\n * requests, allowing components to add nicer UX to the page as the form is\n * submitted and returns with data.\n */\nexport const Form = React.forwardRef<HTMLFormElement, FormProps>(\n (props, ref) => {\n let submit = useSubmit();\n return <FormImpl {...props} submit={submit} ref={ref} />;\n }\n);\n\nif (__DEV__) {\n Form.displayName = \"Form\";\n}\n\ntype HTMLSubmitEvent = React.BaseSyntheticEvent<\n SubmitEvent,\n Event,\n HTMLFormElement\n>;\n\ntype HTMLFormSubmitter = HTMLButtonElement | HTMLInputElement;\n\ninterface FormImplProps extends FormProps {\n submit: SubmitFunction | FetcherSubmitFunction;\n}\n\nconst FormImpl = React.forwardRef<HTMLFormElement, FormImplProps>(\n (\n {\n reloadDocument,\n replace,\n state,\n method = defaultMethod,\n action,\n onSubmit,\n submit,\n relative,\n preventScrollReset,\n ...props\n },\n forwardedRef\n ) => {\n let formMethod: HTMLFormMethod =\n method.toLowerCase() === \"get\" ? \"get\" : \"post\";\n let formAction = useFormAction(action, { relative });\n let submitHandler: React.FormEventHandler<HTMLFormElement> = (event) => {\n onSubmit && onSubmit(event);\n if (event.defaultPrevented) return;\n event.preventDefault();\n\n let submitter = (event as unknown as HTMLSubmitEvent).nativeEvent\n .submitter as HTMLFormSubmitter | null;\n\n let submitMethod =\n (submitter?.getAttribute(\"formmethod\") as HTMLFormMethod | undefined) ||\n method;\n\n submit(submitter || event.currentTarget, {\n method: submitMethod,\n replace,\n state,\n relative,\n preventScrollReset,\n });\n };\n\n return (\n <form\n ref={forwardedRef}\n method={formMethod}\n action={formAction}\n onSubmit={reloadDocument ? onSubmit : submitHandler}\n {...props}\n />\n );\n }\n);\n\nif (__DEV__) {\n FormImpl.displayName = \"FormImpl\";\n}\n\nexport interface ScrollRestorationProps {\n getKey?: GetScrollRestorationKeyFunction;\n storageKey?: string;\n}\n\n/**\n * This component will emulate the browser's scroll restoration on location\n * changes.\n */\nexport function ScrollRestoration({\n getKey,\n storageKey,\n}: ScrollRestorationProps) {\n useScrollRestoration({ getKey, storageKey });\n return null;\n}\n\nif (__DEV__) {\n ScrollRestoration.displayName = \"ScrollRestoration\";\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hooks\n////////////////////////////////////////////////////////////////////////////////\n\nenum DataRouterHook {\n UseScrollRestoration = \"useScrollRestoration\",\n UseSubmit = \"useSubmit\",\n UseSubmitFetcher = \"useSubmitFetcher\",\n UseFetcher = \"useFetcher\",\n}\n\nenum DataRouterStateHook {\n UseFetchers = \"useFetchers\",\n UseScrollRestoration = \"useScrollRestoration\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\n/**\n * Handles the click behavior for router `<Link>` components. This is useful if\n * you need to create custom `<Link>` components with the same click behavior we\n * use in our exported `<Link>`.\n */\nexport function useLinkClickHandler<E extends Element = HTMLAnchorElement>(\n to: To,\n {\n target,\n replace: replaceProp,\n state,\n preventScrollReset,\n relative,\n }: {\n target?: React.HTMLAttributeAnchorTarget;\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n } = {}\n): (event: React.MouseEvent<E, MouseEvent>) => void {\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to, { relative });\n\n return React.useCallback(\n (event: React.MouseEvent<E, MouseEvent>) => {\n if (shouldProcessLinkClick(event, target)) {\n event.preventDefault();\n\n // If the URL hasn't changed, a regular <a> will do a replace instead of\n // a push, so do the same here unless the replace prop is explicitly set\n let replace =\n replaceProp !== undefined\n ? replaceProp\n : createPath(location) === createPath(path);\n\n navigate(to, { replace, state, preventScrollReset, relative });\n }\n },\n [\n location,\n navigate,\n path,\n replaceProp,\n state,\n target,\n to,\n preventScrollReset,\n relative,\n ]\n );\n}\n\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nexport function useSearchParams(\n defaultInit?: URLSearchParamsInit\n): [URLSearchParams, SetURLSearchParams] {\n warning(\n typeof URLSearchParams !== \"undefined\",\n `You cannot use the \\`useSearchParams\\` hook in a browser that does not ` +\n `support the URLSearchParams API. If you need to support Internet ` +\n `Explorer 11, we recommend you load a polyfill such as ` +\n `https://github.com/ungap/url-search-params\\n\\n` +\n `If you're unsure how to load polyfills, we recommend you check out ` +\n `https://polyfill.io/v3/ which provides some recommendations about how ` +\n `to load polyfills only for users that need them, instead of for every ` +\n `user.`\n );\n\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n let hasSetSearchParamsRef = React.useRef(false);\n\n let location = useLocation();\n let searchParams = React.useMemo(\n () =>\n // Only merge in the defaults if we haven't yet called setSearchParams.\n // Once we call that we want those to take precedence, otherwise you can't\n // remove a param with setSearchParams({}) if it has an initial value\n getSearchParamsForLocation(\n location.search,\n hasSetSearchParamsRef.current ? null : defaultSearchParamsRef.current\n ),\n [location.search]\n );\n\n let navigate = useNavigate();\n let setSearchParams = React.useCallback<SetURLSearchParams>(\n (nextInit, navigateOptions) => {\n const newSearchParams = createSearchParams(\n typeof nextInit === \"function\" ? nextInit(searchParams) : nextInit\n );\n hasSetSearchParamsRef.current = true;\n navigate(\"?\" + newSearchParams, navigateOptions);\n },\n [navigate, searchParams]\n );\n\n return [searchParams, setSearchParams];\n}\n\nexport type SetURLSearchParams = (\n nextInit?:\n | URLSearchParamsInit\n | ((prev: URLSearchParams) => URLSearchParamsInit),\n navigateOpts?: NavigateOptions\n) => void;\n\n/**\n * Submits a HTML `<form>` to the server without reloading the page.\n */\nexport interface SubmitFunction {\n (\n /**\n * Specifies the `<form>` to be submitted to the server, a specific\n * `<button>` or `<input type=\"submit\">` to use to submit the form, or some\n * arbitrary data to submit.\n *\n * Note: When using a `<button>` its `name` and `value` will also be\n * included in the form data that is submitted.\n */\n target: SubmitTarget,\n\n /**\n * Options that override the `<form>`'s own attributes. Required when\n * submitting arbitrary data without a backing `<form>`.\n */\n options?: SubmitOptions\n ): void;\n}\n\n/**\n * Submits a fetcher `<form>` to the server without reloading the page.\n */\nexport interface FetcherSubmitFunction {\n (\n target: SubmitTarget,\n // Fetchers cannot replace or set state because they are not navigation events\n options?: Omit<SubmitOptions, \"replace\" | \"state\">\n ): void;\n}\n\nfunction validateClientSideSubmission() {\n if (typeof document === \"undefined\") {\n throw new Error(\n \"You are calling submit during the server render. \" +\n \"Try calling submit within a `useEffect` or callback instead.\"\n );\n }\n}\n\n/**\n * Returns a function that may be used to programmatically submit a form (or\n * some arbitrary data) to the server.\n */\nexport function useSubmit(): SubmitFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseSubmit);\n let { basename } = React.useContext(NavigationContext);\n let currentRouteId = useRouteId();\n\n return React.useCallback<SubmitFunction>(\n (target, options = {}) => {\n validateClientSideSubmission();\n\n let { action, method, encType, formData, body } = getFormSubmissionInfo(\n target,\n basename\n );\n\n router.navigate(options.action || action, {\n preventScrollReset: options.preventScrollReset,\n formData,\n body,\n formMethod: options.method || (method as HTMLFormMethod),\n formEncType: options.encType || (encType as FormEncType),\n replace: options.replace,\n state: options.state,\n fromRouteId: currentRouteId,\n });\n },\n [router, basename, currentRouteId]\n );\n}\n\n/**\n * Returns the implementation for fetcher.submit\n */\nfunction useSubmitFetcher(\n fetcherKey: string,\n fetcherRouteId: string\n): FetcherSubmitFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseSubmitFetcher);\n let { basename } = React.useContext(NavigationContext);\n\n return React.useCallback<FetcherSubmitFunction>(\n (target, options = {}) => {\n validateClientSideSubmission();\n\n let { action, method, encType, formData, body } = getFormSubmissionInfo(\n target,\n basename\n );\n\n invariant(\n fetcherRouteId != null,\n \"No routeId available for useFetcher()\"\n );\n router.fetch(fetcherKey, fetcherRouteId, options.action || action, {\n preventScrollReset: options.preventScrollReset,\n formData,\n body,\n formMethod: options.method || (method as HTMLFormMethod),\n formEncType: options.encType || (encType as FormEncType),\n });\n },\n [router, basename, fetcherKey, fetcherRouteId]\n );\n}\n\n// v7: Eventually we should deprecate this entirely in favor of using the\n// router method directly?\nexport function useFormAction(\n action?: string,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n let { basename } = React.useContext(NavigationContext);\n let routeContext = React.useContext(RouteContext);\n invariant(routeContext, \"useFormAction must be used inside a RouteContext\");\n\n let [match] = routeContext.matches.slice(-1);\n // Shallow clone path so we can modify it below, otherwise we modify the\n // object referenced by useMemo inside useResolvedPath\n let path = { ...useResolvedPath(action ? action : \".\", { relative }) };\n\n // Previously we set the default action to \".\". The problem with this is that\n // `useResolvedPath(\".\")` excludes search params of the resolved URL. This is\n // the intended behavior of when \".\" is specifically provided as\n // the form action, but inconsistent w/ browsers when the action is omitted.\n // https://github.com/remix-run/remix/issues/927\n let location = useLocation();\n if (action == null) {\n // Safe to write to this directly here since if action was undefined, we\n // would have called useResolvedPath(\".\") which will never include a search\n path.search = location.search;\n\n // When grabbing search params from the URL, remove the automatically\n // inserted ?index param so we match the useResolvedPath search behavior\n // which would not include ?index\n if (match.route.index) {\n let params = new URLSearchParams(path.search);\n params.delete(\"index\");\n path.search = params.toString() ? `?${params.toString()}` : \"\";\n }\n }\n\n if ((!action || action === \".\") && match.route.index) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the form action. If this is a root navigation, then just use\n // the raw basename which allows the basename to have full control over the\n // presence of a trailing slash on root actions\n if (basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\nfunction createFetcherForm(fetcherKey: string, routeId: string) {\n let FetcherForm = React.forwardRef<HTMLFormElement, FetcherFormProps>(\n (props, ref) => {\n let submit = useSubmitFetcher(fetcherKey, routeId);\n return <FormImpl {...props} ref={ref} submit={submit} />;\n }\n );\n if (__DEV__) {\n FetcherForm.displayName = \"fetcher.Form\";\n }\n return FetcherForm;\n}\n\nlet fetcherId = 0;\n\nexport type FetcherWithComponents<TData> = Fetcher<TData> & {\n Form: ReturnType<typeof createFetcherForm>;\n submit: FetcherSubmitFunction;\n load: (href: string) => void;\n};\n\n/**\n * Interacts with route loaders and actions without causing a navigation. Great\n * for any interaction that stays on the same page.\n */\nexport function useFetcher<TData = any>(): FetcherWithComponents<TData> {\n let { router } = useDataRouterContext(DataRouterHook.UseFetcher);\n\n let route = React.useContext(RouteContext);\n invariant(route, `useFetcher must be used inside a RouteContext`);\n\n let routeId = route.matches[route.matches.length - 1]?.route.id;\n invariant(\n routeId != null,\n `useFetcher can only be used on routes that contain a unique \"id\"`\n );\n\n let [fetcherKey] = React.useState(() => String(++fetcherId));\n let [Form] = React.useState(() => {\n invariant(routeId, `No routeId available for fetcher.Form()`);\n return createFetcherForm(fetcherKey, routeId);\n });\n let [load] = React.useState(() => (href: string) => {\n invariant(router, \"No router available for fetcher.load()\");\n invariant(routeId, \"No routeId available for fetcher.load()\");\n router.fetch(fetcherKey, routeId, href);\n });\n let submit = useSubmitFetcher(fetcherKey, routeId);\n\n let fetcher = router.getFetcher<TData>(fetcherKey);\n\n let fetcherWithComponents = React.useMemo(\n () => ({\n Form,\n submit,\n load,\n ...fetcher,\n }),\n [fetcher, Form, submit, load]\n );\n\n React.useEffect(() => {\n // Is this busted when the React team gets real weird and calls effects\n // twice on mount? We really just need to garbage collect here when this\n // fetcher is no longer around.\n return () => {\n if (!router) {\n console.warn(`No router available to clean up from useFetcher()`);\n return;\n }\n router.deleteFetcher(fetcherKey);\n };\n }, [router, fetcherKey]);\n\n return fetcherWithComponents;\n}\n\n/**\n * Provides all fetchers currently on the page. Useful for layouts and parent\n * routes that need to provide pending/optimistic UI regarding the fetch.\n */\nexport function useFetchers(): Fetcher[] {\n let state = useDataRouterState(DataRouterStateHook.UseFetchers);\n return [...state.fetchers.values()];\n}\n\nconst SCROLL_RESTORATION_STORAGE_KEY = \"react-router-scroll-positions\";\nlet savedScrollPositions: Record<string, number> = {};\n\n/**\n * When rendered inside a RouterProvider, will restore scroll positions on navigations\n */\nfunction useScrollRestoration({\n getKey,\n storageKey,\n}: {\n getKey?: GetScrollRestorationKeyFunction;\n storageKey?: string;\n} = {}) {\n let { router } = useDataRouterContext(DataRouterHook.UseScrollRestoration);\n let { restoreScrollPosition, preventScrollReset } = useDataRouterState(\n DataRouterStateHook.UseScrollRestoration\n );\n let { basename } = React.useContext(NavigationContext);\n let location = useLocation();\n let matches = useMatches();\n let navigation = useNavigation();\n\n // Trigger manual scroll restoration while we're active\n React.useEffect(() => {\n window.history.scrollRestoration = \"manual\";\n return () => {\n window.history.scrollRestoration = \"auto\";\n };\n }, []);\n\n // Save positions on pagehide\n usePageHide(\n React.useCallback(() => {\n if (navigation.state === \"idle\") {\n let key = (getKey ? getKey(location, matches) : null) || location.key;\n savedScrollPositions[key] = window.scrollY;\n }\n sessionStorage.setItem(\n storageKey || SCROLL_RESTORATION_STORAGE_KEY,\n JSON.stringify(savedScrollPositions)\n );\n window.history.scrollRestoration = \"auto\";\n }, [storageKey, getKey, navigation.state, location, matches])\n );\n\n // Read in any saved scroll locations\n if (typeof document !== \"undefined\") {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n try {\n let sessionPositions = sessionStorage.getItem(\n storageKey || SCROLL_RESTORATION_STORAGE_KEY\n );\n if (sessionPositions) {\n savedScrollPositions = JSON.parse(sessionPositions);\n }\n } catch (e) {\n // no-op, use default empty object\n }\n }, [storageKey]);\n\n // Enable scroll restoration in the router\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n let getKeyWithoutBasename: GetScrollRestorationKeyFunction | undefined =\n getKey && basename !== \"/\"\n ? (location, matches) =>\n getKey(\n // Strip the basename to match useLocation()\n {\n ...location,\n pathname:\n stripBasename(location.pathname, basename) ||\n location.pathname,\n },\n matches\n )\n : getKey;\n let disableScrollRestoration = router?.enableScrollRestoration(\n savedScrollPositions,\n () => window.scrollY,\n getKeyWithoutBasename\n );\n return () => disableScrollRestoration && disableScrollRestoration();\n }, [router, basename, getKey]);\n\n // Restore scrolling when state.restoreScrollPosition changes\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n // Explicit false means don't do anything (used for submissions)\n if (restoreScrollPosition === false) {\n return;\n }\n\n // been here before, scroll to it\n if (typeof restoreScrollPosition === \"number\") {\n window.scrollTo(0, restoreScrollPosition);\n return;\n }\n\n // try to scroll to the hash\n if (location.hash) {\n let el = document.getElementById(\n decodeURIComponent(location.hash.slice(1))\n );\n if (el) {\n el.scrollIntoView();\n return;\n }\n }\n\n // Don't reset if this navigation opted out\n if (preventScrollReset === true) {\n return;\n }\n\n // otherwise go to the top on new locations\n window.scrollTo(0, 0);\n }, [location, restoreScrollPosition, preventScrollReset]);\n }\n}\n\nexport { useScrollRestoration as UNSAFE_useScrollRestoration };\n\n/**\n * Setup a callback to be fired on the window's `beforeunload` event. This is\n * useful for saving some data to `window.localStorage` just before the page\n * refreshes.\n *\n * Note: The `callback` argument should be a function created with\n * `React.useCallback()`.\n */\nexport function useBeforeUnload(\n callback: (event: BeforeUnloadEvent) => any,\n options?: { capture?: boolean }\n): void {\n let { capture } = options || {};\n React.useEffect(() => {\n let opts = capture != null ? { capture } : undefined;\n window.addEventListener(\"beforeunload\", callback, opts);\n return () => {\n window.removeEventListener(\"beforeunload\", callback, opts);\n };\n }, [callback, capture]);\n}\n\n/**\n * Setup a callback to be fired on the window's `pagehide` event. This is\n * useful for saving some data to `window.localStorage` just before the page\n * refreshes. This event is better supported than beforeunload across browsers.\n *\n * Note: The `callback` argument should be a function created with\n * `React.useCallback()`.\n */\nfunction usePageHide(\n callback: (event: PageTransitionEvent) => any,\n options?: { capture?: boolean }\n): void {\n let { capture } = options || {};\n React.useEffect(() => {\n let opts = capture != null ? { capture } : undefined;\n window.addEventListener(\"pagehide\", callback, opts);\n return () => {\n window.removeEventListener(\"pagehide\", callback, opts);\n };\n }, [callback, capture]);\n}\n\n/**\n * Wrapper around useBlocker to show a window.confirm prompt to users instead\n * of building a custom UI with useBlocker.\n *\n * Warning: This has *a lot of rough edges* and behaves very differently (and\n * very incorrectly in some cases) across browsers if user click addition\n * back/forward navigations while the confirm is open. Use at your own risk.\n */\nfunction usePrompt({ when, message }: { when: boolean; message: string }) {\n let blocker = useBlocker(when);\n\n React.useEffect(() => {\n if (blocker.state === \"blocked\") {\n let proceed = window.confirm(message);\n if (proceed) {\n // This timeout is needed to avoid a weird \"race\" on POP navigations\n // between the `window.history` revert navigation and the result of\n // `window.confirm`\n setTimeout(blocker.proceed, 0);\n } else {\n blocker.reset();\n }\n }\n }, [blocker, message]);\n\n React.useEffect(() => {\n if (blocker.state === \"blocked\" && !when) {\n blocker.reset();\n }\n }, [blocker, when]);\n}\n\nexport { usePrompt as unstable_usePrompt };\n\n//#endregion\n","var _rect, _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgLogoRed(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 56,\n height: 56,\n viewBox: \"0 0 56 56\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 56,\n height: 56,\n rx: 12,\n fill: \"#1C1617\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.5103 46.1064H20.3981C18.6741 46.1064 17.2457 44.678 17.2457 42.954V20.5429C17.2457 19.8533 17.7875 19.3115 18.4771 19.3115C19.1667 19.3115 19.7085 19.8533 19.7085 20.5429V42.954C19.7085 43.3481 20.004 43.6436 20.3981 43.6436H29.5103C35.0269 43.6436 39.6569 39.3091 39.8539 33.9403C39.9524 31.182 38.9673 28.5715 37.0463 26.6013C35.1254 24.6311 32.5641 23.5475 29.8058 23.5475C29.1162 23.5475 28.5744 23.0057 28.5744 22.3161C28.5744 17.5383 25.1758 13.4009 20.4966 12.465C20.2503 12.4158 20.0533 12.5143 20.004 12.6128C19.807 12.7113 19.7085 12.9083 19.7085 13.1053V15.4203C19.7085 16.1099 19.1667 16.6517 18.4771 16.6517C17.7875 16.6517 17.2457 16.1099 17.2457 15.4203V13.1053C17.2457 12.1695 17.689 11.2829 18.4279 10.6426C19.1667 10.0515 20.1025 9.80525 20.9891 10.0023C26.4072 11.0859 30.4461 15.6666 30.9879 21.0847C33.9433 21.3802 36.7015 22.6609 38.8195 24.8773C41.1838 27.3401 42.4644 30.591 42.3166 34.0388C42.0211 40.6883 36.3075 46.1064 29.5103 46.1064Z\",\n fill: \"#FF8F8F\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogoRed);\nexport default __webpack_public_path__ + \"static/media/logoRed.c77b440402e7132f23dd2ac1b37bfab5.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgLogoYellow(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 56,\n height: 56,\n viewBox: \"0 0 56 56\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 56,\n height: 56,\n rx: 12,\n fill: \"#1C1617\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.5103 46.1064H20.3981C18.6741 46.1064 17.2457 44.678 17.2457 42.954V20.5429C17.2457 19.8533 17.7875 19.3115 18.4771 19.3115C19.1667 19.3115 19.7085 19.8533 19.7085 20.5429V42.954C19.7085 43.3481 20.004 43.6436 20.3981 43.6436H29.5103C35.0269 43.6436 39.6569 39.3091 39.8539 33.9403C39.9524 31.182 38.9673 28.5715 37.0463 26.6013C35.1254 24.6311 32.5641 23.5475 29.8058 23.5475C29.1162 23.5475 28.5744 23.0057 28.5744 22.3161C28.5744 17.5383 25.1758 13.4009 20.4966 12.465C20.2503 12.4158 20.0533 12.5143 20.004 12.6128C19.807 12.7113 19.7085 12.9083 19.7085 13.1053V15.4203C19.7085 16.1099 19.1667 16.6517 18.4771 16.6517C17.7875 16.6517 17.2457 16.1099 17.2457 15.4203V13.1053C17.2457 12.1695 17.689 11.2829 18.4279 10.6426C19.1667 10.0515 20.1025 9.80525 20.9891 10.0023C26.4072 11.0859 30.4461 15.6666 30.9879 21.0847C33.9433 21.3802 36.7015 22.6609 38.8195 24.8773C41.1838 27.3401 42.4644 30.591 42.3166 34.0388C42.0211 40.6883 36.3075 46.1064 29.5103 46.1064Z\",\n fill: \"#FDFF8F\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogoYellow);\nexport default __webpack_public_path__ + \"static/media/logoYellow.89d3f5f8947778b1855e242b7e2d438c.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgLogoOrange(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 56,\n height: 56,\n viewBox: \"0 0 56 56\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 56,\n height: 56,\n rx: 12,\n fill: \"#1C1617\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.5103 46.1064H20.3981C18.6741 46.1064 17.2457 44.678 17.2457 42.954V20.5429C17.2457 19.8533 17.7875 19.3115 18.4771 19.3115C19.1667 19.3115 19.7085 19.8533 19.7085 20.5429V42.954C19.7085 43.3481 20.004 43.6436 20.3981 43.6436H29.5103C35.0269 43.6436 39.6569 39.3091 39.8539 33.9403C39.9524 31.182 38.9673 28.5715 37.0463 26.6013C35.1254 24.6311 32.5641 23.5475 29.8058 23.5475C29.1162 23.5475 28.5744 23.0057 28.5744 22.3161C28.5744 17.5383 25.1758 13.4009 20.4966 12.465C20.2503 12.4158 20.0533 12.5143 20.004 12.6128C19.807 12.7113 19.7085 12.9083 19.7085 13.1053V15.4203C19.7085 16.1099 19.1667 16.6517 18.4771 16.6517C17.7875 16.6517 17.2457 16.1099 17.2457 15.4203V13.1053C17.2457 12.1695 17.689 11.2829 18.4279 10.6426C19.1667 10.0515 20.1025 9.80525 20.9891 10.0023C26.4072 11.0859 30.4461 15.6666 30.9879 21.0847C33.9433 21.3802 36.7015 22.6609 38.8195 24.8773C41.1838 27.3401 42.4644 30.591 42.3166 34.0388C42.0211 40.6883 36.3075 46.1064 29.5103 46.1064Z\",\n fill: \"#FFC58F\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogoOrange);\nexport default __webpack_public_path__ + \"static/media/logoOrange.57554cefd7d4bb9450c4643383eb3eef.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgLogoBlue(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 56,\n height: 56,\n viewBox: \"0 0 56 56\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 56,\n height: 56,\n rx: 12,\n fill: \"#1C1617\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.5103 46.1064H20.3981C18.6741 46.1064 17.2457 44.678 17.2457 42.954V20.5429C17.2457 19.8533 17.7875 19.3115 18.4771 19.3115C19.1667 19.3115 19.7085 19.8533 19.7085 20.5429V42.954C19.7085 43.3481 20.004 43.6436 20.3981 43.6436H29.5103C35.0269 43.6436 39.6569 39.3091 39.8539 33.9403C39.9524 31.182 38.9673 28.5715 37.0463 26.6013C35.1254 24.6311 32.5641 23.5475 29.8058 23.5475C29.1162 23.5475 28.5744 23.0057 28.5744 22.3161C28.5744 17.5383 25.1758 13.4009 20.4966 12.465C20.2503 12.4158 20.0533 12.5143 20.004 12.6128C19.807 12.7113 19.7085 12.9083 19.7085 13.1053V15.4203C19.7085 16.1099 19.1667 16.6517 18.4771 16.6517C17.7875 16.6517 17.2457 16.1099 17.2457 15.4203V13.1053C17.2457 12.1695 17.689 11.2829 18.4279 10.6426C19.1667 10.0515 20.1025 9.80525 20.9891 10.0023C26.4072 11.0859 30.4461 15.6666 30.9879 21.0847C33.9433 21.3802 36.7015 22.6609 38.8195 24.8773C41.1838 27.3401 42.4644 30.591 42.3166 34.0388C42.0211 40.6883 36.3075 46.1064 29.5103 46.1064Z\",\n fill: \"#8FF2FF\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogoBlue);\nexport default __webpack_public_path__ + \"static/media/logoBlue.6bd6dcde2c81a735f7bdaed0e5901dbf.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgLogoGreen(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 56,\n height: 56,\n viewBox: \"0 0 56 56\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 56,\n height: 56,\n rx: 12,\n fill: \"#1C1617\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.5103 46.1064H20.3981C18.6741 46.1064 17.2457 44.678 17.2457 42.954V20.5429C17.2457 19.8533 17.7875 19.3115 18.4771 19.3115C19.1667 19.3115 19.7085 19.8533 19.7085 20.5429V42.954C19.7085 43.3481 20.004 43.6436 20.3981 43.6436H29.5103C35.0269 43.6436 39.6569 39.3091 39.8539 33.9403C39.9524 31.182 38.9673 28.5715 37.0463 26.6013C35.1254 24.6311 32.5641 23.5475 29.8058 23.5475C29.1162 23.5475 28.5744 23.0057 28.5744 22.3161C28.5744 17.5383 25.1758 13.4009 20.4966 12.465C20.2503 12.4158 20.0533 12.5143 20.004 12.6128C19.807 12.7113 19.7085 12.9083 19.7085 13.1053V15.4203C19.7085 16.1099 19.1667 16.6517 18.4771 16.6517C17.7875 16.6517 17.2457 16.1099 17.2457 15.4203V13.1053C17.2457 12.1695 17.689 11.2829 18.4279 10.6426C19.1667 10.0515 20.1025 9.80525 20.9891 10.0023C26.4072 11.0859 30.4461 15.6666 30.9879 21.0847C33.9433 21.3802 36.7015 22.6609 38.8195 24.8773C41.1838 27.3401 42.4644 30.591 42.3166 34.0388C42.0211 40.6883 36.3075 46.1064 29.5103 46.1064Z\",\n fill: \"#8FFFA7\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogoGreen);\nexport default __webpack_public_path__ + \"static/media/logoGreen.1adec2dad8b70ddd92c6169fd53e1e73.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgTiktok(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_934_1025)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.0287 0.0202511C13.3375 0 14.6389 0.0120006 15.9387 0C16.0174 1.53083 16.568 3.09016 17.6885 4.17247C18.8068 5.28178 20.3887 5.78956 21.9277 5.96132V9.98828C20.4854 9.94103 19.0363 9.64101 17.7275 9.01998C17.1575 8.76197 16.6265 8.4297 16.1067 8.08993C16.0999 11.0121 16.1187 13.9305 16.0879 16.8406C16.0099 18.2387 15.5486 19.63 14.7356 20.7821C13.4275 22.7 11.1572 23.9503 8.82529 23.9893C7.39497 24.071 5.96614 23.681 4.74732 22.9625C2.72747 21.7714 1.30614 19.591 1.09913 17.2509C1.07513 16.7506 1.06688 16.2511 1.08713 15.7628C1.26714 13.86 2.20844 12.0396 3.66952 10.8013C5.3256 9.359 7.64548 8.67196 9.81759 9.07848C9.83784 10.5598 9.77859 12.0396 9.77859 13.521C8.78629 13.2 7.62673 13.29 6.75968 13.8922C6.12665 14.3025 5.64587 14.931 5.39536 15.6421C5.18835 16.1491 5.2476 16.7124 5.2596 17.2509C5.49736 18.892 7.07545 20.2713 8.76004 20.1221C9.87685 20.1101 10.9472 19.462 11.5292 18.5132C11.7174 18.181 11.9282 17.8412 11.9395 17.4504C12.0377 15.6616 11.9987 13.8802 12.0107 12.0914C12.019 8.05993 11.9987 4.03972 12.0295 0.0210011L12.0287 0.0202511Z\",\n fill: \"#120E0F\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_934_1025\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"white\"\n })))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTiktok);\nexport default __webpack_public_path__ + \"static/media/tiktok.f0ac238430d3992bebef9e36291b3699.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgYoutube(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.4989 6.58681C23.2139 5.57475 22.4246 4.78101 21.4081 4.50043C19.5362 4.00002 12.0114 4.00002 12.0114 4.00002C12.0114 4.00002 4.5009 3.98802 2.60957 4.50043C1.59826 4.78176 0.805273 5.57475 0.523186 6.58681C0.168328 8.50515 -0.00797569 10.4467 0.000276828 12.3973C-0.00347432 14.3352 0.172079 16.2738 0.523186 18.1801C0.805273 19.1922 1.59826 19.9859 2.60957 20.271C4.48139 20.7714 12.0114 20.7714 12.0114 20.7714C12.0114 20.7714 19.5175 20.7714 21.4081 20.271C22.4246 19.9859 23.2139 19.1929 23.4989 18.1801C23.8433 16.2738 24.0114 14.3352 23.9994 12.3973C24.0114 10.4467 23.8471 8.50515 23.4989 6.58681ZM9.60771 15.9887V8.79024L15.8714 12.3973L9.60771 15.9887Z\",\n fill: \"#120E0F\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgYoutube);\nexport default __webpack_public_path__ + \"static/media/youtube.1c07c72f9cadce255f5ab14edbce43a5.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgInsta(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 0C8.73784 0 8.33129 0.015752 7.05463 0.0697587C5.77272 0.132767 4.90561 0.331541 4.14052 0.628579C3.35142 0.937617 2.67933 1.34792 2.0155 2.0155C1.34717 2.67934 0.933117 3.35142 0.628579 4.14052C0.331541 4.90561 0.132767 5.77272 0.0697587 7.05463C0.0120015 8.33204 0 8.73784 0 12C0 15.2622 0.015752 15.6687 0.0697587 16.9454C0.132767 18.2235 0.331541 19.0944 0.628579 19.8595C0.937617 20.6486 1.34792 21.3207 2.0155 21.9845C2.67933 22.6528 3.35142 23.0669 4.14052 23.3714C4.90561 23.6647 5.77647 23.8672 7.05463 23.9302C8.33204 23.988 8.73784 24 12 24C15.2622 24 15.6687 23.9842 16.9454 23.9302C18.2235 23.8672 19.0944 23.664 19.8595 23.3714C20.6486 23.0624 21.3207 22.6521 21.9845 21.9845C22.6528 21.3207 23.0669 20.6523 23.3714 19.8595C23.6647 19.0944 23.8672 18.2235 23.9302 16.9454C23.988 15.668 24 15.2622 24 12C24 8.73784 23.9842 8.33129 23.9302 7.05463C23.8672 5.77647 23.664 4.90111 23.3714 4.14052C23.0624 3.35142 22.6521 2.67934 21.9845 2.0155C21.3207 1.34717 20.6523 0.933117 19.8595 0.628579C19.0944 0.331541 18.2235 0.132767 16.9454 0.0697587C15.668 0.0120015 15.2622 0 12 0ZM12 2.16027C15.2037 2.16027 15.5862 2.17602 16.8524 2.23003C18.0203 2.28479 18.6563 2.47981 19.0786 2.64483C19.642 2.86311 20.0358 3.12114 20.4618 3.54269C20.8796 3.9605 21.1376 4.3588 21.3559 4.92212C21.5209 5.34442 21.716 5.9805 21.7707 7.14839C21.8247 8.41455 21.8405 8.79785 21.8405 12.0008C21.8405 15.2037 21.8247 15.587 21.7662 16.8531C21.7032 18.021 21.5082 18.6571 21.3439 19.0794C21.1166 19.6427 20.8631 20.0365 20.4446 20.4626C20.0223 20.8804 19.6202 21.1384 19.0614 21.3567C18.6443 21.5217 17.9993 21.7167 16.8269 21.7715C15.5539 21.8255 15.1789 21.8412 11.967 21.8412C8.7551 21.8412 8.3808 21.8255 7.10639 21.767C5.93849 21.704 5.29416 21.5089 4.87186 21.3447C4.30179 21.1174 3.91099 20.8639 3.49244 20.4453C3.07013 20.023 2.8016 19.621 2.59457 19.0621C2.42655 18.6451 2.23453 18 2.17227 16.8276C2.12952 15.5697 2.10926 15.1796 2.10926 11.9827C2.10926 8.78735 2.12952 8.39655 2.17227 7.12289C2.23453 5.95049 2.42655 5.30691 2.59457 4.88836C2.8016 4.31754 3.07088 3.92749 3.49244 3.50519C3.91024 3.08739 4.30179 2.81735 4.87186 2.60583C5.29416 2.44156 5.92274 2.24653 7.09514 2.18802C8.36805 2.14227 8.74309 2.12577 11.9505 2.12577L12 2.16027ZM12 5.84098C8.59383 5.84098 5.83948 8.59908 5.83948 12.0015C5.83948 15.4077 8.59758 18.162 12 18.162C15.4062 18.162 18.1605 15.4039 18.1605 12.0015C18.1605 8.59533 15.4024 5.84098 12 5.84098ZM12 16.0018C9.78872 16.0018 7.99975 14.2128 7.99975 12.0015C7.99975 9.79022 9.78872 8.00125 12 8.00125C14.2113 8.00125 16.0002 9.79022 16.0002 12.0015C16.0002 14.2128 14.2113 16.0018 12 16.0018ZM19.849 5.59495C19.849 6.3923 19.2002 7.03588 18.4066 7.03588C17.6092 7.03588 16.9656 6.39155 16.9656 5.59495C16.9656 4.8021 17.6137 4.15702 18.4066 4.15702C19.1994 4.15702 19.849 4.8021 19.849 5.59495Z\",\n fill: \"#120E0F\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgInsta);\nexport default __webpack_public_path__ + \"static/media/insta.b8853e530e6b99d825020cc34808f1d5.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgTwitter(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.9542 4.22757C23.0715 4.61457 22.1265 4.88082 21.1305 5.00157C22.1467 4.39182 22.9237 3.42732 23.2942 2.27832C22.341 2.83332 21.2865 3.23532 20.1652 3.46257C19.2712 2.50557 17.9932 1.90332 16.575 1.90332C13.8562 1.90332 11.6527 4.10607 11.6527 6.82106C11.6527 7.21181 11.7 7.58681 11.7817 7.94231C7.69199 7.75106 4.06649 5.78606 1.64175 2.81757C1.21575 3.54057 0.973499 4.38057 0.973499 5.29482C0.973499 7.00556 1.84425 8.50556 3.1605 9.38756C2.35575 9.36431 1.59825 9.14156 0.934499 8.77481V8.83406C0.934499 11.2198 2.6295 13.2088 4.87949 13.6618C4.46924 13.7706 4.03124 13.8336 3.58649 13.8336C3.27075 13.8336 2.96925 13.8028 2.6685 13.7473C3.3015 15.7003 5.11349 17.1223 7.27349 17.165C5.59424 18.4813 3.46574 19.2658 1.17225 19.2658C0.781499 19.2658 0.391499 19.247 0 19.1998C2.18775 20.5948 4.76999 21.4108 7.55924 21.4108C16.6095 21.4108 21.555 13.9146 21.555 7.42256C21.555 7.21556 21.555 7.00481 21.5392 6.79331C22.5045 6.10556 23.34 5.23407 24 4.24632L23.9542 4.22757Z\",\n fill: \"#120E0F\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTwitter);\nexport default __webpack_public_path__ + \"static/media/twitter.c3e721687f993bb83ef541251c1085f5.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgHamburger(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 28,\n height: 16,\n viewBox: \"0 0 28 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group 663\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0 1C0 0.447715 0.447715 0 1 0H27C27.5523 0 28 0.447715 28 1C28 1.55228 27.5523 2 27 2H1C0.447715 2 0 1.55228 0 1Z\",\n fill: \"#120E0F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)_2\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0 15C0 14.4477 0.447715 14 1 14H27C27.5523 14 28 14.4477 28 15C28 15.5523 27.5523 16 27 16H1C0.447715 16 0 15.5523 0 15Z\",\n fill: \"#120E0F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)_3\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0 8C0 7.44772 0.447715 7 1 7H27C27.5523 7 28 7.44772 28 8C28 8.55228 27.5523 9 27 9H1C0.447715 9 0 8.55228 0 8Z\",\n fill: \"#120E0F\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgHamburger);\nexport default __webpack_public_path__ + \"static/media/hamburger.c08eaacb2fb2300d51e6defe40dbd4b3.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgClose(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group 560\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M19.7071 0.292893C20.0976 0.683417 20.0976 1.31658 19.7071 1.70711L1.70711 19.7071C1.31658 20.0976 0.683417 20.0976 0.292893 19.7071C-0.0976311 19.3166 -0.0976311 18.6834 0.292893 18.2929L18.2929 0.292893C18.6834 -0.0976311 19.3166 -0.0976311 19.7071 0.292893Z\",\n fill: \"#928183\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)_2\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.292893 0.292893C0.683417 -0.0976311 1.31658 -0.0976311 1.70711 0.292893L8.70711 7.29289C9.09763 7.68342 9.09763 8.31658 8.70711 8.70711C8.31658 9.09763 7.68342 9.09763 7.29289 8.70711L0.292893 1.70711C-0.0976311 1.31658 -0.0976311 0.683417 0.292893 0.292893Z\",\n fill: \"#928183\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)_3\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M11.2929 11.2929C11.6834 10.9024 12.3166 10.9024 12.7071 11.2929L19.7071 18.2929C20.0976 18.6834 20.0976 19.3166 19.7071 19.7071C19.3166 20.0976 18.6834 20.0976 18.2929 19.7071L11.2929 12.7071C10.9024 12.3166 10.9024 11.6834 11.2929 11.2929Z\",\n fill: \"#928183\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgClose);\nexport default __webpack_public_path__ + \"static/media/close.452b5b9418ffcd2b40bb13e09a3f7851.svg\";\nexport { ForwardRef as ReactComponent };","import { useLocation } from 'react-router-dom'\nimport 'styles/button.css'\n\nexport default function Button({ label, onClick = () => null, buttonStyle = '', type = 'button' }) {\n const location = useLocation()\n\n switch (location.pathname) {\n case '/faq':\n buttonStyle = 'button-blue ' + buttonStyle\n break\n case '/about-us':\n buttonStyle = 'button-yellow ' + buttonStyle\n break\n case '/partners':\n buttonStyle = 'button-orange ' + buttonStyle\n break\n case '/contact':\n buttonStyle = 'button-green ' + buttonStyle\n break\n default:\n buttonStyle = 'button-red ' + buttonStyle\n break\n }\n\n return (\n <button\n className={`small-600 rounded-button rounded-button-label ${buttonStyle}`}\n aria-label={'Download'}\n onClick={onClick}\n type={type as 'button' | 'submit' | 'reset'}\n >\n {label}\n </button>\n )\n}\n","var _path, _rect;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgLogoHover(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 56,\n height: 56,\n viewBox: \"0 0 56 56\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.5103 46.1064H20.3981C18.6741 46.1064 17.2457 44.678 17.2457 42.954V20.5429C17.2457 19.8533 17.7875 19.3115 18.4771 19.3115C19.1667 19.3115 19.7085 19.8533 19.7085 20.5429V42.954C19.7085 43.3481 20.004 43.6436 20.3981 43.6436H29.5103C35.0269 43.6436 39.6569 39.3091 39.8539 33.9403C39.9524 31.182 38.9673 28.5715 37.0463 26.6013C35.1254 24.6311 32.5641 23.5475 29.8058 23.5475C29.1162 23.5475 28.5744 23.0057 28.5744 22.3161C28.5744 17.5383 25.1758 13.4009 20.4966 12.465C20.2503 12.4158 20.0533 12.5143 20.004 12.6128C19.807 12.7113 19.7085 12.9083 19.7085 13.1053V15.4203C19.7085 16.1099 19.1667 16.6517 18.4771 16.6517C17.7875 16.6517 17.2457 16.1099 17.2457 15.4203V13.1053C17.2457 12.1695 17.689 11.2829 18.4279 10.6426C19.1667 10.0515 20.1025 9.80525 20.9891 10.0023C26.4072 11.0859 30.4461 15.6666 30.9879 21.0847C33.9433 21.3802 36.7015 22.6609 38.8195 24.8773C41.1838 27.3401 42.4644 30.591 42.3166 34.0388C42.0211 40.6883 36.3075 46.1064 29.5103 46.1064Z\",\n fill: \"#120E0F\"\n })), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 1,\n y: 1,\n width: 54,\n height: 54,\n rx: 11,\n stroke: \"#120E0F\",\n strokeWidth: 2\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogoHover);\nexport default __webpack_public_path__ + \"static/media/logoHover.4712c9d14c62578124470af6e3150b67.svg\";\nexport { ForwardRef as ReactComponent };","import 'styles/header.css'\nimport 'styles/text.css'\nimport { Link } from 'react-router-dom'\nimport tiktok from 'assets/tiktok.svg'\nimport youtube from 'assets/youtube.svg'\nimport logoRed from 'assets/logoRed.svg'\nimport insta from 'assets/insta.svg'\nimport twitter from 'assets/twitter.svg'\nimport hamburger from 'assets/hamburger.svg'\nimport close from 'assets/close.svg'\nimport Button from 'components/button'\nimport logoHover from 'assets/logoHover.svg'\nimport { useEffect, useState } from 'react'\n\nexport default function Header({ useDark, logo = logoRed }) {\n const [expanded, setExpanded] = useState(false)\n\n const [scrollPosition, setScrollPosition] = useState(0)\n const handleScroll = () => {\n const position = window.scrollY\n setScrollPosition(position)\n }\n\n useEffect(() => {\n window.addEventListener('scroll', handleScroll, { passive: true })\n\n return () => {\n window.removeEventListener('scroll', handleScroll)\n }\n }, [])\n\n let containerStyle = ''\n let textStyle = ''\n let iconStyle = ''\n let buttonStyle = ''\n let hamburgerStyle = ''\n\n if (useDark || scrollPosition > 100) {\n containerStyle = 'dark-header-row'\n textStyle = 'dark-header-text'\n iconStyle = 'dark-header-icon'\n buttonStyle = 'small-600 rounded-button-light rounded-button-label-light'\n hamburgerStyle = 'dark-menu'\n }\n\n return (\n <>\n {/* <ScrollToAnchor /> */}\n <div className={`topBar ${containerStyle}`}>\n <div\n className={`mobile-background ${expanded && 'mobile-background-expanded'}`}\n onClick={() => setExpanded(false)}\n />\n <div className={`mobile-tray ${expanded && 'mobile-tray-expanded'}`}>\n <div className=\"tray-container\">\n <img src={close} className=\"close\" alt=\"logo\" onClick={() => setExpanded(false)} />\n <Link className=\"h5 tray-text\" to={'about-us'} onClick={() => setExpanded(false)}>\n About Us\n </Link>\n <Link className=\"h5 tray-text\" to={'faq'} onClick={() => setExpanded(false)}>\n FAQ \n </Link>\n <Link className=\"h5 tray-text\" to={'contact'} onClick={() => setExpanded(false)}>\n Contact\n </Link>\n <a href=\"https://www.tiktok.com/@badtraderapp\" className=\"h5 tray-text\" target=\"_blank\" rel=\"noreferrer\">\n <img src={tiktok} className=\"social dark-header-icon\" alt=\"logo\" /> TikTok\n </a>\n <a href=\"https://www.youtube.com/@badtraderapp/\" className=\"h5 tray-text\" target=\"_blank\" rel=\"noreferrer\">\n <img src={youtube} className=\"social dark-header-icon\" alt=\"logo\" /> Youtube\n </a>\n <a href=\"https://www.instagram.com/badtraderapp/\" className=\"h5 tray-text\" target=\"_blank\" rel=\"noreferrer\">\n <img src={insta} className=\"social dark-header-icon\" alt=\"logo\" /> Instagram\n </a>\n <a href=\"https://twitter.com/BadTraderApp\" className=\"h5 tray-text\" target=\"_blank\" rel=\"noreferrer\">\n <img src={twitter} className=\"social dark-header-icon\" alt=\"logo\" /> Twitter\n </a>\n </div>\n <div className=\"tray-footer\">\n <Link to=\"/#download\" onClick={() => setExpanded(false)}>\n <Button label=\"Download\" buttonStyle=\"rounded-button-light rounded-button-label-light tray-button\" />\n </Link>\n </div>\n </div>\n <div className=\"mobile-container\">\n <img src={hamburger} className={`menu ${hamburgerStyle}`} alt=\"logo\" onClick={() => setExpanded(true)} />\n </div>\n <div className=\"left-container\">\n <Link to={'/'} className=\"surround\">\n <img\n src={logo}\n className=\"logo\"\n alt=\"logo\"\n id={!(useDark || scrollPosition > 720) ? 'shown-logo' : 'logo-basic'}\n />\n {!(useDark || scrollPosition > 720) && (\n <img src={logoHover} className=\"logo hover-logo\" alt=\"logo\" id=\"hover-logo\" />\n )}\n </Link>\n </div>\n <div className=\"center-container\">\n <div className=\"link-left\" />\n <Link className={`link large-400 ${textStyle}`} to={'about-us'}>\n About Us\n </Link>\n <Link className={`link large-400 ${textStyle}`} to={'faq'}>\n FAQ\n </Link>\n <Link className={`link large-400 ${textStyle}`} to={'contact'}>\n Contact\n </Link>\n <div className=\"link-right\" />\n </div>\n <div className=\"right-container\">\n <a href=\"https://www.tiktok.com/@badtraderapp\" target=\"_blank\" rel=\"noreferrer\">\n <img src={tiktok} className={`social ${iconStyle}`} alt=\"logo\" />\n </a>\n <a href=\"https://www.youtube.com/@badtraderapp/\" target=\"_blank\" rel=\"noreferrer\">\n <img src={youtube} className={`social ${iconStyle}`} alt=\"logo\" />\n </a>\n <a href=\"https://www.instagram.com/badtraderapp/\" target=\"_blank\" rel=\"noreferrer\">\n <img src={insta} className={`social ${iconStyle}`} alt=\"logo\" />\n </a>\n <a href=\"https://twitter.com/BadTraderApp\" target=\"_blank\" rel=\"noreferrer\">\n <img src={twitter} className={`social ${iconStyle}`} alt=\"logo\" />\n </a>\n <Link to=\"/#download\">\n <Button label=\"Download\" buttonStyle={buttonStyle} />\n </Link>\n </div>\n </div>\n <div className=\"header-placeholder\" />\n </>\n )\n}\n","import { Link } from 'react-router-dom'\nimport 'styles/footer.css'\nimport logoGif from 'assets/logo.gif'\n\nexport default function Footer() {\n return (\n <div className=\"footer\">\n <div className=\"small-600 footer-category-container\">\n <img src={logoGif} className=\"logo-gif-footer\" alt=\"logo\" />\n </div>\n <div className=\"small-600 footer-category-container\">\n Navigation\n <div className=\"footer-link-container\">\n <Link className=\"footer-link\" to={'about-us'}>\n About Us\n </Link>\n <Link className=\"footer-link\" to={'faq'}>\n FAQ\n </Link>\n <Link className=\"footer-link\" to={'contact'}>\n Contact\n </Link>\n </div>\n </div>\n <div className=\"small-600 footer-category-container\">\n Contact\n <Link className=\"footer-link\" to={'/host-application'}>\n Become a Host\n </Link>\n <a className=\"footer-link\" href=\"mailto:support@badtrader.app\">\n support@badtrader.app\n </a>\n </div>\n <div className=\"small-600 footer-category-container big-footer-container\">\n Legal\n <a\n className=\"footer-link\"\n href=\"http://www.badtrader.squarespace.com/s/Bad-Trader-Terms-of-Service-Dec-2024.docx\"\n >\n Terms and Conditions\n </a>\n <a\n className=\"footer-link\"\n href=\"https://static1.squarespace.com/static/6415e7b9d4a78e3637c4a203/t/647fcb0bd87bca53a3f0052a/1686096651474/Bad+Trader+Mobile+Terms+of+Service+Final-1.pdf\"\n >\n Mobile Terms and Conditions\n </a>\n <a\n className=\"footer-link\"\n href=\"https://static1.squarespace.com/static/6415e7b9d4a78e3637c4a203/t/647fc9ae6dafa05b409c9413/1686096303094/Bad+Trader+Community+Guidelines+Final-1.pdf\"\n >\n Community Guidelines\n </a>\n {/* <Link className=\"footer-link\" to={'/privacy-policy'}> */}\n <a\n className=\"footer-link\"\n href=\"http://www.badtrader.squarespace.com/s/Bad-Trader-Privacy-Policy-SEPT-2024.docx\"\n >\n Privacy Policy\n </a>\n {/* </Link> */}\n <a\n className=\"footer-link\"\n href=\"https://static1.squarespace.com/static/6415e7b9d4a78e3637c4a203/t/647f3c1e6e9387243f4f0339/1686060062212/Bad+Trader+DMCA+Guidelines+Final.pdf\"\n >\n DMCA Notifications Guidelines\n </a>\n <a\n className=\"footer-link\"\n href=\"https://static1.squarespace.com/static/6415e7b9d4a78e3637c4a203/t/647f3c1e6e9387243f4f0339/1686060062212/Bad+Trader+DMCA+Guidelines+Final.pdf\"\n >\n DMCA Notification Form\n </a>\n <a\n className=\"footer-link\"\n href=\"https://static1.squarespace.com/static/6415e7b9d4a78e3637c4a203/t/647fc8f6a645fd1f1bf45429/1686096118308/Bad+Trader+Trademark+Guidelines+Final.pdf\"\n >\n Trademark Usage Guidelines\n </a>\n </div>\n </div>\n )\n}\n","var _g;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgEye(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 17,\n viewBox: \"0 0 22 17\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group 563\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M19.4847 10.7951C14.7976 6.10801 7.20244 6.10801 2.51533 10.7951L1.985 10.2648L2.51533 10.7951L2.31066 10.9998L2.51533 11.2045L1.985 11.7348L2.51533 11.2045C6.66526 15.3544 13.0961 15.8284 17.769 12.6308C18.1108 12.3969 18.5775 12.4844 18.8115 12.8262C19.0454 13.1681 18.9579 13.6348 18.616 13.8687C13.3589 17.4662 6.12474 16.9352 1.45467 12.2651L0.71967 11.5301C0.579018 11.3895 0.5 11.1987 0.5 10.9998C0.5 10.8009 0.579018 10.6101 0.71967 10.4695L1.45467 9.73446C6.72756 4.46156 15.2724 4.46156 20.5453 9.73446L21.2803 10.4695C21.5732 10.7623 21.5732 11.2372 21.2803 11.5301L20.5453 12.2651C20.2524 12.558 19.7776 12.558 19.4847 12.2651C19.1918 11.9722 19.1918 11.4973 19.4847 11.2045L19.6893 10.9998L19.4847 10.7951Z\",\n fill: \"#928183\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)_2\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M11 8.75C9.75671 8.75 8.75 9.75671 8.75 11C8.75 12.2433 9.75671 13.25 11 13.25C12.0277 13.25 12.8962 12.559 13.1667 11.6178C13.2811 11.2197 13.6966 10.9898 14.0947 11.1042C14.4928 11.2186 14.7227 11.6341 14.6083 12.0322C14.1588 13.596 12.7173 14.75 11 14.75C8.92829 14.75 7.25 13.0717 7.25 11C7.25 8.92829 8.92829 7.25 11 7.25C12.4836 7.25 13.7669 8.11444 14.3748 9.36767C14.5556 9.74035 14.4 10.189 14.0273 10.3698C13.6546 10.5506 13.206 10.395 13.0252 10.0223C12.6581 9.26556 11.8864 8.75 11 8.75Z\",\n fill: \"#928183\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)_3\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M11 0.5C11.4142 0.5 11.75 0.835786 11.75 1.25V4.25C11.75 4.66421 11.4142 5 11 5C10.5858 5 10.25 4.66421 10.25 4.25V1.25C10.25 0.835786 10.5858 0.5 11 0.5Z\",\n fill: \"#928183\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)_4\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M17.4161 2.12604C17.7608 2.35581 17.8539 2.82146 17.6241 3.1661L16.1241 5.4161C15.8944 5.76075 15.4287 5.85388 15.0841 5.62412C14.7394 5.39435 14.6463 4.9287 14.876 4.58405L16.376 2.33405C16.6058 1.98941 17.0715 1.89628 17.4161 2.12604Z\",\n fill: \"#928183\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)_5\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.58405 2.12604C4.9287 1.89628 5.39435 1.98941 5.62412 2.33405L7.12412 4.58405C7.35388 4.9287 7.26075 5.39435 6.9161 5.62412C6.57146 5.85388 6.10581 5.76075 5.87604 5.4161L4.37604 3.1661C4.14628 2.82146 4.23941 2.35581 4.58405 2.12604Z\",\n fill: \"#928183\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEye);\nexport default __webpack_public_path__ + \"static/media/eye.4568820b1fc77d1fbf440a71303ee376.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgError(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 6,\n height: 6,\n viewBox: \"0 0 6 6\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group 560\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5.42678 0.573223C5.52441 0.670854 5.52441 0.829146 5.42678 0.926777L0.926777 5.42678C0.829146 5.52441 0.670854 5.52441 0.573223 5.42678C0.475592 5.32915 0.475592 5.17085 0.573223 5.07322L5.07322 0.573223C5.17085 0.475592 5.32915 0.475592 5.42678 0.573223Z\",\n fill: \"#FF8F8F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)_2\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.573223 0.573223C0.670854 0.475592 0.829146 0.475592 0.926777 0.573223L2.67678 2.32322C2.77441 2.42085 2.77441 2.57915 2.67678 2.67678C2.57915 2.77441 2.42085 2.77441 2.32322 2.67678L0.573223 0.926777C0.475592 0.829146 0.475592 0.670854 0.573223 0.573223Z\",\n fill: \"#FF8F8F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)_3\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M3.32322 3.32322C3.42085 3.22559 3.57915 3.22559 3.67678 3.32322L5.42678 5.07322C5.52441 5.17085 5.52441 5.32915 5.42678 5.42678C5.32915 5.52441 5.17085 5.52441 5.07322 5.42678L3.32322 3.67678C3.22559 3.57915 3.22559 3.42085 3.32322 3.32322Z\",\n fill: \"#FF8F8F\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgError);\nexport default __webpack_public_path__ + \"static/media/error.4ac9bb2a6455b7a43710fae14027fe9d.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgEyeClosed(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M1.71967 11.4697C2.01256 11.1768 2.48744 11.1768 2.78033 11.4697L3.51533 12.2047C8.20244 16.8918 15.7976 16.8918 20.4847 12.2047L21.2197 11.4697C21.5126 11.1768 21.9874 11.1768 22.2803 11.4697C22.5732 11.7626 22.5732 12.2374 22.2803 12.5303L21.5453 13.2653C16.2724 18.5382 7.72756 18.5382 2.45467 13.2653L1.71967 12.5303C1.42678 12.2374 1.42678 11.7626 1.71967 11.4697Z\",\n fill: \"#928183\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12 18C12.4142 18 12.75 18.3358 12.75 18.75V21.75C12.75 22.1642 12.4142 22.5 12 22.5C11.5858 22.5 11.25 22.1642 11.25 21.75V18.75C11.25 18.3358 11.5858 18 12 18Z\",\n fill: \"#928183\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M7.91601 17.376C8.26066 17.6057 8.35379 18.0714 8.12403 18.416L6.62403 20.666C6.39426 21.0107 5.92861 21.1038 5.58396 20.8741C5.23932 20.6443 5.14619 20.1786 5.37595 19.834L6.87595 17.584C7.10571 17.2393 7.57137 17.1462 7.91601 17.376Z\",\n fill: \"#928183\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16.084 17.376C16.4286 17.1462 16.8943 17.2393 17.124 17.584L18.624 19.834C18.8538 20.1786 18.7607 20.6443 18.416 20.8741C18.0714 21.1038 17.6057 21.0107 17.376 20.666L15.876 18.416C15.6462 18.0714 15.7393 17.6057 16.084 17.376Z\",\n fill: \"#928183\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEyeClosed);\nexport default __webpack_public_path__ + \"static/media/eye-closed.5228610ae7f6f6c63056f452ac149861.svg\";\nexport { ForwardRef as ReactComponent };","import 'styles/loader.css'\n\nexport default function Loader({ small = false, style = {} }) {\n return (\n <div id=\"loader\">\n <div className={`cube-folding ${small && 'cube-folding-small'}`} style={style}>\n <span className=\"leaf1\"></span>\n <span className=\"leaf2\"></span>\n <span className=\"leaf3\"></span>\n <span className=\"leaf4\"></span>\n </div>\n </div>\n )\n}\n","import 'styles/login-modal.css'\nimport closeIcon from 'assets/close.svg'\nimport logoGif from 'assets/logo.gif'\nimport eye from 'assets/eye.svg'\nimport error from 'assets/error.svg'\nimport eyeClosed from 'assets/eye-closed.svg'\nimport { useState } from 'react'\nimport Button from './button'\nimport _ from 'lodash'\nimport Loader from './loader'\n\nexport const USER_BLOCKED_MESSAGE = 'User is disabled.'\n\nexport default function LoginModal({ visible, setVisible, onLogin, cognito }) {\n const [passwordShown, setPasswordShown] = useState(false)\n const [password, setPassword] = useState('')\n const [email, setEmail] = useState('')\n const [code, setCode] = useState('')\n const [confirmationCode, setConfirmationCode] = useState('')\n const [errors, setErrors] = useState([])\n const [errorMessage, setErrorMessage] = useState('')\n const [isLoading, setIsLoading] = useState(false)\n const [isForgotSent, setIsForgotSent] = useState(false)\n const [isConfirmationSent, setIsConfirmationSent] = useState(false)\n\n const loginAndNavigate = () => {\n let errors = []\n if (_.isEmpty(email)) {\n errors = ['email']\n }\n\n if (_.isEmpty(password)) {\n errors = errors.concat(['password'])\n }\n\n if (!_.isEmpty(errors) || isLoading) {\n setErrors(errors)\n return\n }\n\n setIsLoading(true)\n\n cognito\n .login(email, password)\n .then(() => {\n onLogin().then(() => {\n setVisible(false)\n setIsLoading(false)\n })\n })\n .catch(error => {\n if (error.message === USER_BLOCKED_MESSAGE) {\n setIsLoading(false)\n setErrorMessage(USER_BLOCKED_MESSAGE)\n } else if (error.name === 'UserNotConfirmedException') {\n setErrors(prev => prev.concat(['unconfirmed']))\n cognito.resendCode(email).then(() => {\n setIsLoading(false)\n setIsConfirmationSent(true)\n })\n } else if (error.name === 'TimeoutError') {\n setIsLoading(false)\n setErrorMessage('Login failed: connection failure')\n } else {\n let err = error.message\n setIsLoading(false)\n if (error.message === 'Incorrect username or password.') {\n err = error.message.replace('username', 'email')\n }\n setErrorMessage(`Login failed. ${err}`)\n }\n })\n }\n\n const confirmEmail = () => {\n let errors = []\n if (_.isEmpty(email)) {\n errors = ['email']\n }\n\n if (_.isEmpty(confirmationCode)) {\n errors = errors.concat(['confirmationCode'])\n }\n\n if (!_.isEmpty(errors) || isLoading) {\n setErrors(errors)\n return\n }\n\n setIsLoading(true)\n\n cognito\n .confirm(email, confirmationCode)\n .then(() => {\n setIsConfirmationSent(false)\n loginAndNavigate()\n })\n .catch(_err => {\n setIsLoading(false)\n setErrorMessage('error confirming confirmation code.')\n })\n }\n\n const forgotPassword = () => {\n let errors = []\n if (_.isEmpty(email)) {\n errors = ['email']\n }\n\n if (!_.isEmpty(errors) || isLoading) {\n setErrors(errors)\n return\n }\n\n setIsLoading(true)\n\n cognito\n .forgotPassword(email)\n .then(() => {\n setIsLoading(false)\n setIsForgotSent(true)\n })\n .catch(_err => {\n setIsLoading(false)\n setErrorMessage('error sending forgot password email.')\n })\n }\n\n function hasNumber(pass: string) {\n return /\\d/.test(pass)\n }\n\n function hasUpperLower(pass: string) {\n const upper = /[A-Z]/.test(pass),\n lower = /[a-z]/.test(pass)\n\n return upper && lower\n }\n\n function hasSpecialCharacter(pass: string) {\n // eslint-disable-next-line no-useless-escape\n return /[ `!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?~]/.test(pass)\n }\n\n const confirmForgotPassword = () => {\n let errors = []\n if (_.isEmpty(email)) {\n errors = ['email']\n }\n\n if (_.isEmpty(password)) {\n errors = errors.concat(['password'])\n } else {\n if (password.length < 12) {\n errors = errors.concat(['password', 'passwordLength'])\n }\n\n if (!hasNumber(password)) {\n errors = errors.concat(['password', 'passwordNumber'])\n }\n\n if (!hasUpperLower(password)) {\n errors = errors.concat(['password', 'passwordCase'])\n }\n\n if (!hasSpecialCharacter(password)) {\n errors = errors.concat(['password', 'passwordSpecial'])\n }\n }\n\n if (_.isEmpty(code)) {\n errors = errors.concat(['code'])\n }\n\n if (!_.isEmpty(errors) || isLoading) {\n setErrors(errors)\n return\n }\n\n setIsLoading(true)\n\n cognito\n .confirmForgotPassword(email, password, code)\n .then(() => {\n setIsLoading(false)\n setIsForgotSent(false)\n })\n .catch(_err => {\n setIsLoading(false)\n setErrorMessage('error confirming forgot password code.')\n })\n }\n\n const handleUserKeyPress = e => {\n if (e.key === 'Enter') {\n if (!e.repeat) {\n isForgotSent ? confirmForgotPassword() : isConfirmationSent ? confirmEmail() : loginAndNavigate()\n }\n\n e.preventDefault()\n }\n }\n\n const close = () => {\n setIsForgotSent(false)\n setVisible(false)\n setIsLoading(false)\n }\n\n const isSent = isForgotSent || isConfirmationSent\n\n return (\n <div className={`modal-container ${visible && 'modal-container-visible'}`}>\n <div className={`modal-background ${visible && 'modal-background-visible'}`} onClick={close} />\n <div className={`login-modal ${visible && 'login-modal-visible'} ${isSent && 'login-modal-forgot'}`}>\n <img src={closeIcon} className=\"close\" alt=\"logo\" onClick={close} />\n <img src={logoGif} className=\"logo-gif\" alt=\"logo\" />\n <div className={`h4 modal-header ${isSent && 'modal-header-forgot'}`}>\n {isSent ? 'Confirmation Email Sent!' : 'Welcome Back!'}\n </div>\n {isSent && (\n <div className=\"reminder-text\">\n {isForgotSent\n ? 'To change your password, enter the code sent to your email and provide your new password below.'\n : 'Email not confirmed, we sent you a new email. Confirm the code below.'}\n </div>\n )}\n {!_.isEmpty(errorMessage) && <div className=\"reminder-text error-text-modal\">{errorMessage}</div>}\n <div className=\"login-container\">\n <div className={`xx-small login-input-form input-header ${errors.includes('email') && 'error'}`}>\n Email Address\n <input\n required\n type=\"email\"\n className=\"input-login\"\n name=\"email\"\n onChange={evt => setEmail(evt.target.value)}\n value={email}\n />\n </div>\n <div className={`xx-small login-input-form input-header row ${errors.includes('password') && 'error'}`}>\n <div className=\"password-input-row\">\n {isForgotSent ? 'New ' : ''}Password\n <input\n required\n type={passwordShown ? 'text' : 'password'}\n className=\"input-login\"\n onChange={evt => setPassword(evt.target.value)}\n value={password}\n onKeyDown={handleUserKeyPress}\n />\n </div>\n <img\n src={passwordShown ? eyeClosed : eye}\n className=\"eye\"\n alt=\"eye\"\n onClick={() => setPasswordShown(!passwordShown)}\n />\n </div>\n {errors.includes('passwordLength') && (\n <div className=\"xx-small requirement-error\">\n <img src={error} className=\"error-icon\" alt=\"error\" />\n 12+ characters\n </div>\n )}\n {errors.includes('passwordNumber') && (\n <div className=\"xx-small requirement-error\">\n <img src={error} className=\"error-icon\" alt=\"error\" />\n Number\n </div>\n )}\n {errors.includes('passwordCase') && (\n <div className=\"xx-small requirement-error\">\n <img src={error} className=\"error-icon\" alt=\"error\" />\n Upper and lowercase character\n </div>\n )}\n {errors.includes('passwordSpecial') && (\n <div className=\"xx-small requirement-error\">\n <img src={error} className=\"error-icon\" alt=\"error\" />\n Special character\n </div>\n )}\n {isForgotSent && (\n <div className={`xx-small login-input-form input-header row ${errors.includes('code') && 'error'}`}>\n <div className=\"password-input-row\">\n Email Code\n <input\n required\n className=\"input-login\"\n onChange={evt => setCode(evt.target.value)}\n value={code}\n onKeyDown={handleUserKeyPress}\n />\n </div>\n </div>\n )}\n {isConfirmationSent && (\n <div\n className={`xx-small login-input-form input-header row ${errors.includes('confirmationCode') && 'error'}`}\n >\n <div className=\"password-input-row\">\n Email Code\n <input\n required\n className=\"input-login\"\n onChange={evt => setConfirmationCode(evt.target.value)}\n value={confirmationCode}\n onKeyDown={handleUserKeyPress}\n />\n </div>\n </div>\n )}\n <Button\n type=\"Submit\"\n buttonStyle={`rounded-button-light rounded-button-label-light login-button ${isSent && 'confirm-button'}`}\n onClick={isForgotSent ? confirmForgotPassword : isConfirmationSent ? confirmEmail : loginAndNavigate}\n label={isForgotSent ? 'Confirm Password Change' : isConfirmationSent ? 'Confirm and Login' : 'Login'}\n />\n {isLoading && <Loader small={true} style={{ marginTop: 10 }} />}\n {!isSent && (\n <div className={'small-400 forgot'} onClick={forgotPassword}>\n Forgot your password?\n </div>\n )}\n </div>\n </div>\n </div>\n )\n}\n","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nexport default function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}","import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n return desc.value;\n };\n }\n return _get.apply(this, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n return object;\n}","export const getHttpHandlerExtensionConfiguration = (runtimeConfig) => {\n let httpHandler = runtimeConfig.httpHandler;\n return {\n setHttpHandler(handler) {\n httpHandler = handler;\n },\n httpHandler() {\n return httpHandler;\n },\n updateHttpClientConfig(key, value) {\n httpHandler.updateHttpClientConfig(key, value);\n },\n httpHandlerConfigs() {\n return httpHandler.httpHandlerConfigs();\n },\n };\n};\nexport const resolveHttpHandlerRuntimeConfig = (httpHandlerExtensionConfiguration) => {\n return {\n httpHandler: httpHandlerExtensionConfiguration.httpHandler(),\n };\n};\n","export var HttpAuthLocation;\n(function (HttpAuthLocation) {\n HttpAuthLocation[\"HEADER\"] = \"header\";\n HttpAuthLocation[\"QUERY\"] = \"query\";\n})(HttpAuthLocation || (HttpAuthLocation = {}));\n","export var EndpointURLScheme;\n(function (EndpointURLScheme) {\n EndpointURLScheme[\"HTTP\"] = \"http\";\n EndpointURLScheme[\"HTTPS\"] = \"https\";\n})(EndpointURLScheme || (EndpointURLScheme = {}));\n","export var AlgorithmId;\n(function (AlgorithmId) {\n AlgorithmId[\"MD5\"] = \"md5\";\n AlgorithmId[\"CRC32\"] = \"crc32\";\n AlgorithmId[\"CRC32C\"] = \"crc32c\";\n AlgorithmId[\"SHA1\"] = \"sha1\";\n AlgorithmId[\"SHA256\"] = \"sha256\";\n})(AlgorithmId || (AlgorithmId = {}));\nexport const getChecksumConfiguration = (runtimeConfig) => {\n const checksumAlgorithms = [];\n if (runtimeConfig.sha256 !== undefined) {\n checksumAlgorithms.push({\n algorithmId: () => AlgorithmId.SHA256,\n checksumConstructor: () => runtimeConfig.sha256,\n });\n }\n if (runtimeConfig.md5 != undefined) {\n checksumAlgorithms.push({\n algorithmId: () => AlgorithmId.MD5,\n checksumConstructor: () => runtimeConfig.md5,\n });\n }\n return {\n _checksumAlgorithms: checksumAlgorithms,\n addChecksumAlgorithm(algo) {\n this._checksumAlgorithms.push(algo);\n },\n checksumAlgorithms() {\n return this._checksumAlgorithms;\n },\n };\n};\nexport const resolveChecksumRuntimeConfig = (clientConfig) => {\n const runtimeConfig = {};\n clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => {\n runtimeConfig[checksumAlgorithm.algorithmId()] = checksumAlgorithm.checksumConstructor();\n });\n return runtimeConfig;\n};\n","export var FieldPosition;\n(function (FieldPosition) {\n FieldPosition[FieldPosition[\"HEADER\"] = 0] = \"HEADER\";\n FieldPosition[FieldPosition[\"TRAILER\"] = 1] = \"TRAILER\";\n})(FieldPosition || (FieldPosition = {}));\n","export var RequestHandlerProtocol;\n(function (RequestHandlerProtocol) {\n RequestHandlerProtocol[\"HTTP_0_9\"] = \"http/0.9\";\n RequestHandlerProtocol[\"HTTP_1_0\"] = \"http/1.0\";\n RequestHandlerProtocol[\"TDS_8_0\"] = \"tds/8.0\";\n})(RequestHandlerProtocol || (RequestHandlerProtocol = {}));\n","import { FieldPosition } from \"@smithy/types\";\nexport class Field {\n constructor({ name, kind = FieldPosition.HEADER, values = [] }) {\n this.name = name;\n this.kind = kind;\n this.values = values;\n }\n add(value) {\n this.values.push(value);\n }\n set(values) {\n this.values = values;\n }\n remove(value) {\n this.values = this.values.filter((v) => v !== value);\n }\n toString() {\n return this.values.map((v) => (v.includes(\",\") || v.includes(\" \") ? `\"${v}\"` : v)).join(\", \");\n }\n get() {\n return this.values;\n }\n}\n","export class HttpRequest {\n constructor(options) {\n this.method = options.method || \"GET\";\n this.hostname = options.hostname || \"localhost\";\n this.port = options.port;\n this.query = options.query || {};\n this.headers = options.headers || {};\n this.body = options.body;\n this.protocol = options.protocol\n ? options.protocol.slice(-1) !== \":\"\n ? `${options.protocol}:`\n : options.protocol\n : \"https:\";\n this.path = options.path ? (options.path.charAt(0) !== \"/\" ? `/${options.path}` : options.path) : \"/\";\n this.username = options.username;\n this.password = options.password;\n this.fragment = options.fragment;\n }\n static isInstance(request) {\n if (!request)\n return false;\n const req = request;\n return (\"method\" in req &&\n \"protocol\" in req &&\n \"hostname\" in req &&\n \"path\" in req &&\n typeof req[\"query\"] === \"object\" &&\n typeof req[\"headers\"] === \"object\");\n }\n clone() {\n const cloned = new HttpRequest({\n ...this,\n headers: { ...this.headers },\n });\n if (cloned.query)\n cloned.query = cloneQuery(cloned.query);\n return cloned;\n }\n}\nfunction cloneQuery(query) {\n return Object.keys(query).reduce((carry, paramName) => {\n const param = query[paramName];\n return {\n ...carry,\n [paramName]: Array.isArray(param) ? [...param] : param,\n };\n }, {});\n}\n","export class HttpResponse {\n constructor(options) {\n this.statusCode = options.statusCode;\n this.reason = options.reason;\n this.headers = options.headers || {};\n this.body = options.body;\n }\n static isInstance(response) {\n if (!response)\n return false;\n const resp = response;\n return typeof resp.statusCode === \"number\" && typeof resp.headers === \"object\";\n }\n}\n","import { HttpRequest } from \"@smithy/protocol-http\";\nexport function resolveHostHeaderConfig(input) {\n return input;\n}\nexport const hostHeaderMiddleware = (options) => (next) => async (args) => {\n if (!HttpRequest.isInstance(args.request))\n return next(args);\n const { request } = args;\n const { handlerProtocol = \"\" } = options.requestHandler.metadata || {};\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = \"\";\n }\n else if (!request.headers[\"host\"]) {\n let host = request.hostname;\n if (request.port != null)\n host += `:${request.port}`;\n request.headers[\"host\"] = host;\n }\n return next(args);\n};\nexport const hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true,\n};\nexport const getHostHeaderPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n },\n});\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\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 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 return target;\n}","const SHORT_TO_HEX = {};\nconst HEX_TO_SHORT = {};\nfor (let i = 0; i < 256; i++) {\n let encodedByte = i.toString(16).toLowerCase();\n if (encodedByte.length === 1) {\n encodedByte = `0${encodedByte}`;\n }\n SHORT_TO_HEX[i] = encodedByte;\n HEX_TO_SHORT[encodedByte] = i;\n}\nexport function fromHex(encoded) {\n if (encoded.length % 2 !== 0) {\n throw new Error(\"Hex encoded strings must have an even number length\");\n }\n const out = new Uint8Array(encoded.length / 2);\n for (let i = 0; i < encoded.length; i += 2) {\n const encodedByte = encoded.slice(i, i + 2).toLowerCase();\n if (encodedByte in HEX_TO_SHORT) {\n out[i / 2] = HEX_TO_SHORT[encodedByte];\n }\n else {\n throw new Error(`Cannot decode unrecognized sequence ${encodedByte} as hexadecimal`);\n }\n }\n return out;\n}\nexport function toHex(bytes) {\n let out = \"\";\n for (let i = 0; i < bytes.byteLength; i++) {\n out += SHORT_TO_HEX[bytes[i]];\n }\n return out;\n}\n","export const loggerMiddleware = () => (next, context) => async (args) => {\n try {\n const response = await next(args);\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog;\n const { $metadata, ...outputWithoutMetadata } = response.output;\n logger?.info?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata,\n });\n return response;\n }\n catch (error) {\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n logger?.error?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n error,\n metadata: error.$metadata,\n });\n throw error;\n }\n};\nexport const loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true,\n};\nexport const getLoggerPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n },\n});\n","import { HttpRequest } from \"@smithy/protocol-http\";\nconst TRACE_ID_HEADER_NAME = \"X-Amzn-Trace-Id\";\nconst ENV_LAMBDA_FUNCTION_NAME = \"AWS_LAMBDA_FUNCTION_NAME\";\nconst ENV_TRACE_ID = \"_X_AMZN_TRACE_ID\";\nexport const recursionDetectionMiddleware = (options) => (next) => async (args) => {\n const { request } = args;\n if (!HttpRequest.isInstance(request) ||\n options.runtime !== \"node\" ||\n request.headers.hasOwnProperty(TRACE_ID_HEADER_NAME)) {\n return next(args);\n }\n const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n const traceId = process.env[ENV_TRACE_ID];\n const nonEmptyString = (str) => typeof str === \"string\" && str.length > 0;\n if (nonEmptyString(functionName) && nonEmptyString(traceId)) {\n request.headers[TRACE_ID_HEADER_NAME] = traceId;\n }\n return next({\n ...args,\n request,\n });\n};\nexport const addRecursionDetectionMiddlewareOptions = {\n step: \"build\",\n tags: [\"RECURSION_DETECTION\"],\n name: \"recursionDetectionMiddleware\",\n override: true,\n priority: \"low\",\n};\nexport const getRecursionDetectionPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(recursionDetectionMiddleware(options), addRecursionDetectionMiddlewareOptions);\n },\n});\n","export const memoize = (provider, isExpired, requiresRefresh) => {\n let resolved;\n let pending;\n let hasResult;\n let isConstant = false;\n const coalesceProvider = async () => {\n if (!pending) {\n pending = provider();\n }\n try {\n resolved = await pending;\n hasResult = true;\n isConstant = false;\n }\n finally {\n pending = undefined;\n }\n return resolved;\n };\n if (isExpired === undefined) {\n return async (options) => {\n if (!hasResult || options?.forceRefresh) {\n resolved = await coalesceProvider();\n }\n return resolved;\n };\n }\n return async (options) => {\n if (!hasResult || options?.forceRefresh) {\n resolved = await coalesceProvider();\n }\n if (isConstant) {\n return resolved;\n }\n if (requiresRefresh && !requiresRefresh(resolved)) {\n isConstant = true;\n return resolved;\n }\n if (isExpired(resolved)) {\n await coalesceProvider();\n return resolved;\n }\n return resolved;\n };\n};\n","import { toHex } from \"@smithy/util-hex-encoding\";\nexport class Int64 {\n constructor(bytes) {\n this.bytes = bytes;\n if (bytes.byteLength !== 8) {\n throw new Error(\"Int64 buffers must be exactly 8 bytes\");\n }\n }\n static fromNumber(number) {\n if (number > 9223372036854776000 || number < -9223372036854776000) {\n throw new Error(`${number} is too large (or, if negative, too small) to represent as an Int64`);\n }\n const bytes = new Uint8Array(8);\n for (let i = 7, remaining = Math.abs(Math.round(number)); i > -1 && remaining > 0; i--, remaining /= 256) {\n bytes[i] = remaining;\n }\n if (number < 0) {\n negate(bytes);\n }\n return new Int64(bytes);\n }\n valueOf() {\n const bytes = this.bytes.slice(0);\n const negative = bytes[0] & 0b10000000;\n if (negative) {\n negate(bytes);\n }\n return parseInt(toHex(bytes), 16) * (negative ? -1 : 1);\n }\n toString() {\n return String(this.valueOf());\n }\n}\nfunction negate(bytes) {\n for (let i = 0; i < 8; i++) {\n bytes[i] ^= 0xff;\n }\n for (let i = 7; i > -1; i--) {\n bytes[i]++;\n if (bytes[i] !== 0)\n break;\n }\n}\n","import { fromHex, toHex } from \"@smithy/util-hex-encoding\";\nimport { Int64 } from \"./Int64\";\nexport class HeaderMarshaller {\n constructor(toUtf8, fromUtf8) {\n this.toUtf8 = toUtf8;\n this.fromUtf8 = fromUtf8;\n }\n format(headers) {\n const chunks = [];\n for (const headerName of Object.keys(headers)) {\n const bytes = this.fromUtf8(headerName);\n chunks.push(Uint8Array.from([bytes.byteLength]), bytes, this.formatHeaderValue(headers[headerName]));\n }\n const out = new Uint8Array(chunks.reduce((carry, bytes) => carry + bytes.byteLength, 0));\n let position = 0;\n for (const chunk of chunks) {\n out.set(chunk, position);\n position += chunk.byteLength;\n }\n return out;\n }\n formatHeaderValue(header) {\n switch (header.type) {\n case \"boolean\":\n return Uint8Array.from([header.value ? 0 : 1]);\n case \"byte\":\n return Uint8Array.from([2, header.value]);\n case \"short\":\n const shortView = new DataView(new ArrayBuffer(3));\n shortView.setUint8(0, 3);\n shortView.setInt16(1, header.value, false);\n return new Uint8Array(shortView.buffer);\n case \"integer\":\n const intView = new DataView(new ArrayBuffer(5));\n intView.setUint8(0, 4);\n intView.setInt32(1, header.value, false);\n return new Uint8Array(intView.buffer);\n case \"long\":\n const longBytes = new Uint8Array(9);\n longBytes[0] = 5;\n longBytes.set(header.value.bytes, 1);\n return longBytes;\n case \"binary\":\n const binView = new DataView(new ArrayBuffer(3 + header.value.byteLength));\n binView.setUint8(0, 6);\n binView.setUint16(1, header.value.byteLength, false);\n const binBytes = new Uint8Array(binView.buffer);\n binBytes.set(header.value, 3);\n return binBytes;\n case \"string\":\n const utf8Bytes = this.fromUtf8(header.value);\n const strView = new DataView(new ArrayBuffer(3 + utf8Bytes.byteLength));\n strView.setUint8(0, 7);\n strView.setUint16(1, utf8Bytes.byteLength, false);\n const strBytes = new Uint8Array(strView.buffer);\n strBytes.set(utf8Bytes, 3);\n return strBytes;\n case \"timestamp\":\n const tsBytes = new Uint8Array(9);\n tsBytes[0] = 8;\n tsBytes.set(Int64.fromNumber(header.value.valueOf()).bytes, 1);\n return tsBytes;\n case \"uuid\":\n if (!UUID_PATTERN.test(header.value)) {\n throw new Error(`Invalid UUID received: ${header.value}`);\n }\n const uuidBytes = new Uint8Array(17);\n uuidBytes[0] = 9;\n uuidBytes.set(fromHex(header.value.replace(/\\-/g, \"\")), 1);\n return uuidBytes;\n }\n }\n parse(headers) {\n const out = {};\n let position = 0;\n while (position < headers.byteLength) {\n const nameLength = headers.getUint8(position++);\n const name = this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, nameLength));\n position += nameLength;\n switch (headers.getUint8(position++)) {\n case 0:\n out[name] = {\n type: BOOLEAN_TAG,\n value: true,\n };\n break;\n case 1:\n out[name] = {\n type: BOOLEAN_TAG,\n value: false,\n };\n break;\n case 2:\n out[name] = {\n type: BYTE_TAG,\n value: headers.getInt8(position++),\n };\n break;\n case 3:\n out[name] = {\n type: SHORT_TAG,\n value: headers.getInt16(position, false),\n };\n position += 2;\n break;\n case 4:\n out[name] = {\n type: INT_TAG,\n value: headers.getInt32(position, false),\n };\n position += 4;\n break;\n case 5:\n out[name] = {\n type: LONG_TAG,\n value: new Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8)),\n };\n position += 8;\n break;\n case 6:\n const binaryLength = headers.getUint16(position, false);\n position += 2;\n out[name] = {\n type: BINARY_TAG,\n value: new Uint8Array(headers.buffer, headers.byteOffset + position, binaryLength),\n };\n position += binaryLength;\n break;\n case 7:\n const stringLength = headers.getUint16(position, false);\n position += 2;\n out[name] = {\n type: STRING_TAG,\n value: this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, stringLength)),\n };\n position += stringLength;\n break;\n case 8:\n out[name] = {\n type: TIMESTAMP_TAG,\n value: new Date(new Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8)).valueOf()),\n };\n position += 8;\n break;\n case 9:\n const uuidBytes = new Uint8Array(headers.buffer, headers.byteOffset + position, 16);\n position += 16;\n out[name] = {\n type: UUID_TAG,\n value: `${toHex(uuidBytes.subarray(0, 4))}-${toHex(uuidBytes.subarray(4, 6))}-${toHex(uuidBytes.subarray(6, 8))}-${toHex(uuidBytes.subarray(8, 10))}-${toHex(uuidBytes.subarray(10))}`,\n };\n break;\n default:\n throw new Error(`Unrecognized header type tag`);\n }\n }\n return out;\n }\n}\nvar HEADER_VALUE_TYPE;\n(function (HEADER_VALUE_TYPE) {\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolTrue\"] = 0] = \"boolTrue\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolFalse\"] = 1] = \"boolFalse\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byte\"] = 2] = \"byte\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"short\"] = 3] = \"short\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"integer\"] = 4] = \"integer\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"long\"] = 5] = \"long\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byteArray\"] = 6] = \"byteArray\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"string\"] = 7] = \"string\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"timestamp\"] = 8] = \"timestamp\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"uuid\"] = 9] = \"uuid\";\n})(HEADER_VALUE_TYPE || (HEADER_VALUE_TYPE = {}));\nconst BOOLEAN_TAG = \"boolean\";\nconst BYTE_TAG = \"byte\";\nconst SHORT_TAG = \"short\";\nconst INT_TAG = \"integer\";\nconst LONG_TAG = \"long\";\nconst BINARY_TAG = \"binary\";\nconst STRING_TAG = \"string\";\nconst TIMESTAMP_TAG = \"timestamp\";\nconst UUID_TAG = \"uuid\";\nconst UUID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;\n","export default function _OverloadYield(t, e) {\n this.v = t, this.k = e;\n}","import OverloadYield from \"./OverloadYield.js\";\nexport default function AsyncGenerator(e) {\n var r, t;\n function resume(r, t) {\n try {\n var n = e[r](t),\n o = n.value,\n u = o instanceof OverloadYield;\n Promise.resolve(u ? o.v : o).then(function (t) {\n if (u) {\n var i = \"return\" === r ? \"return\" : \"next\";\n if (!o.k || t.done) return resume(i, t);\n t = e[i](t).value;\n }\n settle(n.done ? \"return\" : \"normal\", t);\n }, function (e) {\n resume(\"throw\", e);\n });\n } catch (e) {\n settle(\"throw\", e);\n }\n }\n function settle(e, n) {\n switch (e) {\n case \"return\":\n r.resolve({\n value: n,\n done: !0\n });\n break;\n case \"throw\":\n r.reject(n);\n break;\n default:\n r.resolve({\n value: n,\n done: !1\n });\n }\n (r = r.next) ? resume(r.key, r.arg) : t = null;\n }\n this._invoke = function (e, n) {\n return new Promise(function (o, u) {\n var i = {\n key: e,\n arg: n,\n resolve: o,\n reject: u,\n next: null\n };\n t ? t = t.next = i : (r = t = i, resume(e, n));\n });\n }, \"function\" != typeof e[\"return\"] && (this[\"return\"] = void 0);\n}\nAsyncGenerator.prototype[\"function\" == typeof Symbol && Symbol.asyncIterator || \"@@asyncIterator\"] = function () {\n return this;\n}, AsyncGenerator.prototype.next = function (e) {\n return this._invoke(\"next\", e);\n}, AsyncGenerator.prototype[\"throw\"] = function (e) {\n return this._invoke(\"throw\", e);\n}, AsyncGenerator.prototype[\"return\"] = function (e) {\n return this._invoke(\"return\", e);\n};","export class MessageDecoderStream {\n constructor(options) {\n this.options = options;\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const bytes of this.options.inputStream) {\n const decoded = this.options.decoder.decode(bytes);\n yield decoded;\n }\n }\n}\n","export const normalizeProvider = (input) => {\n if (typeof input === \"function\")\n return input;\n const promisified = Promise.resolve(input);\n return () => promisified;\n};\n","export const toUtf8 = (input) => new TextDecoder(\"utf-8\").decode(input);\n","export const fromUtf8 = (input) => new TextEncoder().encode(input);\n","import { fromUtf8 } from \"./fromUtf8\";\nexport const toUint8Array = (data) => {\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n};\n","export const ALGORITHM_QUERY_PARAM = \"X-Amz-Algorithm\";\nexport const CREDENTIAL_QUERY_PARAM = \"X-Amz-Credential\";\nexport const AMZ_DATE_QUERY_PARAM = \"X-Amz-Date\";\nexport const SIGNED_HEADERS_QUERY_PARAM = \"X-Amz-SignedHeaders\";\nexport const EXPIRES_QUERY_PARAM = \"X-Amz-Expires\";\nexport const SIGNATURE_QUERY_PARAM = \"X-Amz-Signature\";\nexport const TOKEN_QUERY_PARAM = \"X-Amz-Security-Token\";\nexport const REGION_SET_PARAM = \"X-Amz-Region-Set\";\nexport const AUTH_HEADER = \"authorization\";\nexport const AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase();\nexport const DATE_HEADER = \"date\";\nexport const GENERATED_HEADERS = [AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER];\nexport const SIGNATURE_HEADER = SIGNATURE_QUERY_PARAM.toLowerCase();\nexport const SHA256_HEADER = \"x-amz-content-sha256\";\nexport const TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase();\nexport const HOST_HEADER = \"host\";\nexport const ALWAYS_UNSIGNABLE_HEADERS = {\n authorization: true,\n \"cache-control\": true,\n connection: true,\n expect: true,\n from: true,\n \"keep-alive\": true,\n \"max-forwards\": true,\n pragma: true,\n referer: true,\n te: true,\n trailer: true,\n \"transfer-encoding\": true,\n upgrade: true,\n \"user-agent\": true,\n \"x-amzn-trace-id\": true,\n};\nexport const PROXY_HEADER_PATTERN = /^proxy-/;\nexport const SEC_HEADER_PATTERN = /^sec-/;\nexport const UNSIGNABLE_PATTERNS = [/^proxy-/i, /^sec-/i];\nexport const ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256\";\nexport const ALGORITHM_IDENTIFIER_V4A = \"AWS4-ECDSA-P256-SHA256\";\nexport const EVENT_ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256-PAYLOAD\";\nexport const UNSIGNED_PAYLOAD = \"UNSIGNED-PAYLOAD\";\nexport const MAX_CACHE_SIZE = 50;\nexport const KEY_TYPE_IDENTIFIER = \"aws4_request\";\nexport const MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7;\n","import { toHex } from \"@smithy/util-hex-encoding\";\nimport { toUint8Array } from \"@smithy/util-utf8\";\nimport { KEY_TYPE_IDENTIFIER, MAX_CACHE_SIZE } from \"./constants\";\nconst signingKeyCache = {};\nconst cacheQueue = [];\nexport const createScope = (shortDate, region, service) => `${shortDate}/${region}/${service}/${KEY_TYPE_IDENTIFIER}`;\nexport const getSigningKey = async (sha256Constructor, credentials, shortDate, region, service) => {\n const credsHash = await hmac(sha256Constructor, credentials.secretAccessKey, credentials.accessKeyId);\n const cacheKey = `${shortDate}:${region}:${service}:${toHex(credsHash)}:${credentials.sessionToken}`;\n if (cacheKey in signingKeyCache) {\n return signingKeyCache[cacheKey];\n }\n cacheQueue.push(cacheKey);\n while (cacheQueue.length > MAX_CACHE_SIZE) {\n delete signingKeyCache[cacheQueue.shift()];\n }\n let key = `AWS4${credentials.secretAccessKey}`;\n for (const signable of [shortDate, region, service, KEY_TYPE_IDENTIFIER]) {\n key = await hmac(sha256Constructor, key, signable);\n }\n return (signingKeyCache[cacheKey] = key);\n};\nexport const clearCredentialCache = () => {\n cacheQueue.length = 0;\n Object.keys(signingKeyCache).forEach((cacheKey) => {\n delete signingKeyCache[cacheKey];\n });\n};\nconst hmac = (ctor, secret, data) => {\n const hash = new ctor(secret);\n hash.update(toUint8Array(data));\n return hash.digest();\n};\n","import { ALWAYS_UNSIGNABLE_HEADERS, PROXY_HEADER_PATTERN, SEC_HEADER_PATTERN } from \"./constants\";\nexport const getCanonicalHeaders = ({ headers }, unsignableHeaders, signableHeaders) => {\n const canonical = {};\n for (const headerName of Object.keys(headers).sort()) {\n if (headers[headerName] == undefined) {\n continue;\n }\n const canonicalHeaderName = headerName.toLowerCase();\n if (canonicalHeaderName in ALWAYS_UNSIGNABLE_HEADERS ||\n unsignableHeaders?.has(canonicalHeaderName) ||\n PROXY_HEADER_PATTERN.test(canonicalHeaderName) ||\n SEC_HEADER_PATTERN.test(canonicalHeaderName)) {\n if (!signableHeaders || (signableHeaders && !signableHeaders.has(canonicalHeaderName))) {\n continue;\n }\n }\n canonical[canonicalHeaderName] = headers[headerName].trim().replace(/\\s+/g, \" \");\n }\n return canonical;\n};\n","export const escapeUri = (uri) => encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\nconst hexEncode = (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`;\n","import { isArrayBuffer } from \"@smithy/is-array-buffer\";\nimport { toHex } from \"@smithy/util-hex-encoding\";\nimport { toUint8Array } from \"@smithy/util-utf8\";\nimport { SHA256_HEADER, UNSIGNED_PAYLOAD } from \"./constants\";\nexport const getPayloadHash = async ({ headers, body }, hashConstructor) => {\n for (const headerName of Object.keys(headers)) {\n if (headerName.toLowerCase() === SHA256_HEADER) {\n return headers[headerName];\n }\n }\n if (body == undefined) {\n return \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\";\n }\n else if (typeof body === \"string\" || ArrayBuffer.isView(body) || isArrayBuffer(body)) {\n const hashCtor = new hashConstructor();\n hashCtor.update(toUint8Array(body));\n return toHex(await hashCtor.digest());\n }\n return UNSIGNED_PAYLOAD;\n};\n","export const isArrayBuffer = (arg) => (typeof ArrayBuffer === \"function\" && arg instanceof ArrayBuffer) ||\n Object.prototype.toString.call(arg) === \"[object ArrayBuffer]\";\n","export const hasHeader = (soughtHeader, headers) => {\n soughtHeader = soughtHeader.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return true;\n }\n }\n return false;\n};\nexport const getHeaderValue = (soughtHeader, headers) => {\n soughtHeader = soughtHeader.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return headers[headerName];\n }\n }\n return undefined;\n};\nexport const deleteHeader = (soughtHeader, headers) => {\n soughtHeader = soughtHeader.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n delete headers[headerName];\n }\n }\n};\n","export const cloneRequest = ({ headers, query, ...rest }) => ({\n ...rest,\n headers: { ...headers },\n query: query ? cloneQuery(query) : undefined,\n});\nexport const cloneQuery = (query) => Object.keys(query).reduce((carry, paramName) => {\n const param = query[paramName];\n return {\n ...carry,\n [paramName]: Array.isArray(param) ? [...param] : param,\n };\n}, {});\n","import { cloneRequest } from \"./cloneRequest\";\nexport const moveHeadersToQuery = (request, options = {}) => {\n const { headers, query = {} } = typeof request.clone === \"function\" ? request.clone() : cloneRequest(request);\n for (const name of Object.keys(headers)) {\n const lname = name.toLowerCase();\n if (lname.slice(0, 6) === \"x-amz-\" && !options.unhoistableHeaders?.has(lname)) {\n query[name] = headers[name];\n delete headers[name];\n }\n }\n return {\n ...request,\n headers,\n query,\n };\n};\n","import { cloneRequest } from \"./cloneRequest\";\nimport { GENERATED_HEADERS } from \"./constants\";\nexport const prepareRequest = (request) => {\n request = typeof request.clone === \"function\" ? request.clone() : cloneRequest(request);\n for (const headerName of Object.keys(request.headers)) {\n if (GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n delete request.headers[headerName];\n }\n }\n return request;\n};\n","export const iso8601 = (time) => toDate(time)\n .toISOString()\n .replace(/\\.\\d{3}Z$/, \"Z\");\nexport const toDate = (time) => {\n if (typeof time === \"number\") {\n return new Date(time * 1000);\n }\n if (typeof time === \"string\") {\n if (Number(time)) {\n return new Date(Number(time) * 1000);\n }\n return new Date(time);\n }\n return time;\n};\n","import { HeaderMarshaller } from \"@smithy/eventstream-codec\";\nimport { toHex } from \"@smithy/util-hex-encoding\";\nimport { normalizeProvider } from \"@smithy/util-middleware\";\nimport { fromUtf8, toUint8Array, toUtf8 } from \"@smithy/util-utf8\";\nimport { ALGORITHM_IDENTIFIER, ALGORITHM_QUERY_PARAM, AMZ_DATE_HEADER, AMZ_DATE_QUERY_PARAM, AUTH_HEADER, CREDENTIAL_QUERY_PARAM, EVENT_ALGORITHM_IDENTIFIER, EXPIRES_QUERY_PARAM, MAX_PRESIGNED_TTL, SHA256_HEADER, SIGNATURE_QUERY_PARAM, SIGNED_HEADERS_QUERY_PARAM, TOKEN_HEADER, TOKEN_QUERY_PARAM, } from \"./constants\";\nimport { createScope, getSigningKey } from \"./credentialDerivation\";\nimport { getCanonicalHeaders } from \"./getCanonicalHeaders\";\nimport { getCanonicalQuery } from \"./getCanonicalQuery\";\nimport { getPayloadHash } from \"./getPayloadHash\";\nimport { hasHeader } from \"./headerUtil\";\nimport { moveHeadersToQuery } from \"./moveHeadersToQuery\";\nimport { prepareRequest } from \"./prepareRequest\";\nimport { iso8601 } from \"./utilDate\";\nexport class SignatureV4 {\n constructor({ applyChecksum, credentials, region, service, sha256, uriEscapePath = true, }) {\n this.headerMarshaller = new HeaderMarshaller(toUtf8, fromUtf8);\n this.service = service;\n this.sha256 = sha256;\n this.uriEscapePath = uriEscapePath;\n this.applyChecksum = typeof applyChecksum === \"boolean\" ? applyChecksum : true;\n this.regionProvider = normalizeProvider(region);\n this.credentialProvider = normalizeProvider(credentials);\n }\n async presign(originalRequest, options = {}) {\n const { signingDate = new Date(), expiresIn = 3600, unsignableHeaders, unhoistableHeaders, signableHeaders, signingRegion, signingService, } = options;\n const credentials = await this.credentialProvider();\n this.validateResolvedCredentials(credentials);\n const region = signingRegion ?? (await this.regionProvider());\n const { longDate, shortDate } = formatDate(signingDate);\n if (expiresIn > MAX_PRESIGNED_TTL) {\n return Promise.reject(\"Signature version 4 presigned URLs\" + \" must have an expiration date less than one week in\" + \" the future\");\n }\n const scope = createScope(shortDate, region, signingService ?? this.service);\n const request = moveHeadersToQuery(prepareRequest(originalRequest), { unhoistableHeaders });\n if (credentials.sessionToken) {\n request.query[TOKEN_QUERY_PARAM] = credentials.sessionToken;\n }\n request.query[ALGORITHM_QUERY_PARAM] = ALGORITHM_IDENTIFIER;\n request.query[CREDENTIAL_QUERY_PARAM] = `${credentials.accessKeyId}/${scope}`;\n request.query[AMZ_DATE_QUERY_PARAM] = longDate;\n request.query[EXPIRES_QUERY_PARAM] = expiresIn.toString(10);\n const canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n request.query[SIGNED_HEADERS_QUERY_PARAM] = getCanonicalHeaderList(canonicalHeaders);\n request.query[SIGNATURE_QUERY_PARAM] = await this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, await getPayloadHash(originalRequest, this.sha256)));\n return request;\n }\n async sign(toSign, options) {\n if (typeof toSign === \"string\") {\n return this.signString(toSign, options);\n }\n else if (toSign.headers && toSign.payload) {\n return this.signEvent(toSign, options);\n }\n else if (toSign.message) {\n return this.signMessage(toSign, options);\n }\n else {\n return this.signRequest(toSign, options);\n }\n }\n async signEvent({ headers, payload }, { signingDate = new Date(), priorSignature, signingRegion, signingService }) {\n const region = signingRegion ?? (await this.regionProvider());\n const { shortDate, longDate } = formatDate(signingDate);\n const scope = createScope(shortDate, region, signingService ?? this.service);\n const hashedPayload = await getPayloadHash({ headers: {}, body: payload }, this.sha256);\n const hash = new this.sha256();\n hash.update(headers);\n const hashedHeaders = toHex(await hash.digest());\n const stringToSign = [\n EVENT_ALGORITHM_IDENTIFIER,\n longDate,\n scope,\n priorSignature,\n hashedHeaders,\n hashedPayload,\n ].join(\"\\n\");\n return this.signString(stringToSign, { signingDate, signingRegion: region, signingService });\n }\n async signMessage(signableMessage, { signingDate = new Date(), signingRegion, signingService }) {\n const promise = this.signEvent({\n headers: this.headerMarshaller.format(signableMessage.message.headers),\n payload: signableMessage.message.body,\n }, {\n signingDate,\n signingRegion,\n signingService,\n priorSignature: signableMessage.priorSignature,\n });\n return promise.then((signature) => {\n return { message: signableMessage.message, signature };\n });\n }\n async signString(stringToSign, { signingDate = new Date(), signingRegion, signingService } = {}) {\n const credentials = await this.credentialProvider();\n this.validateResolvedCredentials(credentials);\n const region = signingRegion ?? (await this.regionProvider());\n const { shortDate } = formatDate(signingDate);\n const hash = new this.sha256(await this.getSigningKey(credentials, region, shortDate, signingService));\n hash.update(toUint8Array(stringToSign));\n return toHex(await hash.digest());\n }\n async signRequest(requestToSign, { signingDate = new Date(), signableHeaders, unsignableHeaders, signingRegion, signingService, } = {}) {\n const credentials = await this.credentialProvider();\n this.validateResolvedCredentials(credentials);\n const region = signingRegion ?? (await this.regionProvider());\n const request = prepareRequest(requestToSign);\n const { longDate, shortDate } = formatDate(signingDate);\n const scope = createScope(shortDate, region, signingService ?? this.service);\n request.headers[AMZ_DATE_HEADER] = longDate;\n if (credentials.sessionToken) {\n request.headers[TOKEN_HEADER] = credentials.sessionToken;\n }\n const payloadHash = await getPayloadHash(request, this.sha256);\n if (!hasHeader(SHA256_HEADER, request.headers) && this.applyChecksum) {\n request.headers[SHA256_HEADER] = payloadHash;\n }\n const canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n const signature = await this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, payloadHash));\n request.headers[AUTH_HEADER] =\n `${ALGORITHM_IDENTIFIER} ` +\n `Credential=${credentials.accessKeyId}/${scope}, ` +\n `SignedHeaders=${getCanonicalHeaderList(canonicalHeaders)}, ` +\n `Signature=${signature}`;\n return request;\n }\n createCanonicalRequest(request, canonicalHeaders, payloadHash) {\n const sortedHeaders = Object.keys(canonicalHeaders).sort();\n return `${request.method}\n${this.getCanonicalPath(request)}\n${getCanonicalQuery(request)}\n${sortedHeaders.map((name) => `${name}:${canonicalHeaders[name]}`).join(\"\\n\")}\n\n${sortedHeaders.join(\";\")}\n${payloadHash}`;\n }\n async createStringToSign(longDate, credentialScope, canonicalRequest) {\n const hash = new this.sha256();\n hash.update(toUint8Array(canonicalRequest));\n const hashedRequest = await hash.digest();\n return `${ALGORITHM_IDENTIFIER}\n${longDate}\n${credentialScope}\n${toHex(hashedRequest)}`;\n }\n getCanonicalPath({ path }) {\n if (this.uriEscapePath) {\n const normalizedPathSegments = [];\n for (const pathSegment of path.split(\"/\")) {\n if (pathSegment?.length === 0)\n continue;\n if (pathSegment === \".\")\n continue;\n if (pathSegment === \"..\") {\n normalizedPathSegments.pop();\n }\n else {\n normalizedPathSegments.push(pathSegment);\n }\n }\n const normalizedPath = `${path?.startsWith(\"/\") ? \"/\" : \"\"}${normalizedPathSegments.join(\"/\")}${normalizedPathSegments.length > 0 && path?.endsWith(\"/\") ? \"/\" : \"\"}`;\n const doubleEncoded = encodeURIComponent(normalizedPath);\n return doubleEncoded.replace(/%2F/g, \"/\");\n }\n return path;\n }\n async getSignature(longDate, credentialScope, keyPromise, canonicalRequest) {\n const stringToSign = await this.createStringToSign(longDate, credentialScope, canonicalRequest);\n const hash = new this.sha256(await keyPromise);\n hash.update(toUint8Array(stringToSign));\n return toHex(await hash.digest());\n }\n getSigningKey(credentials, region, shortDate, service) {\n return getSigningKey(this.sha256, credentials, shortDate, region, service || this.service);\n }\n validateResolvedCredentials(credentials) {\n if (typeof credentials !== \"object\" ||\n typeof credentials.accessKeyId !== \"string\" ||\n typeof credentials.secretAccessKey !== \"string\") {\n throw new Error(\"Resolved credential object is not valid\");\n }\n }\n}\nconst formatDate = (now) => {\n const longDate = iso8601(now).replace(/[\\-:]/g, \"\");\n return {\n longDate,\n shortDate: longDate.slice(0, 8),\n };\n};\nconst getCanonicalHeaderList = (headers) => Object.keys(headers).sort().join(\";\");\n","import { escapeUri } from \"@smithy/util-uri-escape\";\nimport { SIGNATURE_HEADER } from \"./constants\";\nexport const getCanonicalQuery = ({ query = {} }) => {\n const keys = [];\n const serialized = {};\n for (const key of Object.keys(query).sort()) {\n if (key.toLowerCase() === SIGNATURE_HEADER) {\n continue;\n }\n keys.push(key);\n const value = query[key];\n if (typeof value === \"string\") {\n serialized[key] = `${escapeUri(key)}=${escapeUri(value)}`;\n }\n else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .reduce((encoded, value) => encoded.concat([`${escapeUri(key)}=${escapeUri(value)}`]), [])\n .sort()\n .join(\"&\");\n }\n }\n return keys\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join(\"&\");\n};\n","import { memoize } from \"@smithy/property-provider\";\nimport { SignatureV4 } from \"@smithy/signature-v4\";\nimport { normalizeProvider } from \"@smithy/util-middleware\";\nconst CREDENTIAL_EXPIRE_WINDOW = 300000;\nexport const resolveAwsAuthConfig = (input) => {\n const normalizedCreds = input.credentials\n ? normalizeCredentialProvider(input.credentials)\n : input.credentialDefaultProvider(input);\n const { signingEscapePath = true, systemClockOffset = input.systemClockOffset || 0, sha256 } = input;\n let signer;\n if (input.signer) {\n signer = normalizeProvider(input.signer);\n }\n else if (input.regionInfoProvider) {\n signer = () => normalizeProvider(input.region)()\n .then(async (region) => [\n (await input.regionInfoProvider(region, {\n useFipsEndpoint: await input.useFipsEndpoint(),\n useDualstackEndpoint: await input.useDualstackEndpoint(),\n })) || {},\n region,\n ])\n .then(([regionInfo, region]) => {\n const { signingRegion, signingService } = regionInfo;\n input.signingRegion = input.signingRegion || signingRegion || region;\n input.signingName = input.signingName || signingService || input.serviceId;\n const params = {\n ...input,\n credentials: normalizedCreds,\n region: input.signingRegion,\n service: input.signingName,\n sha256,\n uriEscapePath: signingEscapePath,\n };\n const SignerCtor = input.signerConstructor || SignatureV4;\n return new SignerCtor(params);\n });\n }\n else {\n signer = async (authScheme) => {\n authScheme = Object.assign({}, {\n name: \"sigv4\",\n signingName: input.signingName || input.defaultSigningName,\n signingRegion: await normalizeProvider(input.region)(),\n properties: {},\n }, authScheme);\n const signingRegion = authScheme.signingRegion;\n const signingService = authScheme.signingName;\n input.signingRegion = input.signingRegion || signingRegion;\n input.signingName = input.signingName || signingService || input.serviceId;\n const params = {\n ...input,\n credentials: normalizedCreds,\n region: input.signingRegion,\n service: input.signingName,\n sha256,\n uriEscapePath: signingEscapePath,\n };\n const SignerCtor = input.signerConstructor || SignatureV4;\n return new SignerCtor(params);\n };\n }\n return {\n ...input,\n systemClockOffset,\n signingEscapePath,\n credentials: normalizedCreds,\n signer,\n };\n};\nexport const resolveSigV4AuthConfig = (input) => {\n const normalizedCreds = input.credentials\n ? normalizeCredentialProvider(input.credentials)\n : input.credentialDefaultProvider(input);\n const { signingEscapePath = true, systemClockOffset = input.systemClockOffset || 0, sha256 } = input;\n let signer;\n if (input.signer) {\n signer = normalizeProvider(input.signer);\n }\n else {\n signer = normalizeProvider(new SignatureV4({\n credentials: normalizedCreds,\n region: input.region,\n service: input.signingName,\n sha256,\n uriEscapePath: signingEscapePath,\n }));\n }\n return {\n ...input,\n systemClockOffset,\n signingEscapePath,\n credentials: normalizedCreds,\n signer,\n };\n};\nconst normalizeCredentialProvider = (credentials) => {\n if (typeof credentials === \"function\") {\n return memoize(credentials, (credentials) => credentials.expiration !== undefined &&\n credentials.expiration.getTime() - Date.now() < CREDENTIAL_EXPIRE_WINDOW, (credentials) => credentials.expiration !== undefined);\n }\n return normalizeProvider(credentials);\n};\n","import partitionsInfo from \"./partitions.json\";\nlet selectedPartitionsInfo = partitionsInfo;\nlet selectedUserAgentPrefix = \"\";\nexport const partition = (value) => {\n const { partitions } = selectedPartitionsInfo;\n for (const partition of partitions) {\n const { regions, outputs } = partition;\n for (const [region, regionData] of Object.entries(regions)) {\n if (region === value) {\n return {\n ...outputs,\n ...regionData,\n };\n }\n }\n }\n for (const partition of partitions) {\n const { regionRegex, outputs } = partition;\n if (new RegExp(regionRegex).test(value)) {\n return {\n ...outputs,\n };\n }\n }\n const DEFAULT_PARTITION = partitions.find((partition) => partition.id === \"aws\");\n if (!DEFAULT_PARTITION) {\n throw new Error(\"Provided region was not found in the partition array or regex,\" +\n \" and default partition with id 'aws' doesn't exist.\");\n }\n return {\n ...DEFAULT_PARTITION.outputs,\n };\n};\nexport const setPartitionInfo = (partitionsInfo, userAgentPrefix = \"\") => {\n selectedPartitionsInfo = partitionsInfo;\n selectedUserAgentPrefix = userAgentPrefix;\n};\nexport const useDefaultPartitionInfo = () => {\n setPartitionInfo(partitionsInfo, \"\");\n};\nexport const getUserAgentPrefix = () => selectedUserAgentPrefix;\n","export const debugId = \"endpoints\";\n","export function toDebugString(input) {\n if (typeof input !== \"object\" || input == null) {\n return input;\n }\n if (\"ref\" in input) {\n return `$${toDebugString(input.ref)}`;\n }\n if (\"fn\" in input) {\n return `${input.fn}(${(input.argv || []).map(toDebugString).join(\", \")})`;\n }\n return JSON.stringify(input, null, 2);\n}\n","export class EndpointError extends Error {\n constructor(message) {\n super(message);\n this.name = \"EndpointError\";\n }\n}\n","export var HostAddressType;\n(function (HostAddressType) {\n HostAddressType[\"AAAA\"] = \"AAAA\";\n HostAddressType[\"A\"] = \"A\";\n})(HostAddressType || (HostAddressType = {}));\n","const IP_V4_REGEX = new RegExp(`^(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}$`);\nexport const isIpAddress = (value) => IP_V4_REGEX.test(value) || (value.startsWith(\"[\") && value.endsWith(\"]\"));\n","const VALID_HOST_LABEL_REGEX = new RegExp(`^(?!.*-$)(?!-)[a-zA-Z0-9-]{1,63}$`);\nexport const isValidHostLabel = (value, allowSubDomains = false) => {\n if (!allowSubDomains) {\n return VALID_HOST_LABEL_REGEX.test(value);\n }\n const labels = value.split(\".\");\n for (const label of labels) {\n if (!isValidHostLabel(label)) {\n return false;\n }\n }\n return true;\n};\n","import { isIpAddress } from \"../isIpAddress\";\nimport { isValidHostLabel } from \"../isValidHostLabel\";\nexport const isVirtualHostableS3Bucket = (value, allowSubDomains = false) => {\n if (allowSubDomains) {\n for (const label of value.split(\".\")) {\n if (!isVirtualHostableS3Bucket(label)) {\n return false;\n }\n }\n return true;\n }\n if (!isValidHostLabel(value)) {\n return false;\n }\n if (value.length < 3 || value.length > 63) {\n return false;\n }\n if (value !== value.toLowerCase()) {\n return false;\n }\n if (isIpAddress(value)) {\n return false;\n }\n return true;\n};\n","export const parseArn = (value) => {\n const segments = value.split(\":\");\n if (segments.length < 6)\n return null;\n const [arn, partition, service, region, accountId, ...resourceId] = segments;\n if (arn !== \"arn\" || partition === \"\" || service === \"\" || resourceId[0] === \"\")\n return null;\n return {\n partition,\n service,\n region,\n accountId,\n resourceId: resourceId[0].includes(\"/\") ? resourceId[0].split(\"/\") : resourceId,\n };\n};\n","export const booleanEquals = (value1, value2) => value1 === value2;\n","import { EndpointError } from \"../types\";\nimport { getAttrPathList } from \"./getAttrPathList\";\nexport const getAttr = (value, path) => getAttrPathList(path).reduce((acc, index) => {\n if (typeof acc !== \"object\") {\n throw new EndpointError(`Index '${index}' in '${path}' not found in '${JSON.stringify(value)}'`);\n }\n else if (Array.isArray(acc)) {\n return acc[parseInt(index)];\n }\n return acc[index];\n}, value);\n","import { EndpointError } from \"../types\";\nexport const getAttrPathList = (path) => {\n const parts = path.split(\".\");\n const pathList = [];\n for (const part of parts) {\n const squareBracketIndex = part.indexOf(\"[\");\n if (squareBracketIndex !== -1) {\n if (part.indexOf(\"]\") !== part.length - 1) {\n throw new EndpointError(`Path: '${path}' does not end with ']'`);\n }\n const arrayIndex = part.slice(squareBracketIndex + 1, -1);\n if (Number.isNaN(parseInt(arrayIndex))) {\n throw new EndpointError(`Invalid array index: '${arrayIndex}' in path: '${path}'`);\n }\n if (squareBracketIndex !== 0) {\n pathList.push(part.slice(0, squareBracketIndex));\n }\n pathList.push(arrayIndex);\n }\n else {\n pathList.push(part);\n }\n }\n return pathList;\n};\n","export const isSet = (value) => value != null;\n","export const not = (value) => !value;\n","import { EndpointURLScheme } from \"@aws-sdk/types\";\nimport { isIpAddress } from \"./isIpAddress\";\nconst DEFAULT_PORTS = {\n [EndpointURLScheme.HTTP]: 80,\n [EndpointURLScheme.HTTPS]: 443,\n};\nexport const parseURL = (value) => {\n const whatwgURL = (() => {\n try {\n if (value instanceof URL) {\n return value;\n }\n if (typeof value === \"object\" && \"hostname\" in value) {\n const { hostname, port, protocol = \"\", path = \"\", query = {} } = value;\n const url = new URL(`${protocol}//${hostname}${port ? `:${port}` : \"\"}${path}`);\n url.search = Object.entries(query)\n .map(([k, v]) => `${k}=${v}`)\n .join(\"&\");\n return url;\n }\n return new URL(value);\n }\n catch (error) {\n return null;\n }\n })();\n if (!whatwgURL) {\n console.error(`Unable to parse ${JSON.stringify(value)} as a whatwg URL.`);\n return null;\n }\n const urlString = whatwgURL.href;\n const { host, hostname, pathname, protocol, search } = whatwgURL;\n if (search) {\n return null;\n }\n const scheme = protocol.slice(0, -1);\n if (!Object.values(EndpointURLScheme).includes(scheme)) {\n return null;\n }\n const isIp = isIpAddress(hostname);\n const inputContainsDefaultPort = urlString.includes(`${host}:${DEFAULT_PORTS[scheme]}`) ||\n (typeof value === \"string\" && value.includes(`${host}:${DEFAULT_PORTS[scheme]}`));\n const authority = `${host}${inputContainsDefaultPort ? `:${DEFAULT_PORTS[scheme]}` : ``}`;\n return {\n scheme,\n authority,\n path: pathname,\n normalizedPath: pathname.endsWith(\"/\") ? pathname : `${pathname}/`,\n isIp,\n };\n};\n","export var SelectorType;\n(function (SelectorType) {\n SelectorType[\"ENV\"] = \"env\";\n SelectorType[\"CONFIG\"] = \"shared config entry\";\n})(SelectorType || (SelectorType = {}));\nexport const booleanSelector = (obj, key, type) => {\n if (!(key in obj))\n return undefined;\n if (obj[key] === \"true\")\n return true;\n if (obj[key] === \"false\")\n return false;\n throw new Error(`Cannot load ${type} \"${key}\". Expected \"true\" or \"false\", got ${obj[key]}.`);\n};\n","export const stringEquals = (value1, value2) => value1 === value2;\n","export const substring = (input, start, stop, reverse) => {\n if (start >= stop || input.length < stop) {\n return null;\n }\n if (!reverse) {\n return input.substring(start, stop);\n }\n return input.substring(input.length - stop, input.length - start);\n};\n","export const uriEncode = (value) => encodeURIComponent(value).replace(/[!*'()]/g, (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`);\n","import { getAttr } from \"../lib\";\nexport const evaluateTemplate = (template, options) => {\n const evaluatedTemplateArr = [];\n const templateContext = {\n ...options.endpointParams,\n ...options.referenceRecord,\n };\n let currentIndex = 0;\n while (currentIndex < template.length) {\n const openingBraceIndex = template.indexOf(\"{\", currentIndex);\n if (openingBraceIndex === -1) {\n evaluatedTemplateArr.push(template.slice(currentIndex));\n break;\n }\n evaluatedTemplateArr.push(template.slice(currentIndex, openingBraceIndex));\n const closingBraceIndex = template.indexOf(\"}\", openingBraceIndex);\n if (closingBraceIndex === -1) {\n evaluatedTemplateArr.push(template.slice(openingBraceIndex));\n break;\n }\n if (template[openingBraceIndex + 1] === \"{\" && template[closingBraceIndex + 1] === \"}\") {\n evaluatedTemplateArr.push(template.slice(openingBraceIndex + 1, closingBraceIndex));\n currentIndex = closingBraceIndex + 2;\n }\n const parameterName = template.substring(openingBraceIndex + 1, closingBraceIndex);\n if (parameterName.includes(\"#\")) {\n const [refName, attrName] = parameterName.split(\"#\");\n evaluatedTemplateArr.push(getAttr(templateContext[refName], attrName));\n }\n else {\n evaluatedTemplateArr.push(templateContext[parameterName]);\n }\n currentIndex = closingBraceIndex + 1;\n }\n return evaluatedTemplateArr.join(\"\");\n};\n","import { EndpointError } from \"../types\";\nimport { callFunction } from \"./callFunction\";\nimport { evaluateTemplate } from \"./evaluateTemplate\";\nimport { getReferenceValue } from \"./getReferenceValue\";\nexport const evaluateExpression = (obj, keyName, options) => {\n if (typeof obj === \"string\") {\n return evaluateTemplate(obj, options);\n }\n else if (obj[\"fn\"]) {\n return callFunction(obj, options);\n }\n else if (obj[\"ref\"]) {\n return getReferenceValue(obj, options);\n }\n throw new EndpointError(`'${keyName}': ${String(obj)} is not a string, function or reference.`);\n};\n","export const getReferenceValue = ({ ref }, options) => {\n const referenceRecord = {\n ...options.endpointParams,\n ...options.referenceRecord,\n };\n return referenceRecord[ref];\n};\n","import * as lib from \"../lib\";\nimport { evaluateExpression } from \"./evaluateExpression\";\nexport const callFunction = ({ fn, argv }, options) => {\n const evaluatedArgs = argv.map((arg) => [\"boolean\", \"number\"].includes(typeof arg) ? arg : evaluateExpression(arg, \"arg\", options));\n return fn.split(\".\").reduce((acc, key) => acc[key], lib)(...evaluatedArgs);\n};\n","import { debugId, toDebugString } from \"../debug\";\nimport { EndpointError } from \"../types\";\nimport { callFunction } from \"./callFunction\";\nexport const evaluateCondition = ({ assign, ...fnArgs }, options) => {\n if (assign && assign in options.referenceRecord) {\n throw new EndpointError(`'${assign}' is already defined in Reference Record.`);\n }\n const value = callFunction(fnArgs, options);\n options.logger?.debug?.(debugId, `evaluateCondition: ${toDebugString(fnArgs)} = ${toDebugString(value)}`);\n return {\n result: value === \"\" ? true : !!value,\n ...(assign != null && { toAssign: { name: assign, value } }),\n };\n};\n","import { debugId, toDebugString } from \"../debug\";\nimport { evaluateCondition } from \"./evaluateCondition\";\nexport const evaluateConditions = (conditions = [], options) => {\n const conditionsReferenceRecord = {};\n for (const condition of conditions) {\n const { result, toAssign } = evaluateCondition(condition, {\n ...options,\n referenceRecord: {\n ...options.referenceRecord,\n ...conditionsReferenceRecord,\n },\n });\n if (!result) {\n return { result };\n }\n if (toAssign) {\n conditionsReferenceRecord[toAssign.name] = toAssign.value;\n options.logger?.debug?.(debugId, `assign: ${toAssign.name} := ${toDebugString(toAssign.value)}`);\n }\n }\n return { result: true, referenceRecord: conditionsReferenceRecord };\n};\n","import { EndpointError } from \"../types\";\nimport { evaluateExpression } from \"./evaluateExpression\";\nexport const getEndpointHeaders = (headers, options) => Object.entries(headers).reduce((acc, [headerKey, headerVal]) => ({\n ...acc,\n [headerKey]: headerVal.map((headerValEntry) => {\n const processedExpr = evaluateExpression(headerValEntry, \"Header value entry\", options);\n if (typeof processedExpr !== \"string\") {\n throw new EndpointError(`Header '${headerKey}' value '${processedExpr}' is not a string`);\n }\n return processedExpr;\n }),\n}), {});\n","import { EndpointError } from \"../types\";\nimport { evaluateTemplate } from \"./evaluateTemplate\";\nimport { getEndpointProperties } from \"./getEndpointProperties\";\nexport const getEndpointProperty = (property, options) => {\n if (Array.isArray(property)) {\n return property.map((propertyEntry) => getEndpointProperty(propertyEntry, options));\n }\n switch (typeof property) {\n case \"string\":\n return evaluateTemplate(property, options);\n case \"object\":\n if (property === null) {\n throw new EndpointError(`Unexpected endpoint property: ${property}`);\n }\n return getEndpointProperties(property, options);\n case \"boolean\":\n return property;\n default:\n throw new EndpointError(`Unexpected endpoint property type: ${typeof property}`);\n }\n};\n","import { getEndpointProperty } from \"./getEndpointProperty\";\nexport const getEndpointProperties = (properties, options) => Object.entries(properties).reduce((acc, [propertyKey, propertyVal]) => ({\n ...acc,\n [propertyKey]: getEndpointProperty(propertyVal, options),\n}), {});\n","import { EndpointError } from \"../types\";\nimport { evaluateExpression } from \"./evaluateExpression\";\nexport const getEndpointUrl = (endpointUrl, options) => {\n const expression = evaluateExpression(endpointUrl, \"Endpoint URL\", options);\n if (typeof expression === \"string\") {\n try {\n return new URL(expression);\n }\n catch (error) {\n console.error(`Failed to construct URL with ${expression}`, error);\n throw error;\n }\n }\n throw new EndpointError(`Endpoint URL must be a string, got ${typeof expression}`);\n};\n","import { debugId, toDebugString } from \"../debug\";\nimport { evaluateConditions } from \"./evaluateConditions\";\nimport { getEndpointHeaders } from \"./getEndpointHeaders\";\nimport { getEndpointProperties } from \"./getEndpointProperties\";\nimport { getEndpointUrl } from \"./getEndpointUrl\";\nexport const evaluateEndpointRule = (endpointRule, options) => {\n const { conditions, endpoint } = endpointRule;\n const { result, referenceRecord } = evaluateConditions(conditions, options);\n if (!result) {\n return;\n }\n const endpointRuleOptions = {\n ...options,\n referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n };\n const { url, properties, headers } = endpoint;\n options.logger?.debug?.(debugId, `Resolving endpoint from template: ${toDebugString(endpoint)}`);\n return {\n ...(headers != undefined && {\n headers: getEndpointHeaders(headers, endpointRuleOptions),\n }),\n ...(properties != undefined && {\n properties: getEndpointProperties(properties, endpointRuleOptions),\n }),\n url: getEndpointUrl(url, endpointRuleOptions),\n };\n};\n","import { EndpointError } from \"../types\";\nimport { evaluateConditions } from \"./evaluateConditions\";\nimport { evaluateExpression } from \"./evaluateExpression\";\nexport const evaluateErrorRule = (errorRule, options) => {\n const { conditions, error } = errorRule;\n const { result, referenceRecord } = evaluateConditions(conditions, options);\n if (!result) {\n return;\n }\n throw new EndpointError(evaluateExpression(error, \"Error\", {\n ...options,\n referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n }));\n};\n","import { evaluateConditions } from \"./evaluateConditions\";\nimport { evaluateRules } from \"./evaluateRules\";\nexport const evaluateTreeRule = (treeRule, options) => {\n const { conditions, rules } = treeRule;\n const { result, referenceRecord } = evaluateConditions(conditions, options);\n if (!result) {\n return;\n }\n return evaluateRules(rules, {\n ...options,\n referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n });\n};\n","import { EndpointError } from \"../types\";\nimport { evaluateEndpointRule } from \"./evaluateEndpointRule\";\nimport { evaluateErrorRule } from \"./evaluateErrorRule\";\nimport { evaluateTreeRule } from \"./evaluateTreeRule\";\nexport const evaluateRules = (rules, options) => {\n for (const rule of rules) {\n if (rule.type === \"endpoint\") {\n const endpointOrUndefined = evaluateEndpointRule(rule, options);\n if (endpointOrUndefined) {\n return endpointOrUndefined;\n }\n }\n else if (rule.type === \"error\") {\n evaluateErrorRule(rule, options);\n }\n else if (rule.type === \"tree\") {\n const endpointOrUndefined = evaluateTreeRule(rule, options);\n if (endpointOrUndefined) {\n return endpointOrUndefined;\n }\n }\n else {\n throw new EndpointError(`Unknown endpoint rule: ${rule}`);\n }\n }\n throw new EndpointError(`Rules evaluation failed`);\n};\n","import { debugId, toDebugString } from \"./debug\";\nimport { EndpointError } from \"./types\";\nimport { evaluateRules } from \"./utils\";\nexport const resolveEndpoint = (ruleSetObject, options) => {\n const { endpointParams, logger } = options;\n const { parameters, rules } = ruleSetObject;\n options.logger?.debug?.(`${debugId} Initial EndpointParams: ${toDebugString(endpointParams)}`);\n const paramsWithDefault = Object.entries(parameters)\n .filter(([, v]) => v.default != null)\n .map(([k, v]) => [k, v.default]);\n if (paramsWithDefault.length > 0) {\n for (const [paramKey, paramDefaultValue] of paramsWithDefault) {\n endpointParams[paramKey] = endpointParams[paramKey] ?? paramDefaultValue;\n }\n }\n const requiredParams = Object.entries(parameters)\n .filter(([, v]) => v.required)\n .map(([k]) => k);\n for (const requiredParam of requiredParams) {\n if (endpointParams[requiredParam] == null) {\n throw new EndpointError(`Missing required parameter: '${requiredParam}'`);\n }\n }\n const endpoint = evaluateRules(rules, { endpointParams, logger, referenceRecord: {} });\n if (options.endpointParams?.Endpoint) {\n try {\n const givenEndpoint = new URL(options.endpointParams.Endpoint);\n const { protocol, port } = givenEndpoint;\n endpoint.url.protocol = protocol;\n endpoint.url.port = port;\n }\n catch (e) {\n }\n }\n options.logger?.debug?.(`${debugId} Resolved endpoint: ${toDebugString(endpoint)}`);\n return endpoint;\n};\n","export const USER_AGENT = \"user-agent\";\nexport const X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nexport const SPACE = \" \";\nexport const UA_NAME_SEPARATOR = \"/\";\nexport const UA_NAME_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;\nexport const UA_VALUE_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w\\#]/g;\nexport const UA_ESCAPE_CHAR = \"-\";\n","import { getUserAgentPrefix } from \"@aws-sdk/util-endpoints\";\nimport { HttpRequest } from \"@smithy/protocol-http\";\nimport { SPACE, UA_ESCAPE_CHAR, UA_NAME_ESCAPE_REGEX, UA_NAME_SEPARATOR, UA_VALUE_ESCAPE_REGEX, USER_AGENT, X_AMZ_USER_AGENT, } from \"./constants\";\nexport const userAgentMiddleware = (options) => (next, context) => async (args) => {\n const { request } = args;\n if (!HttpRequest.isInstance(request))\n return next(args);\n const { headers } = request;\n const userAgent = context?.userAgent?.map(escapeUserAgent) || [];\n const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\n const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];\n const prefix = getUserAgentPrefix();\n const sdkUserAgentValue = (prefix ? [prefix] : [])\n .concat([...defaultUserAgent, ...userAgent, ...customUserAgent])\n .join(SPACE);\n const normalUAValue = [\n ...defaultUserAgent.filter((section) => section.startsWith(\"aws-sdk-\")),\n ...customUserAgent,\n ].join(SPACE);\n if (options.runtime !== \"browser\") {\n if (normalUAValue) {\n headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT]\n ? `${headers[USER_AGENT]} ${normalUAValue}`\n : normalUAValue;\n }\n headers[USER_AGENT] = sdkUserAgentValue;\n }\n else {\n headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;\n }\n return next({\n ...args,\n request,\n });\n};\nconst escapeUserAgent = (userAgentPair) => {\n const name = userAgentPair[0]\n .split(UA_NAME_SEPARATOR)\n .map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR))\n .join(UA_NAME_SEPARATOR);\n const version = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR);\n const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR);\n const prefix = name.substring(0, prefixSeparatorIndex);\n let uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version]\n .filter((item) => item && item.length > 0)\n .reduce((acc, item, index) => {\n switch (index) {\n case 0:\n return item;\n case 1:\n return `${acc}/${item}`;\n default:\n return `${acc}#${item}`;\n }\n }, \"\");\n};\nexport const getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true,\n};\nexport const getUserAgentPlugin = (config) => ({\n applyToStack: (clientStack) => {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n },\n});\n","export const isFipsRegion = (region) => typeof region === \"string\" && (region.startsWith(\"fips-\") || region.endsWith(\"-fips\"));\n","import { isFipsRegion } from \"./isFipsRegion\";\nexport const getRealRegion = (region) => isFipsRegion(region)\n ? [\"fips-aws-global\", \"aws-fips\"].includes(region)\n ? \"us-east-1\"\n : region.replace(/fips-(dkr-|prod-)?|-fips/, \"\")\n : region;\n","import { getRealRegion } from \"./getRealRegion\";\nimport { isFipsRegion } from \"./isFipsRegion\";\nexport const resolveRegionConfig = (input) => {\n const { region, useFipsEndpoint } = input;\n if (!region) {\n throw new Error(\"Region is missing\");\n }\n return {\n ...input,\n region: async () => {\n if (typeof region === \"string\") {\n return getRealRegion(region);\n }\n const providedRegion = await region();\n return getRealRegion(providedRegion);\n },\n useFipsEndpoint: async () => {\n const providedRegion = typeof region === \"string\" ? region : await region();\n if (isFipsRegion(providedRegion)) {\n return true;\n }\n return typeof useFipsEndpoint !== \"function\" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint();\n },\n };\n};\n","import { HttpRequest } from \"@smithy/protocol-http\";\nconst CONTENT_LENGTH_HEADER = \"content-length\";\nexport function contentLengthMiddleware(bodyLengthChecker) {\n return (next) => async (args) => {\n const request = args.request;\n if (HttpRequest.isInstance(request)) {\n const { body, headers } = request;\n if (body &&\n Object.keys(headers)\n .map((str) => str.toLowerCase())\n .indexOf(CONTENT_LENGTH_HEADER) === -1) {\n try {\n const length = bodyLengthChecker(body);\n request.headers = {\n ...request.headers,\n [CONTENT_LENGTH_HEADER]: String(length),\n };\n }\n catch (error) {\n }\n }\n }\n return next({\n ...args,\n request,\n });\n };\n}\nexport const contentLengthMiddlewareOptions = {\n step: \"build\",\n tags: [\"SET_CONTENT_LENGTH\", \"CONTENT_LENGTH\"],\n name: \"contentLengthMiddleware\",\n override: true,\n};\nexport const getContentLengthPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), contentLengthMiddlewareOptions);\n },\n});\n","import { deserializerMiddleware } from \"./deserializerMiddleware\";\nimport { serializerMiddleware } from \"./serializerMiddleware\";\nexport const deserializerMiddlewareOption = {\n name: \"deserializerMiddleware\",\n step: \"deserialize\",\n tags: [\"DESERIALIZER\"],\n override: true,\n};\nexport const serializerMiddlewareOption = {\n name: \"serializerMiddleware\",\n step: \"serialize\",\n tags: [\"SERIALIZER\"],\n override: true,\n};\nexport function getSerdePlugin(config, serializer, deserializer) {\n return {\n applyToStack: (commandStack) => {\n commandStack.add(deserializerMiddleware(config, deserializer), deserializerMiddlewareOption);\n commandStack.add(serializerMiddleware(config, serializer), serializerMiddlewareOption);\n },\n };\n}\n","export const deserializerMiddleware = (options, deserializer) => (next, context) => async (args) => {\n const { response } = await next(args);\n try {\n const parsed = await deserializer(response, options);\n return {\n response,\n output: parsed,\n };\n }\n catch (error) {\n Object.defineProperty(error, \"$response\", {\n value: response,\n });\n if (!(\"$metadata\" in error)) {\n const hint = `Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.`;\n error.message += \"\\n \" + hint;\n }\n throw error;\n }\n};\n","export const serializerMiddleware = (options, serializer) => (next, context) => async (args) => {\n const endpoint = context.endpointV2?.url && options.urlParser\n ? async () => options.urlParser(context.endpointV2.url)\n : options.endpoint;\n if (!endpoint) {\n throw new Error(\"No valid endpoint provider available.\");\n }\n const request = await serializer(args.input, { ...options, endpoint });\n return next({\n ...args,\n request,\n });\n};\n","export const resolveParamsForS3 = async (endpointParams) => {\n const bucket = endpointParams?.Bucket || \"\";\n if (typeof endpointParams.Bucket === \"string\") {\n endpointParams.Bucket = bucket.replace(/#/g, encodeURIComponent(\"#\")).replace(/\\?/g, encodeURIComponent(\"?\"));\n }\n if (isArnBucketName(bucket)) {\n if (endpointParams.ForcePathStyle === true) {\n throw new Error(\"Path-style addressing cannot be used with ARN buckets\");\n }\n }\n else if (!isDnsCompatibleBucketName(bucket) ||\n (bucket.indexOf(\".\") !== -1 && !String(endpointParams.Endpoint).startsWith(\"http:\")) ||\n bucket.toLowerCase() !== bucket ||\n bucket.length < 3) {\n endpointParams.ForcePathStyle = true;\n }\n if (endpointParams.DisableMultiRegionAccessPoints) {\n endpointParams.disableMultiRegionAccessPoints = true;\n endpointParams.DisableMRAP = true;\n }\n return endpointParams;\n};\nconst DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]$/;\nconst IP_ADDRESS_PATTERN = /(\\d+\\.){3}\\d+/;\nconst DOTS_PATTERN = /\\.\\./;\nexport const DOT_PATTERN = /\\./;\nexport const S3_HOSTNAME_PATTERN = /^(.+\\.)?s3(-fips)?(\\.dualstack)?[.-]([a-z0-9-]+)\\./;\nexport const isDnsCompatibleBucketName = (bucketName) => DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName);\nexport const isArnBucketName = (bucketName) => {\n const [arn, partition, service, region, account, typeOrId] = bucketName.split(\":\");\n const isArn = arn === \"arn\" && bucketName.split(\":\").length >= 6;\n const isValidArn = [arn, partition, service, account, typeOrId].filter(Boolean).length === 5;\n if (isArn && !isValidArn) {\n throw new Error(`Invalid ARN: ${bucketName} was an invalid ARN.`);\n }\n return arn === \"arn\" && !!partition && !!service && !!account && !!typeOrId;\n};\n","export const createConfigValueProvider = (configKey, canonicalEndpointParamKey, config) => {\n const configProvider = async () => {\n const configValue = config[configKey] ?? config[canonicalEndpointParamKey];\n if (typeof configValue === \"function\") {\n return configValue();\n }\n return configValue;\n };\n if (configKey === \"endpoint\" || canonicalEndpointParamKey === \"endpoint\") {\n return async () => {\n const endpoint = await configProvider();\n if (endpoint && typeof endpoint === \"object\") {\n if (\"url\" in endpoint) {\n return endpoint.url.href;\n }\n if (\"hostname\" in endpoint) {\n const { protocol, hostname, port, path } = endpoint;\n return `${protocol}//${hostname}${port ? \":\" + port : \"\"}${path}`;\n }\n }\n return endpoint;\n };\n }\n return configProvider;\n};\n","import { resolveParamsForS3 } from \"../service-customizations\";\nimport { createConfigValueProvider } from \"./createConfigValueProvider\";\nexport const getEndpointFromInstructions = async (commandInput, instructionsSupplier, clientConfig, context) => {\n const endpointParams = await resolveParams(commandInput, instructionsSupplier, clientConfig);\n if (typeof clientConfig.endpointProvider !== \"function\") {\n throw new Error(\"config.endpointProvider is not set.\");\n }\n const endpoint = clientConfig.endpointProvider(endpointParams, context);\n return endpoint;\n};\nexport const resolveParams = async (commandInput, instructionsSupplier, clientConfig) => {\n const endpointParams = {};\n const instructions = instructionsSupplier?.getEndpointParameterInstructions?.() || {};\n for (const [name, instruction] of Object.entries(instructions)) {\n switch (instruction.type) {\n case \"staticContextParams\":\n endpointParams[name] = instruction.value;\n break;\n case \"contextParams\":\n endpointParams[name] = commandInput[instruction.name];\n break;\n case \"clientContextParams\":\n case \"builtInParams\":\n endpointParams[name] = await createConfigValueProvider(instruction.name, name, clientConfig)();\n break;\n default:\n throw new Error(\"Unrecognized endpoint parameter instruction: \" + JSON.stringify(instruction));\n }\n }\n if (Object.keys(instructions).length === 0) {\n Object.assign(endpointParams, clientConfig);\n }\n if (String(clientConfig.serviceId).toLowerCase() === \"s3\") {\n await resolveParamsForS3(endpointParams);\n }\n return endpointParams;\n};\n","import { serializerMiddlewareOption } from \"@smithy/middleware-serde\";\nimport { endpointMiddleware } from \"./endpointMiddleware\";\nexport const endpointMiddlewareOptions = {\n step: \"serialize\",\n tags: [\"ENDPOINT_PARAMETERS\", \"ENDPOINT_V2\", \"ENDPOINT\"],\n name: \"endpointV2Middleware\",\n override: true,\n relation: \"before\",\n toMiddleware: serializerMiddlewareOption.name,\n};\nexport const getEndpointPlugin = (config, instructions) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(endpointMiddleware({\n config,\n instructions,\n }), endpointMiddlewareOptions);\n },\n});\n","import { getEndpointFromInstructions } from \"./adaptors/getEndpointFromInstructions\";\nexport const endpointMiddleware = ({ config, instructions, }) => {\n return (next, context) => async (args) => {\n const endpoint = await getEndpointFromInstructions(args.input, {\n getEndpointParameterInstructions() {\n return instructions;\n },\n }, { ...config }, context);\n context.endpointV2 = endpoint;\n context.authSchemes = endpoint.properties?.authSchemes;\n const authScheme = context.authSchemes?.[0];\n if (authScheme) {\n context[\"signing_region\"] = authScheme.signingRegion;\n context[\"signing_service\"] = authScheme.signingName;\n }\n return next({\n ...args,\n });\n };\n};\n","import { parseQueryString } from \"@smithy/querystring-parser\";\nexport const parseUrl = (url) => {\n if (typeof url === \"string\") {\n return parseUrl(new URL(url));\n }\n const { hostname, pathname, port, protocol, search } = url;\n let query;\n if (search) {\n query = parseQueryString(search);\n }\n return {\n hostname,\n port: port ? parseInt(port) : undefined,\n protocol,\n path: pathname,\n query,\n };\n};\n","export var RETRY_MODES;\n(function (RETRY_MODES) {\n RETRY_MODES[\"STANDARD\"] = \"standard\";\n RETRY_MODES[\"ADAPTIVE\"] = \"adaptive\";\n})(RETRY_MODES || (RETRY_MODES = {}));\nexport const DEFAULT_MAX_ATTEMPTS = 3;\nexport const DEFAULT_RETRY_MODE = RETRY_MODES.STANDARD;\n","export function parseQueryString(querystring) {\n const query = {};\n querystring = querystring.replace(/^\\?/, \"\");\n if (querystring) {\n for (const pair of querystring.split(\"&\")) {\n let [key, value = null] = pair.split(\"=\");\n key = decodeURIComponent(key);\n if (value) {\n value = decodeURIComponent(value);\n }\n if (!(key in query)) {\n query[key] = value;\n }\n else if (Array.isArray(query[key])) {\n query[key].push(value);\n }\n else {\n query[key] = [query[key], value];\n }\n }\n }\n return query;\n}\n","import { parseUrl } from \"@smithy/url-parser\";\nexport const toEndpointV1 = (endpoint) => {\n if (typeof endpoint === \"object\") {\n if (\"url\" in endpoint) {\n return parseUrl(endpoint.url);\n }\n return endpoint;\n }\n return parseUrl(endpoint);\n};\n","import { normalizeProvider } from \"@smithy/util-middleware\";\nimport { toEndpointV1 } from \"./adaptors/toEndpointV1\";\nexport const resolveEndpointConfig = (input) => {\n const tls = input.tls ?? true;\n const { endpoint } = input;\n const customEndpointProvider = endpoint != null ? async () => toEndpointV1(await normalizeProvider(endpoint)()) : undefined;\n const isCustomEndpoint = !!endpoint;\n return {\n ...input,\n endpoint: customEndpointProvider,\n tls,\n isCustomEndpoint,\n useDualstackEndpoint: normalizeProvider(input.useDualstackEndpoint ?? false),\n useFipsEndpoint: normalizeProvider(input.useFipsEndpoint ?? false),\n };\n};\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export const CLOCK_SKEW_ERROR_CODES = [\n \"AuthFailure\",\n \"InvalidSignatureException\",\n \"RequestExpired\",\n \"RequestInTheFuture\",\n \"RequestTimeTooSkewed\",\n \"SignatureDoesNotMatch\",\n];\nexport const THROTTLING_ERROR_CODES = [\n \"BandwidthLimitExceeded\",\n \"EC2ThrottledException\",\n \"LimitExceededException\",\n \"PriorRequestNotComplete\",\n \"ProvisionedThroughputExceededException\",\n \"RequestLimitExceeded\",\n \"RequestThrottled\",\n \"RequestThrottledException\",\n \"SlowDown\",\n \"ThrottledException\",\n \"Throttling\",\n \"ThrottlingException\",\n \"TooManyRequestsException\",\n \"TransactionInProgressException\",\n];\nexport const TRANSIENT_ERROR_CODES = [\"TimeoutError\", \"RequestTimeout\", \"RequestTimeoutException\"];\nexport const TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504];\nexport const NODEJS_TIMEOUT_ERROR_CODES = [\"ECONNRESET\", \"ECONNREFUSED\", \"EPIPE\", \"ETIMEDOUT\"];\n","import { CLOCK_SKEW_ERROR_CODES, NODEJS_TIMEOUT_ERROR_CODES, THROTTLING_ERROR_CODES, TRANSIENT_ERROR_CODES, TRANSIENT_ERROR_STATUS_CODES, } from \"./constants\";\nexport const isRetryableByTrait = (error) => error.$retryable !== undefined;\nexport const isClockSkewError = (error) => CLOCK_SKEW_ERROR_CODES.includes(error.name);\nexport const isThrottlingError = (error) => error.$metadata?.httpStatusCode === 429 ||\n THROTTLING_ERROR_CODES.includes(error.name) ||\n error.$retryable?.throttling == true;\nexport const isTransientError = (error) => TRANSIENT_ERROR_CODES.includes(error.name) ||\n NODEJS_TIMEOUT_ERROR_CODES.includes(error?.code || \"\") ||\n TRANSIENT_ERROR_STATUS_CODES.includes(error.$metadata?.httpStatusCode || 0);\nexport const isServerError = (error) => {\n if (error.$metadata?.httpStatusCode !== undefined) {\n const statusCode = error.$metadata.httpStatusCode;\n if (500 <= statusCode && statusCode <= 599 && !isTransientError(error)) {\n return true;\n }\n return false;\n }\n return false;\n};\n","import { isThrottlingError } from \"@smithy/service-error-classification\";\nexport class DefaultRateLimiter {\n constructor(options) {\n this.currentCapacity = 0;\n this.enabled = false;\n this.lastMaxRate = 0;\n this.measuredTxRate = 0;\n this.requestCount = 0;\n this.lastTimestamp = 0;\n this.timeWindow = 0;\n this.beta = options?.beta ?? 0.7;\n this.minCapacity = options?.minCapacity ?? 1;\n this.minFillRate = options?.minFillRate ?? 0.5;\n this.scaleConstant = options?.scaleConstant ?? 0.4;\n this.smooth = options?.smooth ?? 0.8;\n const currentTimeInSeconds = this.getCurrentTimeInSeconds();\n this.lastThrottleTime = currentTimeInSeconds;\n this.lastTxRateBucket = Math.floor(this.getCurrentTimeInSeconds());\n this.fillRate = this.minFillRate;\n this.maxCapacity = this.minCapacity;\n }\n getCurrentTimeInSeconds() {\n return Date.now() / 1000;\n }\n async getSendToken() {\n return this.acquireTokenBucket(1);\n }\n async acquireTokenBucket(amount) {\n if (!this.enabled) {\n return;\n }\n this.refillTokenBucket();\n if (amount > this.currentCapacity) {\n const delay = ((amount - this.currentCapacity) / this.fillRate) * 1000;\n await new Promise((resolve) => setTimeout(resolve, delay));\n }\n this.currentCapacity = this.currentCapacity - amount;\n }\n refillTokenBucket() {\n const timestamp = this.getCurrentTimeInSeconds();\n if (!this.lastTimestamp) {\n this.lastTimestamp = timestamp;\n return;\n }\n const fillAmount = (timestamp - this.lastTimestamp) * this.fillRate;\n this.currentCapacity = Math.min(this.maxCapacity, this.currentCapacity + fillAmount);\n this.lastTimestamp = timestamp;\n }\n updateClientSendingRate(response) {\n let calculatedRate;\n this.updateMeasuredRate();\n if (isThrottlingError(response)) {\n const rateToUse = !this.enabled ? this.measuredTxRate : Math.min(this.measuredTxRate, this.fillRate);\n this.lastMaxRate = rateToUse;\n this.calculateTimeWindow();\n this.lastThrottleTime = this.getCurrentTimeInSeconds();\n calculatedRate = this.cubicThrottle(rateToUse);\n this.enableTokenBucket();\n }\n else {\n this.calculateTimeWindow();\n calculatedRate = this.cubicSuccess(this.getCurrentTimeInSeconds());\n }\n const newRate = Math.min(calculatedRate, 2 * this.measuredTxRate);\n this.updateTokenBucketRate(newRate);\n }\n calculateTimeWindow() {\n this.timeWindow = this.getPrecise(Math.pow((this.lastMaxRate * (1 - this.beta)) / this.scaleConstant, 1 / 3));\n }\n cubicThrottle(rateToUse) {\n return this.getPrecise(rateToUse * this.beta);\n }\n cubicSuccess(timestamp) {\n return this.getPrecise(this.scaleConstant * Math.pow(timestamp - this.lastThrottleTime - this.timeWindow, 3) + this.lastMaxRate);\n }\n enableTokenBucket() {\n this.enabled = true;\n }\n updateTokenBucketRate(newRate) {\n this.refillTokenBucket();\n this.fillRate = Math.max(newRate, this.minFillRate);\n this.maxCapacity = Math.max(newRate, this.minCapacity);\n this.currentCapacity = Math.min(this.currentCapacity, this.maxCapacity);\n }\n updateMeasuredRate() {\n const t = this.getCurrentTimeInSeconds();\n const timeBucket = Math.floor(t * 2) / 2;\n this.requestCount++;\n if (timeBucket > this.lastTxRateBucket) {\n const currentRate = this.requestCount / (timeBucket - this.lastTxRateBucket);\n this.measuredTxRate = this.getPrecise(currentRate * this.smooth + this.measuredTxRate * (1 - this.smooth));\n this.requestCount = 0;\n this.lastTxRateBucket = timeBucket;\n }\n }\n getPrecise(num) {\n return parseFloat(num.toFixed(8));\n }\n}\n","import { MAXIMUM_RETRY_DELAY } from \"./constants\";\nexport const createDefaultRetryToken = ({ retryDelay, retryCount, retryCost, }) => {\n const getRetryCount = () => retryCount;\n const getRetryDelay = () => Math.min(MAXIMUM_RETRY_DELAY, retryDelay);\n const getRetryCost = () => retryCost;\n return {\n getRetryCount,\n getRetryDelay,\n getRetryCost,\n };\n};\n","export const DEFAULT_RETRY_DELAY_BASE = 100;\nexport const MAXIMUM_RETRY_DELAY = 20 * 1000;\nexport const THROTTLING_RETRY_DELAY_BASE = 500;\nexport const INITIAL_RETRY_TOKENS = 500;\nexport const RETRY_COST = 5;\nexport const TIMEOUT_RETRY_COST = 10;\nexport const NO_RETRY_INCREMENT = 1;\nexport const INVOCATION_ID_HEADER = \"amz-sdk-invocation-id\";\nexport const REQUEST_HEADER = \"amz-sdk-request\";\n","import { DEFAULT_MAX_ATTEMPTS, RETRY_MODES } from \"./config\";\nimport { DEFAULT_RETRY_DELAY_BASE, INITIAL_RETRY_TOKENS, NO_RETRY_INCREMENT, RETRY_COST, THROTTLING_RETRY_DELAY_BASE, TIMEOUT_RETRY_COST, } from \"./constants\";\nimport { getDefaultRetryBackoffStrategy } from \"./defaultRetryBackoffStrategy\";\nimport { createDefaultRetryToken } from \"./defaultRetryToken\";\nexport class StandardRetryStrategy {\n constructor(maxAttempts) {\n this.maxAttempts = maxAttempts;\n this.mode = RETRY_MODES.STANDARD;\n this.capacity = INITIAL_RETRY_TOKENS;\n this.retryBackoffStrategy = getDefaultRetryBackoffStrategy();\n this.maxAttemptsProvider = typeof maxAttempts === \"function\" ? maxAttempts : async () => maxAttempts;\n }\n async acquireInitialRetryToken(retryTokenScope) {\n return createDefaultRetryToken({\n retryDelay: DEFAULT_RETRY_DELAY_BASE,\n retryCount: 0,\n });\n }\n async refreshRetryTokenForRetry(token, errorInfo) {\n const maxAttempts = await this.getMaxAttempts();\n if (this.shouldRetry(token, errorInfo, maxAttempts)) {\n const errorType = errorInfo.errorType;\n this.retryBackoffStrategy.setDelayBase(errorType === \"THROTTLING\" ? THROTTLING_RETRY_DELAY_BASE : DEFAULT_RETRY_DELAY_BASE);\n const delayFromErrorType = this.retryBackoffStrategy.computeNextBackoffDelay(token.getRetryCount());\n const retryDelay = errorInfo.retryAfterHint\n ? Math.max(errorInfo.retryAfterHint.getTime() - Date.now() || 0, delayFromErrorType)\n : delayFromErrorType;\n const capacityCost = this.getCapacityCost(errorType);\n this.capacity -= capacityCost;\n return createDefaultRetryToken({\n retryDelay,\n retryCount: token.getRetryCount() + 1,\n retryCost: capacityCost,\n });\n }\n throw new Error(\"No retry token available\");\n }\n recordSuccess(token) {\n this.capacity = Math.max(INITIAL_RETRY_TOKENS, this.capacity + (token.getRetryCost() ?? NO_RETRY_INCREMENT));\n }\n getCapacity() {\n return this.capacity;\n }\n async getMaxAttempts() {\n try {\n return await this.maxAttemptsProvider();\n }\n catch (error) {\n console.warn(`Max attempts provider could not resolve. Using default of ${DEFAULT_MAX_ATTEMPTS}`);\n return DEFAULT_MAX_ATTEMPTS;\n }\n }\n shouldRetry(tokenToRenew, errorInfo, maxAttempts) {\n const attempts = tokenToRenew.getRetryCount() + 1;\n return (attempts < maxAttempts &&\n this.capacity >= this.getCapacityCost(errorInfo.errorType) &&\n this.isRetryableError(errorInfo.errorType));\n }\n getCapacityCost(errorType) {\n return errorType === \"TRANSIENT\" ? TIMEOUT_RETRY_COST : RETRY_COST;\n }\n isRetryableError(errorType) {\n return errorType === \"THROTTLING\" || errorType === \"TRANSIENT\";\n }\n}\n","import { DEFAULT_RETRY_DELAY_BASE, MAXIMUM_RETRY_DELAY } from \"./constants\";\nexport const getDefaultRetryBackoffStrategy = () => {\n let delayBase = DEFAULT_RETRY_DELAY_BASE;\n const computeNextBackoffDelay = (attempts) => {\n return Math.floor(Math.min(MAXIMUM_RETRY_DELAY, Math.random() * 2 ** attempts * delayBase));\n };\n const setDelayBase = (delay) => {\n delayBase = delay;\n };\n return {\n computeNextBackoffDelay,\n setDelayBase,\n };\n};\n","import { RETRY_MODES } from \"./config\";\nimport { DefaultRateLimiter } from \"./DefaultRateLimiter\";\nimport { StandardRetryStrategy } from \"./StandardRetryStrategy\";\nexport class AdaptiveRetryStrategy {\n constructor(maxAttemptsProvider, options) {\n this.maxAttemptsProvider = maxAttemptsProvider;\n this.mode = RETRY_MODES.ADAPTIVE;\n const { rateLimiter } = options ?? {};\n this.rateLimiter = rateLimiter ?? new DefaultRateLimiter();\n this.standardRetryStrategy = new StandardRetryStrategy(maxAttemptsProvider);\n }\n async acquireInitialRetryToken(retryTokenScope) {\n await this.rateLimiter.getSendToken();\n return this.standardRetryStrategy.acquireInitialRetryToken(retryTokenScope);\n }\n async refreshRetryTokenForRetry(tokenToRenew, errorInfo) {\n this.rateLimiter.updateClientSendingRate(errorInfo);\n return this.standardRetryStrategy.refreshRetryTokenForRetry(tokenToRenew, errorInfo);\n }\n recordSuccess(token) {\n this.rateLimiter.updateClientSendingRate({});\n this.standardRetryStrategy.recordSuccess(token);\n }\n}\n","import { normalizeProvider } from \"@smithy/util-middleware\";\nimport { AdaptiveRetryStrategy, DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE, RETRY_MODES, StandardRetryStrategy, } from \"@smithy/util-retry\";\nexport const ENV_MAX_ATTEMPTS = \"AWS_MAX_ATTEMPTS\";\nexport const CONFIG_MAX_ATTEMPTS = \"max_attempts\";\nexport const NODE_MAX_ATTEMPT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => {\n const value = env[ENV_MAX_ATTEMPTS];\n if (!value)\n return undefined;\n const maxAttempt = parseInt(value);\n if (Number.isNaN(maxAttempt)) {\n throw new Error(`Environment variable ${ENV_MAX_ATTEMPTS} mast be a number, got \"${value}\"`);\n }\n return maxAttempt;\n },\n configFileSelector: (profile) => {\n const value = profile[CONFIG_MAX_ATTEMPTS];\n if (!value)\n return undefined;\n const maxAttempt = parseInt(value);\n if (Number.isNaN(maxAttempt)) {\n throw new Error(`Shared config file entry ${CONFIG_MAX_ATTEMPTS} mast be a number, got \"${value}\"`);\n }\n return maxAttempt;\n },\n default: DEFAULT_MAX_ATTEMPTS,\n};\nexport const resolveRetryConfig = (input) => {\n const { retryStrategy } = input;\n const maxAttempts = normalizeProvider(input.maxAttempts ?? DEFAULT_MAX_ATTEMPTS);\n return {\n ...input,\n maxAttempts,\n retryStrategy: async () => {\n if (retryStrategy) {\n return retryStrategy;\n }\n const retryMode = await normalizeProvider(input.retryMode)();\n if (retryMode === RETRY_MODES.ADAPTIVE) {\n return new AdaptiveRetryStrategy(maxAttempts);\n }\n return new StandardRetryStrategy(maxAttempts);\n },\n };\n};\nexport const ENV_RETRY_MODE = \"AWS_RETRY_MODE\";\nexport const CONFIG_RETRY_MODE = \"retry_mode\";\nexport const NODE_RETRY_MODE_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[ENV_RETRY_MODE],\n configFileSelector: (profile) => profile[CONFIG_RETRY_MODE],\n default: DEFAULT_RETRY_MODE,\n};\n","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","const alphabetByEncoding = {};\nconst alphabetByValue = new Array(64);\nfor (let i = 0, start = \"A\".charCodeAt(0), limit = \"Z\".charCodeAt(0); i + start <= limit; i++) {\n const char = String.fromCharCode(i + start);\n alphabetByEncoding[char] = i;\n alphabetByValue[i] = char;\n}\nfor (let i = 0, start = \"a\".charCodeAt(0), limit = \"z\".charCodeAt(0); i + start <= limit; i++) {\n const char = String.fromCharCode(i + start);\n const index = i + 26;\n alphabetByEncoding[char] = index;\n alphabetByValue[index] = char;\n}\nfor (let i = 0; i < 10; i++) {\n alphabetByEncoding[i.toString(10)] = i + 52;\n const char = i.toString(10);\n const index = i + 52;\n alphabetByEncoding[char] = index;\n alphabetByValue[index] = char;\n}\nalphabetByEncoding[\"+\"] = 62;\nalphabetByValue[62] = \"+\";\nalphabetByEncoding[\"/\"] = 63;\nalphabetByValue[63] = \"/\";\nconst bitsPerLetter = 6;\nconst bitsPerByte = 8;\nconst maxLetterValue = 0b111111;\nexport { alphabetByEncoding, alphabetByValue, bitsPerLetter, bitsPerByte, maxLetterValue };\n","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","export const asSdkError = (error) => {\n if (error instanceof Error)\n return error;\n if (error instanceof Object)\n return Object.assign(new Error(), error);\n if (typeof error === \"string\")\n return new Error(error);\n return new Error(`AWS SDK error wrapper for ${error}`);\n};\n","import { HttpRequest, HttpResponse } from \"@smithy/protocol-http\";\nimport { isServerError, isThrottlingError, isTransientError } from \"@smithy/service-error-classification\";\nimport { INVOCATION_ID_HEADER, REQUEST_HEADER } from \"@smithy/util-retry\";\nimport { v4 } from \"uuid\";\nimport { asSdkError } from \"./util\";\nexport const retryMiddleware = (options) => (next, context) => async (args) => {\n let retryStrategy = await options.retryStrategy();\n const maxAttempts = await options.maxAttempts();\n if (isRetryStrategyV2(retryStrategy)) {\n retryStrategy = retryStrategy;\n let retryToken = await retryStrategy.acquireInitialRetryToken(context[\"partition_id\"]);\n let lastError = new Error();\n let attempts = 0;\n let totalRetryDelay = 0;\n const { request } = args;\n if (HttpRequest.isInstance(request)) {\n request.headers[INVOCATION_ID_HEADER] = v4();\n }\n while (true) {\n try {\n if (HttpRequest.isInstance(request)) {\n request.headers[REQUEST_HEADER] = `attempt=${attempts + 1}; max=${maxAttempts}`;\n }\n const { response, output } = await next(args);\n retryStrategy.recordSuccess(retryToken);\n output.$metadata.attempts = attempts + 1;\n output.$metadata.totalRetryDelay = totalRetryDelay;\n return { response, output };\n }\n catch (e) {\n const retryErrorInfo = getRetryErrorInfo(e);\n lastError = asSdkError(e);\n try {\n retryToken = await retryStrategy.refreshRetryTokenForRetry(retryToken, retryErrorInfo);\n }\n catch (refreshError) {\n if (!lastError.$metadata) {\n lastError.$metadata = {};\n }\n lastError.$metadata.attempts = attempts + 1;\n lastError.$metadata.totalRetryDelay = totalRetryDelay;\n throw lastError;\n }\n attempts = retryToken.getRetryCount();\n const delay = retryToken.getRetryDelay();\n totalRetryDelay += delay;\n await new Promise((resolve) => setTimeout(resolve, delay));\n }\n }\n }\n else {\n retryStrategy = retryStrategy;\n if (retryStrategy?.mode)\n context.userAgent = [...(context.userAgent || []), [\"cfg/retry-mode\", retryStrategy.mode]];\n return retryStrategy.retry(next, args);\n }\n};\nconst isRetryStrategyV2 = (retryStrategy) => typeof retryStrategy.acquireInitialRetryToken !== \"undefined\" &&\n typeof retryStrategy.refreshRetryTokenForRetry !== \"undefined\" &&\n typeof retryStrategy.recordSuccess !== \"undefined\";\nconst getRetryErrorInfo = (error) => {\n const errorInfo = {\n errorType: getRetryErrorType(error),\n };\n const retryAfterHint = getRetryAfterHint(error.$response);\n if (retryAfterHint) {\n errorInfo.retryAfterHint = retryAfterHint;\n }\n return errorInfo;\n};\nconst getRetryErrorType = (error) => {\n if (isThrottlingError(error))\n return \"THROTTLING\";\n if (isTransientError(error))\n return \"TRANSIENT\";\n if (isServerError(error))\n return \"SERVER_ERROR\";\n return \"CLIENT_ERROR\";\n};\nexport const retryMiddlewareOptions = {\n name: \"retryMiddleware\",\n tags: [\"RETRY\"],\n step: \"finalizeRequest\",\n priority: \"high\",\n override: true,\n};\nexport const getRetryPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(retryMiddleware(options), retryMiddlewareOptions);\n },\n});\nexport const getRetryAfterHint = (response) => {\n if (!HttpResponse.isInstance(response))\n return;\n const retryAfterHeaderName = Object.keys(response.headers).find((key) => key.toLowerCase() === \"retry-after\");\n if (!retryAfterHeaderName)\n return;\n const retryAfter = response.headers[retryAfterHeaderName];\n const retryAfterSeconds = Number(retryAfter);\n if (!Number.isNaN(retryAfterSeconds))\n return new Date(retryAfterSeconds * 1000);\n const retryAfterDate = new Date(retryAfter);\n return retryAfterDate;\n};\n","export class NoOpLogger {\n trace() { }\n debug() { }\n info() { }\n warn() { }\n error() { }\n}\n","export const constructStack = () => {\n let absoluteEntries = [];\n let relativeEntries = [];\n const entriesNameSet = new Set();\n const sort = (entries) => entries.sort((a, b) => stepWeights[b.step] - stepWeights[a.step] ||\n priorityWeights[b.priority || \"normal\"] - priorityWeights[a.priority || \"normal\"]);\n const removeByName = (toRemove) => {\n let isRemoved = false;\n const filterCb = (entry) => {\n if (entry.name && entry.name === toRemove) {\n isRemoved = true;\n entriesNameSet.delete(toRemove);\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n const removeByReference = (toRemove) => {\n let isRemoved = false;\n const filterCb = (entry) => {\n if (entry.middleware === toRemove) {\n isRemoved = true;\n if (entry.name)\n entriesNameSet.delete(entry.name);\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n const cloneTo = (toStack) => {\n absoluteEntries.forEach((entry) => {\n toStack.add(entry.middleware, { ...entry });\n });\n relativeEntries.forEach((entry) => {\n toStack.addRelativeTo(entry.middleware, { ...entry });\n });\n return toStack;\n };\n const expandRelativeMiddlewareList = (from) => {\n const expandedMiddlewareList = [];\n from.before.forEach((entry) => {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry));\n }\n });\n expandedMiddlewareList.push(from);\n from.after.reverse().forEach((entry) => {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry));\n }\n });\n return expandedMiddlewareList;\n };\n const getMiddlewareList = (debug = false) => {\n const normalizedAbsoluteEntries = [];\n const normalizedRelativeEntries = [];\n const normalizedEntriesNameMap = {};\n absoluteEntries.forEach((entry) => {\n const normalizedEntry = {\n ...entry,\n before: [],\n after: [],\n };\n if (normalizedEntry.name)\n normalizedEntriesNameMap[normalizedEntry.name] = normalizedEntry;\n normalizedAbsoluteEntries.push(normalizedEntry);\n });\n relativeEntries.forEach((entry) => {\n const normalizedEntry = {\n ...entry,\n before: [],\n after: [],\n };\n if (normalizedEntry.name)\n normalizedEntriesNameMap[normalizedEntry.name] = normalizedEntry;\n normalizedRelativeEntries.push(normalizedEntry);\n });\n normalizedRelativeEntries.forEach((entry) => {\n if (entry.toMiddleware) {\n const toMiddleware = normalizedEntriesNameMap[entry.toMiddleware];\n if (toMiddleware === undefined) {\n if (debug) {\n return;\n }\n throw new Error(`${entry.toMiddleware} is not found when adding ${entry.name || \"anonymous\"} middleware ${entry.relation} ${entry.toMiddleware}`);\n }\n if (entry.relation === \"after\") {\n toMiddleware.after.push(entry);\n }\n if (entry.relation === \"before\") {\n toMiddleware.before.push(entry);\n }\n }\n });\n const mainChain = sort(normalizedAbsoluteEntries)\n .map(expandRelativeMiddlewareList)\n .reduce((wholeList, expandedMiddlewareList) => {\n wholeList.push(...expandedMiddlewareList);\n return wholeList;\n }, []);\n return mainChain;\n };\n const stack = {\n add: (middleware, options = {}) => {\n const { name, override } = options;\n const entry = {\n step: \"initialize\",\n priority: \"normal\",\n middleware,\n ...options,\n };\n if (name) {\n if (entriesNameSet.has(name)) {\n if (!override)\n throw new Error(`Duplicate middleware name '${name}'`);\n const toOverrideIndex = absoluteEntries.findIndex((entry) => entry.name === name);\n const toOverride = absoluteEntries[toOverrideIndex];\n if (toOverride.step !== entry.step || toOverride.priority !== entry.priority) {\n throw new Error(`\"${name}\" middleware with ${toOverride.priority} priority in ${toOverride.step} step cannot be ` +\n `overridden by same-name middleware with ${entry.priority} priority in ${entry.step} step.`);\n }\n absoluteEntries.splice(toOverrideIndex, 1);\n }\n entriesNameSet.add(name);\n }\n absoluteEntries.push(entry);\n },\n addRelativeTo: (middleware, options) => {\n const { name, override } = options;\n const entry = {\n middleware,\n ...options,\n };\n if (name) {\n if (entriesNameSet.has(name)) {\n if (!override)\n throw new Error(`Duplicate middleware name '${name}'`);\n const toOverrideIndex = relativeEntries.findIndex((entry) => entry.name === name);\n const toOverride = relativeEntries[toOverrideIndex];\n if (toOverride.toMiddleware !== entry.toMiddleware || toOverride.relation !== entry.relation) {\n throw new Error(`\"${name}\" middleware ${toOverride.relation} \"${toOverride.toMiddleware}\" middleware cannot be overridden ` +\n `by same-name middleware ${entry.relation} \"${entry.toMiddleware}\" middleware.`);\n }\n relativeEntries.splice(toOverrideIndex, 1);\n }\n entriesNameSet.add(name);\n }\n relativeEntries.push(entry);\n },\n clone: () => cloneTo(constructStack()),\n use: (plugin) => {\n plugin.applyToStack(stack);\n },\n remove: (toRemove) => {\n if (typeof toRemove === \"string\")\n return removeByName(toRemove);\n else\n return removeByReference(toRemove);\n },\n removeByTag: (toRemove) => {\n let isRemoved = false;\n const filterCb = (entry) => {\n const { tags, name } = entry;\n if (tags && tags.includes(toRemove)) {\n if (name)\n entriesNameSet.delete(name);\n isRemoved = true;\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n },\n concat: (from) => {\n const cloned = cloneTo(constructStack());\n cloned.use(from);\n return cloned;\n },\n applyToStack: cloneTo,\n identify: () => {\n return getMiddlewareList(true).map((mw) => {\n return mw.name + \": \" + (mw.tags || []).join(\",\");\n });\n },\n resolve: (handler, context) => {\n for (const middleware of getMiddlewareList()\n .map((entry) => entry.middleware)\n .reverse()) {\n handler = middleware(handler, context);\n }\n return handler;\n },\n };\n return stack;\n};\nconst stepWeights = {\n initialize: 5,\n serialize: 4,\n build: 3,\n finalizeRequest: 2,\n deserialize: 1,\n};\nconst priorityWeights = {\n high: 3,\n normal: 2,\n low: 1,\n};\n","import { constructStack } from \"@smithy/middleware-stack\";\nexport class Client {\n constructor(config) {\n this.middlewareStack = constructStack();\n this.config = config;\n }\n send(command, optionsOrCb, cb) {\n const options = typeof optionsOrCb !== \"function\" ? optionsOrCb : undefined;\n const callback = typeof optionsOrCb === \"function\" ? optionsOrCb : cb;\n const handler = command.resolveMiddleware(this.middlewareStack, this.config, options);\n if (callback) {\n handler(command)\n .then((result) => callback(null, result.output), (err) => callback(err))\n .catch(() => { });\n }\n else {\n return handler(command).then((result) => result.output);\n }\n }\n destroy() {\n if (this.config.requestHandler.destroy)\n this.config.requestHandler.destroy();\n }\n}\n","import { alphabetByEncoding, bitsPerByte, bitsPerLetter } from \"./constants.browser\";\nexport const fromBase64 = (input) => {\n let totalByteLength = (input.length / 4) * 3;\n if (input.slice(-2) === \"==\") {\n totalByteLength -= 2;\n }\n else if (input.slice(-1) === \"=\") {\n totalByteLength--;\n }\n const out = new ArrayBuffer(totalByteLength);\n const dataView = new DataView(out);\n for (let i = 0; i < input.length; i += 4) {\n let bits = 0;\n let bitLength = 0;\n for (let j = i, limit = i + 3; j <= limit; j++) {\n if (input[j] !== \"=\") {\n if (!(input[j] in alphabetByEncoding)) {\n throw new TypeError(`Invalid character ${input[j]} in base64 string.`);\n }\n bits |= alphabetByEncoding[input[j]] << ((limit - j) * bitsPerLetter);\n bitLength += bitsPerLetter;\n }\n else {\n bits >>= bitsPerLetter;\n }\n }\n const chunkOffset = (i / 4) * 3;\n bits >>= bitLength % bitsPerByte;\n const byteLength = Math.floor(bitLength / bitsPerByte);\n for (let k = 0; k < byteLength; k++) {\n const offset = (byteLength - k - 1) * bitsPerByte;\n dataView.setUint8(chunkOffset + k, (bits & (255 << offset)) >> offset);\n }\n }\n return new Uint8Array(out);\n};\n","import { alphabetByValue, bitsPerByte, bitsPerLetter, maxLetterValue } from \"./constants.browser\";\nexport function toBase64(input) {\n let str = \"\";\n for (let i = 0; i < input.length; i += 3) {\n let bits = 0;\n let bitLength = 0;\n for (let j = i, limit = Math.min(i + 3, input.length); j < limit; j++) {\n bits |= input[j] << ((limit - j - 1) * bitsPerByte);\n bitLength += bitsPerByte;\n }\n const bitClusterCount = Math.ceil(bitLength / bitsPerLetter);\n bits <<= bitClusterCount * bitsPerLetter - bitLength;\n for (let k = 1; k <= bitClusterCount; k++) {\n const offset = (bitClusterCount - k) * bitsPerLetter;\n str += alphabetByValue[(bits & (maxLetterValue << offset)) >> offset];\n }\n str += \"==\".slice(0, 4 - bitClusterCount);\n }\n return str;\n}\n","import { fromBase64, toBase64 } from \"@smithy/util-base64\";\nimport { fromUtf8, toUtf8 } from \"@smithy/util-utf8\";\nimport { Uint8ArrayBlobAdapter } from \"./Uint8ArrayBlobAdapter\";\nexport function transformToString(payload, encoding = \"utf-8\") {\n if (encoding === \"base64\") {\n return toBase64(payload);\n }\n return toUtf8(payload);\n}\nexport function transformFromString(str, encoding) {\n if (encoding === \"base64\") {\n return Uint8ArrayBlobAdapter.mutate(fromBase64(str));\n }\n return Uint8ArrayBlobAdapter.mutate(fromUtf8(str));\n}\n","import { transformFromString, transformToString } from \"./transforms\";\nexport class Uint8ArrayBlobAdapter extends Uint8Array {\n static fromString(source, encoding = \"utf-8\") {\n switch (typeof source) {\n case \"string\":\n return transformFromString(source, encoding);\n default:\n throw new Error(`Unsupported conversion from ${typeof source} to Uint8ArrayBlobAdapter.`);\n }\n }\n static mutate(source) {\n Object.setPrototypeOf(source, Uint8ArrayBlobAdapter.prototype);\n return source;\n }\n transformToString(encoding = \"utf-8\") {\n return transformToString(this, encoding);\n }\n}\n","import { escapeUri } from \"@smithy/util-uri-escape\";\nexport function buildQueryString(query) {\n const parts = [];\n for (let key of Object.keys(query).sort()) {\n const value = query[key];\n key = escapeUri(key);\n if (Array.isArray(value)) {\n for (let i = 0, iLen = value.length; i < iLen; i++) {\n parts.push(`${key}=${escapeUri(value[i])}`);\n }\n }\n else {\n let qsEntry = key;\n if (value || typeof value === \"string\") {\n qsEntry += `=${escapeUri(value)}`;\n }\n parts.push(qsEntry);\n }\n }\n return parts.join(\"&\");\n}\n","export function requestTimeout(timeoutInMs = 0) {\n return new Promise((resolve, reject) => {\n if (timeoutInMs) {\n setTimeout(() => {\n const timeoutError = new Error(`Request did not complete within ${timeoutInMs} ms`);\n timeoutError.name = \"TimeoutError\";\n reject(timeoutError);\n }, timeoutInMs);\n }\n });\n}\n","import { HttpResponse } from \"@smithy/protocol-http\";\nimport { buildQueryString } from \"@smithy/querystring-builder\";\nimport { requestTimeout } from \"./request-timeout\";\nexport class FetchHttpHandler {\n constructor(options) {\n if (typeof options === \"function\") {\n this.configProvider = options().then((opts) => opts || {});\n }\n else {\n this.config = options ?? {};\n this.configProvider = Promise.resolve(this.config);\n }\n }\n destroy() {\n }\n async handle(request, { abortSignal } = {}) {\n if (!this.config) {\n this.config = await this.configProvider;\n }\n const requestTimeoutInMs = this.config.requestTimeout;\n if (abortSignal?.aborted) {\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n return Promise.reject(abortError);\n }\n let path = request.path;\n const queryString = buildQueryString(request.query || {});\n if (queryString) {\n path += `?${queryString}`;\n }\n if (request.fragment) {\n path += `#${request.fragment}`;\n }\n let auth = \"\";\n if (request.username != null || request.password != null) {\n const username = request.username ?? \"\";\n const password = request.password ?? \"\";\n auth = `${username}:${password}@`;\n }\n const { port, method } = request;\n const url = `${request.protocol}//${auth}${request.hostname}${port ? `:${port}` : \"\"}${path}`;\n const body = method === \"GET\" || method === \"HEAD\" ? undefined : request.body;\n const requestOptions = {\n body,\n headers: new Headers(request.headers),\n method: method,\n };\n if (typeof AbortController !== \"undefined\") {\n requestOptions[\"signal\"] = abortSignal;\n }\n const fetchRequest = new Request(url, requestOptions);\n const raceOfPromises = [\n fetch(fetchRequest).then((response) => {\n const fetchHeaders = response.headers;\n const transformedHeaders = {};\n for (const pair of fetchHeaders.entries()) {\n transformedHeaders[pair[0]] = pair[1];\n }\n const hasReadableStream = response.body != undefined;\n if (!hasReadableStream) {\n return response.blob().then((body) => ({\n response: new HttpResponse({\n headers: transformedHeaders,\n reason: response.statusText,\n statusCode: response.status,\n body,\n }),\n }));\n }\n return {\n response: new HttpResponse({\n headers: transformedHeaders,\n reason: response.statusText,\n statusCode: response.status,\n body: response.body,\n }),\n };\n }),\n requestTimeout(requestTimeoutInMs),\n ];\n if (abortSignal) {\n raceOfPromises.push(new Promise((resolve, reject) => {\n abortSignal.onabort = () => {\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n reject(abortError);\n };\n }));\n }\n return Promise.race(raceOfPromises);\n }\n updateHttpClientConfig(key, value) {\n this.config = undefined;\n this.configProvider = this.configProvider.then((config) => {\n config[key] = value;\n return config;\n });\n }\n httpHandlerConfigs() {\n return this.config ?? {};\n }\n}\n","import { fromBase64 } from \"@smithy/util-base64\";\nexport const streamCollector = (stream) => {\n if (typeof Blob === \"function\" && stream instanceof Blob) {\n return collectBlob(stream);\n }\n return collectStream(stream);\n};\nasync function collectBlob(blob) {\n const base64 = await readToBase64(blob);\n const arrayBuffer = fromBase64(base64);\n return new Uint8Array(arrayBuffer);\n}\nasync function collectStream(stream) {\n let res = new Uint8Array(0);\n const reader = stream.getReader();\n let isDone = false;\n while (!isDone) {\n const { done, value } = await reader.read();\n if (value) {\n const prior = res;\n res = new Uint8Array(prior.length + value.length);\n res.set(prior);\n res.set(value, prior.length);\n }\n isDone = done;\n }\n return res;\n}\nfunction readToBase64(blob) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => {\n if (reader.readyState !== 2) {\n return reject(new Error(\"Reader aborted too early\"));\n }\n const result = (reader.result ?? \"\");\n const commaIndex = result.indexOf(\",\");\n const dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length;\n resolve(result.substring(dataOffset));\n };\n reader.onabort = () => reject(new Error(\"Read aborted\"));\n reader.onerror = () => reject(reader.error);\n reader.readAsDataURL(blob);\n });\n}\n","import { streamCollector } from \"@smithy/fetch-http-handler\";\nimport { toBase64 } from \"@smithy/util-base64\";\nimport { toHex } from \"@smithy/util-hex-encoding\";\nimport { toUtf8 } from \"@smithy/util-utf8\";\nconst ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = \"The stream has already been transformed.\";\nexport const sdkStreamMixin = (stream) => {\n if (!isBlobInstance(stream) && !isReadableStreamInstance(stream)) {\n const name = stream?.__proto__?.constructor?.name || stream;\n throw new Error(`Unexpected stream implementation, expect Blob or ReadableStream, got ${name}`);\n }\n let transformed = false;\n const transformToByteArray = async () => {\n if (transformed) {\n throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED);\n }\n transformed = true;\n return await streamCollector(stream);\n };\n const blobToWebStream = (blob) => {\n if (typeof blob.stream !== \"function\") {\n throw new Error(\"Cannot transform payload Blob to web stream. Please make sure the Blob.stream() is polyfilled.\\n\" +\n \"If you are using React Native, this API is not yet supported, see: https://react-native.canny.io/feature-requests/p/fetch-streaming-body\");\n }\n return blob.stream();\n };\n return Object.assign(stream, {\n transformToByteArray: transformToByteArray,\n transformToString: async (encoding) => {\n const buf = await transformToByteArray();\n if (encoding === \"base64\") {\n return toBase64(buf);\n }\n else if (encoding === \"hex\") {\n return toHex(buf);\n }\n else if (encoding === undefined || encoding === \"utf8\" || encoding === \"utf-8\") {\n return toUtf8(buf);\n }\n else if (typeof TextDecoder === \"function\") {\n return new TextDecoder(encoding).decode(buf);\n }\n else {\n throw new Error(\"TextDecoder is not available, please make sure polyfill is provided.\");\n }\n },\n transformToWebStream: () => {\n if (transformed) {\n throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED);\n }\n transformed = true;\n if (isBlobInstance(stream)) {\n return blobToWebStream(stream);\n }\n else if (isReadableStreamInstance(stream)) {\n return stream;\n }\n else {\n throw new Error(`Cannot transform payload to web stream, got ${stream}`);\n }\n },\n });\n};\nconst isBlobInstance = (stream) => typeof Blob === \"function\" && stream instanceof Blob;\nconst isReadableStreamInstance = (stream) => typeof ReadableStream === \"function\" && stream instanceof ReadableStream;\n","import { Uint8ArrayBlobAdapter } from \"@smithy/util-stream\";\nexport const collectBody = async (streamBody = new Uint8Array(), context) => {\n if (streamBody instanceof Uint8Array) {\n return Uint8ArrayBlobAdapter.mutate(streamBody);\n }\n if (!streamBody) {\n return Uint8ArrayBlobAdapter.mutate(new Uint8Array());\n }\n const fromContext = context.streamCollector(streamBody);\n return Uint8ArrayBlobAdapter.mutate(await fromContext);\n};\n","import { constructStack } from \"@smithy/middleware-stack\";\nexport class Command {\n constructor() {\n this.middlewareStack = constructStack();\n }\n}\n","export const SENSITIVE_STRING = \"***SensitiveInformation***\";\n","export const parseBoolean = (value) => {\n switch (value) {\n case \"true\":\n return true;\n case \"false\":\n return false;\n default:\n throw new Error(`Unable to parse boolean value \"${value}\"`);\n }\n};\nexport const expectBoolean = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"number\") {\n if (value === 0 || value === 1) {\n logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`));\n }\n if (value === 0) {\n return false;\n }\n if (value === 1) {\n return true;\n }\n }\n if (typeof value === \"string\") {\n const lower = value.toLowerCase();\n if (lower === \"false\" || lower === \"true\") {\n logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`));\n }\n if (lower === \"false\") {\n return false;\n }\n if (lower === \"true\") {\n return true;\n }\n }\n if (typeof value === \"boolean\") {\n return value;\n }\n throw new TypeError(`Expected boolean, got ${typeof value}: ${value}`);\n};\nexport const expectNumber = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"string\") {\n const parsed = parseFloat(value);\n if (!Number.isNaN(parsed)) {\n if (String(parsed) !== String(value)) {\n logger.warn(stackTraceWarning(`Expected number but observed string: ${value}`));\n }\n return parsed;\n }\n }\n if (typeof value === \"number\") {\n return value;\n }\n throw new TypeError(`Expected number, got ${typeof value}: ${value}`);\n};\nconst MAX_FLOAT = Math.ceil(2 ** 127 * (2 - 2 ** -23));\nexport const expectFloat32 = (value) => {\n const expected = expectNumber(value);\n if (expected !== undefined && !Number.isNaN(expected) && expected !== Infinity && expected !== -Infinity) {\n if (Math.abs(expected) > MAX_FLOAT) {\n throw new TypeError(`Expected 32-bit float, got ${value}`);\n }\n }\n return expected;\n};\nexport const expectLong = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (Number.isInteger(value) && !Number.isNaN(value)) {\n return value;\n }\n throw new TypeError(`Expected integer, got ${typeof value}: ${value}`);\n};\nexport const expectInt = expectLong;\nexport const expectInt32 = (value) => expectSizedInt(value, 32);\nexport const expectShort = (value) => expectSizedInt(value, 16);\nexport const expectByte = (value) => expectSizedInt(value, 8);\nconst expectSizedInt = (value, size) => {\n const expected = expectLong(value);\n if (expected !== undefined && castInt(expected, size) !== expected) {\n throw new TypeError(`Expected ${size}-bit integer, got ${value}`);\n }\n return expected;\n};\nconst castInt = (value, size) => {\n switch (size) {\n case 32:\n return Int32Array.of(value)[0];\n case 16:\n return Int16Array.of(value)[0];\n case 8:\n return Int8Array.of(value)[0];\n }\n};\nexport const expectNonNull = (value, location) => {\n if (value === null || value === undefined) {\n if (location) {\n throw new TypeError(`Expected a non-null value for ${location}`);\n }\n throw new TypeError(\"Expected a non-null value\");\n }\n return value;\n};\nexport const expectObject = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"object\" && !Array.isArray(value)) {\n return value;\n }\n const receivedType = Array.isArray(value) ? \"array\" : typeof value;\n throw new TypeError(`Expected object, got ${receivedType}: ${value}`);\n};\nexport const expectString = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"string\") {\n return value;\n }\n if ([\"boolean\", \"number\", \"bigint\"].includes(typeof value)) {\n logger.warn(stackTraceWarning(`Expected string, got ${typeof value}: ${value}`));\n return String(value);\n }\n throw new TypeError(`Expected string, got ${typeof value}: ${value}`);\n};\nexport const expectUnion = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n const asObject = expectObject(value);\n const setKeys = Object.entries(asObject)\n .filter(([, v]) => v != null)\n .map(([k]) => k);\n if (setKeys.length === 0) {\n throw new TypeError(`Unions must have exactly one non-null member. None were found.`);\n }\n if (setKeys.length > 1) {\n throw new TypeError(`Unions must have exactly one non-null member. Keys ${setKeys} were not null.`);\n }\n return asObject;\n};\nexport const strictParseDouble = (value) => {\n if (typeof value == \"string\") {\n return expectNumber(parseNumber(value));\n }\n return expectNumber(value);\n};\nexport const strictParseFloat = strictParseDouble;\nexport const strictParseFloat32 = (value) => {\n if (typeof value == \"string\") {\n return expectFloat32(parseNumber(value));\n }\n return expectFloat32(value);\n};\nconst NUMBER_REGEX = /(-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)|(-?Infinity)|(NaN)/g;\nconst parseNumber = (value) => {\n const matches = value.match(NUMBER_REGEX);\n if (matches === null || matches[0].length !== value.length) {\n throw new TypeError(`Expected real number, got implicit NaN`);\n }\n return parseFloat(value);\n};\nexport const limitedParseDouble = (value) => {\n if (typeof value == \"string\") {\n return parseFloatString(value);\n }\n return expectNumber(value);\n};\nexport const handleFloat = limitedParseDouble;\nexport const limitedParseFloat = limitedParseDouble;\nexport const limitedParseFloat32 = (value) => {\n if (typeof value == \"string\") {\n return parseFloatString(value);\n }\n return expectFloat32(value);\n};\nconst parseFloatString = (value) => {\n switch (value) {\n case \"NaN\":\n return NaN;\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n default:\n throw new Error(`Unable to parse float value: ${value}`);\n }\n};\nexport const strictParseLong = (value) => {\n if (typeof value === \"string\") {\n return expectLong(parseNumber(value));\n }\n return expectLong(value);\n};\nexport const strictParseInt = strictParseLong;\nexport const strictParseInt32 = (value) => {\n if (typeof value === \"string\") {\n return expectInt32(parseNumber(value));\n }\n return expectInt32(value);\n};\nexport const strictParseShort = (value) => {\n if (typeof value === \"string\") {\n return expectShort(parseNumber(value));\n }\n return expectShort(value);\n};\nexport const strictParseByte = (value) => {\n if (typeof value === \"string\") {\n return expectByte(parseNumber(value));\n }\n return expectByte(value);\n};\nconst stackTraceWarning = (message) => {\n return String(new TypeError(message).stack || message)\n .split(\"\\n\")\n .slice(0, 5)\n .filter((s) => !s.includes(\"stackTraceWarning\"))\n .join(\"\\n\");\n};\nexport const logger = {\n warn: console.warn,\n};\n","import { strictParseByte, strictParseDouble, strictParseFloat32, strictParseShort } from \"./parse-utils\";\nconst DAYS = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\nconst MONTHS = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\nexport function dateToUtcString(date) {\n const year = date.getUTCFullYear();\n const month = date.getUTCMonth();\n const dayOfWeek = date.getUTCDay();\n const dayOfMonthInt = date.getUTCDate();\n const hoursInt = date.getUTCHours();\n const minutesInt = date.getUTCMinutes();\n const secondsInt = date.getUTCSeconds();\n const dayOfMonthString = dayOfMonthInt < 10 ? `0${dayOfMonthInt}` : `${dayOfMonthInt}`;\n const hoursString = hoursInt < 10 ? `0${hoursInt}` : `${hoursInt}`;\n const minutesString = minutesInt < 10 ? `0${minutesInt}` : `${minutesInt}`;\n const secondsString = secondsInt < 10 ? `0${secondsInt}` : `${secondsInt}`;\n return `${DAYS[dayOfWeek]}, ${dayOfMonthString} ${MONTHS[month]} ${year} ${hoursString}:${minutesString}:${secondsString} GMT`;\n}\nconst RFC3339 = new RegExp(/^(\\d{4})-(\\d{2})-(\\d{2})[tT](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?[zZ]$/);\nexport const parseRfc3339DateTime = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-3339 date-times must be expressed as strings\");\n }\n const match = RFC3339.exec(value);\n if (!match) {\n throw new TypeError(\"Invalid RFC-3339 date-time value\");\n }\n const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n const year = strictParseShort(stripLeadingZeroes(yearStr));\n const month = parseDateValue(monthStr, \"month\", 1, 12);\n const day = parseDateValue(dayStr, \"day\", 1, 31);\n return buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds });\n};\nconst RFC3339_WITH_OFFSET = new RegExp(/^(\\d{4})-(\\d{2})-(\\d{2})[tT](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?(([-+]\\d{2}\\:\\d{2})|[zZ])$/);\nexport const parseRfc3339DateTimeWithOffset = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-3339 date-times must be expressed as strings\");\n }\n const match = RFC3339_WITH_OFFSET.exec(value);\n if (!match) {\n throw new TypeError(\"Invalid RFC-3339 date-time value\");\n }\n const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, offsetStr] = match;\n const year = strictParseShort(stripLeadingZeroes(yearStr));\n const month = parseDateValue(monthStr, \"month\", 1, 12);\n const day = parseDateValue(dayStr, \"day\", 1, 31);\n const date = buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds });\n if (offsetStr.toUpperCase() != \"Z\") {\n date.setTime(date.getTime() - parseOffsetToMilliseconds(offsetStr));\n }\n return date;\n};\nconst IMF_FIXDATE = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? GMT$/);\nconst RFC_850_DATE = new RegExp(/^(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\\d{2})-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d{2}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? GMT$/);\nconst ASC_TIME = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( [1-9]|\\d{2}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? (\\d{4})$/);\nexport const parseRfc7231DateTime = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-7231 date-times must be expressed as strings\");\n }\n let match = IMF_FIXDATE.exec(value);\n if (match) {\n const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n return buildDate(strictParseShort(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr, \"day\", 1, 31), { hours, minutes, seconds, fractionalMilliseconds });\n }\n match = RFC_850_DATE.exec(value);\n if (match) {\n const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n return adjustRfc850Year(buildDate(parseTwoDigitYear(yearStr), parseMonthByShortName(monthStr), parseDateValue(dayStr, \"day\", 1, 31), {\n hours,\n minutes,\n seconds,\n fractionalMilliseconds,\n }));\n }\n match = ASC_TIME.exec(value);\n if (match) {\n const [_, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, yearStr] = match;\n return buildDate(strictParseShort(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr.trimLeft(), \"day\", 1, 31), { hours, minutes, seconds, fractionalMilliseconds });\n }\n throw new TypeError(\"Invalid RFC-7231 date-time value\");\n};\nexport const parseEpochTimestamp = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n let valueAsDouble;\n if (typeof value === \"number\") {\n valueAsDouble = value;\n }\n else if (typeof value === \"string\") {\n valueAsDouble = strictParseDouble(value);\n }\n else {\n throw new TypeError(\"Epoch timestamps must be expressed as floating point numbers or their string representation\");\n }\n if (Number.isNaN(valueAsDouble) || valueAsDouble === Infinity || valueAsDouble === -Infinity) {\n throw new TypeError(\"Epoch timestamps must be valid, non-Infinite, non-NaN numerics\");\n }\n return new Date(Math.round(valueAsDouble * 1000));\n};\nconst buildDate = (year, month, day, time) => {\n const adjustedMonth = month - 1;\n validateDayOfMonth(year, adjustedMonth, day);\n return new Date(Date.UTC(year, adjustedMonth, day, parseDateValue(time.hours, \"hour\", 0, 23), parseDateValue(time.minutes, \"minute\", 0, 59), parseDateValue(time.seconds, \"seconds\", 0, 60), parseMilliseconds(time.fractionalMilliseconds)));\n};\nconst parseTwoDigitYear = (value) => {\n const thisYear = new Date().getUTCFullYear();\n const valueInThisCentury = Math.floor(thisYear / 100) * 100 + strictParseShort(stripLeadingZeroes(value));\n if (valueInThisCentury < thisYear) {\n return valueInThisCentury + 100;\n }\n return valueInThisCentury;\n};\nconst FIFTY_YEARS_IN_MILLIS = 50 * 365 * 24 * 60 * 60 * 1000;\nconst adjustRfc850Year = (input) => {\n if (input.getTime() - new Date().getTime() > FIFTY_YEARS_IN_MILLIS) {\n return new Date(Date.UTC(input.getUTCFullYear() - 100, input.getUTCMonth(), input.getUTCDate(), input.getUTCHours(), input.getUTCMinutes(), input.getUTCSeconds(), input.getUTCMilliseconds()));\n }\n return input;\n};\nconst parseMonthByShortName = (value) => {\n const monthIdx = MONTHS.indexOf(value);\n if (monthIdx < 0) {\n throw new TypeError(`Invalid month: ${value}`);\n }\n return monthIdx + 1;\n};\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst validateDayOfMonth = (year, month, day) => {\n let maxDays = DAYS_IN_MONTH[month];\n if (month === 1 && isLeapYear(year)) {\n maxDays = 29;\n }\n if (day > maxDays) {\n throw new TypeError(`Invalid day for ${MONTHS[month]} in ${year}: ${day}`);\n }\n};\nconst isLeapYear = (year) => {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n};\nconst parseDateValue = (value, type, lower, upper) => {\n const dateVal = strictParseByte(stripLeadingZeroes(value));\n if (dateVal < lower || dateVal > upper) {\n throw new TypeError(`${type} must be between ${lower} and ${upper}, inclusive`);\n }\n return dateVal;\n};\nconst parseMilliseconds = (value) => {\n if (value === null || value === undefined) {\n return 0;\n }\n return strictParseFloat32(\"0.\" + value) * 1000;\n};\nconst parseOffsetToMilliseconds = (value) => {\n const directionStr = value[0];\n let direction = 1;\n if (directionStr == \"+\") {\n direction = 1;\n }\n else if (directionStr == \"-\") {\n direction = -1;\n }\n else {\n throw new TypeError(`Offset direction, ${directionStr}, must be \"+\" or \"-\"`);\n }\n const hour = Number(value.substring(1, 3));\n const minute = Number(value.substring(4, 6));\n return direction * (hour * 60 + minute) * 60 * 1000;\n};\nconst stripLeadingZeroes = (value) => {\n let idx = 0;\n while (idx < value.length - 1 && value.charAt(idx) === \"0\") {\n idx++;\n }\n if (idx === 0) {\n return value;\n }\n return value.slice(idx);\n};\n","export class ServiceException extends Error {\n constructor(options) {\n super(options.message);\n Object.setPrototypeOf(this, ServiceException.prototype);\n this.name = options.name;\n this.$fault = options.$fault;\n this.$metadata = options.$metadata;\n }\n}\nexport const decorateServiceException = (exception, additions = {}) => {\n Object.entries(additions)\n .filter(([, v]) => v !== undefined)\n .forEach(([k, v]) => {\n if (exception[k] == undefined || exception[k] === \"\") {\n exception[k] = v;\n }\n });\n const message = exception.message || exception.Message || \"UnknownError\";\n exception.message = message;\n delete exception.Message;\n return exception;\n};\n","import { decorateServiceException } from \"./exceptions\";\nexport const throwDefaultError = ({ output, parsedBody, exceptionCtor, errorCode }) => {\n const $metadata = deserializeMetadata(output);\n const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + \"\" : undefined;\n const response = new exceptionCtor({\n name: parsedBody?.code || parsedBody?.Code || errorCode || statusCode || \"UnknownError\",\n $fault: \"client\",\n $metadata,\n });\n throw decorateServiceException(response, parsedBody);\n};\nexport const withBaseException = (ExceptionCtor) => {\n return ({ output, parsedBody, errorCode }) => {\n throwDefaultError({ output, parsedBody, exceptionCtor: ExceptionCtor, errorCode });\n };\n};\nconst deserializeMetadata = (output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n});\n","export const loadConfigsForDefaultMode = (mode) => {\n switch (mode) {\n case \"standard\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 3100,\n };\n case \"in-region\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 1100,\n };\n case \"cross-region\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 3100,\n };\n case \"mobile\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 30000,\n };\n default:\n return {};\n }\n};\n","import { getChecksumConfiguration, resolveChecksumRuntimeConfig } from \"./checksum\";\nimport { getRetryConfiguration, resolveRetryRuntimeConfig } from \"./retry\";\nexport const getDefaultExtensionConfiguration = (runtimeConfig) => {\n return {\n ...getChecksumConfiguration(runtimeConfig),\n ...getRetryConfiguration(runtimeConfig),\n };\n};\nexport const getDefaultClientConfiguration = getDefaultExtensionConfiguration;\nexport const resolveDefaultRuntimeConfig = (config) => {\n return {\n ...resolveChecksumRuntimeConfig(config),\n ...resolveRetryRuntimeConfig(config),\n };\n};\n","import { AlgorithmId } from \"@smithy/types\";\nexport { AlgorithmId };\nexport const getChecksumConfiguration = (runtimeConfig) => {\n const checksumAlgorithms = [];\n for (const id in AlgorithmId) {\n const algorithmId = AlgorithmId[id];\n if (runtimeConfig[algorithmId] === undefined) {\n continue;\n }\n checksumAlgorithms.push({\n algorithmId: () => algorithmId,\n checksumConstructor: () => runtimeConfig[algorithmId],\n });\n }\n return {\n _checksumAlgorithms: checksumAlgorithms,\n addChecksumAlgorithm(algo) {\n this._checksumAlgorithms.push(algo);\n },\n checksumAlgorithms() {\n return this._checksumAlgorithms;\n },\n };\n};\nexport const resolveChecksumRuntimeConfig = (clientConfig) => {\n const runtimeConfig = {};\n clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => {\n runtimeConfig[checksumAlgorithm.algorithmId()] = checksumAlgorithm.checksumConstructor();\n });\n return runtimeConfig;\n};\n","export const getRetryConfiguration = (runtimeConfig) => {\n let _retryStrategy = runtimeConfig.retryStrategy;\n return {\n setRetryStrategy(retryStrategy) {\n _retryStrategy = retryStrategy;\n },\n retryStrategy() {\n return _retryStrategy;\n },\n };\n};\nexport const resolveRetryRuntimeConfig = (retryStrategyConfiguration) => {\n const runtimeConfig = {};\n runtimeConfig.retryStrategy = retryStrategyConfiguration.retryStrategy();\n return runtimeConfig;\n};\n","export const StringWrapper = function () {\n const Class = Object.getPrototypeOf(this).constructor;\n const Constructor = Function.bind.apply(String, [null, ...arguments]);\n const instance = new Constructor();\n Object.setPrototypeOf(instance, Class.prototype);\n return instance;\n};\nStringWrapper.prototype = Object.create(String.prototype, {\n constructor: {\n value: StringWrapper,\n enumerable: false,\n writable: true,\n configurable: true,\n },\n});\nObject.setPrototypeOf(StringWrapper, String);\nexport class LazyJsonString extends StringWrapper {\n deserializeJSON() {\n return JSON.parse(super.toString());\n }\n toJSON() {\n return super.toString();\n }\n static fromObject(object) {\n if (object instanceof LazyJsonString) {\n return object;\n }\n else if (object instanceof String || typeof object === \"string\") {\n return new LazyJsonString(object);\n }\n return new LazyJsonString(JSON.stringify(object));\n }\n}\n","export function map(arg0, arg1, arg2) {\n let target;\n let filter;\n let instructions;\n if (typeof arg1 === \"undefined\" && typeof arg2 === \"undefined\") {\n target = {};\n instructions = arg0;\n }\n else {\n target = arg0;\n if (typeof arg1 === \"function\") {\n filter = arg1;\n instructions = arg2;\n return mapWithFilter(target, filter, instructions);\n }\n else {\n instructions = arg1;\n }\n }\n for (const key of Object.keys(instructions)) {\n if (!Array.isArray(instructions[key])) {\n target[key] = instructions[key];\n continue;\n }\n applyInstruction(target, null, instructions, key);\n }\n return target;\n}\nexport const convertMap = (target) => {\n const output = {};\n for (const [k, v] of Object.entries(target || {})) {\n output[k] = [, v];\n }\n return output;\n};\nexport const take = (source, instructions) => {\n const out = {};\n for (const key in instructions) {\n applyInstruction(out, source, instructions, key);\n }\n return out;\n};\nconst mapWithFilter = (target, filter, instructions) => {\n return map(target, Object.entries(instructions).reduce((_instructions, [key, value]) => {\n if (Array.isArray(value)) {\n _instructions[key] = value;\n }\n else {\n if (typeof value === \"function\") {\n _instructions[key] = [filter, value()];\n }\n else {\n _instructions[key] = [filter, value];\n }\n }\n return _instructions;\n }, {}));\n};\nconst applyInstruction = (target, source, instructions, targetKey) => {\n if (source !== null) {\n let instruction = instructions[targetKey];\n if (typeof instruction === \"function\") {\n instruction = [, instruction];\n }\n const [filter = nonNullish, valueFn = pass, sourceKey = targetKey] = instruction;\n if ((typeof filter === \"function\" && filter(source[sourceKey])) || (typeof filter !== \"function\" && !!filter)) {\n target[targetKey] = valueFn(source[sourceKey]);\n }\n return;\n }\n let [filter, value] = instructions[targetKey];\n if (typeof value === \"function\") {\n let _value;\n const defaultFilterPassed = filter === undefined && (_value = value()) != null;\n const customFilterPassed = (typeof filter === \"function\" && !!filter(void 0)) || (typeof filter !== \"function\" && !!filter);\n if (defaultFilterPassed) {\n target[targetKey] = _value;\n }\n else if (customFilterPassed) {\n target[targetKey] = value();\n }\n }\n else {\n const defaultFilterPassed = filter === undefined && value != null;\n const customFilterPassed = (typeof filter === \"function\" && !!filter(value)) || (typeof filter !== \"function\" && !!filter);\n if (defaultFilterPassed || customFilterPassed) {\n target[targetKey] = value;\n }\n }\n};\nconst nonNullish = (_) => _ != null;\nconst pass = (_) => _;\n","export const _json = (obj) => {\n if (obj == null) {\n return {};\n }\n if (Array.isArray(obj)) {\n return obj.filter((_) => _ != null);\n }\n if (typeof obj === \"object\") {\n const target = {};\n for (const key of Object.keys(obj)) {\n if (obj[key] == null) {\n continue;\n }\n target[key] = _json(obj[key]);\n }\n return target;\n }\n return obj;\n};\n","import bowser from \"bowser\";\nexport const defaultUserAgent = ({ serviceId, clientVersion }) => async () => {\n const parsedUA = typeof window !== \"undefined\" && window?.navigator?.userAgent\n ? bowser.parse(window.navigator.userAgent)\n : undefined;\n const sections = [\n [\"aws-sdk-js\", clientVersion],\n [\"ua\", \"2.0\"],\n [`os/${parsedUA?.os?.name || \"other\"}`, parsedUA?.os?.version],\n [\"lang/js\"],\n [\"md/browser\", `${parsedUA?.browser?.name ?? \"unknown\"}_${parsedUA?.browser?.version ?? \"unknown\"}`],\n ];\n if (serviceId) {\n sections.push([`api/${serviceId}`, clientVersion]);\n }\n return sections;\n};\n","export const invalidProvider = (message) => () => Promise.reject(message);\n","export const calculateBodyLength = (body) => {\n if (typeof body === \"string\") {\n let len = body.length;\n for (let i = len - 1; i >= 0; i--) {\n const code = body.charCodeAt(i);\n if (code > 0x7f && code <= 0x7ff)\n len++;\n else if (code > 0x7ff && code <= 0xffff)\n len += 2;\n if (code >= 0xdc00 && code <= 0xdfff)\n i--;\n }\n return len;\n }\n else if (typeof body.byteLength === \"number\") {\n return body.byteLength;\n }\n else if (typeof body.size === \"number\") {\n return body.size;\n }\n throw new Error(`Body Length computation failed for ${body}`);\n};\n","const q = \"required\", r = \"fn\", s = \"argv\", t = \"ref\";\nconst a = \"isSet\", b = \"tree\", c = \"error\", d = \"endpoint\", e = \"PartitionResult\", f = { [q]: false, \"type\": \"String\" }, g = { [q]: true, \"default\": false, \"type\": \"Boolean\" }, h = { [t]: \"Endpoint\" }, i = { [r]: \"booleanEquals\", [s]: [{ [t]: \"UseFIPS\" }, true] }, j = { [r]: \"booleanEquals\", [s]: [{ [t]: \"UseDualStack\" }, true] }, k = {}, l = { [r]: \"booleanEquals\", [s]: [true, { [r]: \"getAttr\", [s]: [{ [t]: e }, \"supportsFIPS\"] }] }, m = { [r]: \"booleanEquals\", [s]: [true, { [r]: \"getAttr\", [s]: [{ [t]: e }, \"supportsDualStack\"] }] }, n = [i], o = [j], p = [{ [t]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: f, UseDualStack: g, UseFIPS: g, Endpoint: f }, rules: [{ conditions: [{ [r]: a, [s]: [h] }], type: b, rules: [{ conditions: n, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: c }, { conditions: o, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: c }, { endpoint: { url: h, properties: k, headers: k }, type: d }] }, { conditions: [{ [r]: a, [s]: p }], type: b, rules: [{ conditions: [{ [r]: \"aws.partition\", [s]: p, assign: e }], type: b, rules: [{ conditions: [i, j], type: b, rules: [{ conditions: [l, m], type: b, rules: [{ endpoint: { url: \"https://cognito-identity-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: k, headers: k }, type: d }] }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: c }] }, { conditions: n, type: b, rules: [{ conditions: [l], type: b, rules: [{ endpoint: { url: \"https://cognito-identity-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: k, headers: k }, type: d }] }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: c }] }, { conditions: o, type: b, rules: [{ conditions: [m], type: b, rules: [{ endpoint: { url: \"https://cognito-identity.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: k, headers: k }, type: d }] }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: c }] }, { endpoint: { url: \"https://cognito-identity.{Region}.{PartitionResult#dnsSuffix}\", properties: k, headers: k }, type: d }] }] }, { error: \"Invalid Configuration: Missing Region\", type: c }] };\nexport const ruleSet = _data;\n","import { resolveEndpoint } from \"@aws-sdk/util-endpoints\";\nimport { ruleSet } from \"./ruleset\";\nexport const defaultEndpointResolver = (endpointParams, context = {}) => {\n return resolveEndpoint(ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n });\n};\n","export const DEFAULTS_MODE_OPTIONS = [\"in-region\", \"cross-region\", \"mobile\", \"standard\", \"legacy\"];\n","import { memoize } from \"@smithy/property-provider\";\nimport bowser from \"bowser\";\nimport { DEFAULTS_MODE_OPTIONS } from \"./constants\";\nexport const resolveDefaultsModeConfig = ({ defaultsMode, } = {}) => memoize(async () => {\n const mode = typeof defaultsMode === \"function\" ? await defaultsMode() : defaultsMode;\n switch (mode?.toLowerCase()) {\n case \"auto\":\n return Promise.resolve(isMobileBrowser() ? \"mobile\" : \"standard\");\n case \"mobile\":\n case \"in-region\":\n case \"cross-region\":\n case \"standard\":\n case \"legacy\":\n return Promise.resolve(mode?.toLocaleLowerCase());\n case undefined:\n return Promise.resolve(\"legacy\");\n default:\n throw new Error(`Invalid parameter for \"defaultsMode\", expect ${DEFAULTS_MODE_OPTIONS.join(\", \")}, got ${mode}`);\n }\n});\nconst isMobileBrowser = () => {\n const parsedUA = typeof window !== \"undefined\" && window?.navigator?.userAgent\n ? bowser.parse(window.navigator.userAgent)\n : undefined;\n const platform = parsedUA?.platform?.type;\n return platform === \"tablet\" || platform === \"mobile\";\n};\n","import packageInfo from \"../package.json\";\nimport { Sha256 } from \"@aws-crypto/sha256-browser\";\nimport { defaultUserAgent } from \"@aws-sdk/util-user-agent-browser\";\nimport { DEFAULT_USE_DUALSTACK_ENDPOINT, DEFAULT_USE_FIPS_ENDPOINT } from \"@smithy/config-resolver\";\nimport { FetchHttpHandler as RequestHandler, streamCollector } from \"@smithy/fetch-http-handler\";\nimport { invalidProvider } from \"@smithy/invalid-dependency\";\nimport { calculateBodyLength } from \"@smithy/util-body-length-browser\";\nimport { DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE } from \"@smithy/util-retry\";\nimport { getRuntimeConfig as getSharedRuntimeConfig } from \"./runtimeConfig.shared\";\nimport { loadConfigsForDefaultMode } from \"@smithy/smithy-client\";\nimport { resolveDefaultsModeConfig } from \"@smithy/util-defaults-mode-browser\";\nexport const getRuntimeConfig = (config) => {\n const defaultsMode = resolveDefaultsModeConfig(config);\n const defaultConfigProvider = () => defaultsMode().then(loadConfigsForDefaultMode);\n const clientSharedValues = getSharedRuntimeConfig(config);\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"browser\",\n defaultsMode,\n bodyLengthChecker: config?.bodyLengthChecker ?? calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? ((_) => () => Promise.reject(new Error(\"Credential is missing\"))),\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n defaultUserAgent({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }),\n maxAttempts: config?.maxAttempts ?? DEFAULT_MAX_ATTEMPTS,\n region: config?.region ?? invalidProvider(\"Region is missing\"),\n requestHandler: config?.requestHandler ?? new RequestHandler(defaultConfigProvider),\n retryMode: config?.retryMode ?? (async () => (await defaultConfigProvider()).retryMode || DEFAULT_RETRY_MODE),\n sha256: config?.sha256 ?? Sha256,\n streamCollector: config?.streamCollector ?? streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (() => Promise.resolve(DEFAULT_USE_DUALSTACK_ENDPOINT)),\n useFipsEndpoint: config?.useFipsEndpoint ?? (() => Promise.resolve(DEFAULT_USE_FIPS_ENDPOINT)),\n };\n};\n","import { NoOpLogger } from \"@smithy/smithy-client\";\nimport { parseUrl } from \"@smithy/url-parser\";\nimport { fromBase64, toBase64 } from \"@smithy/util-base64\";\nimport { fromUtf8, toUtf8 } from \"@smithy/util-utf8\";\nimport { defaultEndpointResolver } from \"./endpoint/endpointResolver\";\nexport const getRuntimeConfig = (config) => ({\n apiVersion: \"2014-06-30\",\n base64Decoder: config?.base64Decoder ?? fromBase64,\n base64Encoder: config?.base64Encoder ?? toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n logger: config?.logger ?? new NoOpLogger(),\n serviceId: config?.serviceId ?? \"Cognito Identity\",\n urlParser: config?.urlParser ?? parseUrl,\n utf8Decoder: config?.utf8Decoder ?? fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? toUtf8,\n});\n","import { booleanSelector, SelectorType } from \"@smithy/util-config-provider\";\nexport const ENV_USE_DUALSTACK_ENDPOINT = \"AWS_USE_DUALSTACK_ENDPOINT\";\nexport const CONFIG_USE_DUALSTACK_ENDPOINT = \"use_dualstack_endpoint\";\nexport const DEFAULT_USE_DUALSTACK_ENDPOINT = false;\nexport const NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => booleanSelector(env, ENV_USE_DUALSTACK_ENDPOINT, SelectorType.ENV),\n configFileSelector: (profile) => booleanSelector(profile, CONFIG_USE_DUALSTACK_ENDPOINT, SelectorType.CONFIG),\n default: false,\n};\n","import { booleanSelector, SelectorType } from \"@smithy/util-config-provider\";\nexport const ENV_USE_FIPS_ENDPOINT = \"AWS_USE_FIPS_ENDPOINT\";\nexport const CONFIG_USE_FIPS_ENDPOINT = \"use_fips_endpoint\";\nexport const DEFAULT_USE_FIPS_ENDPOINT = false;\nexport const NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => booleanSelector(env, ENV_USE_FIPS_ENDPOINT, SelectorType.ENV),\n configFileSelector: (profile) => booleanSelector(profile, CONFIG_USE_FIPS_ENDPOINT, SelectorType.CONFIG),\n default: false,\n};\n","export const getAwsRegionExtensionConfiguration = (runtimeConfig) => {\n let runtimeConfigRegion = async () => {\n if (runtimeConfig.region === undefined) {\n throw new Error(\"Region is missing from runtimeConfig\");\n }\n const region = runtimeConfig.region;\n if (typeof region === \"string\") {\n return region;\n }\n return region();\n };\n return {\n setRegion(region) {\n runtimeConfigRegion = region;\n },\n region() {\n return runtimeConfigRegion;\n },\n };\n};\nexport const resolveAwsRegionExtensionConfiguration = (awsRegionExtensionConfiguration) => {\n return {\n region: awsRegionExtensionConfiguration.region(),\n };\n};\n","import { getHostHeaderPlugin, resolveHostHeaderConfig, } from \"@aws-sdk/middleware-host-header\";\nimport { getLoggerPlugin } from \"@aws-sdk/middleware-logger\";\nimport { getRecursionDetectionPlugin } from \"@aws-sdk/middleware-recursion-detection\";\nimport { resolveAwsAuthConfig } from \"@aws-sdk/middleware-signing\";\nimport { getUserAgentPlugin, resolveUserAgentConfig, } from \"@aws-sdk/middleware-user-agent\";\nimport { resolveRegionConfig } from \"@smithy/config-resolver\";\nimport { getContentLengthPlugin } from \"@smithy/middleware-content-length\";\nimport { resolveEndpointConfig } from \"@smithy/middleware-endpoint\";\nimport { getRetryPlugin, resolveRetryConfig } from \"@smithy/middleware-retry\";\nimport { Client as __Client, } from \"@smithy/smithy-client\";\nimport { resolveClientEndpointParameters, } from \"./endpoint/EndpointParameters\";\nimport { getRuntimeConfig as __getRuntimeConfig } from \"./runtimeConfig\";\nimport { resolveRuntimeExtensions } from \"./runtimeExtensions\";\nexport { __Client };\nexport class CognitoIdentityClient extends __Client {\n constructor(...[configuration]) {\n const _config_0 = __getRuntimeConfig(configuration || {});\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = resolveRegionConfig(_config_1);\n const _config_3 = resolveEndpointConfig(_config_2);\n const _config_4 = resolveRetryConfig(_config_3);\n const _config_5 = resolveHostHeaderConfig(_config_4);\n const _config_6 = resolveAwsAuthConfig(_config_5);\n const _config_7 = resolveUserAgentConfig(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n super(_config_8);\n this.config = _config_8;\n this.middlewareStack.use(getRetryPlugin(this.config));\n this.middlewareStack.use(getContentLengthPlugin(this.config));\n this.middlewareStack.use(getHostHeaderPlugin(this.config));\n this.middlewareStack.use(getLoggerPlugin(this.config));\n this.middlewareStack.use(getRecursionDetectionPlugin(this.config));\n this.middlewareStack.use(getUserAgentPlugin(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\n","export function resolveUserAgentConfig(input) {\n return {\n ...input,\n customUserAgent: typeof input.customUserAgent === \"string\" ? [[input.customUserAgent]] : input.customUserAgent,\n };\n}\n","export const resolveClientEndpointParameters = (options) => {\n return {\n ...options,\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"cognito-identity\",\n };\n};\n","import { getAwsRegionExtensionConfiguration, resolveAwsRegionExtensionConfiguration, } from \"@aws-sdk/region-config-resolver\";\nimport { getHttpHandlerExtensionConfiguration, resolveHttpHandlerRuntimeConfig } from \"@smithy/protocol-http\";\nimport { getDefaultExtensionConfiguration, resolveDefaultRuntimeConfig } from \"@smithy/smithy-client\";\nconst asPartial = (t) => t;\nexport const resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = {\n ...asPartial(getAwsRegionExtensionConfiguration(runtimeConfig)),\n ...asPartial(getDefaultExtensionConfiguration(runtimeConfig)),\n ...asPartial(getHttpHandlerExtensionConfiguration(runtimeConfig)),\n };\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return {\n ...runtimeConfig,\n ...resolveAwsRegionExtensionConfiguration(extensionConfiguration),\n ...resolveDefaultRuntimeConfig(extensionConfiguration),\n ...resolveHttpHandlerRuntimeConfig(extensionConfiguration),\n };\n};\n","import { ServiceException as __ServiceException, } from \"@smithy/smithy-client\";\nexport { __ServiceException };\nexport class CognitoIdentityServiceException extends __ServiceException {\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, CognitoIdentityServiceException.prototype);\n }\n}\n","import { CognitoIdentityServiceException as __BaseException } from \"./CognitoIdentityServiceException\";\nexport const AmbiguousRoleResolutionType = {\n AUTHENTICATED_ROLE: \"AuthenticatedRole\",\n DENY: \"Deny\",\n};\nexport class InternalErrorException extends __BaseException {\n constructor(opts) {\n super({\n name: \"InternalErrorException\",\n $fault: \"server\",\n ...opts,\n });\n this.name = \"InternalErrorException\";\n this.$fault = \"server\";\n Object.setPrototypeOf(this, InternalErrorException.prototype);\n }\n}\nexport class InvalidParameterException extends __BaseException {\n constructor(opts) {\n super({\n name: \"InvalidParameterException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"InvalidParameterException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, InvalidParameterException.prototype);\n }\n}\nexport class LimitExceededException extends __BaseException {\n constructor(opts) {\n super({\n name: \"LimitExceededException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"LimitExceededException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, LimitExceededException.prototype);\n }\n}\nexport class NotAuthorizedException extends __BaseException {\n constructor(opts) {\n super({\n name: \"NotAuthorizedException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"NotAuthorizedException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, NotAuthorizedException.prototype);\n }\n}\nexport class ResourceConflictException extends __BaseException {\n constructor(opts) {\n super({\n name: \"ResourceConflictException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"ResourceConflictException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, ResourceConflictException.prototype);\n }\n}\nexport class TooManyRequestsException extends __BaseException {\n constructor(opts) {\n super({\n name: \"TooManyRequestsException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"TooManyRequestsException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, TooManyRequestsException.prototype);\n }\n}\nexport const ErrorCode = {\n ACCESS_DENIED: \"AccessDenied\",\n INTERNAL_SERVER_ERROR: \"InternalServerError\",\n};\nexport class ResourceNotFoundException extends __BaseException {\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"ResourceNotFoundException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, ResourceNotFoundException.prototype);\n }\n}\nexport class ExternalServiceException extends __BaseException {\n constructor(opts) {\n super({\n name: \"ExternalServiceException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"ExternalServiceException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, ExternalServiceException.prototype);\n }\n}\nexport class InvalidIdentityPoolConfigurationException extends __BaseException {\n constructor(opts) {\n super({\n name: \"InvalidIdentityPoolConfigurationException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"InvalidIdentityPoolConfigurationException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, InvalidIdentityPoolConfigurationException.prototype);\n }\n}\nexport const MappingRuleMatchType = {\n CONTAINS: \"Contains\",\n EQUALS: \"Equals\",\n NOT_EQUAL: \"NotEqual\",\n STARTS_WITH: \"StartsWith\",\n};\nexport const RoleMappingType = {\n RULES: \"Rules\",\n TOKEN: \"Token\",\n};\nexport class DeveloperUserAlreadyRegisteredException extends __BaseException {\n constructor(opts) {\n super({\n name: \"DeveloperUserAlreadyRegisteredException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"DeveloperUserAlreadyRegisteredException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, DeveloperUserAlreadyRegisteredException.prototype);\n }\n}\nexport class ConcurrentModificationException extends __BaseException {\n constructor(opts) {\n super({\n name: \"ConcurrentModificationException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"ConcurrentModificationException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, ConcurrentModificationException.prototype);\n }\n}\n","import { HttpRequest as __HttpRequest } from \"@smithy/protocol-http\";\nimport { _json, collectBody, decorateServiceException as __decorateServiceException, expectNonNull as __expectNonNull, expectNumber as __expectNumber, expectString as __expectString, parseEpochTimestamp as __parseEpochTimestamp, take, withBaseException, } from \"@smithy/smithy-client\";\nimport { CognitoIdentityServiceException as __BaseException } from \"../models/CognitoIdentityServiceException\";\nimport { ConcurrentModificationException, DeveloperUserAlreadyRegisteredException, ExternalServiceException, InternalErrorException, InvalidIdentityPoolConfigurationException, InvalidParameterException, LimitExceededException, NotAuthorizedException, ResourceConflictException, ResourceNotFoundException, TooManyRequestsException, } from \"../models/models_0\";\nexport const se_CreateIdentityPoolCommand = async (input, context) => {\n const headers = sharedHeaders(\"CreateIdentityPool\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_DeleteIdentitiesCommand = async (input, context) => {\n const headers = sharedHeaders(\"DeleteIdentities\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_DeleteIdentityPoolCommand = async (input, context) => {\n const headers = sharedHeaders(\"DeleteIdentityPool\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_DescribeIdentityCommand = async (input, context) => {\n const headers = sharedHeaders(\"DescribeIdentity\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_DescribeIdentityPoolCommand = async (input, context) => {\n const headers = sharedHeaders(\"DescribeIdentityPool\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_GetCredentialsForIdentityCommand = async (input, context) => {\n const headers = sharedHeaders(\"GetCredentialsForIdentity\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_GetIdCommand = async (input, context) => {\n const headers = sharedHeaders(\"GetId\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_GetIdentityPoolRolesCommand = async (input, context) => {\n const headers = sharedHeaders(\"GetIdentityPoolRoles\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_GetOpenIdTokenCommand = async (input, context) => {\n const headers = sharedHeaders(\"GetOpenIdToken\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_GetOpenIdTokenForDeveloperIdentityCommand = async (input, context) => {\n const headers = sharedHeaders(\"GetOpenIdTokenForDeveloperIdentity\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_GetPrincipalTagAttributeMapCommand = async (input, context) => {\n const headers = sharedHeaders(\"GetPrincipalTagAttributeMap\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_ListIdentitiesCommand = async (input, context) => {\n const headers = sharedHeaders(\"ListIdentities\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_ListIdentityPoolsCommand = async (input, context) => {\n const headers = sharedHeaders(\"ListIdentityPools\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_ListTagsForResourceCommand = async (input, context) => {\n const headers = sharedHeaders(\"ListTagsForResource\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_LookupDeveloperIdentityCommand = async (input, context) => {\n const headers = sharedHeaders(\"LookupDeveloperIdentity\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_MergeDeveloperIdentitiesCommand = async (input, context) => {\n const headers = sharedHeaders(\"MergeDeveloperIdentities\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_SetIdentityPoolRolesCommand = async (input, context) => {\n const headers = sharedHeaders(\"SetIdentityPoolRoles\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_SetPrincipalTagAttributeMapCommand = async (input, context) => {\n const headers = sharedHeaders(\"SetPrincipalTagAttributeMap\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_TagResourceCommand = async (input, context) => {\n const headers = sharedHeaders(\"TagResource\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_UnlinkDeveloperIdentityCommand = async (input, context) => {\n const headers = sharedHeaders(\"UnlinkDeveloperIdentity\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_UnlinkIdentityCommand = async (input, context) => {\n const headers = sharedHeaders(\"UnlinkIdentity\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_UntagResourceCommand = async (input, context) => {\n const headers = sharedHeaders(\"UntagResource\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_UpdateIdentityPoolCommand = async (input, context) => {\n const headers = sharedHeaders(\"UpdateIdentityPool\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const de_CreateIdentityPoolCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CreateIdentityPoolCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_CreateIdentityPoolCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.cognitoidentity#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n throw await de_ResourceConflictExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_DeleteIdentitiesCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_DeleteIdentitiesCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_DeleteIdentitiesCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_DeleteIdentityPoolCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_DeleteIdentityPoolCommandError(output, context);\n }\n await collectBody(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output),\n };\n return response;\n};\nconst de_DeleteIdentityPoolCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_DescribeIdentityCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_DescribeIdentityCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_IdentityDescription(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_DescribeIdentityCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_DescribeIdentityPoolCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_DescribeIdentityPoolCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_DescribeIdentityPoolCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_GetCredentialsForIdentityCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_GetCredentialsForIdentityCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_GetCredentialsForIdentityResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_GetCredentialsForIdentityCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExternalServiceException\":\n case \"com.amazonaws.cognitoidentity#ExternalServiceException\":\n throw await de_ExternalServiceExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidIdentityPoolConfigurationException\":\n case \"com.amazonaws.cognitoidentity#InvalidIdentityPoolConfigurationException\":\n throw await de_InvalidIdentityPoolConfigurationExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n throw await de_ResourceConflictExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_GetIdCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_GetIdCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_GetIdCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExternalServiceException\":\n case \"com.amazonaws.cognitoidentity#ExternalServiceException\":\n throw await de_ExternalServiceExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.cognitoidentity#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n throw await de_ResourceConflictExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_GetIdentityPoolRolesCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_GetIdentityPoolRolesCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_GetIdentityPoolRolesCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n throw await de_ResourceConflictExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_GetOpenIdTokenCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_GetOpenIdTokenCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_GetOpenIdTokenCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExternalServiceException\":\n case \"com.amazonaws.cognitoidentity#ExternalServiceException\":\n throw await de_ExternalServiceExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n throw await de_ResourceConflictExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_GetOpenIdTokenForDeveloperIdentityCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_GetOpenIdTokenForDeveloperIdentityCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_GetOpenIdTokenForDeveloperIdentityCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"DeveloperUserAlreadyRegisteredException\":\n case \"com.amazonaws.cognitoidentity#DeveloperUserAlreadyRegisteredException\":\n throw await de_DeveloperUserAlreadyRegisteredExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n throw await de_ResourceConflictExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_GetPrincipalTagAttributeMapCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_GetPrincipalTagAttributeMapCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_GetPrincipalTagAttributeMapCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_ListIdentitiesCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_ListIdentitiesCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_ListIdentitiesResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_ListIdentitiesCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_ListIdentityPoolsCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_ListIdentityPoolsCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_ListIdentityPoolsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_ListTagsForResourceCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_ListTagsForResourceCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_ListTagsForResourceCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_LookupDeveloperIdentityCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_LookupDeveloperIdentityCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_LookupDeveloperIdentityCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n throw await de_ResourceConflictExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_MergeDeveloperIdentitiesCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_MergeDeveloperIdentitiesCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_MergeDeveloperIdentitiesCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n throw await de_ResourceConflictExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_SetIdentityPoolRolesCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_SetIdentityPoolRolesCommandError(output, context);\n }\n await collectBody(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output),\n };\n return response;\n};\nconst de_SetIdentityPoolRolesCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ConcurrentModificationException\":\n case \"com.amazonaws.cognitoidentity#ConcurrentModificationException\":\n throw await de_ConcurrentModificationExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n throw await de_ResourceConflictExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_SetPrincipalTagAttributeMapCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_SetPrincipalTagAttributeMapCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_SetPrincipalTagAttributeMapCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_TagResourceCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_TagResourceCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_TagResourceCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_UnlinkDeveloperIdentityCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_UnlinkDeveloperIdentityCommandError(output, context);\n }\n await collectBody(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output),\n };\n return response;\n};\nconst de_UnlinkDeveloperIdentityCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n throw await de_ResourceConflictExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_UnlinkIdentityCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_UnlinkIdentityCommandError(output, context);\n }\n await collectBody(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output),\n };\n return response;\n};\nconst de_UnlinkIdentityCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ExternalServiceException\":\n case \"com.amazonaws.cognitoidentity#ExternalServiceException\":\n throw await de_ExternalServiceExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n throw await de_ResourceConflictExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_UntagResourceCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_UntagResourceCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_UntagResourceCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_UpdateIdentityPoolCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_UpdateIdentityPoolCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_UpdateIdentityPoolCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ConcurrentModificationException\":\n case \"com.amazonaws.cognitoidentity#ConcurrentModificationException\":\n throw await de_ConcurrentModificationExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentity#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.cognitoidentity#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceConflictException\":\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\":\n throw await de_ResourceConflictExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nconst de_ConcurrentModificationExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new ConcurrentModificationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_DeveloperUserAlreadyRegisteredExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new DeveloperUserAlreadyRegisteredException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_ExternalServiceExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new ExternalServiceException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_InternalErrorExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new InternalErrorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_InvalidIdentityPoolConfigurationExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new InvalidIdentityPoolConfigurationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_InvalidParameterExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new InvalidParameterException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_LimitExceededExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new LimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_NotAuthorizedExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new NotAuthorizedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_ResourceConflictExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new ResourceConflictException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_ResourceNotFoundExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_TooManyRequestsExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new TooManyRequestsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_Credentials = (output, context) => {\n return take(output, {\n AccessKeyId: __expectString,\n Expiration: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),\n SecretKey: __expectString,\n SessionToken: __expectString,\n });\n};\nconst de_GetCredentialsForIdentityResponse = (output, context) => {\n return take(output, {\n Credentials: (_) => de_Credentials(_, context),\n IdentityId: __expectString,\n });\n};\nconst de_IdentitiesList = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_IdentityDescription(entry, context);\n });\n return retVal;\n};\nconst de_IdentityDescription = (output, context) => {\n return take(output, {\n CreationDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),\n IdentityId: __expectString,\n LastModifiedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),\n Logins: _json,\n });\n};\nconst de_ListIdentitiesResponse = (output, context) => {\n return take(output, {\n Identities: (_) => de_IdentitiesList(_, context),\n IdentityPoolId: __expectString,\n NextToken: __expectString,\n });\n};\nconst deserializeMetadata = (output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n});\nconst collectBodyString = (streamBody, context) => collectBody(streamBody, context).then((body) => context.utf8Encoder(body));\nconst throwDefaultError = withBaseException(__BaseException);\nconst buildHttpRpcRequest = async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers,\n };\n if (resolvedHostname !== undefined) {\n contents.hostname = resolvedHostname;\n }\n if (body !== undefined) {\n contents.body = body;\n }\n return new __HttpRequest(contents);\n};\nfunction sharedHeaders(operation) {\n return {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": `AWSCognitoIdentityService.${operation}`,\n };\n}\nconst parseBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n return JSON.parse(encoded);\n }\n return {};\n});\nconst parseErrorBody = async (errorBody, context) => {\n const value = await parseBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n};\nconst loadRestJsonErrorCode = (output, data) => {\n const findKey = (object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase());\n const sanitizeErrorCode = (rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n };\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== undefined) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data.code !== undefined) {\n return sanitizeErrorCode(data.code);\n }\n if (data[\"__type\"] !== undefined) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n};\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { de_GetIdCommand, se_GetIdCommand } from \"../protocols/Aws_json1_1\";\nexport { $Command };\nexport class GetIdCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetIdCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityClient\";\n const commandName = \"GetIdCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetIdCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetIdCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { de_GetCredentialsForIdentityCommand, se_GetCredentialsForIdentityCommand } from \"../protocols/Aws_json1_1\";\nexport { $Command };\nexport class GetCredentialsForIdentityCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetCredentialsForIdentityCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityClient\";\n const commandName = \"GetCredentialsForIdentityCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetCredentialsForIdentityCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetCredentialsForIdentityCommand(output, context);\n }\n}\n","import { HttpRequest } from \"@smithy/protocol-http\";\nexport function resolveHostHeaderConfig(input) {\n return input;\n}\nexport const hostHeaderMiddleware = (options) => (next) => async (args) => {\n if (!HttpRequest.isInstance(args.request))\n return next(args);\n const { request } = args;\n const { handlerProtocol = \"\" } = options.requestHandler.metadata || {};\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = \"\";\n }\n else if (!request.headers[\"host\"]) {\n let host = request.hostname;\n if (request.port != null)\n host += `:${request.port}`;\n request.headers[\"host\"] = host;\n }\n return next(args);\n};\nexport const hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true,\n};\nexport const getHostHeaderPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n },\n});\n","export const loggerMiddleware = () => (next, context) => async (args) => {\n try {\n const response = await next(args);\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog;\n const { $metadata, ...outputWithoutMetadata } = response.output;\n logger?.info?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata,\n });\n return response;\n }\n catch (error) {\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n logger?.error?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n error,\n metadata: error.$metadata,\n });\n throw error;\n }\n};\nexport const loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true,\n};\nexport const getLoggerPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n },\n});\n","import { HttpRequest } from \"@smithy/protocol-http\";\nconst TRACE_ID_HEADER_NAME = \"X-Amzn-Trace-Id\";\nconst ENV_LAMBDA_FUNCTION_NAME = \"AWS_LAMBDA_FUNCTION_NAME\";\nconst ENV_TRACE_ID = \"_X_AMZN_TRACE_ID\";\nexport const recursionDetectionMiddleware = (options) => (next) => async (args) => {\n const { request } = args;\n if (!HttpRequest.isInstance(request) ||\n options.runtime !== \"node\" ||\n request.headers.hasOwnProperty(TRACE_ID_HEADER_NAME)) {\n return next(args);\n }\n const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n const traceId = process.env[ENV_TRACE_ID];\n const nonEmptyString = (str) => typeof str === \"string\" && str.length > 0;\n if (nonEmptyString(functionName) && nonEmptyString(traceId)) {\n request.headers[TRACE_ID_HEADER_NAME] = traceId;\n }\n return next({\n ...args,\n request,\n });\n};\nexport const addRecursionDetectionMiddlewareOptions = {\n step: \"build\",\n tags: [\"RECURSION_DETECTION\"],\n name: \"recursionDetectionMiddleware\",\n override: true,\n priority: \"low\",\n};\nexport const getRecursionDetectionPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(recursionDetectionMiddleware(options), addRecursionDetectionMiddlewareOptions);\n },\n});\n","import { memoize } from \"@smithy/property-provider\";\nimport { SignatureV4 } from \"@smithy/signature-v4\";\nimport { normalizeProvider } from \"@smithy/util-middleware\";\nconst CREDENTIAL_EXPIRE_WINDOW = 300000;\nexport const resolveAwsAuthConfig = (input) => {\n const normalizedCreds = input.credentials\n ? normalizeCredentialProvider(input.credentials)\n : input.credentialDefaultProvider(input);\n const { signingEscapePath = true, systemClockOffset = input.systemClockOffset || 0, sha256 } = input;\n let signer;\n if (input.signer) {\n signer = normalizeProvider(input.signer);\n }\n else if (input.regionInfoProvider) {\n signer = () => normalizeProvider(input.region)()\n .then(async (region) => [\n (await input.regionInfoProvider(region, {\n useFipsEndpoint: await input.useFipsEndpoint(),\n useDualstackEndpoint: await input.useDualstackEndpoint(),\n })) || {},\n region,\n ])\n .then(([regionInfo, region]) => {\n const { signingRegion, signingService } = regionInfo;\n input.signingRegion = input.signingRegion || signingRegion || region;\n input.signingName = input.signingName || signingService || input.serviceId;\n const params = {\n ...input,\n credentials: normalizedCreds,\n region: input.signingRegion,\n service: input.signingName,\n sha256,\n uriEscapePath: signingEscapePath,\n };\n const SignerCtor = input.signerConstructor || SignatureV4;\n return new SignerCtor(params);\n });\n }\n else {\n signer = async (authScheme) => {\n authScheme = Object.assign({}, {\n name: \"sigv4\",\n signingName: input.signingName || input.defaultSigningName,\n signingRegion: await normalizeProvider(input.region)(),\n properties: {},\n }, authScheme);\n const signingRegion = authScheme.signingRegion;\n const signingService = authScheme.signingName;\n input.signingRegion = input.signingRegion || signingRegion;\n input.signingName = input.signingName || signingService || input.serviceId;\n const params = {\n ...input,\n credentials: normalizedCreds,\n region: input.signingRegion,\n service: input.signingName,\n sha256,\n uriEscapePath: signingEscapePath,\n };\n const SignerCtor = input.signerConstructor || SignatureV4;\n return new SignerCtor(params);\n };\n }\n return {\n ...input,\n systemClockOffset,\n signingEscapePath,\n credentials: normalizedCreds,\n signer,\n };\n};\nexport const resolveSigV4AuthConfig = (input) => {\n const normalizedCreds = input.credentials\n ? normalizeCredentialProvider(input.credentials)\n : input.credentialDefaultProvider(input);\n const { signingEscapePath = true, systemClockOffset = input.systemClockOffset || 0, sha256 } = input;\n let signer;\n if (input.signer) {\n signer = normalizeProvider(input.signer);\n }\n else {\n signer = normalizeProvider(new SignatureV4({\n credentials: normalizedCreds,\n region: input.region,\n service: input.signingName,\n sha256,\n uriEscapePath: signingEscapePath,\n }));\n }\n return {\n ...input,\n systemClockOffset,\n signingEscapePath,\n credentials: normalizedCreds,\n signer,\n };\n};\nconst normalizeCredentialProvider = (credentials) => {\n if (typeof credentials === \"function\") {\n return memoize(credentials, (credentials) => credentials.expiration !== undefined &&\n credentials.expiration.getTime() - Date.now() < CREDENTIAL_EXPIRE_WINDOW, (credentials) => credentials.expiration !== undefined);\n }\n return normalizeProvider(credentials);\n};\n","export const USER_AGENT = \"user-agent\";\nexport const X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nexport const SPACE = \" \";\nexport const UA_NAME_SEPARATOR = \"/\";\nexport const UA_NAME_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;\nexport const UA_VALUE_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w\\#]/g;\nexport const UA_ESCAPE_CHAR = \"-\";\n","import { getUserAgentPrefix } from \"@aws-sdk/util-endpoints\";\nimport { HttpRequest } from \"@smithy/protocol-http\";\nimport { SPACE, UA_ESCAPE_CHAR, UA_NAME_ESCAPE_REGEX, UA_NAME_SEPARATOR, UA_VALUE_ESCAPE_REGEX, USER_AGENT, X_AMZ_USER_AGENT, } from \"./constants\";\nexport const userAgentMiddleware = (options) => (next, context) => async (args) => {\n const { request } = args;\n if (!HttpRequest.isInstance(request))\n return next(args);\n const { headers } = request;\n const userAgent = context?.userAgent?.map(escapeUserAgent) || [];\n const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\n const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];\n const prefix = getUserAgentPrefix();\n const sdkUserAgentValue = (prefix ? [prefix] : [])\n .concat([...defaultUserAgent, ...userAgent, ...customUserAgent])\n .join(SPACE);\n const normalUAValue = [\n ...defaultUserAgent.filter((section) => section.startsWith(\"aws-sdk-\")),\n ...customUserAgent,\n ].join(SPACE);\n if (options.runtime !== \"browser\") {\n if (normalUAValue) {\n headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT]\n ? `${headers[USER_AGENT]} ${normalUAValue}`\n : normalUAValue;\n }\n headers[USER_AGENT] = sdkUserAgentValue;\n }\n else {\n headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;\n }\n return next({\n ...args,\n request,\n });\n};\nconst escapeUserAgent = (userAgentPair) => {\n const name = userAgentPair[0]\n .split(UA_NAME_SEPARATOR)\n .map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR))\n .join(UA_NAME_SEPARATOR);\n const version = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR);\n const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR);\n const prefix = name.substring(0, prefixSeparatorIndex);\n let uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version]\n .filter((item) => item && item.length > 0)\n .reduce((acc, item, index) => {\n switch (index) {\n case 0:\n return item;\n case 1:\n return `${acc}/${item}`;\n default:\n return `${acc}#${item}`;\n }\n }, \"\");\n};\nexport const getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true,\n};\nexport const getUserAgentPlugin = (config) => ({\n applyToStack: (clientStack) => {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n },\n});\n","import bowser from \"bowser\";\nexport const defaultUserAgent = ({ serviceId, clientVersion }) => async () => {\n const parsedUA = typeof window !== \"undefined\" && window?.navigator?.userAgent\n ? bowser.parse(window.navigator.userAgent)\n : undefined;\n const sections = [\n [\"aws-sdk-js\", clientVersion],\n [\"ua\", \"2.0\"],\n [`os/${parsedUA?.os?.name || \"other\"}`, parsedUA?.os?.version],\n [\"lang/js\"],\n [\"md/browser\", `${parsedUA?.browser?.name ?? \"unknown\"}_${parsedUA?.browser?.version ?? \"unknown\"}`],\n ];\n if (serviceId) {\n sections.push([`api/${serviceId}`, clientVersion]);\n }\n return sections;\n};\n","const q = \"required\", r = \"fn\", s = \"argv\", t = \"ref\";\nconst a = \"isSet\", b = \"tree\", c = \"error\", d = \"endpoint\", e = \"PartitionResult\", f = { [q]: false, \"type\": \"String\" }, g = { [q]: true, \"default\": false, \"type\": \"Boolean\" }, h = { [t]: \"Endpoint\" }, i = { [r]: \"booleanEquals\", [s]: [{ [t]: \"UseFIPS\" }, true] }, j = { [r]: \"booleanEquals\", [s]: [{ [t]: \"UseDualStack\" }, true] }, k = {}, l = { [r]: \"booleanEquals\", [s]: [true, { [r]: \"getAttr\", [s]: [{ [t]: e }, \"supportsFIPS\"] }] }, m = { [r]: \"booleanEquals\", [s]: [true, { [r]: \"getAttr\", [s]: [{ [t]: e }, \"supportsDualStack\"] }] }, n = [i], o = [j], p = [{ [t]: \"Region\" }];\nconst _data = { version: \"1.0\", parameters: { Region: f, UseDualStack: g, UseFIPS: g, Endpoint: f }, rules: [{ conditions: [{ [r]: a, [s]: [h] }], type: b, rules: [{ conditions: n, error: \"Invalid Configuration: FIPS and custom endpoint are not supported\", type: c }, { conditions: o, error: \"Invalid Configuration: Dualstack and custom endpoint are not supported\", type: c }, { endpoint: { url: h, properties: k, headers: k }, type: d }] }, { conditions: [{ [r]: a, [s]: p }], type: b, rules: [{ conditions: [{ [r]: \"aws.partition\", [s]: p, assign: e }], type: b, rules: [{ conditions: [i, j], type: b, rules: [{ conditions: [l, m], type: b, rules: [{ endpoint: { url: \"https://cognito-idp-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: k, headers: k }, type: d }] }, { error: \"FIPS and DualStack are enabled, but this partition does not support one or both\", type: c }] }, { conditions: n, type: b, rules: [{ conditions: [l], type: b, rules: [{ endpoint: { url: \"https://cognito-idp-fips.{Region}.{PartitionResult#dnsSuffix}\", properties: k, headers: k }, type: d }] }, { error: \"FIPS is enabled but this partition does not support FIPS\", type: c }] }, { conditions: o, type: b, rules: [{ conditions: [m], type: b, rules: [{ endpoint: { url: \"https://cognito-idp.{Region}.{PartitionResult#dualStackDnsSuffix}\", properties: k, headers: k }, type: d }] }, { error: \"DualStack is enabled but this partition does not support DualStack\", type: c }] }, { endpoint: { url: \"https://cognito-idp.{Region}.{PartitionResult#dnsSuffix}\", properties: k, headers: k }, type: d }] }] }, { error: \"Invalid Configuration: Missing Region\", type: c }] };\nexport const ruleSet = _data;\n","import { resolveEndpoint } from \"@aws-sdk/util-endpoints\";\nimport { ruleSet } from \"./ruleset\";\nexport const defaultEndpointResolver = (endpointParams, context = {}) => {\n return resolveEndpoint(ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n });\n};\n","import packageInfo from \"../package.json\";\nimport { Sha256 } from \"@aws-crypto/sha256-browser\";\nimport { defaultUserAgent } from \"@aws-sdk/util-user-agent-browser\";\nimport { DEFAULT_USE_DUALSTACK_ENDPOINT, DEFAULT_USE_FIPS_ENDPOINT } from \"@smithy/config-resolver\";\nimport { FetchHttpHandler as RequestHandler, streamCollector } from \"@smithy/fetch-http-handler\";\nimport { invalidProvider } from \"@smithy/invalid-dependency\";\nimport { calculateBodyLength } from \"@smithy/util-body-length-browser\";\nimport { DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE } from \"@smithy/util-retry\";\nimport { getRuntimeConfig as getSharedRuntimeConfig } from \"./runtimeConfig.shared\";\nimport { loadConfigsForDefaultMode } from \"@smithy/smithy-client\";\nimport { resolveDefaultsModeConfig } from \"@smithy/util-defaults-mode-browser\";\nexport const getRuntimeConfig = (config) => {\n const defaultsMode = resolveDefaultsModeConfig(config);\n const defaultConfigProvider = () => defaultsMode().then(loadConfigsForDefaultMode);\n const clientSharedValues = getSharedRuntimeConfig(config);\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"browser\",\n defaultsMode,\n bodyLengthChecker: config?.bodyLengthChecker ?? calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? ((_) => () => Promise.reject(new Error(\"Credential is missing\"))),\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n defaultUserAgent({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }),\n maxAttempts: config?.maxAttempts ?? DEFAULT_MAX_ATTEMPTS,\n region: config?.region ?? invalidProvider(\"Region is missing\"),\n requestHandler: config?.requestHandler ?? new RequestHandler(defaultConfigProvider),\n retryMode: config?.retryMode ?? (async () => (await defaultConfigProvider()).retryMode || DEFAULT_RETRY_MODE),\n sha256: config?.sha256 ?? Sha256,\n streamCollector: config?.streamCollector ?? streamCollector,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (() => Promise.resolve(DEFAULT_USE_DUALSTACK_ENDPOINT)),\n useFipsEndpoint: config?.useFipsEndpoint ?? (() => Promise.resolve(DEFAULT_USE_FIPS_ENDPOINT)),\n };\n};\n","import { NoOpLogger } from \"@smithy/smithy-client\";\nimport { parseUrl } from \"@smithy/url-parser\";\nimport { fromBase64, toBase64 } from \"@smithy/util-base64\";\nimport { fromUtf8, toUtf8 } from \"@smithy/util-utf8\";\nimport { defaultEndpointResolver } from \"./endpoint/endpointResolver\";\nexport const getRuntimeConfig = (config) => ({\n apiVersion: \"2016-04-18\",\n base64Decoder: config?.base64Decoder ?? fromBase64,\n base64Encoder: config?.base64Encoder ?? toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n logger: config?.logger ?? new NoOpLogger(),\n serviceId: config?.serviceId ?? \"Cognito Identity Provider\",\n urlParser: config?.urlParser ?? parseUrl,\n utf8Decoder: config?.utf8Decoder ?? fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? toUtf8,\n});\n","import { getHostHeaderPlugin, resolveHostHeaderConfig, } from \"@aws-sdk/middleware-host-header\";\nimport { getLoggerPlugin } from \"@aws-sdk/middleware-logger\";\nimport { getRecursionDetectionPlugin } from \"@aws-sdk/middleware-recursion-detection\";\nimport { resolveAwsAuthConfig } from \"@aws-sdk/middleware-signing\";\nimport { getUserAgentPlugin, resolveUserAgentConfig, } from \"@aws-sdk/middleware-user-agent\";\nimport { resolveRegionConfig } from \"@smithy/config-resolver\";\nimport { getContentLengthPlugin } from \"@smithy/middleware-content-length\";\nimport { resolveEndpointConfig } from \"@smithy/middleware-endpoint\";\nimport { getRetryPlugin, resolveRetryConfig } from \"@smithy/middleware-retry\";\nimport { Client as __Client, } from \"@smithy/smithy-client\";\nimport { resolveClientEndpointParameters, } from \"./endpoint/EndpointParameters\";\nimport { getRuntimeConfig as __getRuntimeConfig } from \"./runtimeConfig\";\nimport { resolveRuntimeExtensions } from \"./runtimeExtensions\";\nexport { __Client };\nexport class CognitoIdentityProviderClient extends __Client {\n constructor(...[configuration]) {\n const _config_0 = __getRuntimeConfig(configuration || {});\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = resolveRegionConfig(_config_1);\n const _config_3 = resolveEndpointConfig(_config_2);\n const _config_4 = resolveRetryConfig(_config_3);\n const _config_5 = resolveHostHeaderConfig(_config_4);\n const _config_6 = resolveAwsAuthConfig(_config_5);\n const _config_7 = resolveUserAgentConfig(_config_6);\n const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []);\n super(_config_8);\n this.config = _config_8;\n this.middlewareStack.use(getRetryPlugin(this.config));\n this.middlewareStack.use(getContentLengthPlugin(this.config));\n this.middlewareStack.use(getHostHeaderPlugin(this.config));\n this.middlewareStack.use(getLoggerPlugin(this.config));\n this.middlewareStack.use(getRecursionDetectionPlugin(this.config));\n this.middlewareStack.use(getUserAgentPlugin(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\n","export function resolveUserAgentConfig(input) {\n return {\n ...input,\n customUserAgent: typeof input.customUserAgent === \"string\" ? [[input.customUserAgent]] : input.customUserAgent,\n };\n}\n","export const resolveClientEndpointParameters = (options) => {\n return {\n ...options,\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n defaultSigningName: \"cognito-idp\",\n };\n};\n","import { getAwsRegionExtensionConfiguration, resolveAwsRegionExtensionConfiguration, } from \"@aws-sdk/region-config-resolver\";\nimport { getHttpHandlerExtensionConfiguration, resolveHttpHandlerRuntimeConfig } from \"@smithy/protocol-http\";\nimport { getDefaultExtensionConfiguration, resolveDefaultRuntimeConfig } from \"@smithy/smithy-client\";\nconst asPartial = (t) => t;\nexport const resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = {\n ...asPartial(getAwsRegionExtensionConfiguration(runtimeConfig)),\n ...asPartial(getDefaultExtensionConfiguration(runtimeConfig)),\n ...asPartial(getHttpHandlerExtensionConfiguration(runtimeConfig)),\n };\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return {\n ...runtimeConfig,\n ...resolveAwsRegionExtensionConfiguration(extensionConfiguration),\n ...resolveDefaultRuntimeConfig(extensionConfiguration),\n ...resolveHttpHandlerRuntimeConfig(extensionConfiguration),\n };\n};\n","import { ServiceException as __ServiceException, } from \"@smithy/smithy-client\";\nexport { __ServiceException };\nexport class CognitoIdentityProviderServiceException extends __ServiceException {\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, CognitoIdentityProviderServiceException.prototype);\n }\n}\n","import { SENSITIVE_STRING } from \"@smithy/smithy-client\";\nimport { CognitoIdentityProviderServiceException as __BaseException } from \"./CognitoIdentityProviderServiceException\";\nexport const RecoveryOptionNameType = {\n ADMIN_ONLY: \"admin_only\",\n VERIFIED_EMAIL: \"verified_email\",\n VERIFIED_PHONE_NUMBER: \"verified_phone_number\",\n};\nexport const AccountTakeoverEventActionType = {\n BLOCK: \"BLOCK\",\n MFA_IF_CONFIGURED: \"MFA_IF_CONFIGURED\",\n MFA_REQUIRED: \"MFA_REQUIRED\",\n NO_ACTION: \"NO_ACTION\",\n};\nexport const AttributeDataType = {\n BOOLEAN: \"Boolean\",\n DATETIME: \"DateTime\",\n NUMBER: \"Number\",\n STRING: \"String\",\n};\nexport class InternalErrorException extends __BaseException {\n constructor(opts) {\n super({\n name: \"InternalErrorException\",\n $fault: \"server\",\n ...opts,\n });\n this.name = \"InternalErrorException\";\n this.$fault = \"server\";\n Object.setPrototypeOf(this, InternalErrorException.prototype);\n }\n}\nexport class InvalidParameterException extends __BaseException {\n constructor(opts) {\n super({\n name: \"InvalidParameterException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"InvalidParameterException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, InvalidParameterException.prototype);\n }\n}\nexport class NotAuthorizedException extends __BaseException {\n constructor(opts) {\n super({\n name: \"NotAuthorizedException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"NotAuthorizedException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, NotAuthorizedException.prototype);\n }\n}\nexport class ResourceNotFoundException extends __BaseException {\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"ResourceNotFoundException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, ResourceNotFoundException.prototype);\n }\n}\nexport class TooManyRequestsException extends __BaseException {\n constructor(opts) {\n super({\n name: \"TooManyRequestsException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"TooManyRequestsException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, TooManyRequestsException.prototype);\n }\n}\nexport class UserImportInProgressException extends __BaseException {\n constructor(opts) {\n super({\n name: \"UserImportInProgressException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"UserImportInProgressException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, UserImportInProgressException.prototype);\n }\n}\nexport class UserNotFoundException extends __BaseException {\n constructor(opts) {\n super({\n name: \"UserNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"UserNotFoundException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, UserNotFoundException.prototype);\n }\n}\nexport class InvalidLambdaResponseException extends __BaseException {\n constructor(opts) {\n super({\n name: \"InvalidLambdaResponseException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"InvalidLambdaResponseException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, InvalidLambdaResponseException.prototype);\n }\n}\nexport class LimitExceededException extends __BaseException {\n constructor(opts) {\n super({\n name: \"LimitExceededException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"LimitExceededException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, LimitExceededException.prototype);\n }\n}\nexport class TooManyFailedAttemptsException extends __BaseException {\n constructor(opts) {\n super({\n name: \"TooManyFailedAttemptsException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"TooManyFailedAttemptsException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, TooManyFailedAttemptsException.prototype);\n }\n}\nexport class UnexpectedLambdaException extends __BaseException {\n constructor(opts) {\n super({\n name: \"UnexpectedLambdaException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"UnexpectedLambdaException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, UnexpectedLambdaException.prototype);\n }\n}\nexport class UserLambdaValidationException extends __BaseException {\n constructor(opts) {\n super({\n name: \"UserLambdaValidationException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"UserLambdaValidationException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, UserLambdaValidationException.prototype);\n }\n}\nexport const DeliveryMediumType = {\n EMAIL: \"EMAIL\",\n SMS: \"SMS\",\n};\nexport const MessageActionType = {\n RESEND: \"RESEND\",\n SUPPRESS: \"SUPPRESS\",\n};\nexport const UserStatusType = {\n ARCHIVED: \"ARCHIVED\",\n COMPROMISED: \"COMPROMISED\",\n CONFIRMED: \"CONFIRMED\",\n FORCE_CHANGE_PASSWORD: \"FORCE_CHANGE_PASSWORD\",\n RESET_REQUIRED: \"RESET_REQUIRED\",\n UNCONFIRMED: \"UNCONFIRMED\",\n UNKNOWN: \"UNKNOWN\",\n};\nexport class CodeDeliveryFailureException extends __BaseException {\n constructor(opts) {\n super({\n name: \"CodeDeliveryFailureException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"CodeDeliveryFailureException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, CodeDeliveryFailureException.prototype);\n }\n}\nexport class InvalidPasswordException extends __BaseException {\n constructor(opts) {\n super({\n name: \"InvalidPasswordException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"InvalidPasswordException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, InvalidPasswordException.prototype);\n }\n}\nexport class InvalidSmsRoleAccessPolicyException extends __BaseException {\n constructor(opts) {\n super({\n name: \"InvalidSmsRoleAccessPolicyException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"InvalidSmsRoleAccessPolicyException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, InvalidSmsRoleAccessPolicyException.prototype);\n }\n}\nexport class InvalidSmsRoleTrustRelationshipException extends __BaseException {\n constructor(opts) {\n super({\n name: \"InvalidSmsRoleTrustRelationshipException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"InvalidSmsRoleTrustRelationshipException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, InvalidSmsRoleTrustRelationshipException.prototype);\n }\n}\nexport class PreconditionNotMetException extends __BaseException {\n constructor(opts) {\n super({\n name: \"PreconditionNotMetException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"PreconditionNotMetException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, PreconditionNotMetException.prototype);\n }\n}\nexport class UnsupportedUserStateException extends __BaseException {\n constructor(opts) {\n super({\n name: \"UnsupportedUserStateException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"UnsupportedUserStateException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, UnsupportedUserStateException.prototype);\n }\n}\nexport class UsernameExistsException extends __BaseException {\n constructor(opts) {\n super({\n name: \"UsernameExistsException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"UsernameExistsException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, UsernameExistsException.prototype);\n }\n}\nexport class AliasExistsException extends __BaseException {\n constructor(opts) {\n super({\n name: \"AliasExistsException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"AliasExistsException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, AliasExistsException.prototype);\n }\n}\nexport class InvalidUserPoolConfigurationException extends __BaseException {\n constructor(opts) {\n super({\n name: \"InvalidUserPoolConfigurationException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"InvalidUserPoolConfigurationException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, InvalidUserPoolConfigurationException.prototype);\n }\n}\nexport const AuthFlowType = {\n ADMIN_NO_SRP_AUTH: \"ADMIN_NO_SRP_AUTH\",\n ADMIN_USER_PASSWORD_AUTH: \"ADMIN_USER_PASSWORD_AUTH\",\n CUSTOM_AUTH: \"CUSTOM_AUTH\",\n REFRESH_TOKEN: \"REFRESH_TOKEN\",\n REFRESH_TOKEN_AUTH: \"REFRESH_TOKEN_AUTH\",\n USER_PASSWORD_AUTH: \"USER_PASSWORD_AUTH\",\n USER_SRP_AUTH: \"USER_SRP_AUTH\",\n};\nexport const ChallengeNameType = {\n ADMIN_NO_SRP_AUTH: \"ADMIN_NO_SRP_AUTH\",\n CUSTOM_CHALLENGE: \"CUSTOM_CHALLENGE\",\n DEVICE_PASSWORD_VERIFIER: \"DEVICE_PASSWORD_VERIFIER\",\n DEVICE_SRP_AUTH: \"DEVICE_SRP_AUTH\",\n MFA_SETUP: \"MFA_SETUP\",\n NEW_PASSWORD_REQUIRED: \"NEW_PASSWORD_REQUIRED\",\n PASSWORD_VERIFIER: \"PASSWORD_VERIFIER\",\n SELECT_MFA_TYPE: \"SELECT_MFA_TYPE\",\n SMS_MFA: \"SMS_MFA\",\n SOFTWARE_TOKEN_MFA: \"SOFTWARE_TOKEN_MFA\",\n};\nexport class MFAMethodNotFoundException extends __BaseException {\n constructor(opts) {\n super({\n name: \"MFAMethodNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"MFAMethodNotFoundException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, MFAMethodNotFoundException.prototype);\n }\n}\nexport class PasswordResetRequiredException extends __BaseException {\n constructor(opts) {\n super({\n name: \"PasswordResetRequiredException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"PasswordResetRequiredException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, PasswordResetRequiredException.prototype);\n }\n}\nexport class UserNotConfirmedException extends __BaseException {\n constructor(opts) {\n super({\n name: \"UserNotConfirmedException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"UserNotConfirmedException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, UserNotConfirmedException.prototype);\n }\n}\nexport const ChallengeName = {\n Mfa: \"Mfa\",\n Password: \"Password\",\n};\nexport const ChallengeResponse = {\n Failure: \"Failure\",\n Success: \"Success\",\n};\nexport const FeedbackValueType = {\n INVALID: \"Invalid\",\n VALID: \"Valid\",\n};\nexport const EventResponseType = {\n Fail: \"Fail\",\n InProgress: \"InProgress\",\n Pass: \"Pass\",\n};\nexport const RiskDecisionType = {\n AccountTakeover: \"AccountTakeover\",\n Block: \"Block\",\n NoRisk: \"NoRisk\",\n};\nexport const RiskLevelType = {\n High: \"High\",\n Low: \"Low\",\n Medium: \"Medium\",\n};\nexport const EventType = {\n ForgotPassword: \"ForgotPassword\",\n PasswordChange: \"PasswordChange\",\n ResendCode: \"ResendCode\",\n SignIn: \"SignIn\",\n SignUp: \"SignUp\",\n};\nexport class UserPoolAddOnNotEnabledException extends __BaseException {\n constructor(opts) {\n super({\n name: \"UserPoolAddOnNotEnabledException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"UserPoolAddOnNotEnabledException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, UserPoolAddOnNotEnabledException.prototype);\n }\n}\nexport class InvalidEmailRoleAccessPolicyException extends __BaseException {\n constructor(opts) {\n super({\n name: \"InvalidEmailRoleAccessPolicyException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"InvalidEmailRoleAccessPolicyException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, InvalidEmailRoleAccessPolicyException.prototype);\n }\n}\nexport class CodeMismatchException extends __BaseException {\n constructor(opts) {\n super({\n name: \"CodeMismatchException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"CodeMismatchException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, CodeMismatchException.prototype);\n }\n}\nexport class ExpiredCodeException extends __BaseException {\n constructor(opts) {\n super({\n name: \"ExpiredCodeException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"ExpiredCodeException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, ExpiredCodeException.prototype);\n }\n}\nexport class SoftwareTokenMFANotFoundException extends __BaseException {\n constructor(opts) {\n super({\n name: \"SoftwareTokenMFANotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"SoftwareTokenMFANotFoundException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, SoftwareTokenMFANotFoundException.prototype);\n }\n}\nexport const DeviceRememberedStatusType = {\n NOT_REMEMBERED: \"not_remembered\",\n REMEMBERED: \"remembered\",\n};\nexport const AdvancedSecurityModeType = {\n AUDIT: \"AUDIT\",\n ENFORCED: \"ENFORCED\",\n OFF: \"OFF\",\n};\nexport const AliasAttributeType = {\n EMAIL: \"email\",\n PHONE_NUMBER: \"phone_number\",\n PREFERRED_USERNAME: \"preferred_username\",\n};\nexport class ConcurrentModificationException extends __BaseException {\n constructor(opts) {\n super({\n name: \"ConcurrentModificationException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"ConcurrentModificationException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, ConcurrentModificationException.prototype);\n }\n}\nexport class ForbiddenException extends __BaseException {\n constructor(opts) {\n super({\n name: \"ForbiddenException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"ForbiddenException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, ForbiddenException.prototype);\n }\n}\nexport const VerifiedAttributeType = {\n EMAIL: \"email\",\n PHONE_NUMBER: \"phone_number\",\n};\nexport class GroupExistsException extends __BaseException {\n constructor(opts) {\n super({\n name: \"GroupExistsException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"GroupExistsException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, GroupExistsException.prototype);\n }\n}\nexport const IdentityProviderTypeType = {\n Facebook: \"Facebook\",\n Google: \"Google\",\n LoginWithAmazon: \"LoginWithAmazon\",\n OIDC: \"OIDC\",\n SAML: \"SAML\",\n SignInWithApple: \"SignInWithApple\",\n};\nexport class DuplicateProviderException extends __BaseException {\n constructor(opts) {\n super({\n name: \"DuplicateProviderException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"DuplicateProviderException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, DuplicateProviderException.prototype);\n }\n}\nexport const UserImportJobStatusType = {\n Created: \"Created\",\n Expired: \"Expired\",\n Failed: \"Failed\",\n InProgress: \"InProgress\",\n Pending: \"Pending\",\n Stopped: \"Stopped\",\n Stopping: \"Stopping\",\n Succeeded: \"Succeeded\",\n};\nexport const DeletionProtectionType = {\n ACTIVE: \"ACTIVE\",\n INACTIVE: \"INACTIVE\",\n};\nexport const EmailSendingAccountType = {\n COGNITO_DEFAULT: \"COGNITO_DEFAULT\",\n DEVELOPER: \"DEVELOPER\",\n};\nexport const CustomEmailSenderLambdaVersionType = {\n V1_0: \"V1_0\",\n};\nexport const CustomSMSSenderLambdaVersionType = {\n V1_0: \"V1_0\",\n};\nexport const UserPoolMfaType = {\n OFF: \"OFF\",\n ON: \"ON\",\n OPTIONAL: \"OPTIONAL\",\n};\nexport const UsernameAttributeType = {\n EMAIL: \"email\",\n PHONE_NUMBER: \"phone_number\",\n};\nexport const DefaultEmailOptionType = {\n CONFIRM_WITH_CODE: \"CONFIRM_WITH_CODE\",\n CONFIRM_WITH_LINK: \"CONFIRM_WITH_LINK\",\n};\nexport const StatusType = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\",\n};\nexport class UserPoolTaggingException extends __BaseException {\n constructor(opts) {\n super({\n name: \"UserPoolTaggingException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"UserPoolTaggingException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, UserPoolTaggingException.prototype);\n }\n}\nexport const OAuthFlowType = {\n client_credentials: \"client_credentials\",\n code: \"code\",\n implicit: \"implicit\",\n};\nexport const ExplicitAuthFlowsType = {\n ADMIN_NO_SRP_AUTH: \"ADMIN_NO_SRP_AUTH\",\n ALLOW_ADMIN_USER_PASSWORD_AUTH: \"ALLOW_ADMIN_USER_PASSWORD_AUTH\",\n ALLOW_CUSTOM_AUTH: \"ALLOW_CUSTOM_AUTH\",\n ALLOW_REFRESH_TOKEN_AUTH: \"ALLOW_REFRESH_TOKEN_AUTH\",\n ALLOW_USER_PASSWORD_AUTH: \"ALLOW_USER_PASSWORD_AUTH\",\n ALLOW_USER_SRP_AUTH: \"ALLOW_USER_SRP_AUTH\",\n CUSTOM_AUTH_FLOW_ONLY: \"CUSTOM_AUTH_FLOW_ONLY\",\n USER_PASSWORD_AUTH: \"USER_PASSWORD_AUTH\",\n};\nexport const PreventUserExistenceErrorTypes = {\n ENABLED: \"ENABLED\",\n LEGACY: \"LEGACY\",\n};\nexport const TimeUnitsType = {\n DAYS: \"days\",\n HOURS: \"hours\",\n MINUTES: \"minutes\",\n SECONDS: \"seconds\",\n};\nexport class InvalidOAuthFlowException extends __BaseException {\n constructor(opts) {\n super({\n name: \"InvalidOAuthFlowException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"InvalidOAuthFlowException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, InvalidOAuthFlowException.prototype);\n }\n}\nexport class ScopeDoesNotExistException extends __BaseException {\n constructor(opts) {\n super({\n name: \"ScopeDoesNotExistException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"ScopeDoesNotExistException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, ScopeDoesNotExistException.prototype);\n }\n}\nexport class UnsupportedIdentityProviderException extends __BaseException {\n constructor(opts) {\n super({\n name: \"UnsupportedIdentityProviderException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"UnsupportedIdentityProviderException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, UnsupportedIdentityProviderException.prototype);\n }\n}\nexport const CompromisedCredentialsEventActionType = {\n BLOCK: \"BLOCK\",\n NO_ACTION: \"NO_ACTION\",\n};\nexport const EventFilterType = {\n PASSWORD_CHANGE: \"PASSWORD_CHANGE\",\n SIGN_IN: \"SIGN_IN\",\n SIGN_UP: \"SIGN_UP\",\n};\nexport const DomainStatusType = {\n ACTIVE: \"ACTIVE\",\n CREATING: \"CREATING\",\n DELETING: \"DELETING\",\n FAILED: \"FAILED\",\n UPDATING: \"UPDATING\",\n};\nexport const EventSourceName = {\n USER_NOTIFICATION: \"userNotification\",\n};\nexport const LogLevel = {\n ERROR: \"ERROR\",\n};\nexport class UnauthorizedException extends __BaseException {\n constructor(opts) {\n super({\n name: \"UnauthorizedException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"UnauthorizedException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, UnauthorizedException.prototype);\n }\n}\nexport class UnsupportedOperationException extends __BaseException {\n constructor(opts) {\n super({\n name: \"UnsupportedOperationException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"UnsupportedOperationException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, UnsupportedOperationException.prototype);\n }\n}\nexport class UnsupportedTokenTypeException extends __BaseException {\n constructor(opts) {\n super({\n name: \"UnsupportedTokenTypeException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"UnsupportedTokenTypeException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, UnsupportedTokenTypeException.prototype);\n }\n}\nexport const AdminAddUserToGroupRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Username && { Username: SENSITIVE_STRING }),\n});\nexport const AdminConfirmSignUpRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Username && { Username: SENSITIVE_STRING }),\n});\nexport const AttributeTypeFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Value && { Value: SENSITIVE_STRING }),\n});\nexport const AdminCreateUserRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Username && { Username: SENSITIVE_STRING }),\n ...(obj.UserAttributes && {\n UserAttributes: obj.UserAttributes.map((item) => AttributeTypeFilterSensitiveLog(item)),\n }),\n ...(obj.ValidationData && {\n ValidationData: obj.ValidationData.map((item) => AttributeTypeFilterSensitiveLog(item)),\n }),\n ...(obj.TemporaryPassword && { TemporaryPassword: SENSITIVE_STRING }),\n});\nexport const UserTypeFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Username && { Username: SENSITIVE_STRING }),\n ...(obj.Attributes && { Attributes: obj.Attributes.map((item) => AttributeTypeFilterSensitiveLog(item)) }),\n});\nexport const AdminCreateUserResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.User && { User: UserTypeFilterSensitiveLog(obj.User) }),\n});\nexport const AdminDeleteUserRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Username && { Username: SENSITIVE_STRING }),\n});\nexport const AdminDeleteUserAttributesRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Username && { Username: SENSITIVE_STRING }),\n});\nexport const AdminDisableUserRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Username && { Username: SENSITIVE_STRING }),\n});\nexport const AdminEnableUserRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Username && { Username: SENSITIVE_STRING }),\n});\nexport const AdminForgetDeviceRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Username && { Username: SENSITIVE_STRING }),\n});\nexport const AdminGetDeviceRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Username && { Username: SENSITIVE_STRING }),\n});\nexport const DeviceTypeFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.DeviceAttributes && {\n DeviceAttributes: obj.DeviceAttributes.map((item) => AttributeTypeFilterSensitiveLog(item)),\n }),\n});\nexport const AdminGetDeviceResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Device && { Device: DeviceTypeFilterSensitiveLog(obj.Device) }),\n});\nexport const AdminGetUserRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Username && { Username: SENSITIVE_STRING }),\n});\nexport const AdminGetUserResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Username && { Username: SENSITIVE_STRING }),\n ...(obj.UserAttributes && {\n UserAttributes: obj.UserAttributes.map((item) => AttributeTypeFilterSensitiveLog(item)),\n }),\n});\nexport const AdminInitiateAuthRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.ClientId && { ClientId: SENSITIVE_STRING }),\n ...(obj.AuthParameters && { AuthParameters: SENSITIVE_STRING }),\n});\nexport const AuthenticationResultTypeFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.AccessToken && { AccessToken: SENSITIVE_STRING }),\n ...(obj.RefreshToken && { RefreshToken: SENSITIVE_STRING }),\n ...(obj.IdToken && { IdToken: SENSITIVE_STRING }),\n});\nexport const AdminInitiateAuthResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Session && { Session: SENSITIVE_STRING }),\n ...(obj.AuthenticationResult && {\n AuthenticationResult: AuthenticationResultTypeFilterSensitiveLog(obj.AuthenticationResult),\n }),\n});\nexport const AdminListDevicesRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Username && { Username: SENSITIVE_STRING }),\n});\nexport const AdminListDevicesResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexport const AdminListGroupsForUserRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Username && { Username: SENSITIVE_STRING }),\n});\nexport const AdminListUserAuthEventsRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Username && { Username: SENSITIVE_STRING }),\n});\nexport const AdminRemoveUserFromGroupRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Username && { Username: SENSITIVE_STRING }),\n});\nexport const AdminResetUserPasswordRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Username && { Username: SENSITIVE_STRING }),\n});\nexport const AdminRespondToAuthChallengeRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.ClientId && { ClientId: SENSITIVE_STRING }),\n ...(obj.ChallengeResponses && { ChallengeResponses: SENSITIVE_STRING }),\n ...(obj.Session && { Session: SENSITIVE_STRING }),\n});\nexport const AdminRespondToAuthChallengeResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Session && { Session: SENSITIVE_STRING }),\n ...(obj.AuthenticationResult && {\n AuthenticationResult: AuthenticationResultTypeFilterSensitiveLog(obj.AuthenticationResult),\n }),\n});\nexport const AdminSetUserMFAPreferenceRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Username && { Username: SENSITIVE_STRING }),\n});\nexport const AdminSetUserPasswordRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Username && { Username: SENSITIVE_STRING }),\n ...(obj.Password && { Password: SENSITIVE_STRING }),\n});\nexport const AdminSetUserSettingsRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Username && { Username: SENSITIVE_STRING }),\n});\nexport const AdminUpdateAuthEventFeedbackRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Username && { Username: SENSITIVE_STRING }),\n});\nexport const AdminUpdateDeviceStatusRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Username && { Username: SENSITIVE_STRING }),\n});\nexport const AdminUpdateUserAttributesRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Username && { Username: SENSITIVE_STRING }),\n ...(obj.UserAttributes && {\n UserAttributes: obj.UserAttributes.map((item) => AttributeTypeFilterSensitiveLog(item)),\n }),\n});\nexport const AdminUserGlobalSignOutRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Username && { Username: SENSITIVE_STRING }),\n});\nexport const AssociateSoftwareTokenRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.AccessToken && { AccessToken: SENSITIVE_STRING }),\n ...(obj.Session && { Session: SENSITIVE_STRING }),\n});\nexport const AssociateSoftwareTokenResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SecretCode && { SecretCode: SENSITIVE_STRING }),\n ...(obj.Session && { Session: SENSITIVE_STRING }),\n});\nexport const ChangePasswordRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.PreviousPassword && { PreviousPassword: SENSITIVE_STRING }),\n ...(obj.ProposedPassword && { ProposedPassword: SENSITIVE_STRING }),\n ...(obj.AccessToken && { AccessToken: SENSITIVE_STRING }),\n});\nexport const ConfirmDeviceRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.AccessToken && { AccessToken: SENSITIVE_STRING }),\n});\nexport const UserContextDataTypeFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexport const ConfirmForgotPasswordRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.ClientId && { ClientId: SENSITIVE_STRING }),\n ...(obj.SecretHash && { SecretHash: SENSITIVE_STRING }),\n ...(obj.Username && { Username: SENSITIVE_STRING }),\n ...(obj.Password && { Password: SENSITIVE_STRING }),\n ...(obj.UserContextData && { UserContextData: SENSITIVE_STRING }),\n});\nexport const ConfirmSignUpRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.ClientId && { ClientId: SENSITIVE_STRING }),\n ...(obj.SecretHash && { SecretHash: SENSITIVE_STRING }),\n ...(obj.Username && { Username: SENSITIVE_STRING }),\n ...(obj.UserContextData && { UserContextData: SENSITIVE_STRING }),\n});\nexport const UserPoolClientTypeFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.ClientId && { ClientId: SENSITIVE_STRING }),\n ...(obj.ClientSecret && { ClientSecret: SENSITIVE_STRING }),\n});\nexport const CreateUserPoolClientResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.UserPoolClient && { UserPoolClient: UserPoolClientTypeFilterSensitiveLog(obj.UserPoolClient) }),\n});\nexport const DeleteUserRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.AccessToken && { AccessToken: SENSITIVE_STRING }),\n});\nexport const DeleteUserAttributesRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.AccessToken && { AccessToken: SENSITIVE_STRING }),\n});\nexport const DeleteUserPoolClientRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.ClientId && { ClientId: SENSITIVE_STRING }),\n});\nexport const DescribeRiskConfigurationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.ClientId && { ClientId: SENSITIVE_STRING }),\n});\nexport const RiskConfigurationTypeFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.ClientId && { ClientId: SENSITIVE_STRING }),\n});\nexport const DescribeRiskConfigurationResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.RiskConfiguration && { RiskConfiguration: RiskConfigurationTypeFilterSensitiveLog(obj.RiskConfiguration) }),\n});\nexport const DescribeUserPoolClientRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.ClientId && { ClientId: SENSITIVE_STRING }),\n});\nexport const DescribeUserPoolClientResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.UserPoolClient && { UserPoolClient: UserPoolClientTypeFilterSensitiveLog(obj.UserPoolClient) }),\n});\nexport const ForgetDeviceRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.AccessToken && { AccessToken: SENSITIVE_STRING }),\n});\nexport const ForgotPasswordRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.ClientId && { ClientId: SENSITIVE_STRING }),\n ...(obj.SecretHash && { SecretHash: SENSITIVE_STRING }),\n ...(obj.UserContextData && { UserContextData: SENSITIVE_STRING }),\n ...(obj.Username && { Username: SENSITIVE_STRING }),\n});\nexport const GetDeviceRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.AccessToken && { AccessToken: SENSITIVE_STRING }),\n});\nexport const GetDeviceResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Device && { Device: DeviceTypeFilterSensitiveLog(obj.Device) }),\n});\nexport const GetUICustomizationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.ClientId && { ClientId: SENSITIVE_STRING }),\n});\nexport const UICustomizationTypeFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.ClientId && { ClientId: SENSITIVE_STRING }),\n});\nexport const GetUICustomizationResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.UICustomization && { UICustomization: UICustomizationTypeFilterSensitiveLog(obj.UICustomization) }),\n});\nexport const GetUserRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.AccessToken && { AccessToken: SENSITIVE_STRING }),\n});\nexport const GetUserResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Username && { Username: SENSITIVE_STRING }),\n ...(obj.UserAttributes && {\n UserAttributes: obj.UserAttributes.map((item) => AttributeTypeFilterSensitiveLog(item)),\n }),\n});\nexport const GetUserAttributeVerificationCodeRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.AccessToken && { AccessToken: SENSITIVE_STRING }),\n});\nexport const GlobalSignOutRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.AccessToken && { AccessToken: SENSITIVE_STRING }),\n});\nexport const InitiateAuthRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.AuthParameters && { AuthParameters: SENSITIVE_STRING }),\n ...(obj.ClientId && { ClientId: SENSITIVE_STRING }),\n ...(obj.UserContextData && { UserContextData: SENSITIVE_STRING }),\n});\nexport const InitiateAuthResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Session && { Session: SENSITIVE_STRING }),\n ...(obj.AuthenticationResult && {\n AuthenticationResult: AuthenticationResultTypeFilterSensitiveLog(obj.AuthenticationResult),\n }),\n});\nexport const ListDevicesRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.AccessToken && { AccessToken: SENSITIVE_STRING }),\n});\nexport const ListDevicesResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexport const UserPoolClientDescriptionFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.ClientId && { ClientId: SENSITIVE_STRING }),\n});\nexport const ListUserPoolClientsResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.UserPoolClients && {\n UserPoolClients: obj.UserPoolClients.map((item) => UserPoolClientDescriptionFilterSensitiveLog(item)),\n }),\n});\nexport const ListUsersResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Users && { Users: obj.Users.map((item) => UserTypeFilterSensitiveLog(item)) }),\n});\nexport const ListUsersInGroupResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Users && { Users: obj.Users.map((item) => UserTypeFilterSensitiveLog(item)) }),\n});\nexport const ResendConfirmationCodeRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.ClientId && { ClientId: SENSITIVE_STRING }),\n ...(obj.SecretHash && { SecretHash: SENSITIVE_STRING }),\n ...(obj.UserContextData && { UserContextData: SENSITIVE_STRING }),\n ...(obj.Username && { Username: SENSITIVE_STRING }),\n});\nexport const RespondToAuthChallengeRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.ClientId && { ClientId: SENSITIVE_STRING }),\n ...(obj.Session && { Session: SENSITIVE_STRING }),\n ...(obj.ChallengeResponses && { ChallengeResponses: SENSITIVE_STRING }),\n ...(obj.UserContextData && { UserContextData: SENSITIVE_STRING }),\n});\nexport const RespondToAuthChallengeResponseFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Session && { Session: SENSITIVE_STRING }),\n ...(obj.AuthenticationResult && {\n AuthenticationResult: AuthenticationResultTypeFilterSensitiveLog(obj.AuthenticationResult),\n }),\n});\nexport const RevokeTokenRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Token && { Token: SENSITIVE_STRING }),\n ...(obj.ClientId && { ClientId: SENSITIVE_STRING }),\n ...(obj.ClientSecret && { ClientSecret: SENSITIVE_STRING }),\n});\nexport const SetRiskConfigurationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.ClientId && { ClientId: SENSITIVE_STRING }),\n});\n","import { HttpRequest as __HttpRequest } from \"@smithy/protocol-http\";\nimport { _json, collectBody, decorateServiceException as __decorateServiceException, expectBoolean as __expectBoolean, expectInt32 as __expectInt32, expectLong as __expectLong, expectNonNull as __expectNonNull, expectNumber as __expectNumber, expectString as __expectString, parseEpochTimestamp as __parseEpochTimestamp, take, withBaseException, } from \"@smithy/smithy-client\";\nimport { CognitoIdentityProviderServiceException as __BaseException } from \"../models/CognitoIdentityProviderServiceException\";\nimport { AliasExistsException, CodeDeliveryFailureException, CodeMismatchException, ConcurrentModificationException, DuplicateProviderException, ExpiredCodeException, ForbiddenException, GroupExistsException, InternalErrorException, InvalidEmailRoleAccessPolicyException, InvalidLambdaResponseException, InvalidOAuthFlowException, InvalidParameterException, InvalidPasswordException, InvalidSmsRoleAccessPolicyException, InvalidSmsRoleTrustRelationshipException, InvalidUserPoolConfigurationException, LimitExceededException, MFAMethodNotFoundException, NotAuthorizedException, PasswordResetRequiredException, PreconditionNotMetException, ResourceNotFoundException, ScopeDoesNotExistException, SoftwareTokenMFANotFoundException, TooManyFailedAttemptsException, TooManyRequestsException, UnauthorizedException, UnexpectedLambdaException, UnsupportedIdentityProviderException, UnsupportedOperationException, UnsupportedTokenTypeException, UnsupportedUserStateException, UserImportInProgressException, UserLambdaValidationException, UsernameExistsException, UserNotConfirmedException, UserNotFoundException, UserPoolAddOnNotEnabledException, UserPoolTaggingException, } from \"../models/models_0\";\nimport { EnableSoftwareTokenMFAException, } from \"../models/models_1\";\nexport const se_AddCustomAttributesCommand = async (input, context) => {\n const headers = sharedHeaders(\"AddCustomAttributes\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_AdminAddUserToGroupCommand = async (input, context) => {\n const headers = sharedHeaders(\"AdminAddUserToGroup\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_AdminConfirmSignUpCommand = async (input, context) => {\n const headers = sharedHeaders(\"AdminConfirmSignUp\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_AdminCreateUserCommand = async (input, context) => {\n const headers = sharedHeaders(\"AdminCreateUser\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_AdminDeleteUserCommand = async (input, context) => {\n const headers = sharedHeaders(\"AdminDeleteUser\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_AdminDeleteUserAttributesCommand = async (input, context) => {\n const headers = sharedHeaders(\"AdminDeleteUserAttributes\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_AdminDisableProviderForUserCommand = async (input, context) => {\n const headers = sharedHeaders(\"AdminDisableProviderForUser\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_AdminDisableUserCommand = async (input, context) => {\n const headers = sharedHeaders(\"AdminDisableUser\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_AdminEnableUserCommand = async (input, context) => {\n const headers = sharedHeaders(\"AdminEnableUser\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_AdminForgetDeviceCommand = async (input, context) => {\n const headers = sharedHeaders(\"AdminForgetDevice\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_AdminGetDeviceCommand = async (input, context) => {\n const headers = sharedHeaders(\"AdminGetDevice\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_AdminGetUserCommand = async (input, context) => {\n const headers = sharedHeaders(\"AdminGetUser\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_AdminInitiateAuthCommand = async (input, context) => {\n const headers = sharedHeaders(\"AdminInitiateAuth\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_AdminLinkProviderForUserCommand = async (input, context) => {\n const headers = sharedHeaders(\"AdminLinkProviderForUser\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_AdminListDevicesCommand = async (input, context) => {\n const headers = sharedHeaders(\"AdminListDevices\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_AdminListGroupsForUserCommand = async (input, context) => {\n const headers = sharedHeaders(\"AdminListGroupsForUser\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_AdminListUserAuthEventsCommand = async (input, context) => {\n const headers = sharedHeaders(\"AdminListUserAuthEvents\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_AdminRemoveUserFromGroupCommand = async (input, context) => {\n const headers = sharedHeaders(\"AdminRemoveUserFromGroup\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_AdminResetUserPasswordCommand = async (input, context) => {\n const headers = sharedHeaders(\"AdminResetUserPassword\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_AdminRespondToAuthChallengeCommand = async (input, context) => {\n const headers = sharedHeaders(\"AdminRespondToAuthChallenge\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_AdminSetUserMFAPreferenceCommand = async (input, context) => {\n const headers = sharedHeaders(\"AdminSetUserMFAPreference\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_AdminSetUserPasswordCommand = async (input, context) => {\n const headers = sharedHeaders(\"AdminSetUserPassword\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_AdminSetUserSettingsCommand = async (input, context) => {\n const headers = sharedHeaders(\"AdminSetUserSettings\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_AdminUpdateAuthEventFeedbackCommand = async (input, context) => {\n const headers = sharedHeaders(\"AdminUpdateAuthEventFeedback\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_AdminUpdateDeviceStatusCommand = async (input, context) => {\n const headers = sharedHeaders(\"AdminUpdateDeviceStatus\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_AdminUpdateUserAttributesCommand = async (input, context) => {\n const headers = sharedHeaders(\"AdminUpdateUserAttributes\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_AdminUserGlobalSignOutCommand = async (input, context) => {\n const headers = sharedHeaders(\"AdminUserGlobalSignOut\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_AssociateSoftwareTokenCommand = async (input, context) => {\n const headers = sharedHeaders(\"AssociateSoftwareToken\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_ChangePasswordCommand = async (input, context) => {\n const headers = sharedHeaders(\"ChangePassword\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_ConfirmDeviceCommand = async (input, context) => {\n const headers = sharedHeaders(\"ConfirmDevice\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_ConfirmForgotPasswordCommand = async (input, context) => {\n const headers = sharedHeaders(\"ConfirmForgotPassword\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_ConfirmSignUpCommand = async (input, context) => {\n const headers = sharedHeaders(\"ConfirmSignUp\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_CreateGroupCommand = async (input, context) => {\n const headers = sharedHeaders(\"CreateGroup\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_CreateIdentityProviderCommand = async (input, context) => {\n const headers = sharedHeaders(\"CreateIdentityProvider\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_CreateResourceServerCommand = async (input, context) => {\n const headers = sharedHeaders(\"CreateResourceServer\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_CreateUserImportJobCommand = async (input, context) => {\n const headers = sharedHeaders(\"CreateUserImportJob\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_CreateUserPoolCommand = async (input, context) => {\n const headers = sharedHeaders(\"CreateUserPool\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_CreateUserPoolClientCommand = async (input, context) => {\n const headers = sharedHeaders(\"CreateUserPoolClient\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_CreateUserPoolDomainCommand = async (input, context) => {\n const headers = sharedHeaders(\"CreateUserPoolDomain\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_DeleteGroupCommand = async (input, context) => {\n const headers = sharedHeaders(\"DeleteGroup\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_DeleteIdentityProviderCommand = async (input, context) => {\n const headers = sharedHeaders(\"DeleteIdentityProvider\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_DeleteResourceServerCommand = async (input, context) => {\n const headers = sharedHeaders(\"DeleteResourceServer\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_DeleteUserCommand = async (input, context) => {\n const headers = sharedHeaders(\"DeleteUser\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_DeleteUserAttributesCommand = async (input, context) => {\n const headers = sharedHeaders(\"DeleteUserAttributes\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_DeleteUserPoolCommand = async (input, context) => {\n const headers = sharedHeaders(\"DeleteUserPool\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_DeleteUserPoolClientCommand = async (input, context) => {\n const headers = sharedHeaders(\"DeleteUserPoolClient\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_DeleteUserPoolDomainCommand = async (input, context) => {\n const headers = sharedHeaders(\"DeleteUserPoolDomain\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_DescribeIdentityProviderCommand = async (input, context) => {\n const headers = sharedHeaders(\"DescribeIdentityProvider\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_DescribeResourceServerCommand = async (input, context) => {\n const headers = sharedHeaders(\"DescribeResourceServer\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_DescribeRiskConfigurationCommand = async (input, context) => {\n const headers = sharedHeaders(\"DescribeRiskConfiguration\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_DescribeUserImportJobCommand = async (input, context) => {\n const headers = sharedHeaders(\"DescribeUserImportJob\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_DescribeUserPoolCommand = async (input, context) => {\n const headers = sharedHeaders(\"DescribeUserPool\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_DescribeUserPoolClientCommand = async (input, context) => {\n const headers = sharedHeaders(\"DescribeUserPoolClient\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_DescribeUserPoolDomainCommand = async (input, context) => {\n const headers = sharedHeaders(\"DescribeUserPoolDomain\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_ForgetDeviceCommand = async (input, context) => {\n const headers = sharedHeaders(\"ForgetDevice\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_ForgotPasswordCommand = async (input, context) => {\n const headers = sharedHeaders(\"ForgotPassword\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_GetCSVHeaderCommand = async (input, context) => {\n const headers = sharedHeaders(\"GetCSVHeader\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_GetDeviceCommand = async (input, context) => {\n const headers = sharedHeaders(\"GetDevice\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_GetGroupCommand = async (input, context) => {\n const headers = sharedHeaders(\"GetGroup\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_GetIdentityProviderByIdentifierCommand = async (input, context) => {\n const headers = sharedHeaders(\"GetIdentityProviderByIdentifier\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_GetLogDeliveryConfigurationCommand = async (input, context) => {\n const headers = sharedHeaders(\"GetLogDeliveryConfiguration\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_GetSigningCertificateCommand = async (input, context) => {\n const headers = sharedHeaders(\"GetSigningCertificate\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_GetUICustomizationCommand = async (input, context) => {\n const headers = sharedHeaders(\"GetUICustomization\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_GetUserCommand = async (input, context) => {\n const headers = sharedHeaders(\"GetUser\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_GetUserAttributeVerificationCodeCommand = async (input, context) => {\n const headers = sharedHeaders(\"GetUserAttributeVerificationCode\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_GetUserPoolMfaConfigCommand = async (input, context) => {\n const headers = sharedHeaders(\"GetUserPoolMfaConfig\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_GlobalSignOutCommand = async (input, context) => {\n const headers = sharedHeaders(\"GlobalSignOut\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_InitiateAuthCommand = async (input, context) => {\n const headers = sharedHeaders(\"InitiateAuth\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_ListDevicesCommand = async (input, context) => {\n const headers = sharedHeaders(\"ListDevices\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_ListGroupsCommand = async (input, context) => {\n const headers = sharedHeaders(\"ListGroups\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_ListIdentityProvidersCommand = async (input, context) => {\n const headers = sharedHeaders(\"ListIdentityProviders\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_ListResourceServersCommand = async (input, context) => {\n const headers = sharedHeaders(\"ListResourceServers\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_ListTagsForResourceCommand = async (input, context) => {\n const headers = sharedHeaders(\"ListTagsForResource\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_ListUserImportJobsCommand = async (input, context) => {\n const headers = sharedHeaders(\"ListUserImportJobs\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_ListUserPoolClientsCommand = async (input, context) => {\n const headers = sharedHeaders(\"ListUserPoolClients\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_ListUserPoolsCommand = async (input, context) => {\n const headers = sharedHeaders(\"ListUserPools\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_ListUsersCommand = async (input, context) => {\n const headers = sharedHeaders(\"ListUsers\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_ListUsersInGroupCommand = async (input, context) => {\n const headers = sharedHeaders(\"ListUsersInGroup\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_ResendConfirmationCodeCommand = async (input, context) => {\n const headers = sharedHeaders(\"ResendConfirmationCode\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_RespondToAuthChallengeCommand = async (input, context) => {\n const headers = sharedHeaders(\"RespondToAuthChallenge\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_RevokeTokenCommand = async (input, context) => {\n const headers = sharedHeaders(\"RevokeToken\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_SetLogDeliveryConfigurationCommand = async (input, context) => {\n const headers = sharedHeaders(\"SetLogDeliveryConfiguration\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_SetRiskConfigurationCommand = async (input, context) => {\n const headers = sharedHeaders(\"SetRiskConfiguration\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_SetUICustomizationCommand = async (input, context) => {\n const headers = sharedHeaders(\"SetUICustomization\");\n let body;\n body = JSON.stringify(se_SetUICustomizationRequest(input, context));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_SetUserMFAPreferenceCommand = async (input, context) => {\n const headers = sharedHeaders(\"SetUserMFAPreference\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_SetUserPoolMfaConfigCommand = async (input, context) => {\n const headers = sharedHeaders(\"SetUserPoolMfaConfig\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_SetUserSettingsCommand = async (input, context) => {\n const headers = sharedHeaders(\"SetUserSettings\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_SignUpCommand = async (input, context) => {\n const headers = sharedHeaders(\"SignUp\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_StartUserImportJobCommand = async (input, context) => {\n const headers = sharedHeaders(\"StartUserImportJob\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_StopUserImportJobCommand = async (input, context) => {\n const headers = sharedHeaders(\"StopUserImportJob\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_TagResourceCommand = async (input, context) => {\n const headers = sharedHeaders(\"TagResource\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_UntagResourceCommand = async (input, context) => {\n const headers = sharedHeaders(\"UntagResource\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_UpdateAuthEventFeedbackCommand = async (input, context) => {\n const headers = sharedHeaders(\"UpdateAuthEventFeedback\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_UpdateDeviceStatusCommand = async (input, context) => {\n const headers = sharedHeaders(\"UpdateDeviceStatus\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_UpdateGroupCommand = async (input, context) => {\n const headers = sharedHeaders(\"UpdateGroup\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_UpdateIdentityProviderCommand = async (input, context) => {\n const headers = sharedHeaders(\"UpdateIdentityProvider\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_UpdateResourceServerCommand = async (input, context) => {\n const headers = sharedHeaders(\"UpdateResourceServer\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_UpdateUserAttributesCommand = async (input, context) => {\n const headers = sharedHeaders(\"UpdateUserAttributes\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_UpdateUserPoolCommand = async (input, context) => {\n const headers = sharedHeaders(\"UpdateUserPool\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_UpdateUserPoolClientCommand = async (input, context) => {\n const headers = sharedHeaders(\"UpdateUserPoolClient\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_UpdateUserPoolDomainCommand = async (input, context) => {\n const headers = sharedHeaders(\"UpdateUserPoolDomain\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_VerifySoftwareTokenCommand = async (input, context) => {\n const headers = sharedHeaders(\"VerifySoftwareToken\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const se_VerifyUserAttributeCommand = async (input, context) => {\n const headers = sharedHeaders(\"VerifyUserAttribute\");\n let body;\n body = JSON.stringify(_json(input));\n return buildHttpRpcRequest(context, headers, \"/\", undefined, body);\n};\nexport const de_AddCustomAttributesCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_AddCustomAttributesCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_AddCustomAttributesCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserImportInProgressException\":\n case \"com.amazonaws.cognitoidentityprovider#UserImportInProgressException\":\n throw await de_UserImportInProgressExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_AdminAddUserToGroupCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_AdminAddUserToGroupCommandError(output, context);\n }\n await collectBody(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output),\n };\n return response;\n};\nconst de_AdminAddUserToGroupCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_AdminConfirmSignUpCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_AdminConfirmSignUpCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_AdminConfirmSignUpCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidLambdaResponseException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidLambdaResponseException\":\n throw await de_InvalidLambdaResponseExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.cognitoidentityprovider#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyFailedAttemptsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyFailedAttemptsException\":\n throw await de_TooManyFailedAttemptsExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnexpectedLambdaException\":\n case \"com.amazonaws.cognitoidentityprovider#UnexpectedLambdaException\":\n throw await de_UnexpectedLambdaExceptionRes(parsedOutput, context);\n case \"UserLambdaValidationException\":\n case \"com.amazonaws.cognitoidentityprovider#UserLambdaValidationException\":\n throw await de_UserLambdaValidationExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_AdminCreateUserCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_AdminCreateUserCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_AdminCreateUserResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_AdminCreateUserCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"CodeDeliveryFailureException\":\n case \"com.amazonaws.cognitoidentityprovider#CodeDeliveryFailureException\":\n throw await de_CodeDeliveryFailureExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidLambdaResponseException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidLambdaResponseException\":\n throw await de_InvalidLambdaResponseExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"InvalidPasswordException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidPasswordException\":\n throw await de_InvalidPasswordExceptionRes(parsedOutput, context);\n case \"InvalidSmsRoleAccessPolicyException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidSmsRoleAccessPolicyException\":\n throw await de_InvalidSmsRoleAccessPolicyExceptionRes(parsedOutput, context);\n case \"InvalidSmsRoleTrustRelationshipException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidSmsRoleTrustRelationshipException\":\n throw await de_InvalidSmsRoleTrustRelationshipExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"PreconditionNotMetException\":\n case \"com.amazonaws.cognitoidentityprovider#PreconditionNotMetException\":\n throw await de_PreconditionNotMetExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnexpectedLambdaException\":\n case \"com.amazonaws.cognitoidentityprovider#UnexpectedLambdaException\":\n throw await de_UnexpectedLambdaExceptionRes(parsedOutput, context);\n case \"UnsupportedUserStateException\":\n case \"com.amazonaws.cognitoidentityprovider#UnsupportedUserStateException\":\n throw await de_UnsupportedUserStateExceptionRes(parsedOutput, context);\n case \"UserLambdaValidationException\":\n case \"com.amazonaws.cognitoidentityprovider#UserLambdaValidationException\":\n throw await de_UserLambdaValidationExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n case \"UsernameExistsException\":\n case \"com.amazonaws.cognitoidentityprovider#UsernameExistsException\":\n throw await de_UsernameExistsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_AdminDeleteUserCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_AdminDeleteUserCommandError(output, context);\n }\n await collectBody(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output),\n };\n return response;\n};\nconst de_AdminDeleteUserCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_AdminDeleteUserAttributesCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_AdminDeleteUserAttributesCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_AdminDeleteUserAttributesCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_AdminDisableProviderForUserCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_AdminDisableProviderForUserCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_AdminDisableProviderForUserCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"AliasExistsException\":\n case \"com.amazonaws.cognitoidentityprovider#AliasExistsException\":\n throw await de_AliasExistsExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_AdminDisableUserCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_AdminDisableUserCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_AdminDisableUserCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_AdminEnableUserCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_AdminEnableUserCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_AdminEnableUserCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_AdminForgetDeviceCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_AdminForgetDeviceCommandError(output, context);\n }\n await collectBody(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output),\n };\n return response;\n};\nconst de_AdminForgetDeviceCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"InvalidUserPoolConfigurationException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidUserPoolConfigurationException\":\n throw await de_InvalidUserPoolConfigurationExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_AdminGetDeviceCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_AdminGetDeviceCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_AdminGetDeviceResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_AdminGetDeviceCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"InvalidUserPoolConfigurationException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidUserPoolConfigurationException\":\n throw await de_InvalidUserPoolConfigurationExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_AdminGetUserCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_AdminGetUserCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_AdminGetUserResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_AdminGetUserCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_AdminInitiateAuthCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_AdminInitiateAuthCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_AdminInitiateAuthCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidLambdaResponseException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidLambdaResponseException\":\n throw await de_InvalidLambdaResponseExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"InvalidSmsRoleAccessPolicyException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidSmsRoleAccessPolicyException\":\n throw await de_InvalidSmsRoleAccessPolicyExceptionRes(parsedOutput, context);\n case \"InvalidSmsRoleTrustRelationshipException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidSmsRoleTrustRelationshipException\":\n throw await de_InvalidSmsRoleTrustRelationshipExceptionRes(parsedOutput, context);\n case \"InvalidUserPoolConfigurationException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidUserPoolConfigurationException\":\n throw await de_InvalidUserPoolConfigurationExceptionRes(parsedOutput, context);\n case \"MFAMethodNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#MFAMethodNotFoundException\":\n throw await de_MFAMethodNotFoundExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"PasswordResetRequiredException\":\n case \"com.amazonaws.cognitoidentityprovider#PasswordResetRequiredException\":\n throw await de_PasswordResetRequiredExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnexpectedLambdaException\":\n case \"com.amazonaws.cognitoidentityprovider#UnexpectedLambdaException\":\n throw await de_UnexpectedLambdaExceptionRes(parsedOutput, context);\n case \"UserLambdaValidationException\":\n case \"com.amazonaws.cognitoidentityprovider#UserLambdaValidationException\":\n throw await de_UserLambdaValidationExceptionRes(parsedOutput, context);\n case \"UserNotConfirmedException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotConfirmedException\":\n throw await de_UserNotConfirmedExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_AdminLinkProviderForUserCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_AdminLinkProviderForUserCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_AdminLinkProviderForUserCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"AliasExistsException\":\n case \"com.amazonaws.cognitoidentityprovider#AliasExistsException\":\n throw await de_AliasExistsExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.cognitoidentityprovider#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_AdminListDevicesCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_AdminListDevicesCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_AdminListDevicesResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_AdminListDevicesCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"InvalidUserPoolConfigurationException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidUserPoolConfigurationException\":\n throw await de_InvalidUserPoolConfigurationExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_AdminListGroupsForUserCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_AdminListGroupsForUserCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_AdminListGroupsForUserResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_AdminListGroupsForUserCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_AdminListUserAuthEventsCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_AdminListUserAuthEventsCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_AdminListUserAuthEventsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_AdminListUserAuthEventsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n case \"UserPoolAddOnNotEnabledException\":\n case \"com.amazonaws.cognitoidentityprovider#UserPoolAddOnNotEnabledException\":\n throw await de_UserPoolAddOnNotEnabledExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_AdminRemoveUserFromGroupCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_AdminRemoveUserFromGroupCommandError(output, context);\n }\n await collectBody(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output),\n };\n return response;\n};\nconst de_AdminRemoveUserFromGroupCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_AdminResetUserPasswordCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_AdminResetUserPasswordCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_AdminResetUserPasswordCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidEmailRoleAccessPolicyException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidEmailRoleAccessPolicyException\":\n throw await de_InvalidEmailRoleAccessPolicyExceptionRes(parsedOutput, context);\n case \"InvalidLambdaResponseException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidLambdaResponseException\":\n throw await de_InvalidLambdaResponseExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"InvalidSmsRoleAccessPolicyException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidSmsRoleAccessPolicyException\":\n throw await de_InvalidSmsRoleAccessPolicyExceptionRes(parsedOutput, context);\n case \"InvalidSmsRoleTrustRelationshipException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidSmsRoleTrustRelationshipException\":\n throw await de_InvalidSmsRoleTrustRelationshipExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.cognitoidentityprovider#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnexpectedLambdaException\":\n case \"com.amazonaws.cognitoidentityprovider#UnexpectedLambdaException\":\n throw await de_UnexpectedLambdaExceptionRes(parsedOutput, context);\n case \"UserLambdaValidationException\":\n case \"com.amazonaws.cognitoidentityprovider#UserLambdaValidationException\":\n throw await de_UserLambdaValidationExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_AdminRespondToAuthChallengeCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_AdminRespondToAuthChallengeCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_AdminRespondToAuthChallengeCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"AliasExistsException\":\n case \"com.amazonaws.cognitoidentityprovider#AliasExistsException\":\n throw await de_AliasExistsExceptionRes(parsedOutput, context);\n case \"CodeMismatchException\":\n case \"com.amazonaws.cognitoidentityprovider#CodeMismatchException\":\n throw await de_CodeMismatchExceptionRes(parsedOutput, context);\n case \"ExpiredCodeException\":\n case \"com.amazonaws.cognitoidentityprovider#ExpiredCodeException\":\n throw await de_ExpiredCodeExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidLambdaResponseException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidLambdaResponseException\":\n throw await de_InvalidLambdaResponseExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"InvalidPasswordException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidPasswordException\":\n throw await de_InvalidPasswordExceptionRes(parsedOutput, context);\n case \"InvalidSmsRoleAccessPolicyException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidSmsRoleAccessPolicyException\":\n throw await de_InvalidSmsRoleAccessPolicyExceptionRes(parsedOutput, context);\n case \"InvalidSmsRoleTrustRelationshipException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidSmsRoleTrustRelationshipException\":\n throw await de_InvalidSmsRoleTrustRelationshipExceptionRes(parsedOutput, context);\n case \"InvalidUserPoolConfigurationException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidUserPoolConfigurationException\":\n throw await de_InvalidUserPoolConfigurationExceptionRes(parsedOutput, context);\n case \"MFAMethodNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#MFAMethodNotFoundException\":\n throw await de_MFAMethodNotFoundExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"PasswordResetRequiredException\":\n case \"com.amazonaws.cognitoidentityprovider#PasswordResetRequiredException\":\n throw await de_PasswordResetRequiredExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"SoftwareTokenMFANotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#SoftwareTokenMFANotFoundException\":\n throw await de_SoftwareTokenMFANotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnexpectedLambdaException\":\n case \"com.amazonaws.cognitoidentityprovider#UnexpectedLambdaException\":\n throw await de_UnexpectedLambdaExceptionRes(parsedOutput, context);\n case \"UserLambdaValidationException\":\n case \"com.amazonaws.cognitoidentityprovider#UserLambdaValidationException\":\n throw await de_UserLambdaValidationExceptionRes(parsedOutput, context);\n case \"UserNotConfirmedException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotConfirmedException\":\n throw await de_UserNotConfirmedExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_AdminSetUserMFAPreferenceCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_AdminSetUserMFAPreferenceCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_AdminSetUserMFAPreferenceCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"PasswordResetRequiredException\":\n case \"com.amazonaws.cognitoidentityprovider#PasswordResetRequiredException\":\n throw await de_PasswordResetRequiredExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"UserNotConfirmedException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotConfirmedException\":\n throw await de_UserNotConfirmedExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_AdminSetUserPasswordCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_AdminSetUserPasswordCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_AdminSetUserPasswordCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"InvalidPasswordException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidPasswordException\":\n throw await de_InvalidPasswordExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_AdminSetUserSettingsCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_AdminSetUserSettingsCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_AdminSetUserSettingsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_AdminUpdateAuthEventFeedbackCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_AdminUpdateAuthEventFeedbackCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_AdminUpdateAuthEventFeedbackCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n case \"UserPoolAddOnNotEnabledException\":\n case \"com.amazonaws.cognitoidentityprovider#UserPoolAddOnNotEnabledException\":\n throw await de_UserPoolAddOnNotEnabledExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_AdminUpdateDeviceStatusCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_AdminUpdateDeviceStatusCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_AdminUpdateDeviceStatusCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"InvalidUserPoolConfigurationException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidUserPoolConfigurationException\":\n throw await de_InvalidUserPoolConfigurationExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_AdminUpdateUserAttributesCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_AdminUpdateUserAttributesCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_AdminUpdateUserAttributesCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"AliasExistsException\":\n case \"com.amazonaws.cognitoidentityprovider#AliasExistsException\":\n throw await de_AliasExistsExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidEmailRoleAccessPolicyException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidEmailRoleAccessPolicyException\":\n throw await de_InvalidEmailRoleAccessPolicyExceptionRes(parsedOutput, context);\n case \"InvalidLambdaResponseException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidLambdaResponseException\":\n throw await de_InvalidLambdaResponseExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"InvalidSmsRoleAccessPolicyException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidSmsRoleAccessPolicyException\":\n throw await de_InvalidSmsRoleAccessPolicyExceptionRes(parsedOutput, context);\n case \"InvalidSmsRoleTrustRelationshipException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidSmsRoleTrustRelationshipException\":\n throw await de_InvalidSmsRoleTrustRelationshipExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnexpectedLambdaException\":\n case \"com.amazonaws.cognitoidentityprovider#UnexpectedLambdaException\":\n throw await de_UnexpectedLambdaExceptionRes(parsedOutput, context);\n case \"UserLambdaValidationException\":\n case \"com.amazonaws.cognitoidentityprovider#UserLambdaValidationException\":\n throw await de_UserLambdaValidationExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_AdminUserGlobalSignOutCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_AdminUserGlobalSignOutCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_AdminUserGlobalSignOutCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_AssociateSoftwareTokenCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_AssociateSoftwareTokenCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_AssociateSoftwareTokenCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ConcurrentModificationException\":\n case \"com.amazonaws.cognitoidentityprovider#ConcurrentModificationException\":\n throw await de_ConcurrentModificationExceptionRes(parsedOutput, context);\n case \"ForbiddenException\":\n case \"com.amazonaws.cognitoidentityprovider#ForbiddenException\":\n throw await de_ForbiddenExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"SoftwareTokenMFANotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#SoftwareTokenMFANotFoundException\":\n throw await de_SoftwareTokenMFANotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_ChangePasswordCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_ChangePasswordCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_ChangePasswordCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ForbiddenException\":\n case \"com.amazonaws.cognitoidentityprovider#ForbiddenException\":\n throw await de_ForbiddenExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"InvalidPasswordException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidPasswordException\":\n throw await de_InvalidPasswordExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.cognitoidentityprovider#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"PasswordResetRequiredException\":\n case \"com.amazonaws.cognitoidentityprovider#PasswordResetRequiredException\":\n throw await de_PasswordResetRequiredExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserNotConfirmedException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotConfirmedException\":\n throw await de_UserNotConfirmedExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_ConfirmDeviceCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_ConfirmDeviceCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_ConfirmDeviceCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ForbiddenException\":\n case \"com.amazonaws.cognitoidentityprovider#ForbiddenException\":\n throw await de_ForbiddenExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidLambdaResponseException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidLambdaResponseException\":\n throw await de_InvalidLambdaResponseExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"InvalidPasswordException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidPasswordException\":\n throw await de_InvalidPasswordExceptionRes(parsedOutput, context);\n case \"InvalidUserPoolConfigurationException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidUserPoolConfigurationException\":\n throw await de_InvalidUserPoolConfigurationExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"PasswordResetRequiredException\":\n case \"com.amazonaws.cognitoidentityprovider#PasswordResetRequiredException\":\n throw await de_PasswordResetRequiredExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserNotConfirmedException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotConfirmedException\":\n throw await de_UserNotConfirmedExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n case \"UsernameExistsException\":\n case \"com.amazonaws.cognitoidentityprovider#UsernameExistsException\":\n throw await de_UsernameExistsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_ConfirmForgotPasswordCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_ConfirmForgotPasswordCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_ConfirmForgotPasswordCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"CodeMismatchException\":\n case \"com.amazonaws.cognitoidentityprovider#CodeMismatchException\":\n throw await de_CodeMismatchExceptionRes(parsedOutput, context);\n case \"ExpiredCodeException\":\n case \"com.amazonaws.cognitoidentityprovider#ExpiredCodeException\":\n throw await de_ExpiredCodeExceptionRes(parsedOutput, context);\n case \"ForbiddenException\":\n case \"com.amazonaws.cognitoidentityprovider#ForbiddenException\":\n throw await de_ForbiddenExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidLambdaResponseException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidLambdaResponseException\":\n throw await de_InvalidLambdaResponseExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"InvalidPasswordException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidPasswordException\":\n throw await de_InvalidPasswordExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.cognitoidentityprovider#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyFailedAttemptsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyFailedAttemptsException\":\n throw await de_TooManyFailedAttemptsExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnexpectedLambdaException\":\n case \"com.amazonaws.cognitoidentityprovider#UnexpectedLambdaException\":\n throw await de_UnexpectedLambdaExceptionRes(parsedOutput, context);\n case \"UserLambdaValidationException\":\n case \"com.amazonaws.cognitoidentityprovider#UserLambdaValidationException\":\n throw await de_UserLambdaValidationExceptionRes(parsedOutput, context);\n case \"UserNotConfirmedException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotConfirmedException\":\n throw await de_UserNotConfirmedExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_ConfirmSignUpCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_ConfirmSignUpCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_ConfirmSignUpCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"AliasExistsException\":\n case \"com.amazonaws.cognitoidentityprovider#AliasExistsException\":\n throw await de_AliasExistsExceptionRes(parsedOutput, context);\n case \"CodeMismatchException\":\n case \"com.amazonaws.cognitoidentityprovider#CodeMismatchException\":\n throw await de_CodeMismatchExceptionRes(parsedOutput, context);\n case \"ExpiredCodeException\":\n case \"com.amazonaws.cognitoidentityprovider#ExpiredCodeException\":\n throw await de_ExpiredCodeExceptionRes(parsedOutput, context);\n case \"ForbiddenException\":\n case \"com.amazonaws.cognitoidentityprovider#ForbiddenException\":\n throw await de_ForbiddenExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidLambdaResponseException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidLambdaResponseException\":\n throw await de_InvalidLambdaResponseExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.cognitoidentityprovider#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyFailedAttemptsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyFailedAttemptsException\":\n throw await de_TooManyFailedAttemptsExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnexpectedLambdaException\":\n case \"com.amazonaws.cognitoidentityprovider#UnexpectedLambdaException\":\n throw await de_UnexpectedLambdaExceptionRes(parsedOutput, context);\n case \"UserLambdaValidationException\":\n case \"com.amazonaws.cognitoidentityprovider#UserLambdaValidationException\":\n throw await de_UserLambdaValidationExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_CreateGroupCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CreateGroupCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_CreateGroupResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_CreateGroupCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"GroupExistsException\":\n case \"com.amazonaws.cognitoidentityprovider#GroupExistsException\":\n throw await de_GroupExistsExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.cognitoidentityprovider#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_CreateIdentityProviderCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CreateIdentityProviderCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_CreateIdentityProviderResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_CreateIdentityProviderCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"DuplicateProviderException\":\n case \"com.amazonaws.cognitoidentityprovider#DuplicateProviderException\":\n throw await de_DuplicateProviderExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.cognitoidentityprovider#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_CreateResourceServerCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CreateResourceServerCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_CreateResourceServerCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.cognitoidentityprovider#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_CreateUserImportJobCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CreateUserImportJobCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_CreateUserImportJobResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_CreateUserImportJobCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.cognitoidentityprovider#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"PreconditionNotMetException\":\n case \"com.amazonaws.cognitoidentityprovider#PreconditionNotMetException\":\n throw await de_PreconditionNotMetExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_CreateUserPoolCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CreateUserPoolCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_CreateUserPoolResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_CreateUserPoolCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidEmailRoleAccessPolicyException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidEmailRoleAccessPolicyException\":\n throw await de_InvalidEmailRoleAccessPolicyExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"InvalidSmsRoleAccessPolicyException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidSmsRoleAccessPolicyException\":\n throw await de_InvalidSmsRoleAccessPolicyExceptionRes(parsedOutput, context);\n case \"InvalidSmsRoleTrustRelationshipException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidSmsRoleTrustRelationshipException\":\n throw await de_InvalidSmsRoleTrustRelationshipExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.cognitoidentityprovider#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserPoolTaggingException\":\n case \"com.amazonaws.cognitoidentityprovider#UserPoolTaggingException\":\n throw await de_UserPoolTaggingExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_CreateUserPoolClientCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CreateUserPoolClientCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_CreateUserPoolClientResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_CreateUserPoolClientCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidOAuthFlowException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidOAuthFlowException\":\n throw await de_InvalidOAuthFlowExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.cognitoidentityprovider#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"ScopeDoesNotExistException\":\n case \"com.amazonaws.cognitoidentityprovider#ScopeDoesNotExistException\":\n throw await de_ScopeDoesNotExistExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_CreateUserPoolDomainCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_CreateUserPoolDomainCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_CreateUserPoolDomainCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.cognitoidentityprovider#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_DeleteGroupCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_DeleteGroupCommandError(output, context);\n }\n await collectBody(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output),\n };\n return response;\n};\nconst de_DeleteGroupCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_DeleteIdentityProviderCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_DeleteIdentityProviderCommandError(output, context);\n }\n await collectBody(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output),\n };\n return response;\n};\nconst de_DeleteIdentityProviderCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ConcurrentModificationException\":\n case \"com.amazonaws.cognitoidentityprovider#ConcurrentModificationException\":\n throw await de_ConcurrentModificationExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnsupportedIdentityProviderException\":\n case \"com.amazonaws.cognitoidentityprovider#UnsupportedIdentityProviderException\":\n throw await de_UnsupportedIdentityProviderExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_DeleteResourceServerCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_DeleteResourceServerCommandError(output, context);\n }\n await collectBody(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output),\n };\n return response;\n};\nconst de_DeleteResourceServerCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_DeleteUserCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_DeleteUserCommandError(output, context);\n }\n await collectBody(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output),\n };\n return response;\n};\nconst de_DeleteUserCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ForbiddenException\":\n case \"com.amazonaws.cognitoidentityprovider#ForbiddenException\":\n throw await de_ForbiddenExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"PasswordResetRequiredException\":\n case \"com.amazonaws.cognitoidentityprovider#PasswordResetRequiredException\":\n throw await de_PasswordResetRequiredExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserNotConfirmedException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotConfirmedException\":\n throw await de_UserNotConfirmedExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_DeleteUserAttributesCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_DeleteUserAttributesCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_DeleteUserAttributesCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ForbiddenException\":\n case \"com.amazonaws.cognitoidentityprovider#ForbiddenException\":\n throw await de_ForbiddenExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"PasswordResetRequiredException\":\n case \"com.amazonaws.cognitoidentityprovider#PasswordResetRequiredException\":\n throw await de_PasswordResetRequiredExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserNotConfirmedException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotConfirmedException\":\n throw await de_UserNotConfirmedExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_DeleteUserPoolCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_DeleteUserPoolCommandError(output, context);\n }\n await collectBody(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output),\n };\n return response;\n};\nconst de_DeleteUserPoolCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserImportInProgressException\":\n case \"com.amazonaws.cognitoidentityprovider#UserImportInProgressException\":\n throw await de_UserImportInProgressExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_DeleteUserPoolClientCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_DeleteUserPoolClientCommandError(output, context);\n }\n await collectBody(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output),\n };\n return response;\n};\nconst de_DeleteUserPoolClientCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ConcurrentModificationException\":\n case \"com.amazonaws.cognitoidentityprovider#ConcurrentModificationException\":\n throw await de_ConcurrentModificationExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_DeleteUserPoolDomainCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_DeleteUserPoolDomainCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_DeleteUserPoolDomainCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_DescribeIdentityProviderCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_DescribeIdentityProviderCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_DescribeIdentityProviderResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_DescribeIdentityProviderCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_DescribeResourceServerCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_DescribeResourceServerCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_DescribeResourceServerCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_DescribeRiskConfigurationCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_DescribeRiskConfigurationCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_DescribeRiskConfigurationResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_DescribeRiskConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserPoolAddOnNotEnabledException\":\n case \"com.amazonaws.cognitoidentityprovider#UserPoolAddOnNotEnabledException\":\n throw await de_UserPoolAddOnNotEnabledExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_DescribeUserImportJobCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_DescribeUserImportJobCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_DescribeUserImportJobResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_DescribeUserImportJobCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_DescribeUserPoolCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_DescribeUserPoolCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_DescribeUserPoolResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_DescribeUserPoolCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserPoolTaggingException\":\n case \"com.amazonaws.cognitoidentityprovider#UserPoolTaggingException\":\n throw await de_UserPoolTaggingExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_DescribeUserPoolClientCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_DescribeUserPoolClientCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_DescribeUserPoolClientResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_DescribeUserPoolClientCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_DescribeUserPoolDomainCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_DescribeUserPoolDomainCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_DescribeUserPoolDomainCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_ForgetDeviceCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_ForgetDeviceCommandError(output, context);\n }\n await collectBody(output.body, context);\n const response = {\n $metadata: deserializeMetadata(output),\n };\n return response;\n};\nconst de_ForgetDeviceCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ForbiddenException\":\n case \"com.amazonaws.cognitoidentityprovider#ForbiddenException\":\n throw await de_ForbiddenExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"InvalidUserPoolConfigurationException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidUserPoolConfigurationException\":\n throw await de_InvalidUserPoolConfigurationExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"PasswordResetRequiredException\":\n case \"com.amazonaws.cognitoidentityprovider#PasswordResetRequiredException\":\n throw await de_PasswordResetRequiredExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserNotConfirmedException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotConfirmedException\":\n throw await de_UserNotConfirmedExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_ForgotPasswordCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_ForgotPasswordCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_ForgotPasswordCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"CodeDeliveryFailureException\":\n case \"com.amazonaws.cognitoidentityprovider#CodeDeliveryFailureException\":\n throw await de_CodeDeliveryFailureExceptionRes(parsedOutput, context);\n case \"ForbiddenException\":\n case \"com.amazonaws.cognitoidentityprovider#ForbiddenException\":\n throw await de_ForbiddenExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidEmailRoleAccessPolicyException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidEmailRoleAccessPolicyException\":\n throw await de_InvalidEmailRoleAccessPolicyExceptionRes(parsedOutput, context);\n case \"InvalidLambdaResponseException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidLambdaResponseException\":\n throw await de_InvalidLambdaResponseExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"InvalidSmsRoleAccessPolicyException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidSmsRoleAccessPolicyException\":\n throw await de_InvalidSmsRoleAccessPolicyExceptionRes(parsedOutput, context);\n case \"InvalidSmsRoleTrustRelationshipException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidSmsRoleTrustRelationshipException\":\n throw await de_InvalidSmsRoleTrustRelationshipExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.cognitoidentityprovider#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnexpectedLambdaException\":\n case \"com.amazonaws.cognitoidentityprovider#UnexpectedLambdaException\":\n throw await de_UnexpectedLambdaExceptionRes(parsedOutput, context);\n case \"UserLambdaValidationException\":\n case \"com.amazonaws.cognitoidentityprovider#UserLambdaValidationException\":\n throw await de_UserLambdaValidationExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_GetCSVHeaderCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_GetCSVHeaderCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_GetCSVHeaderCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_GetDeviceCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_GetDeviceCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_GetDeviceResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_GetDeviceCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ForbiddenException\":\n case \"com.amazonaws.cognitoidentityprovider#ForbiddenException\":\n throw await de_ForbiddenExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"InvalidUserPoolConfigurationException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidUserPoolConfigurationException\":\n throw await de_InvalidUserPoolConfigurationExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"PasswordResetRequiredException\":\n case \"com.amazonaws.cognitoidentityprovider#PasswordResetRequiredException\":\n throw await de_PasswordResetRequiredExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserNotConfirmedException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotConfirmedException\":\n throw await de_UserNotConfirmedExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_GetGroupCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_GetGroupCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_GetGroupResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_GetGroupCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_GetIdentityProviderByIdentifierCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_GetIdentityProviderByIdentifierCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_GetIdentityProviderByIdentifierResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_GetIdentityProviderByIdentifierCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_GetLogDeliveryConfigurationCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_GetLogDeliveryConfigurationCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_GetLogDeliveryConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_GetSigningCertificateCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_GetSigningCertificateCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_GetSigningCertificateCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_GetUICustomizationCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_GetUICustomizationCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_GetUICustomizationResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_GetUICustomizationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_GetUserCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_GetUserCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_GetUserCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ForbiddenException\":\n case \"com.amazonaws.cognitoidentityprovider#ForbiddenException\":\n throw await de_ForbiddenExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"PasswordResetRequiredException\":\n case \"com.amazonaws.cognitoidentityprovider#PasswordResetRequiredException\":\n throw await de_PasswordResetRequiredExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserNotConfirmedException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotConfirmedException\":\n throw await de_UserNotConfirmedExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_GetUserAttributeVerificationCodeCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_GetUserAttributeVerificationCodeCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_GetUserAttributeVerificationCodeCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"CodeDeliveryFailureException\":\n case \"com.amazonaws.cognitoidentityprovider#CodeDeliveryFailureException\":\n throw await de_CodeDeliveryFailureExceptionRes(parsedOutput, context);\n case \"ForbiddenException\":\n case \"com.amazonaws.cognitoidentityprovider#ForbiddenException\":\n throw await de_ForbiddenExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidEmailRoleAccessPolicyException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidEmailRoleAccessPolicyException\":\n throw await de_InvalidEmailRoleAccessPolicyExceptionRes(parsedOutput, context);\n case \"InvalidLambdaResponseException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidLambdaResponseException\":\n throw await de_InvalidLambdaResponseExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"InvalidSmsRoleAccessPolicyException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidSmsRoleAccessPolicyException\":\n throw await de_InvalidSmsRoleAccessPolicyExceptionRes(parsedOutput, context);\n case \"InvalidSmsRoleTrustRelationshipException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidSmsRoleTrustRelationshipException\":\n throw await de_InvalidSmsRoleTrustRelationshipExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.cognitoidentityprovider#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"PasswordResetRequiredException\":\n case \"com.amazonaws.cognitoidentityprovider#PasswordResetRequiredException\":\n throw await de_PasswordResetRequiredExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnexpectedLambdaException\":\n case \"com.amazonaws.cognitoidentityprovider#UnexpectedLambdaException\":\n throw await de_UnexpectedLambdaExceptionRes(parsedOutput, context);\n case \"UserLambdaValidationException\":\n case \"com.amazonaws.cognitoidentityprovider#UserLambdaValidationException\":\n throw await de_UserLambdaValidationExceptionRes(parsedOutput, context);\n case \"UserNotConfirmedException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotConfirmedException\":\n throw await de_UserNotConfirmedExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_GetUserPoolMfaConfigCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_GetUserPoolMfaConfigCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_GetUserPoolMfaConfigCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_GlobalSignOutCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_GlobalSignOutCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_GlobalSignOutCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ForbiddenException\":\n case \"com.amazonaws.cognitoidentityprovider#ForbiddenException\":\n throw await de_ForbiddenExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"PasswordResetRequiredException\":\n case \"com.amazonaws.cognitoidentityprovider#PasswordResetRequiredException\":\n throw await de_PasswordResetRequiredExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserNotConfirmedException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotConfirmedException\":\n throw await de_UserNotConfirmedExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_InitiateAuthCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_InitiateAuthCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_InitiateAuthCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ForbiddenException\":\n case \"com.amazonaws.cognitoidentityprovider#ForbiddenException\":\n throw await de_ForbiddenExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidLambdaResponseException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidLambdaResponseException\":\n throw await de_InvalidLambdaResponseExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"InvalidSmsRoleAccessPolicyException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidSmsRoleAccessPolicyException\":\n throw await de_InvalidSmsRoleAccessPolicyExceptionRes(parsedOutput, context);\n case \"InvalidSmsRoleTrustRelationshipException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidSmsRoleTrustRelationshipException\":\n throw await de_InvalidSmsRoleTrustRelationshipExceptionRes(parsedOutput, context);\n case \"InvalidUserPoolConfigurationException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidUserPoolConfigurationException\":\n throw await de_InvalidUserPoolConfigurationExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"PasswordResetRequiredException\":\n case \"com.amazonaws.cognitoidentityprovider#PasswordResetRequiredException\":\n throw await de_PasswordResetRequiredExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnexpectedLambdaException\":\n case \"com.amazonaws.cognitoidentityprovider#UnexpectedLambdaException\":\n throw await de_UnexpectedLambdaExceptionRes(parsedOutput, context);\n case \"UserLambdaValidationException\":\n case \"com.amazonaws.cognitoidentityprovider#UserLambdaValidationException\":\n throw await de_UserLambdaValidationExceptionRes(parsedOutput, context);\n case \"UserNotConfirmedException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotConfirmedException\":\n throw await de_UserNotConfirmedExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_ListDevicesCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_ListDevicesCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_ListDevicesResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_ListDevicesCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ForbiddenException\":\n case \"com.amazonaws.cognitoidentityprovider#ForbiddenException\":\n throw await de_ForbiddenExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"InvalidUserPoolConfigurationException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidUserPoolConfigurationException\":\n throw await de_InvalidUserPoolConfigurationExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"PasswordResetRequiredException\":\n case \"com.amazonaws.cognitoidentityprovider#PasswordResetRequiredException\":\n throw await de_PasswordResetRequiredExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserNotConfirmedException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotConfirmedException\":\n throw await de_UserNotConfirmedExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_ListGroupsCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_ListGroupsCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_ListGroupsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_ListGroupsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_ListIdentityProvidersCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_ListIdentityProvidersCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_ListIdentityProvidersResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_ListIdentityProvidersCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_ListResourceServersCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_ListResourceServersCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_ListResourceServersCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_ListTagsForResourceCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_ListTagsForResourceCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_ListTagsForResourceCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_ListUserImportJobsCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_ListUserImportJobsCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_ListUserImportJobsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_ListUserImportJobsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_ListUserPoolClientsCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_ListUserPoolClientsCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_ListUserPoolClientsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_ListUserPoolsCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_ListUserPoolsCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_ListUserPoolsResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_ListUserPoolsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_ListUsersCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_ListUsersCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_ListUsersResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_ListUsersCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_ListUsersInGroupCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_ListUsersInGroupCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_ListUsersInGroupResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_ListUsersInGroupCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_ResendConfirmationCodeCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_ResendConfirmationCodeCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_ResendConfirmationCodeCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"CodeDeliveryFailureException\":\n case \"com.amazonaws.cognitoidentityprovider#CodeDeliveryFailureException\":\n throw await de_CodeDeliveryFailureExceptionRes(parsedOutput, context);\n case \"ForbiddenException\":\n case \"com.amazonaws.cognitoidentityprovider#ForbiddenException\":\n throw await de_ForbiddenExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidEmailRoleAccessPolicyException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidEmailRoleAccessPolicyException\":\n throw await de_InvalidEmailRoleAccessPolicyExceptionRes(parsedOutput, context);\n case \"InvalidLambdaResponseException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidLambdaResponseException\":\n throw await de_InvalidLambdaResponseExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"InvalidSmsRoleAccessPolicyException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidSmsRoleAccessPolicyException\":\n throw await de_InvalidSmsRoleAccessPolicyExceptionRes(parsedOutput, context);\n case \"InvalidSmsRoleTrustRelationshipException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidSmsRoleTrustRelationshipException\":\n throw await de_InvalidSmsRoleTrustRelationshipExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.cognitoidentityprovider#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnexpectedLambdaException\":\n case \"com.amazonaws.cognitoidentityprovider#UnexpectedLambdaException\":\n throw await de_UnexpectedLambdaExceptionRes(parsedOutput, context);\n case \"UserLambdaValidationException\":\n case \"com.amazonaws.cognitoidentityprovider#UserLambdaValidationException\":\n throw await de_UserLambdaValidationExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_RespondToAuthChallengeCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_RespondToAuthChallengeCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_RespondToAuthChallengeCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"AliasExistsException\":\n case \"com.amazonaws.cognitoidentityprovider#AliasExistsException\":\n throw await de_AliasExistsExceptionRes(parsedOutput, context);\n case \"CodeMismatchException\":\n case \"com.amazonaws.cognitoidentityprovider#CodeMismatchException\":\n throw await de_CodeMismatchExceptionRes(parsedOutput, context);\n case \"ExpiredCodeException\":\n case \"com.amazonaws.cognitoidentityprovider#ExpiredCodeException\":\n throw await de_ExpiredCodeExceptionRes(parsedOutput, context);\n case \"ForbiddenException\":\n case \"com.amazonaws.cognitoidentityprovider#ForbiddenException\":\n throw await de_ForbiddenExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidLambdaResponseException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidLambdaResponseException\":\n throw await de_InvalidLambdaResponseExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"InvalidPasswordException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidPasswordException\":\n throw await de_InvalidPasswordExceptionRes(parsedOutput, context);\n case \"InvalidSmsRoleAccessPolicyException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidSmsRoleAccessPolicyException\":\n throw await de_InvalidSmsRoleAccessPolicyExceptionRes(parsedOutput, context);\n case \"InvalidSmsRoleTrustRelationshipException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidSmsRoleTrustRelationshipException\":\n throw await de_InvalidSmsRoleTrustRelationshipExceptionRes(parsedOutput, context);\n case \"InvalidUserPoolConfigurationException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidUserPoolConfigurationException\":\n throw await de_InvalidUserPoolConfigurationExceptionRes(parsedOutput, context);\n case \"MFAMethodNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#MFAMethodNotFoundException\":\n throw await de_MFAMethodNotFoundExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"PasswordResetRequiredException\":\n case \"com.amazonaws.cognitoidentityprovider#PasswordResetRequiredException\":\n throw await de_PasswordResetRequiredExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"SoftwareTokenMFANotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#SoftwareTokenMFANotFoundException\":\n throw await de_SoftwareTokenMFANotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnexpectedLambdaException\":\n case \"com.amazonaws.cognitoidentityprovider#UnexpectedLambdaException\":\n throw await de_UnexpectedLambdaExceptionRes(parsedOutput, context);\n case \"UserLambdaValidationException\":\n case \"com.amazonaws.cognitoidentityprovider#UserLambdaValidationException\":\n throw await de_UserLambdaValidationExceptionRes(parsedOutput, context);\n case \"UserNotConfirmedException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotConfirmedException\":\n throw await de_UserNotConfirmedExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_RevokeTokenCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_RevokeTokenCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_RevokeTokenCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ForbiddenException\":\n case \"com.amazonaws.cognitoidentityprovider#ForbiddenException\":\n throw await de_ForbiddenExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnauthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#UnauthorizedException\":\n throw await de_UnauthorizedExceptionRes(parsedOutput, context);\n case \"UnsupportedOperationException\":\n case \"com.amazonaws.cognitoidentityprovider#UnsupportedOperationException\":\n throw await de_UnsupportedOperationExceptionRes(parsedOutput, context);\n case \"UnsupportedTokenTypeException\":\n case \"com.amazonaws.cognitoidentityprovider#UnsupportedTokenTypeException\":\n throw await de_UnsupportedTokenTypeExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_SetLogDeliveryConfigurationCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_SetLogDeliveryConfigurationCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_SetLogDeliveryConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_SetRiskConfigurationCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_SetRiskConfigurationCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_SetRiskConfigurationResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_SetRiskConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"CodeDeliveryFailureException\":\n case \"com.amazonaws.cognitoidentityprovider#CodeDeliveryFailureException\":\n throw await de_CodeDeliveryFailureExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidEmailRoleAccessPolicyException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidEmailRoleAccessPolicyException\":\n throw await de_InvalidEmailRoleAccessPolicyExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserPoolAddOnNotEnabledException\":\n case \"com.amazonaws.cognitoidentityprovider#UserPoolAddOnNotEnabledException\":\n throw await de_UserPoolAddOnNotEnabledExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_SetUICustomizationCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_SetUICustomizationCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_SetUICustomizationResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_SetUICustomizationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_SetUserMFAPreferenceCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_SetUserMFAPreferenceCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_SetUserMFAPreferenceCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ForbiddenException\":\n case \"com.amazonaws.cognitoidentityprovider#ForbiddenException\":\n throw await de_ForbiddenExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"PasswordResetRequiredException\":\n case \"com.amazonaws.cognitoidentityprovider#PasswordResetRequiredException\":\n throw await de_PasswordResetRequiredExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"UserNotConfirmedException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotConfirmedException\":\n throw await de_UserNotConfirmedExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_SetUserPoolMfaConfigCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_SetUserPoolMfaConfigCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_SetUserPoolMfaConfigCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"InvalidSmsRoleAccessPolicyException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidSmsRoleAccessPolicyException\":\n throw await de_InvalidSmsRoleAccessPolicyExceptionRes(parsedOutput, context);\n case \"InvalidSmsRoleTrustRelationshipException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidSmsRoleTrustRelationshipException\":\n throw await de_InvalidSmsRoleTrustRelationshipExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_SetUserSettingsCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_SetUserSettingsCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_SetUserSettingsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ForbiddenException\":\n case \"com.amazonaws.cognitoidentityprovider#ForbiddenException\":\n throw await de_ForbiddenExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"PasswordResetRequiredException\":\n case \"com.amazonaws.cognitoidentityprovider#PasswordResetRequiredException\":\n throw await de_PasswordResetRequiredExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"UserNotConfirmedException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotConfirmedException\":\n throw await de_UserNotConfirmedExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_SignUpCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_SignUpCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_SignUpCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"CodeDeliveryFailureException\":\n case \"com.amazonaws.cognitoidentityprovider#CodeDeliveryFailureException\":\n throw await de_CodeDeliveryFailureExceptionRes(parsedOutput, context);\n case \"ForbiddenException\":\n case \"com.amazonaws.cognitoidentityprovider#ForbiddenException\":\n throw await de_ForbiddenExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidEmailRoleAccessPolicyException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidEmailRoleAccessPolicyException\":\n throw await de_InvalidEmailRoleAccessPolicyExceptionRes(parsedOutput, context);\n case \"InvalidLambdaResponseException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidLambdaResponseException\":\n throw await de_InvalidLambdaResponseExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"InvalidPasswordException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidPasswordException\":\n throw await de_InvalidPasswordExceptionRes(parsedOutput, context);\n case \"InvalidSmsRoleAccessPolicyException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidSmsRoleAccessPolicyException\":\n throw await de_InvalidSmsRoleAccessPolicyExceptionRes(parsedOutput, context);\n case \"InvalidSmsRoleTrustRelationshipException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidSmsRoleTrustRelationshipException\":\n throw await de_InvalidSmsRoleTrustRelationshipExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnexpectedLambdaException\":\n case \"com.amazonaws.cognitoidentityprovider#UnexpectedLambdaException\":\n throw await de_UnexpectedLambdaExceptionRes(parsedOutput, context);\n case \"UserLambdaValidationException\":\n case \"com.amazonaws.cognitoidentityprovider#UserLambdaValidationException\":\n throw await de_UserLambdaValidationExceptionRes(parsedOutput, context);\n case \"UsernameExistsException\":\n case \"com.amazonaws.cognitoidentityprovider#UsernameExistsException\":\n throw await de_UsernameExistsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_StartUserImportJobCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_StartUserImportJobCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_StartUserImportJobResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_StartUserImportJobCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"PreconditionNotMetException\":\n case \"com.amazonaws.cognitoidentityprovider#PreconditionNotMetException\":\n throw await de_PreconditionNotMetExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_StopUserImportJobCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_StopUserImportJobCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_StopUserImportJobResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_StopUserImportJobCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"PreconditionNotMetException\":\n case \"com.amazonaws.cognitoidentityprovider#PreconditionNotMetException\":\n throw await de_PreconditionNotMetExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_TagResourceCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_TagResourceCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_TagResourceCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_UntagResourceCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_UntagResourceCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_UntagResourceCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_UpdateAuthEventFeedbackCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_UpdateAuthEventFeedbackCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_UpdateAuthEventFeedbackCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n case \"UserPoolAddOnNotEnabledException\":\n case \"com.amazonaws.cognitoidentityprovider#UserPoolAddOnNotEnabledException\":\n throw await de_UserPoolAddOnNotEnabledExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_UpdateDeviceStatusCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_UpdateDeviceStatusCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_UpdateDeviceStatusCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ForbiddenException\":\n case \"com.amazonaws.cognitoidentityprovider#ForbiddenException\":\n throw await de_ForbiddenExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"InvalidUserPoolConfigurationException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidUserPoolConfigurationException\":\n throw await de_InvalidUserPoolConfigurationExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"PasswordResetRequiredException\":\n case \"com.amazonaws.cognitoidentityprovider#PasswordResetRequiredException\":\n throw await de_PasswordResetRequiredExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserNotConfirmedException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotConfirmedException\":\n throw await de_UserNotConfirmedExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_UpdateGroupCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_UpdateGroupCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_UpdateGroupResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_UpdateGroupCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_UpdateIdentityProviderCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_UpdateIdentityProviderCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_UpdateIdentityProviderResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_UpdateIdentityProviderCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ConcurrentModificationException\":\n case \"com.amazonaws.cognitoidentityprovider#ConcurrentModificationException\":\n throw await de_ConcurrentModificationExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnsupportedIdentityProviderException\":\n case \"com.amazonaws.cognitoidentityprovider#UnsupportedIdentityProviderException\":\n throw await de_UnsupportedIdentityProviderExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_UpdateResourceServerCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_UpdateResourceServerCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_UpdateResourceServerCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_UpdateUserAttributesCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_UpdateUserAttributesCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_UpdateUserAttributesCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"AliasExistsException\":\n case \"com.amazonaws.cognitoidentityprovider#AliasExistsException\":\n throw await de_AliasExistsExceptionRes(parsedOutput, context);\n case \"CodeDeliveryFailureException\":\n case \"com.amazonaws.cognitoidentityprovider#CodeDeliveryFailureException\":\n throw await de_CodeDeliveryFailureExceptionRes(parsedOutput, context);\n case \"CodeMismatchException\":\n case \"com.amazonaws.cognitoidentityprovider#CodeMismatchException\":\n throw await de_CodeMismatchExceptionRes(parsedOutput, context);\n case \"ExpiredCodeException\":\n case \"com.amazonaws.cognitoidentityprovider#ExpiredCodeException\":\n throw await de_ExpiredCodeExceptionRes(parsedOutput, context);\n case \"ForbiddenException\":\n case \"com.amazonaws.cognitoidentityprovider#ForbiddenException\":\n throw await de_ForbiddenExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidEmailRoleAccessPolicyException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidEmailRoleAccessPolicyException\":\n throw await de_InvalidEmailRoleAccessPolicyExceptionRes(parsedOutput, context);\n case \"InvalidLambdaResponseException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidLambdaResponseException\":\n throw await de_InvalidLambdaResponseExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"InvalidSmsRoleAccessPolicyException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidSmsRoleAccessPolicyException\":\n throw await de_InvalidSmsRoleAccessPolicyExceptionRes(parsedOutput, context);\n case \"InvalidSmsRoleTrustRelationshipException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidSmsRoleTrustRelationshipException\":\n throw await de_InvalidSmsRoleTrustRelationshipExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"PasswordResetRequiredException\":\n case \"com.amazonaws.cognitoidentityprovider#PasswordResetRequiredException\":\n throw await de_PasswordResetRequiredExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UnexpectedLambdaException\":\n case \"com.amazonaws.cognitoidentityprovider#UnexpectedLambdaException\":\n throw await de_UnexpectedLambdaExceptionRes(parsedOutput, context);\n case \"UserLambdaValidationException\":\n case \"com.amazonaws.cognitoidentityprovider#UserLambdaValidationException\":\n throw await de_UserLambdaValidationExceptionRes(parsedOutput, context);\n case \"UserNotConfirmedException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotConfirmedException\":\n throw await de_UserNotConfirmedExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_UpdateUserPoolCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_UpdateUserPoolCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_UpdateUserPoolCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ConcurrentModificationException\":\n case \"com.amazonaws.cognitoidentityprovider#ConcurrentModificationException\":\n throw await de_ConcurrentModificationExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidEmailRoleAccessPolicyException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidEmailRoleAccessPolicyException\":\n throw await de_InvalidEmailRoleAccessPolicyExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"InvalidSmsRoleAccessPolicyException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidSmsRoleAccessPolicyException\":\n throw await de_InvalidSmsRoleAccessPolicyExceptionRes(parsedOutput, context);\n case \"InvalidSmsRoleTrustRelationshipException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidSmsRoleTrustRelationshipException\":\n throw await de_InvalidSmsRoleTrustRelationshipExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserImportInProgressException\":\n case \"com.amazonaws.cognitoidentityprovider#UserImportInProgressException\":\n throw await de_UserImportInProgressExceptionRes(parsedOutput, context);\n case \"UserPoolTaggingException\":\n case \"com.amazonaws.cognitoidentityprovider#UserPoolTaggingException\":\n throw await de_UserPoolTaggingExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_UpdateUserPoolClientCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_UpdateUserPoolClientCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = de_UpdateUserPoolClientResponse(data, context);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_UpdateUserPoolClientCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ConcurrentModificationException\":\n case \"com.amazonaws.cognitoidentityprovider#ConcurrentModificationException\":\n throw await de_ConcurrentModificationExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidOAuthFlowException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidOAuthFlowException\":\n throw await de_InvalidOAuthFlowExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"ScopeDoesNotExistException\":\n case \"com.amazonaws.cognitoidentityprovider#ScopeDoesNotExistException\":\n throw await de_ScopeDoesNotExistExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_UpdateUserPoolDomainCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_UpdateUserPoolDomainCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_UpdateUserPoolDomainCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_VerifySoftwareTokenCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_VerifySoftwareTokenCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_VerifySoftwareTokenCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"CodeMismatchException\":\n case \"com.amazonaws.cognitoidentityprovider#CodeMismatchException\":\n throw await de_CodeMismatchExceptionRes(parsedOutput, context);\n case \"EnableSoftwareTokenMFAException\":\n case \"com.amazonaws.cognitoidentityprovider#EnableSoftwareTokenMFAException\":\n throw await de_EnableSoftwareTokenMFAExceptionRes(parsedOutput, context);\n case \"ForbiddenException\":\n case \"com.amazonaws.cognitoidentityprovider#ForbiddenException\":\n throw await de_ForbiddenExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"InvalidUserPoolConfigurationException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidUserPoolConfigurationException\":\n throw await de_InvalidUserPoolConfigurationExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"PasswordResetRequiredException\":\n case \"com.amazonaws.cognitoidentityprovider#PasswordResetRequiredException\":\n throw await de_PasswordResetRequiredExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"SoftwareTokenMFANotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#SoftwareTokenMFANotFoundException\":\n throw await de_SoftwareTokenMFANotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserNotConfirmedException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotConfirmedException\":\n throw await de_UserNotConfirmedExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_VerifyUserAttributeCommand = async (output, context) => {\n if (output.statusCode >= 300) {\n return de_VerifyUserAttributeCommandError(output, context);\n }\n const data = await parseBody(output.body, context);\n let contents = {};\n contents = _json(data);\n const response = {\n $metadata: deserializeMetadata(output),\n ...contents,\n };\n return response;\n};\nconst de_VerifyUserAttributeCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"AliasExistsException\":\n case \"com.amazonaws.cognitoidentityprovider#AliasExistsException\":\n throw await de_AliasExistsExceptionRes(parsedOutput, context);\n case \"CodeMismatchException\":\n case \"com.amazonaws.cognitoidentityprovider#CodeMismatchException\":\n throw await de_CodeMismatchExceptionRes(parsedOutput, context);\n case \"ExpiredCodeException\":\n case \"com.amazonaws.cognitoidentityprovider#ExpiredCodeException\":\n throw await de_ExpiredCodeExceptionRes(parsedOutput, context);\n case \"ForbiddenException\":\n case \"com.amazonaws.cognitoidentityprovider#ForbiddenException\":\n throw await de_ForbiddenExceptionRes(parsedOutput, context);\n case \"InternalErrorException\":\n case \"com.amazonaws.cognitoidentityprovider#InternalErrorException\":\n throw await de_InternalErrorExceptionRes(parsedOutput, context);\n case \"InvalidParameterException\":\n case \"com.amazonaws.cognitoidentityprovider#InvalidParameterException\":\n throw await de_InvalidParameterExceptionRes(parsedOutput, context);\n case \"LimitExceededException\":\n case \"com.amazonaws.cognitoidentityprovider#LimitExceededException\":\n throw await de_LimitExceededExceptionRes(parsedOutput, context);\n case \"NotAuthorizedException\":\n case \"com.amazonaws.cognitoidentityprovider#NotAuthorizedException\":\n throw await de_NotAuthorizedExceptionRes(parsedOutput, context);\n case \"PasswordResetRequiredException\":\n case \"com.amazonaws.cognitoidentityprovider#PasswordResetRequiredException\":\n throw await de_PasswordResetRequiredExceptionRes(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#ResourceNotFoundException\":\n throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.cognitoidentityprovider#TooManyRequestsException\":\n throw await de_TooManyRequestsExceptionRes(parsedOutput, context);\n case \"UserNotConfirmedException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotConfirmedException\":\n throw await de_UserNotConfirmedExceptionRes(parsedOutput, context);\n case \"UserNotFoundException\":\n case \"com.amazonaws.cognitoidentityprovider#UserNotFoundException\":\n throw await de_UserNotFoundExceptionRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nconst de_AliasExistsExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new AliasExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_CodeDeliveryFailureExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new CodeDeliveryFailureException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_CodeMismatchExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new CodeMismatchException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_ConcurrentModificationExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new ConcurrentModificationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_DuplicateProviderExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new DuplicateProviderException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_EnableSoftwareTokenMFAExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new EnableSoftwareTokenMFAException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_ExpiredCodeExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new ExpiredCodeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_ForbiddenExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new ForbiddenException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_GroupExistsExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new GroupExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_InternalErrorExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new InternalErrorException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_InvalidEmailRoleAccessPolicyExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new InvalidEmailRoleAccessPolicyException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_InvalidLambdaResponseExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new InvalidLambdaResponseException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_InvalidOAuthFlowExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new InvalidOAuthFlowException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_InvalidParameterExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new InvalidParameterException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_InvalidPasswordExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new InvalidPasswordException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_InvalidSmsRoleAccessPolicyExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new InvalidSmsRoleAccessPolicyException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_InvalidSmsRoleTrustRelationshipExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new InvalidSmsRoleTrustRelationshipException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_InvalidUserPoolConfigurationExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new InvalidUserPoolConfigurationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_LimitExceededExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new LimitExceededException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_MFAMethodNotFoundExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new MFAMethodNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_NotAuthorizedExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new NotAuthorizedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_PasswordResetRequiredExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new PasswordResetRequiredException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_PreconditionNotMetExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new PreconditionNotMetException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_ResourceNotFoundExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_ScopeDoesNotExistExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new ScopeDoesNotExistException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_SoftwareTokenMFANotFoundExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new SoftwareTokenMFANotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_TooManyFailedAttemptsExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new TooManyFailedAttemptsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_TooManyRequestsExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new TooManyRequestsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_UnauthorizedExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new UnauthorizedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_UnexpectedLambdaExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new UnexpectedLambdaException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_UnsupportedIdentityProviderExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new UnsupportedIdentityProviderException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_UnsupportedOperationExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new UnsupportedOperationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_UnsupportedTokenTypeExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new UnsupportedTokenTypeException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_UnsupportedUserStateExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new UnsupportedUserStateException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_UserImportInProgressExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new UserImportInProgressException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_UserLambdaValidationExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new UserLambdaValidationException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_UsernameExistsExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new UsernameExistsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_UserNotConfirmedExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new UserNotConfirmedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_UserNotFoundExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new UserNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_UserPoolAddOnNotEnabledExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new UserPoolAddOnNotEnabledException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst de_UserPoolTaggingExceptionRes = async (parsedOutput, context) => {\n const body = parsedOutput.body;\n const deserialized = _json(body);\n const exception = new UserPoolTaggingException({\n $metadata: deserializeMetadata(parsedOutput),\n ...deserialized,\n });\n return __decorateServiceException(exception, body);\n};\nconst se_SetUICustomizationRequest = (input, context) => {\n return take(input, {\n CSS: [],\n ClientId: [],\n ImageFile: context.base64Encoder,\n UserPoolId: [],\n });\n};\nconst de_AdminCreateUserResponse = (output, context) => {\n return take(output, {\n User: (_) => de_UserType(_, context),\n });\n};\nconst de_AdminGetDeviceResponse = (output, context) => {\n return take(output, {\n Device: (_) => de_DeviceType(_, context),\n });\n};\nconst de_AdminGetUserResponse = (output, context) => {\n return take(output, {\n Enabled: __expectBoolean,\n MFAOptions: _json,\n PreferredMfaSetting: __expectString,\n UserAttributes: _json,\n UserCreateDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),\n UserLastModifiedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),\n UserMFASettingList: _json,\n UserStatus: __expectString,\n Username: __expectString,\n });\n};\nconst de_AdminListDevicesResponse = (output, context) => {\n return take(output, {\n Devices: (_) => de_DeviceListType(_, context),\n PaginationToken: __expectString,\n });\n};\nconst de_AdminListGroupsForUserResponse = (output, context) => {\n return take(output, {\n Groups: (_) => de_GroupListType(_, context),\n NextToken: __expectString,\n });\n};\nconst de_AdminListUserAuthEventsResponse = (output, context) => {\n return take(output, {\n AuthEvents: (_) => de_AuthEventsType(_, context),\n NextToken: __expectString,\n });\n};\nconst de_AuthEventsType = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_AuthEventType(entry, context);\n });\n return retVal;\n};\nconst de_AuthEventType = (output, context) => {\n return take(output, {\n ChallengeResponses: _json,\n CreationDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),\n EventContextData: _json,\n EventFeedback: (_) => de_EventFeedbackType(_, context),\n EventId: __expectString,\n EventResponse: __expectString,\n EventRisk: _json,\n EventType: __expectString,\n });\n};\nconst de_CreateGroupResponse = (output, context) => {\n return take(output, {\n Group: (_) => de_GroupType(_, context),\n });\n};\nconst de_CreateIdentityProviderResponse = (output, context) => {\n return take(output, {\n IdentityProvider: (_) => de_IdentityProviderType(_, context),\n });\n};\nconst de_CreateUserImportJobResponse = (output, context) => {\n return take(output, {\n UserImportJob: (_) => de_UserImportJobType(_, context),\n });\n};\nconst de_CreateUserPoolClientResponse = (output, context) => {\n return take(output, {\n UserPoolClient: (_) => de_UserPoolClientType(_, context),\n });\n};\nconst de_CreateUserPoolResponse = (output, context) => {\n return take(output, {\n UserPool: (_) => de_UserPoolType(_, context),\n });\n};\nconst de_DescribeIdentityProviderResponse = (output, context) => {\n return take(output, {\n IdentityProvider: (_) => de_IdentityProviderType(_, context),\n });\n};\nconst de_DescribeRiskConfigurationResponse = (output, context) => {\n return take(output, {\n RiskConfiguration: (_) => de_RiskConfigurationType(_, context),\n });\n};\nconst de_DescribeUserImportJobResponse = (output, context) => {\n return take(output, {\n UserImportJob: (_) => de_UserImportJobType(_, context),\n });\n};\nconst de_DescribeUserPoolClientResponse = (output, context) => {\n return take(output, {\n UserPoolClient: (_) => de_UserPoolClientType(_, context),\n });\n};\nconst de_DescribeUserPoolResponse = (output, context) => {\n return take(output, {\n UserPool: (_) => de_UserPoolType(_, context),\n });\n};\nconst de_DeviceListType = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_DeviceType(entry, context);\n });\n return retVal;\n};\nconst de_DeviceType = (output, context) => {\n return take(output, {\n DeviceAttributes: _json,\n DeviceCreateDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),\n DeviceKey: __expectString,\n DeviceLastAuthenticatedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),\n DeviceLastModifiedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),\n });\n};\nconst de_EventFeedbackType = (output, context) => {\n return take(output, {\n FeedbackDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),\n FeedbackValue: __expectString,\n Provider: __expectString,\n });\n};\nconst de_GetDeviceResponse = (output, context) => {\n return take(output, {\n Device: (_) => de_DeviceType(_, context),\n });\n};\nconst de_GetGroupResponse = (output, context) => {\n return take(output, {\n Group: (_) => de_GroupType(_, context),\n });\n};\nconst de_GetIdentityProviderByIdentifierResponse = (output, context) => {\n return take(output, {\n IdentityProvider: (_) => de_IdentityProviderType(_, context),\n });\n};\nconst de_GetUICustomizationResponse = (output, context) => {\n return take(output, {\n UICustomization: (_) => de_UICustomizationType(_, context),\n });\n};\nconst de_GroupListType = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_GroupType(entry, context);\n });\n return retVal;\n};\nconst de_GroupType = (output, context) => {\n return take(output, {\n CreationDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),\n Description: __expectString,\n GroupName: __expectString,\n LastModifiedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),\n Precedence: __expectInt32,\n RoleArn: __expectString,\n UserPoolId: __expectString,\n });\n};\nconst de_IdentityProviderType = (output, context) => {\n return take(output, {\n AttributeMapping: _json,\n CreationDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),\n IdpIdentifiers: _json,\n LastModifiedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),\n ProviderDetails: _json,\n ProviderName: __expectString,\n ProviderType: __expectString,\n UserPoolId: __expectString,\n });\n};\nconst de_ListDevicesResponse = (output, context) => {\n return take(output, {\n Devices: (_) => de_DeviceListType(_, context),\n PaginationToken: __expectString,\n });\n};\nconst de_ListGroupsResponse = (output, context) => {\n return take(output, {\n Groups: (_) => de_GroupListType(_, context),\n NextToken: __expectString,\n });\n};\nconst de_ListIdentityProvidersResponse = (output, context) => {\n return take(output, {\n NextToken: __expectString,\n Providers: (_) => de_ProvidersListType(_, context),\n });\n};\nconst de_ListUserImportJobsResponse = (output, context) => {\n return take(output, {\n PaginationToken: __expectString,\n UserImportJobs: (_) => de_UserImportJobsListType(_, context),\n });\n};\nconst de_ListUserPoolsResponse = (output, context) => {\n return take(output, {\n NextToken: __expectString,\n UserPools: (_) => de_UserPoolListType(_, context),\n });\n};\nconst de_ListUsersInGroupResponse = (output, context) => {\n return take(output, {\n NextToken: __expectString,\n Users: (_) => de_UsersListType(_, context),\n });\n};\nconst de_ListUsersResponse = (output, context) => {\n return take(output, {\n PaginationToken: __expectString,\n Users: (_) => de_UsersListType(_, context),\n });\n};\nconst de_ProviderDescription = (output, context) => {\n return take(output, {\n CreationDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),\n LastModifiedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),\n ProviderName: __expectString,\n ProviderType: __expectString,\n });\n};\nconst de_ProvidersListType = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_ProviderDescription(entry, context);\n });\n return retVal;\n};\nconst de_RiskConfigurationType = (output, context) => {\n return take(output, {\n AccountTakeoverRiskConfiguration: _json,\n ClientId: __expectString,\n CompromisedCredentialsRiskConfiguration: _json,\n LastModifiedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),\n RiskExceptionConfiguration: _json,\n UserPoolId: __expectString,\n });\n};\nconst de_SetRiskConfigurationResponse = (output, context) => {\n return take(output, {\n RiskConfiguration: (_) => de_RiskConfigurationType(_, context),\n });\n};\nconst de_SetUICustomizationResponse = (output, context) => {\n return take(output, {\n UICustomization: (_) => de_UICustomizationType(_, context),\n });\n};\nconst de_StartUserImportJobResponse = (output, context) => {\n return take(output, {\n UserImportJob: (_) => de_UserImportJobType(_, context),\n });\n};\nconst de_StopUserImportJobResponse = (output, context) => {\n return take(output, {\n UserImportJob: (_) => de_UserImportJobType(_, context),\n });\n};\nconst de_UICustomizationType = (output, context) => {\n return take(output, {\n CSS: __expectString,\n CSSVersion: __expectString,\n ClientId: __expectString,\n CreationDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),\n ImageUrl: __expectString,\n LastModifiedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),\n UserPoolId: __expectString,\n });\n};\nconst de_UpdateGroupResponse = (output, context) => {\n return take(output, {\n Group: (_) => de_GroupType(_, context),\n });\n};\nconst de_UpdateIdentityProviderResponse = (output, context) => {\n return take(output, {\n IdentityProvider: (_) => de_IdentityProviderType(_, context),\n });\n};\nconst de_UpdateUserPoolClientResponse = (output, context) => {\n return take(output, {\n UserPoolClient: (_) => de_UserPoolClientType(_, context),\n });\n};\nconst de_UserImportJobsListType = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_UserImportJobType(entry, context);\n });\n return retVal;\n};\nconst de_UserImportJobType = (output, context) => {\n return take(output, {\n CloudWatchLogsRoleArn: __expectString,\n CompletionDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),\n CompletionMessage: __expectString,\n CreationDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),\n FailedUsers: __expectLong,\n ImportedUsers: __expectLong,\n JobId: __expectString,\n JobName: __expectString,\n PreSignedUrl: __expectString,\n SkippedUsers: __expectLong,\n StartDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),\n Status: __expectString,\n UserPoolId: __expectString,\n });\n};\nconst de_UserPoolClientType = (output, context) => {\n return take(output, {\n AccessTokenValidity: __expectInt32,\n AllowedOAuthFlows: _json,\n AllowedOAuthFlowsUserPoolClient: __expectBoolean,\n AllowedOAuthScopes: _json,\n AnalyticsConfiguration: _json,\n AuthSessionValidity: __expectInt32,\n CallbackURLs: _json,\n ClientId: __expectString,\n ClientName: __expectString,\n ClientSecret: __expectString,\n CreationDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),\n DefaultRedirectURI: __expectString,\n EnablePropagateAdditionalUserContextData: __expectBoolean,\n EnableTokenRevocation: __expectBoolean,\n ExplicitAuthFlows: _json,\n IdTokenValidity: __expectInt32,\n LastModifiedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),\n LogoutURLs: _json,\n PreventUserExistenceErrors: __expectString,\n ReadAttributes: _json,\n RefreshTokenValidity: __expectInt32,\n SupportedIdentityProviders: _json,\n TokenValidityUnits: _json,\n UserPoolId: __expectString,\n WriteAttributes: _json,\n });\n};\nconst de_UserPoolDescriptionType = (output, context) => {\n return take(output, {\n CreationDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),\n Id: __expectString,\n LambdaConfig: _json,\n LastModifiedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),\n Name: __expectString,\n Status: __expectString,\n });\n};\nconst de_UserPoolListType = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_UserPoolDescriptionType(entry, context);\n });\n return retVal;\n};\nconst de_UserPoolType = (output, context) => {\n return take(output, {\n AccountRecoverySetting: _json,\n AdminCreateUserConfig: _json,\n AliasAttributes: _json,\n Arn: __expectString,\n AutoVerifiedAttributes: _json,\n CreationDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),\n CustomDomain: __expectString,\n DeletionProtection: __expectString,\n DeviceConfiguration: _json,\n Domain: __expectString,\n EmailConfiguration: _json,\n EmailConfigurationFailure: __expectString,\n EmailVerificationMessage: __expectString,\n EmailVerificationSubject: __expectString,\n EstimatedNumberOfUsers: __expectInt32,\n Id: __expectString,\n LambdaConfig: _json,\n LastModifiedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),\n MfaConfiguration: __expectString,\n Name: __expectString,\n Policies: _json,\n SchemaAttributes: _json,\n SmsAuthenticationMessage: __expectString,\n SmsConfiguration: _json,\n SmsConfigurationFailure: __expectString,\n SmsVerificationMessage: __expectString,\n Status: __expectString,\n UserAttributeUpdateSettings: _json,\n UserPoolAddOns: _json,\n UserPoolTags: _json,\n UsernameAttributes: _json,\n UsernameConfiguration: _json,\n VerificationMessageTemplate: _json,\n });\n};\nconst de_UsersListType = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_UserType(entry, context);\n });\n return retVal;\n};\nconst de_UserType = (output, context) => {\n return take(output, {\n Attributes: _json,\n Enabled: __expectBoolean,\n MFAOptions: _json,\n UserCreateDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),\n UserLastModifiedDate: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),\n UserStatus: __expectString,\n Username: __expectString,\n });\n};\nconst deserializeMetadata = (output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n});\nconst collectBodyString = (streamBody, context) => collectBody(streamBody, context).then((body) => context.utf8Encoder(body));\nconst throwDefaultError = withBaseException(__BaseException);\nconst buildHttpRpcRequest = async (context, headers, path, resolvedHostname, body) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const contents = {\n protocol,\n hostname,\n port,\n method: \"POST\",\n path: basePath.endsWith(\"/\") ? basePath.slice(0, -1) + path : basePath + path,\n headers,\n };\n if (resolvedHostname !== undefined) {\n contents.hostname = resolvedHostname;\n }\n if (body !== undefined) {\n contents.body = body;\n }\n return new __HttpRequest(contents);\n};\nfunction sharedHeaders(operation) {\n return {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": `AWSCognitoIdentityProviderService.${operation}`,\n };\n}\nconst parseBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n return JSON.parse(encoded);\n }\n return {};\n});\nconst parseErrorBody = async (errorBody, context) => {\n const value = await parseBody(errorBody, context);\n value.message = value.message ?? value.Message;\n return value;\n};\nconst loadRestJsonErrorCode = (output, data) => {\n const findKey = (object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase());\n const sanitizeErrorCode = (rawValue) => {\n let cleanValue = rawValue;\n if (typeof cleanValue === \"number\") {\n cleanValue = cleanValue.toString();\n }\n if (cleanValue.indexOf(\",\") >= 0) {\n cleanValue = cleanValue.split(\",\")[0];\n }\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n };\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== undefined) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data.code !== undefined) {\n return sanitizeErrorCode(data.code);\n }\n if (data[\"__type\"] !== undefined) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n};\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { InitiateAuthRequestFilterSensitiveLog, InitiateAuthResponseFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_InitiateAuthCommand, se_InitiateAuthCommand } from \"../protocols/Aws_json1_1\";\nexport { $Command };\nexport class InitiateAuthCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, InitiateAuthCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityProviderClient\";\n const commandName = \"InitiateAuthCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: InitiateAuthRequestFilterSensitiveLog,\n outputFilterSensitiveLog: InitiateAuthResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_InitiateAuthCommand(input, context);\n }\n deserialize(output, context) {\n return de_InitiateAuthCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { GetUserRequestFilterSensitiveLog, GetUserResponseFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_GetUserCommand, se_GetUserCommand } from \"../protocols/Aws_json1_1\";\nexport { $Command };\nexport class GetUserCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetUserCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityProviderClient\";\n const commandName = \"GetUserCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: GetUserRequestFilterSensitiveLog,\n outputFilterSensitiveLog: GetUserResponseFilterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetUserCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetUserCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { ForgotPasswordRequestFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_ForgotPasswordCommand, se_ForgotPasswordCommand } from \"../protocols/Aws_json1_1\";\nexport { $Command };\nexport class ForgotPasswordCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, ForgotPasswordCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityProviderClient\";\n const commandName = \"ForgotPasswordCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: ForgotPasswordRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_ForgotPasswordCommand(input, context);\n }\n deserialize(output, context) {\n return de_ForgotPasswordCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { ConfirmForgotPasswordRequestFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_ConfirmForgotPasswordCommand, se_ConfirmForgotPasswordCommand } from \"../protocols/Aws_json1_1\";\nexport { $Command };\nexport class ConfirmForgotPasswordCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, ConfirmForgotPasswordCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityProviderClient\";\n const commandName = \"ConfirmForgotPasswordCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: ConfirmForgotPasswordRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_ConfirmForgotPasswordCommand(input, context);\n }\n deserialize(output, context) {\n return de_ConfirmForgotPasswordCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { ConfirmSignUpRequestFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_ConfirmSignUpCommand, se_ConfirmSignUpCommand } from \"../protocols/Aws_json1_1\";\nexport { $Command };\nexport class ConfirmSignUpCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, ConfirmSignUpCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityProviderClient\";\n const commandName = \"ConfirmSignUpCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: ConfirmSignUpRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_ConfirmSignUpCommand(input, context);\n }\n deserialize(output, context) {\n return de_ConfirmSignUpCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { ResendConfirmationCodeRequestFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_ResendConfirmationCodeCommand, se_ResendConfirmationCodeCommand } from \"../protocols/Aws_json1_1\";\nexport { $Command };\nexport class ResendConfirmationCodeCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, ResendConfirmationCodeCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"CognitoIdentityProviderClient\";\n const commandName = \"ResendConfirmationCodeCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: ResendConfirmationCodeRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (_) => _,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_ResendConfirmationCodeCommand(input, context);\n }\n deserialize(output, context) {\n return de_ResendConfirmationCodeCommand(output, context);\n }\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 function __createBinding(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, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = 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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { HeaderBag, HttpMessage, HttpResponse as IHttpResponse } from \"@aws-sdk/types\";\n\ntype HttpResponseOptions = Partial<HttpMessage> & {\n statusCode: number;\n};\n\nexport interface HttpResponse extends IHttpResponse {}\n\nexport class HttpResponse {\n public statusCode: number;\n public headers: HeaderBag;\n public body?: any;\n\n constructor(options: HttpResponseOptions) {\n this.statusCode = options.statusCode;\n this.headers = options.headers || {};\n this.body = options.body;\n }\n\n static isInstance(response: unknown): response is HttpResponse {\n //determine if response is a valid HttpResponse\n if (!response) return false;\n const resp = response as any;\n return typeof resp.statusCode === \"number\" && typeof resp.headers === \"object\";\n }\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 function __createBinding(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, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = 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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Endpoint, HeaderBag, HttpMessage, HttpRequest as IHttpRequest, QueryParameterBag } from \"@aws-sdk/types\";\n\ntype HttpRequestOptions = Partial<HttpMessage> & Partial<Endpoint> & { method?: string };\n\nexport interface HttpRequest extends IHttpRequest {}\n\nexport class HttpRequest implements HttpMessage, Endpoint {\n public method: string;\n public protocol: string;\n public hostname: string;\n public port?: number;\n public path: string;\n public query: QueryParameterBag;\n public headers: HeaderBag;\n public body?: any;\n\n constructor(options: HttpRequestOptions) {\n this.method = options.method || \"GET\";\n this.hostname = options.hostname || \"localhost\";\n this.port = options.port;\n this.query = options.query || {};\n this.headers = options.headers || {};\n this.body = options.body;\n this.protocol = options.protocol\n ? options.protocol.substr(-1) !== \":\"\n ? `${options.protocol}:`\n : options.protocol\n : \"https:\";\n this.path = options.path ? (options.path.charAt(0) !== \"/\" ? `/${options.path}` : options.path) : \"/\";\n }\n\n static isInstance(request: unknown): request is HttpRequest {\n //determine if request is a valid httpRequest\n if (!request) return false;\n const req: any = request;\n return (\n \"method\" in req &&\n \"protocol\" in req &&\n \"hostname\" in req &&\n \"path\" in req &&\n typeof req[\"query\"] === \"object\" &&\n typeof req[\"headers\"] === \"object\"\n );\n }\n\n clone(): HttpRequest {\n const cloned = new HttpRequest({\n ...this,\n headers: { ...this.headers },\n });\n if (cloned.query) cloned.query = cloneQuery(cloned.query);\n return cloned;\n }\n}\n\nfunction cloneQuery(query: QueryParameterBag): QueryParameterBag {\n return Object.keys(query).reduce((carry: QueryParameterBag, paramName: string) => {\n const param = query[paramName];\n return {\n ...carry,\n [paramName]: Array.isArray(param) ? [...param] : param,\n };\n }, {});\n}\n","export const escapeUri = (uri: string): string =>\n // AWS percent-encodes some extra non-standard characters in a URI\n encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\n\nconst hexEncode = (c: string) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`;\n","const alphabetByEncoding: { [key: string]: number } = {};\nconst alphabetByValue: Array<string> = new Array(64);\n\nfor (let i = 0, start = \"A\".charCodeAt(0), limit = \"Z\".charCodeAt(0); i + start <= limit; i++) {\n const char = String.fromCharCode(i + start);\n alphabetByEncoding[char] = i;\n alphabetByValue[i] = char;\n}\n\nfor (let i = 0, start = \"a\".charCodeAt(0), limit = \"z\".charCodeAt(0); i + start <= limit; i++) {\n const char = String.fromCharCode(i + start);\n const index = i + 26;\n alphabetByEncoding[char] = index;\n alphabetByValue[index] = char;\n}\n\nfor (let i = 0; i < 10; i++) {\n alphabetByEncoding[i.toString(10)] = i + 52;\n const char = i.toString(10);\n const index = i + 52;\n alphabetByEncoding[char] = index;\n alphabetByValue[index] = char;\n}\n\nalphabetByEncoding[\"+\"] = 62;\nalphabetByValue[62] = \"+\";\nalphabetByEncoding[\"/\"] = 63;\nalphabetByValue[63] = \"/\";\n\nconst bitsPerLetter = 6;\nconst bitsPerByte = 8;\nconst maxLetterValue = 0b111111;\n\n/**\n * Converts a base-64 encoded string to a Uint8Array of bytes.\n *\n * @param input The base-64 encoded string\n *\n * @see https://tools.ietf.org/html/rfc4648#section-4\n */\nexport function fromBase64(input: string): Uint8Array {\n let totalByteLength = (input.length / 4) * 3;\n if (input.substr(-2) === \"==\") {\n totalByteLength -= 2;\n } else if (input.substr(-1) === \"=\") {\n totalByteLength--;\n }\n const out = new ArrayBuffer(totalByteLength);\n const dataView = new DataView(out);\n for (let i = 0; i < input.length; i += 4) {\n let bits = 0;\n let bitLength = 0;\n for (let j = i, limit = i + 3; j <= limit; j++) {\n if (input[j] !== \"=\") {\n bits |= alphabetByEncoding[input[j]] << ((limit - j) * bitsPerLetter);\n bitLength += bitsPerLetter;\n } else {\n bits >>= bitsPerLetter;\n }\n }\n\n const chunkOffset = (i / 4) * 3;\n bits >>= bitLength % bitsPerByte;\n const byteLength = Math.floor(bitLength / bitsPerByte);\n for (let k = 0; k < byteLength; k++) {\n const offset = (byteLength - k - 1) * bitsPerByte;\n dataView.setUint8(chunkOffset + k, (bits & (255 << offset)) >> offset);\n }\n }\n\n return new Uint8Array(out);\n}\n\n/**\n * Converts a Uint8Array of binary data to a base-64 encoded string.\n *\n * @param input The binary data to encode\n *\n * @see https://tools.ietf.org/html/rfc4648#section-4\n */\nexport function toBase64(input: Uint8Array): string {\n let str = \"\";\n for (let i = 0; i < input.length; i += 3) {\n let bits = 0;\n let bitLength = 0;\n for (let j = i, limit = Math.min(i + 3, input.length); j < limit; j++) {\n bits |= input[j] << ((limit - j - 1) * bitsPerByte);\n bitLength += bitsPerByte;\n }\n\n const bitClusterCount = Math.ceil(bitLength / bitsPerLetter);\n bits <<= bitClusterCount * bitsPerLetter - bitLength;\n for (let k = 1; k <= bitClusterCount; k++) {\n const offset = (bitClusterCount - k) * bitsPerLetter;\n str += alphabetByValue[(bits & (maxLetterValue << offset)) >> offset];\n }\n\n str += \"==\".slice(0, 4 - bitClusterCount);\n }\n\n return str;\n}\n","import { HttpHandler, HttpRequest, HttpResponse } from \"@aws-sdk/protocol-http\";\nimport { buildQueryString } from \"@aws-sdk/querystring-builder\";\nimport { HeaderBag, HttpHandlerOptions } from \"@aws-sdk/types\";\n\nimport { requestTimeout } from \"./request-timeout\";\n\ndeclare let AbortController: any;\n\n/**\n * Represents the http options that can be passed to a browser http client.\n */\nexport interface FetchHttpHandlerOptions {\n /**\n * The number of milliseconds a request can take before being automatically\n * terminated.\n */\n requestTimeout?: number;\n}\n\nexport class FetchHttpHandler implements HttpHandler {\n private readonly requestTimeout?: number;\n\n constructor({ requestTimeout }: FetchHttpHandlerOptions = {}) {\n this.requestTimeout = requestTimeout;\n }\n\n destroy(): void {\n // Do nothing. TLS and HTTP/2 connection pooling is handled by the browser.\n }\n\n handle(request: HttpRequest, { abortSignal }: HttpHandlerOptions = {}): Promise<{ response: HttpResponse }> {\n const requestTimeoutInMs = this.requestTimeout;\n\n // if the request was already aborted, prevent doing extra work\n if (abortSignal?.aborted) {\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n return Promise.reject(abortError);\n }\n\n let path = request.path;\n if (request.query) {\n const queryString = buildQueryString(request.query);\n if (queryString) {\n path += `?${queryString}`;\n }\n }\n\n const { port, method } = request;\n const url = `${request.protocol}//${request.hostname}${port ? `:${port}` : \"\"}${path}`;\n // Request constructor doesn't allow GET/HEAD request with body\n // ref: https://github.com/whatwg/fetch/issues/551\n const body = method === \"GET\" || method === \"HEAD\" ? undefined : request.body;\n const requestOptions: RequestInit = {\n body,\n headers: new Headers(request.headers),\n method: method,\n };\n\n // some browsers support abort signal\n if (typeof AbortController !== \"undefined\") {\n (requestOptions as any)[\"signal\"] = abortSignal;\n }\n\n const fetchRequest = new Request(url, requestOptions);\n const raceOfPromises = [\n fetch(fetchRequest).then((response) => {\n const fetchHeaders: any = response.headers;\n const transformedHeaders: HeaderBag = {};\n\n for (const pair of <Array<string[]>>fetchHeaders.entries()) {\n transformedHeaders[pair[0]] = pair[1];\n }\n\n const hasReadableStream = response.body !== undefined;\n\n // Return the response with buffered body\n if (!hasReadableStream) {\n return response.blob().then((body) => ({\n response: new HttpResponse({\n headers: transformedHeaders,\n statusCode: response.status,\n body,\n }),\n }));\n }\n // Return the response with streaming body\n return {\n response: new HttpResponse({\n headers: transformedHeaders,\n statusCode: response.status,\n body: response.body,\n }),\n };\n }),\n requestTimeout(requestTimeoutInMs),\n ];\n if (abortSignal) {\n raceOfPromises.push(\n new Promise<never>((resolve, reject) => {\n abortSignal.onabort = () => {\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n reject(abortError);\n };\n })\n );\n }\n return Promise.race(raceOfPromises);\n }\n}\n","import { QueryParameterBag } from \"@aws-sdk/types\";\nimport { escapeUri } from \"@aws-sdk/util-uri-escape\";\n\nexport function buildQueryString(query: QueryParameterBag): string {\n const parts: string[] = [];\n for (let key of Object.keys(query).sort()) {\n const value = query[key];\n key = escapeUri(key);\n if (Array.isArray(value)) {\n for (let i = 0, iLen = value.length; i < iLen; i++) {\n parts.push(`${key}=${escapeUri(value[i])}`);\n }\n } else {\n let qsEntry = key;\n if (value || typeof value === \"string\") {\n qsEntry += `=${escapeUri(value)}`;\n }\n parts.push(qsEntry);\n }\n }\n\n return parts.join(\"&\");\n}\n","export function requestTimeout(timeoutInMs = 0): Promise<never> {\n return new Promise((resolve, reject) => {\n if (timeoutInMs) {\n setTimeout(() => {\n const timeoutError = new Error(`Request did not complete within ${timeoutInMs} ms`);\n timeoutError.name = \"TimeoutError\";\n reject(timeoutError);\n }, timeoutInMs);\n }\n });\n}\n","const SHORT_TO_HEX: { [key: number]: string } = {};\nconst HEX_TO_SHORT: { [key: string]: number } = {};\n\nfor (let i = 0; i < 256; i++) {\n let encodedByte = i.toString(16).toLowerCase();\n if (encodedByte.length === 1) {\n encodedByte = `0${encodedByte}`;\n }\n\n SHORT_TO_HEX[i] = encodedByte;\n HEX_TO_SHORT[encodedByte] = i;\n}\n\n/**\n * Converts a hexadecimal encoded string to a Uint8Array of bytes.\n *\n * @param encoded The hexadecimal encoded string\n */\nexport function fromHex(encoded: string): Uint8Array {\n if (encoded.length % 2 !== 0) {\n throw new Error(\"Hex encoded strings must have an even number length\");\n }\n\n const out = new Uint8Array(encoded.length / 2);\n for (let i = 0; i < encoded.length; i += 2) {\n const encodedByte = encoded.substr(i, 2).toLowerCase();\n if (encodedByte in HEX_TO_SHORT) {\n out[i / 2] = HEX_TO_SHORT[encodedByte];\n } else {\n throw new Error(`Cannot decode unrecognized sequence ${encodedByte} as hexadecimal`);\n }\n }\n\n return out;\n}\n\n/**\n * Converts a Uint8Array of binary data to a hexadecimal encoded string.\n *\n * @param bytes The binary data to encode\n */\nexport function toHex(bytes: Uint8Array): string {\n let out = \"\";\n for (let i = 0; i < bytes.byteLength; i++) {\n out += SHORT_TO_HEX[bytes[i]];\n }\n\n return out;\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * Date & time utility functions to abstract the `aws-sdk` away from users.\n * (v2 => v3 modularization is a breaking change)\n *\n * @see https://github.com/aws/aws-sdk-js/blob/6edf586dcc1de7fe8fbfbbd9a0d2b1847921e6e1/lib/util.js#L262\n */\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n// Comment - TODO: remove\nvar FIVE_MINUTES_IN_MS = 1000 * 60 * 5;\nexport var DateUtils = {\n /**\n * Milliseconds to offset the date to compensate for clock skew between device & services\n */\n clockOffset: 0,\n getDateWithClockOffset: function () {\n if (DateUtils.clockOffset) {\n return new Date(new Date().getTime() + DateUtils.clockOffset);\n }\n else {\n return new Date();\n }\n },\n /**\n * @returns {number} Clock offset in milliseconds\n */\n getClockOffset: function () {\n return DateUtils.clockOffset;\n },\n getHeaderStringFromDate: function (date) {\n if (date === void 0) { date = DateUtils.getDateWithClockOffset(); }\n return date.toISOString().replace(/[:\\-]|\\.\\d{3}/g, '');\n },\n getDateFromHeaderString: function (header) {\n var _a = __read(header.match(/^(\\d{4})(\\d{2})(\\d{2})T(\\d{2})(\\d{2})(\\d{2}).+/), 7), year = _a[1], month = _a[2], day = _a[3], hour = _a[4], minute = _a[5], second = _a[6];\n return new Date(Date.UTC(Number(year), Number(month) - 1, Number(day), Number(hour), Number(minute), Number(second)));\n },\n isClockSkewed: function (serverDate) {\n // API gateway permits client calls that are off by no more than ±5 minutes\n return (Math.abs(serverDate.getTime() - DateUtils.getDateWithClockOffset().getTime()) >= FIVE_MINUTES_IN_MS);\n },\n isClockSkewError: function (error) {\n if (!error.response || !error.response.headers) {\n return false;\n }\n var headers = error.response.headers;\n return Boolean(['BadRequestException', 'InvalidSignatureException'].includes(headers['x-amzn-errortype']) &&\n (headers.date || headers.Date));\n },\n /**\n * @param {number} offset Clock offset in milliseconds\n */\n setClockOffset: function (offset) {\n DateUtils.clockOffset = offset;\n },\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * Returns signed headers.\n *\n * @param headers `headers` from the request.\n * @returns List of headers included in canonical headers, separated by semicolons (;). This indicates which headers\n * are part of the signing process. Header names must use lowercase characters and must appear in alphabetical order.\n *\n * @internal\n */\nexport var getSignedHeaders = function (headers) {\n return Object.keys(headers)\n .map(function (key) { return key.toLowerCase(); })\n .sort()\n .join(';');\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n// query params\nexport var ALGORITHM_QUERY_PARAM = 'X-Amz-Algorithm';\nexport var AMZ_DATE_QUERY_PARAM = 'X-Amz-Date';\nexport var CREDENTIAL_QUERY_PARAM = 'X-Amz-Credential';\nexport var EXPIRES_QUERY_PARAM = 'X-Amz-Expires';\nexport var REGION_SET_PARAM = 'X-Amz-Region-Set';\nexport var SIGNATURE_QUERY_PARAM = 'X-Amz-Signature';\nexport var SIGNED_HEADERS_QUERY_PARAM = 'X-Amz-SignedHeaders';\nexport var TOKEN_QUERY_PARAM = 'X-Amz-Security-Token';\n// headers\nexport var AUTH_HEADER = 'authorization';\nexport var HOST_HEADER = 'host';\nexport var AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase();\nexport var TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase();\n// identifiers\nexport var KEY_TYPE_IDENTIFIER = 'aws4_request';\nexport var SHA256_ALGORITHM_IDENTIFIER = 'AWS4-HMAC-SHA256';\nexport var SIGNATURE_IDENTIFIER = 'AWS4';\n// preset values\nexport var EMPTY_HASH = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855';\nexport var UNSIGNED_PAYLOAD = 'UNSIGNED-PAYLOAD';\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { getCredentialScope } from './getCredentialScope';\nimport { getFormattedDates } from './getFormattedDates';\n/**\n * Extracts common values used for signing both requests and urls.\n *\n * @param options `SignRequestOptions` object containing values used to construct the signature.\n * @returns Common `SigningValues` used for signing.\n *\n * @internal\n */\nexport var getSigningValues = function (_a) {\n var credentials = _a.credentials, _b = _a.signingDate, signingDate = _b === void 0 ? new Date() : _b, signingRegion = _a.signingRegion, signingService = _a.signingService, _c = _a.uriEscapePath, uriEscapePath = _c === void 0 ? true : _c;\n // get properties from credentials\n var accessKeyId = credentials.accessKeyId, secretAccessKey = credentials.secretAccessKey, sessionToken = credentials.sessionToken;\n // get formatted dates for signing\n var _d = getFormattedDates(signingDate), longDate = _d.longDate, shortDate = _d.shortDate;\n // copy header and set signing properties\n var credentialScope = getCredentialScope(shortDate, signingRegion, signingService);\n return {\n accessKeyId: accessKeyId,\n credentialScope: credentialScope,\n longDate: longDate,\n secretAccessKey: secretAccessKey,\n sessionToken: sessionToken,\n shortDate: shortDate,\n signingRegion: signingRegion,\n signingService: signingService,\n uriEscapePath: uriEscapePath,\n };\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { KEY_TYPE_IDENTIFIER } from '../constants';\n/**\n * Returns the credential scope which restricts the resulting signature to the specified region and service.\n *\n * @param date Current date in the format 'YYYYMMDD'.\n * @param region AWS region in which the service resides.\n * @param service Service to which the signed request is being sent.\n *\n * @returns A string representing the credential scope with format 'YYYYMMDD/region/service/aws4_request'.\n *\n * @internal\n */\nexport var getCredentialScope = function (date, region, service) { return \"\".concat(date, \"/\").concat(region, \"/\").concat(service, \"/\").concat(KEY_TYPE_IDENTIFIER); };\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * Returns expected date strings to be used in signing.\n *\n * @param date JavaScript `Date` object.\n * @returns `FormattedDates` object containing the following:\n * - longDate: A date string in 'YYYYMMDDThhmmssZ' format\n * - shortDate: A date string in 'YYYYMMDD' format\n *\n * @internal\n */\nexport var getFormattedDates = function (date) {\n var longDate = date.toISOString().replace(/[:\\-]|\\.\\d{3}/g, '');\n return {\n longDate: longDate,\n shortDate: longDate.slice(0, 8),\n };\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n// TODO: V6 update to different crypto dependency?\nimport { Sha256 } from '@aws-crypto/sha256-js';\nimport { toHex } from '@aws-sdk/util-hex-encoding';\n/**\n * Returns the hashed data a `Uint8Array`.\n *\n * @param key `SourceData` to be used as hashing key.\n * @param data Hashable `SourceData`.\n * @returns `Uint8Array` created from the data as input to a hash function.\n */\nexport var getHashedData = function (key, data) {\n var sha256 = new Sha256(key);\n sha256.update(data);\n // TODO: V6 flip to async digest\n var hashedData = sha256.digestSync();\n return hashedData;\n};\n/**\n * Returns the hashed data as a hex string.\n *\n * @param key `SourceData` to be used as hashing key.\n * @param data Hashable `SourceData`.\n * @returns String using lowercase hexadecimal characters created from the data as input to a hash function.\n *\n * @internal\n */\nexport var getHashedDataAsHex = function (key, data) {\n var hashedData = getHashedData(key, data);\n return toHex(hashedData);\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n/**\n * Returns canonical headers.\n *\n * @param headers Headers from the request.\n * @returns Request headers that will be signed, and their values, separated by newline characters. Header names must\n * use lowercase characters, must appear in alphabetical order, and must be followed by a colon (:). For the values,\n * trim any leading or trailing spaces, convert sequential spaces to a single space, and separate the values\n * for a multi-value header using commas.\n *\n * @internal\n */\nexport var getCanonicalHeaders = function (headers) {\n return Object.entries(headers)\n .map(function (_a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n return ({\n key: key.toLowerCase(),\n value: (_b = value === null || value === void 0 ? void 0 : value.trim().replace(/\\s+/g, ' ')) !== null && _b !== void 0 ? _b : '',\n });\n })\n .sort(function (a, b) { return (a.key < b.key ? -1 : 1); })\n .map(function (entry) { return \"\".concat(entry.key, \":\").concat(entry.value, \"\\n\"); })\n .join('');\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n/**\n * Returns a canonical query string.\n *\n * @param searchParams `searchParams` from the request url.\n * @returns URL-encoded query string parameters, separated by ampersands (&). Percent-encode reserved characters,\n * including the space character. Encode names and values separately. If there are empty parameters, append the equals\n * sign to the parameter name before encoding. After encoding, sort the parameters alphabetically by key name. If there\n * is no query string, use an empty string (\"\").\n *\n * @internal\n */\nexport var getCanonicalQueryString = function (searchParams) {\n return Array.from(searchParams)\n .sort(function (_a, _b) {\n var _c = __read(_a, 2), keyA = _c[0], valA = _c[1];\n var _d = __read(_b, 2), keyB = _d[0], valB = _d[1];\n if (keyA === keyB) {\n return valA < valB ? -1 : 1;\n }\n return keyA < keyB ? -1 : 1;\n })\n .map(function (_a) {\n var _b = __read(_a, 2), key = _b[0], val = _b[1];\n return \"\".concat(escapeUri(key), \"=\").concat(escapeUri(val));\n })\n .join('&');\n};\nvar escapeUri = function (uri) {\n return encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\n};\nvar hexEncode = function (c) {\n return \"%\".concat(c.charCodeAt(0).toString(16).toUpperCase());\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * Returns a canonical uri.\n *\n * @param pathname `pathname` from request url.\n * @param uriEscapePath Whether to uri encode the path as part of canonical uri. It's used for S3 only where the\n * pathname is already uri encoded, and the signing process is not expected to uri encode it again. Defaults to true.\n * @returns URI-encoded version of the absolute path component URL (everything between the host and the question mark\n * character (?) that starts the query string parameters). If the absolute path is empty, a forward slash character (/).\n *\n * @internal\n */\nexport var getCanonicalUri = function (pathname, uriEscapePath) {\n if (uriEscapePath === void 0) { uriEscapePath = true; }\n return pathname\n ? uriEscapePath\n ? encodeURIComponent(pathname).replace(/%2F/g, '/')\n : pathname\n : '/';\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { EMPTY_HASH, UNSIGNED_PAYLOAD } from '../constants';\nimport { getHashedDataAsHex } from './dataHashHelpers';\n/**\n * Returns the hashed payload.\n *\n * @param body `body` (payload) from the request.\n * @returns String created using the payload in the body of the HTTP request as input to a hash function. This string\n * uses lowercase hexadecimal characters. If the payload is empty, return precalculated result of an empty hash.\n *\n * @internal\n */\nexport var getHashedPayload = function (body) {\n // return precalculated empty hash if body is undefined or null\n if (body == null) {\n return EMPTY_HASH;\n }\n if (isSourceData(body)) {\n var hashedData = getHashedDataAsHex(null, body);\n return hashedData;\n }\n // Defined body is not signable. Return unsigned payload which may or may not be accepted by the service.\n return UNSIGNED_PAYLOAD;\n};\nvar isSourceData = function (body) {\n return typeof body === 'string' || ArrayBuffer.isView(body) || isArrayBuffer(body);\n};\nvar isArrayBuffer = function (arg) {\n return (typeof ArrayBuffer === 'function' && arg instanceof ArrayBuffer) ||\n Object.prototype.toString.call(arg) === '[object ArrayBuffer]';\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { getHashedDataAsHex } from './dataHashHelpers';\nimport { getCanonicalRequest } from './getCanonicalRequest';\nimport { getSigningKey } from './getSigningKey';\nimport { getStringToSign } from './getStringToSign';\n/**\n * Calculates and returns an AWS API Signature.\n * https://docs.aws.amazon.com/IAM/latest/UserGuide/create-signed-request.html\n *\n * @param request `HttpRequest` to be signed.\n * @param signRequestOptions `SignRequestOptions` object containing values used to construct the signature.\n * @returns AWS API Signature to sign a request or url with.\n *\n * @internal\n */\nexport var getSignature = function (request, _a) {\n var credentialScope = _a.credentialScope, longDate = _a.longDate, secretAccessKey = _a.secretAccessKey, shortDate = _a.shortDate, signingRegion = _a.signingRegion, signingService = _a.signingService, uriEscapePath = _a.uriEscapePath;\n // step 1: create a canonical request\n var canonicalRequest = getCanonicalRequest(request, uriEscapePath);\n // step 2: create a hash of the canonical request\n var hashedRequest = getHashedDataAsHex(null, canonicalRequest);\n // step 3: create a string to sign\n var stringToSign = getStringToSign(longDate, credentialScope, hashedRequest);\n // step 4: calculate the signature\n var signature = getHashedDataAsHex(getSigningKey(secretAccessKey, shortDate, signingRegion, signingService), stringToSign);\n return signature;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { getCanonicalHeaders } from './getCanonicalHeaders';\nimport { getCanonicalQueryString } from './getCanonicalQueryString';\nimport { getCanonicalUri } from './getCanonicalUri';\nimport { getHashedPayload } from './getHashedPayload';\nimport { getSignedHeaders } from './getSignedHeaders';\n/**\n * Returns a canonical request.\n *\n * @param request `HttpRequest` from which to create the canonical request from.\n * @param uriEscapePath Whether to uri encode the path as part of canonical uri. It's used for S3 only where the\n * pathname is already uri encoded, and the signing process is not expected to uri encode it again. Defaults to true.\n * @returns String created by by concatenating the following strings, separated by newline characters:\n * - HTTPMethod\n * - CanonicalUri\n * - CanonicalQueryString\n * - CanonicalHeaders\n * - SignedHeaders\n * - HashedPayload\n *\n * @internal\n */\nexport var getCanonicalRequest = function (_a, uriEscapePath) {\n var body = _a.body, headers = _a.headers, method = _a.method, url = _a.url;\n if (uriEscapePath === void 0) { uriEscapePath = true; }\n return [\n method,\n getCanonicalUri(url.pathname, uriEscapePath),\n getCanonicalQueryString(url.searchParams),\n getCanonicalHeaders(headers),\n getSignedHeaders(headers),\n getHashedPayload(body),\n ].join('\\n');\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { SHA256_ALGORITHM_IDENTIFIER } from '../constants';\n/**\n * Returns a string to be signed.\n *\n * @param date Current date in the format 'YYYYMMDDThhmmssZ'.\n * @param credentialScope String representing the credential scope with format 'YYYYMMDD/region/service/aws4_request'.\n * @param hashedRequest Hashed canonical request.\n *\n * @returns A string created by by concatenating the following strings, separated by newline characters:\n * - Algorithm\n * - RequestDateTime\n * - CredentialScope\n * - HashedCanonicalRequest\n *\n * @internal\n */\nexport var getStringToSign = function (date, credentialScope, hashedRequest) {\n return [SHA256_ALGORITHM_IDENTIFIER, date, credentialScope, hashedRequest].join('\\n');\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { KEY_TYPE_IDENTIFIER, SIGNATURE_IDENTIFIER } from '../constants';\nimport { getHashedData } from './dataHashHelpers';\n/**\n * Returns a signing key to be used for signing requests.\n *\n * @param secretAccessKey AWS secret access key from credentials.\n * @param date Current date in the format 'YYYYMMDD'.\n * @param region AWS region in which the service resides.\n * @param service Service to which the signed request is being sent.\n *\n * @returns `Uint8Array` calculated from its composite parts.\n *\n * @internal\n */\nexport var getSigningKey = function (secretAccessKey, date, region, service) {\n var key = \"\".concat(SIGNATURE_IDENTIFIER).concat(secretAccessKey);\n var dateKey = getHashedData(key, date);\n var regionKey = getHashedData(dateKey, region);\n var serviceKey = getHashedData(regionKey, service);\n var signingKey = getHashedData(serviceKey, KEY_TYPE_IDENTIFIER);\n return signingKey;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { getSignedHeaders } from './utils/getSignedHeaders';\nimport { getSigningValues } from './utils/getSigningValues';\nimport { AMZ_DATE_HEADER, AUTH_HEADER, HOST_HEADER, SHA256_ALGORITHM_IDENTIFIER, TOKEN_HEADER, } from './constants';\nimport { getSignature } from './utils/getSignature';\n/**\n * Given a `HttpRequest`, returns a Signature Version 4 signed `HttpRequest`.\n *\n * @param request `HttpRequest` to be signed.\n * @param signRequestOptions `SignRequestOptions` object containing values used to construct the signature.\n * @returns A `HttpRequest` with authentication headers which can grant temporary access to AWS resources.\n */\nexport var signRequest = function (request, options) {\n var signingValues = getSigningValues(options);\n var accessKeyId = signingValues.accessKeyId, credentialScope = signingValues.credentialScope, longDate = signingValues.longDate, sessionToken = signingValues.sessionToken;\n // create the request to sign\n var headers = __assign({}, request.headers);\n headers[HOST_HEADER] = request.url.host;\n headers[AMZ_DATE_HEADER] = longDate;\n if (sessionToken) {\n headers[TOKEN_HEADER] = sessionToken;\n }\n var requestToSign = __assign(__assign({}, request), { headers: headers });\n // calculate and add the signature to the request\n var signature = getSignature(requestToSign, signingValues);\n var credentialEntry = \"Credential=\".concat(accessKeyId, \"/\").concat(credentialScope);\n var signedHeadersEntry = \"SignedHeaders=\".concat(getSignedHeaders(headers));\n var signatureEntry = \"Signature=\".concat(signature);\n headers[AUTH_HEADER] = \"\".concat(SHA256_ALGORITHM_IDENTIFIER, \" \").concat(credentialEntry, \", \").concat(signedHeadersEntry, \", \").concat(signatureEntry);\n return requestToSign;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { ALGORITHM_QUERY_PARAM, AMZ_DATE_QUERY_PARAM, CREDENTIAL_QUERY_PARAM, EXPIRES_QUERY_PARAM, HOST_HEADER, SHA256_ALGORITHM_IDENTIFIER, SIGNATURE_QUERY_PARAM, SIGNED_HEADERS_QUERY_PARAM, TOKEN_QUERY_PARAM, } from './constants';\nimport { getSigningValues } from './utils/getSigningValues';\nimport { getSignature } from './utils/getSignature';\n/**\n * Given a `Presignable` object, returns a Signature Version 4 presigned `URL` object.\n *\n * @param presignable `Presignable` object containing at least a url to be presigned with authentication query params.\n * @param presignUrlOptions `PresignUrlOptions` object containing values used to construct the signature.\n * @returns A `URL` with authentication query params which can grant temporary access to AWS resources.\n */\nexport var presignUrl = function (_a, _b) {\n var _c, _d, _e, _f;\n var body = _a.body, _g = _a.method, method = _g === void 0 ? 'GET' : _g, url = _a.url;\n var expiration = _b.expiration, options = __rest(_b, [\"expiration\"]);\n var signingValues = getSigningValues(options);\n var accessKeyId = signingValues.accessKeyId, credentialScope = signingValues.credentialScope, longDate = signingValues.longDate, sessionToken = signingValues.sessionToken;\n // create the request to sign\n // @ts-ignore URL constructor accepts a URL object\n var presignedUrl = new URL(url);\n Object.entries(__assign(__assign((_c = {}, _c[ALGORITHM_QUERY_PARAM] = SHA256_ALGORITHM_IDENTIFIER, _c[CREDENTIAL_QUERY_PARAM] = \"\".concat(accessKeyId, \"/\").concat(credentialScope), _c[AMZ_DATE_QUERY_PARAM] = longDate, _c[SIGNED_HEADERS_QUERY_PARAM] = HOST_HEADER, _c), (expiration && (_d = {}, _d[EXPIRES_QUERY_PARAM] = expiration.toString(), _d))), (sessionToken && (_e = {}, _e[TOKEN_QUERY_PARAM] = sessionToken, _e)))).forEach(function (_a) {\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\n presignedUrl.searchParams.append(key, value);\n });\n var requestToSign = {\n body: body,\n headers: (_f = {}, _f[HOST_HEADER] = url.host, _f),\n method: method,\n url: presignedUrl,\n };\n // calculate and add the signature to the url\n var signature = getSignature(requestToSign, signingValues);\n presignedUrl.searchParams.append(SIGNATURE_QUERY_PARAM, signature);\n return presignedUrl;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { DateUtils } from './Util';\nimport { presignUrl, signRequest, TOKEN_QUERY_PARAM, } from './clients/middleware/signing/signer/signatureV4';\nvar IOT_SERVICE_NAME = 'iotdevicegateway';\n// Best practice regex to parse the service and region from an AWS endpoint\nvar AWS_ENDPOINT_REGEX = /([^\\.]+)\\.(?:([^\\.]*)\\.)?amazonaws\\.com(.cn)?$/;\nvar Signer = /** @class */ (function () {\n function Signer() {\n }\n /**\n * Sign a HTTP request, add 'Authorization' header to request param\n * @method sign\n * @memberof Signer\n * @static\n *\n * @param {object} request - HTTP request object\n <pre>\n request: {\n method: GET | POST | PUT ...\n url: ...,\n headers: {\n header1: ...\n },\n data: data\n }\n </pre>\n * @param {object} access_info - AWS access credential info\n <pre>\n access_info: {\n access_key: ...,\n secret_key: ...,\n session_token: ...\n }\n </pre>\n * @param {object} [service_info] - AWS service type and region, optional,\n * if not provided then parse out from url\n <pre>\n service_info: {\n service: ...,\n region: ...\n }\n </pre>\n *\n * @returns {object} Signed HTTP request\n */\n Signer.sign = function (request, accessInfo, serviceInfo) {\n request.headers = request.headers || {};\n if (request.body && !request.data) {\n throw new Error('The attribute \"body\" was found on the request object. Please use the attribute \"data\" instead.');\n }\n var requestToSign = __assign(__assign({}, request), { body: request.data, url: new URL(request.url) });\n var options = getOptions(requestToSign, accessInfo, serviceInfo);\n var signedRequest = signRequest(requestToSign, options);\n // Prior to using `signRequest`, Signer accepted urls as strings and outputted urls as string. Coerce the property\n // back to a string so as not to disrupt consumers of Signer.\n signedRequest.url = signedRequest.url.toString();\n // HTTP headers should be case insensitive but, to maintain parity with the previous Signer implementation and\n // limit the impact of this implementation swap, replace lowercased headers with title cased ones.\n signedRequest.headers.Authorization = signedRequest.headers.authorization;\n signedRequest.headers['X-Amz-Security-Token'] =\n signedRequest.headers['x-amz-security-token'];\n delete signedRequest.headers.authorization;\n delete signedRequest.headers['x-amz-security-token'];\n return signedRequest;\n };\n Signer.signUrl = function (urlOrRequest, accessInfo, serviceInfo, expiration) {\n var urlToSign = typeof urlOrRequest === 'object' ? urlOrRequest.url : urlOrRequest;\n var method = typeof urlOrRequest === 'object' ? urlOrRequest.method : 'GET';\n var body = typeof urlOrRequest === 'object' ? urlOrRequest.body : undefined;\n var presignable = {\n body: body,\n method: method,\n url: new URL(urlToSign),\n };\n var options = getOptions(presignable, accessInfo, serviceInfo, expiration);\n var signedUrl = presignUrl(presignable, options);\n if (accessInfo.session_token &&\n !sessionTokenRequiredInSigning(options.signingService)) {\n signedUrl.searchParams.append(TOKEN_QUERY_PARAM, accessInfo.session_token);\n }\n return signedUrl.toString();\n };\n return Signer;\n}());\nexport { Signer };\nvar getOptions = function (request, accessInfo, serviceInfo, expiration) {\n var _a = accessInfo !== null && accessInfo !== void 0 ? accessInfo : {}, access_key = _a.access_key, secret_key = _a.secret_key, session_token = _a.session_token;\n var _b = parseServiceInfo(request.url), urlRegion = _b.region, urlService = _b.service;\n var _c = serviceInfo !== null && serviceInfo !== void 0 ? serviceInfo : {}, _d = _c.region, region = _d === void 0 ? urlRegion : _d, _e = _c.service, service = _e === void 0 ? urlService : _e;\n var credentials = __assign({ accessKeyId: access_key, secretAccessKey: secret_key }, (sessionTokenRequiredInSigning(service)\n ? { sessionToken: session_token }\n : {}));\n return __assign({ credentials: credentials, signingDate: DateUtils.getDateWithClockOffset(), signingRegion: region, signingService: service }, (expiration && { expiration: expiration }));\n};\n// TODO: V6 investigate whether add to custom clients' general signer implementation.\nvar parseServiceInfo = function (url) {\n var _a;\n var host = url.host;\n var matched = (_a = host.match(AWS_ENDPOINT_REGEX)) !== null && _a !== void 0 ? _a : [];\n var parsed = matched.slice(1, 3);\n if (parsed[1] === 'es') {\n // Elastic Search\n parsed = parsed.reverse();\n }\n return {\n service: parsed[0],\n region: parsed[1],\n };\n};\n// IoT service does not allow the session token in the canonical request\n// https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html\n// TODO: V6 investigate whether add to custom clients' general signer implementation.\nvar sessionTokenRequiredInSigning = function (service) {\n return service !== IOT_SERVICE_NAME;\n};\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\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 && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let 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 {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\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 *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\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 (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 const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\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 *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && 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 *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\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 *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\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 {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n 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: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\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 * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\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 *\n * @returns {boolean}\n */\nconst isStandardBrowserEnv = (() => {\n let product;\n if (typeof navigator !== 'undefined' && (\n (product = navigator.product) === 'ReactNative' ||\n product === 'NativeScript' ||\n product === 'NS')\n ) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n})();\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\n const isStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n isStandardBrowserEnv,\n isStandardBrowserWebWorkerEnv,\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\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\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: platform.isNode ? 'http' : 'xhr',\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (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 headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\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 env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\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 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\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} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n const cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n// Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })();\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" 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 *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.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 const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let 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 let 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 const 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","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n const responseType = config.responseType;\n let 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 if (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else {\n requestHeaders.setContentType('multipart/form-data;', false); // mobile/desktop app frameworks\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\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 const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n 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(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, 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(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\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 (platform.isStandardBrowserEnv) {\n // Add xsrf header\n const xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath))\n && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\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', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : 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 const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if(fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n if((adapter = utils.isString(nameOrAdapter) ? knownAdapters[nameOrAdapter.toLowerCase()] : nameOrAdapter)) {\n break;\n }\n }\n\n if (!adapter) {\n if (adapter === false) {\n throw new AxiosError(\n `Adapter ${nameOrAdapter} is not supported by the environment`,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n throw new Error(\n utils.hasOwnProp(knownAdapters, nameOrAdapter) ?\n `Adapter '${nameOrAdapter}' is not available in the build` :\n `Unknown adapter '${nameOrAdapter}'`\n );\n }\n\n if (!utils.isFunction(adapter)) {\n throw new TypeError('adapter is not a function');\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : thing;\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 *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, 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(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const 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 beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.5.0\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\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 *\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 (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\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 *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(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, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n 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\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const 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 */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\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 *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","import { CognitoIdentityClient, GetCredentialsForIdentityCommand, GetIdCommand } from '@aws-sdk/client-cognito-identity'\nimport {\n AuthFlowType,\n CognitoIdentityProviderClient,\n ConfirmForgotPasswordCommand,\n ConfirmSignUpCommand,\n ForgotPasswordCommand,\n GetUserCommand,\n InitiateAuthCommand,\n ResendConfirmationCodeCommand\n // SignUpCommand\n} from '@aws-sdk/client-cognito-identity-provider'\nimport { FetchHttpHandler } from '@aws-sdk/fetch-http-handler'\nimport { Signer } from 'aws-amplify'\nimport axios, { AxiosResponse } from 'axios'\nimport _ from 'lodash'\n\nconst userPoolId = 'us-east-2_UG1vUltUo'\nconst identityPoolId = 'us-east-2:23386ff0-77f8-48e5-8d0a-58b37d897da3'\nconst clientId = '7ork94bfvjtcfln9jav4cnlrd2'\nconst host = 'https://api-v2.badtrader.com/v2'\nconst STREAM_CHANNELS = ['prod_channel', 'test']\n\nexport enum UserStatus {\n Active = 'Active',\n Muted = 'Muted',\n Banned = 'Banned',\n Blocked = 'Blocked'\n}\n\nexport const EMPTY_USER: User = {\n id: '',\n email: null,\n emailConfirmed: null,\n username: null,\n sub: ''\n}\n\nexport const EMPTY_PROFILE: Profile = {\n StatusUpdateTimestamp: '',\n createDate: '',\n displayName: '',\n id: '',\n muteStrikes: 0,\n pointsBalance: 0,\n status: UserStatus.Active,\n statusReason: '',\n bannerId: 'BannerFour',\n avatarId: 'Rocket'\n // vaultItems: []\n}\n\nexport interface User {\n id: string\n email: string\n emailConfirmed: boolean\n username: string\n sub: string\n}\n\nexport interface Profile {\n StatusUpdateTimestamp: string\n createDate: string\n displayName: string\n id: string\n muteStrikes: number\n pointsBalance: number\n status: string\n statusReason: string\n bannerId: string\n avatarId: string\n // vaultItems: VaultItem[]\n}\n\nexport interface ChannelDto {\n id: string\n name: string\n status: string\n streamUrl: string\n}\n\nexport class CognitoClient {\n identityClient = new CognitoIdentityClient({ region: 'us-east-2' })\n awsCredentials = null\n idToken = null\n loggedIn = false\n accessToken = null\n refreshToken = null\n\n // @ts-ignore\n client = new CognitoIdentityProviderClient({\n credentials: () => this.identityCredentials(),\n region: 'us-east-2',\n // @ts-ignore\n requestHandler: new FetchHttpHandler({\n requestTimeout: 5000\n }),\n maxAttempts: 2\n })\n\n private _login(username: string, password: string) {\n const command = new InitiateAuthCommand({\n ClientId: clientId,\n AuthFlow: AuthFlowType.USER_PASSWORD_AUTH,\n AuthParameters: { USERNAME: username, PASSWORD: password }\n })\n\n return this.authenticate(command)\n }\n\n login(email: string, password: string) {\n console.info('logging in to social')\n return this._login(email, password).then(response => {\n this.storeLoginResponse(response)\n })\n }\n\n forgotPassword(username) {\n const command = new ForgotPasswordCommand({\n ClientId: clientId,\n Username: username\n })\n\n return this.client.send(command)\n }\n\n confirmForgotPassword(username, password, code) {\n const command = new ConfirmForgotPasswordCommand({\n ClientId: clientId,\n Username: username,\n Password: password,\n ConfirmationCode: code\n })\n\n return this.client.send(command)\n }\n\n confirm(username, confirmationCode) {\n const command = new ConfirmSignUpCommand({\n ClientId: clientId,\n Username: username,\n ConfirmationCode: confirmationCode\n })\n\n return this.client.send(command)\n }\n\n resendCode(username) {\n const command = new ResendConfirmationCodeCommand({\n ClientId: clientId,\n Username: username\n })\n\n return this.client.send(command)\n }\n\n authenticate = (command: InitiateAuthCommand) => {\n // capture existing refresh token for AuthFlowType.REFRESH_TOKEN_AUTH, see shouldReauthenticate\n const currentRefreshToken = command.input.AuthParameters['REFRESH_TOKEN']\n return this.client.send(command).then(response => {\n if (!_.isNil(response.AuthenticationResult?.IdToken)) {\n this.accessToken = response.AuthenticationResult?.AccessToken\n this.idToken = response.AuthenticationResult?.IdToken\n // not guaranteed to get new refresh token for flow AuthFlowType.REFRESH_TOKEN_AUTH\n this.refreshToken = response.AuthenticationResult?.RefreshToken || currentRefreshToken\n\n return this.getScopedCreds().then(awsCredentials => {\n return {\n idToken: this.idToken,\n accessToken: this.accessToken,\n refreshToken: this.refreshToken,\n awsCredentials: awsCredentials\n }\n })\n }\n\n return null\n })\n }\n\n // signUp(username, password, nickname) {\n // const command = new SignUpCommand({\n // ClientId: appId,\n // Username: username,\n // Password: password,\n // UserAttributes: [{ Name: 'preferred_username', Value: nickname }] // may not be needed\n // })\n\n // return this.client.send(command)\n // }\n\n identityCredentials = () => {\n return this.getScopedCreds().then(response => {\n return {\n accessKeyId: response.AccessKeyId,\n expiration: response.Expiration,\n secretAccessKey: response.SecretKey,\n sessionToken: response.SessionToken\n }\n })\n }\n\n getScopedCreds() {\n const Logins = { [`cognito-idp.us-east-2.amazonaws.com/${userPoolId}`]: this.idToken }\n const getIdCommand = new GetIdCommand({\n IdentityPoolId: identityPoolId,\n Logins\n })\n\n return this.identityClient.send(getIdCommand).then(idResponse => {\n const getCredsCommand = new GetCredentialsForIdentityCommand({\n IdentityId: idResponse.IdentityId,\n Logins\n })\n\n return this.identityClient.send(getCredsCommand).then(credentialsResponse => {\n this.awsCredentials = credentialsResponse.Credentials\n return this.awsCredentials\n })\n })\n }\n\n signedRequest = (request: any) => {\n const accessInfo = {\n access_key: this.awsCredentials?.AccessKeyId,\n secret_key: this.awsCredentials?.SecretKey,\n session_token: this.awsCredentials?.SessionToken\n }\n\n const serviceInfo = {\n service: 'execute-api',\n region: 'us-east-2'\n }\n\n const signedRequest = Signer.sign(request, accessInfo, serviceInfo)\n delete signedRequest.headers['host']\n\n const instance = axios.create()\n\n return instance(signedRequest)\n }\n\n getTokenRequest = async () => {\n const response = await this.signedRequest({\n method: 'POST',\n url: `${host}/ps/auth/tokens`,\n data: ''\n })\n\n return response?.data\n }\n\n getProfile = (id: string) => {\n const url = `${host}/ps/profile/${id}`\n return this.signedRequest({\n method: 'GET',\n url: url,\n data: ''\n }).then(response => {\n return response.data\n })\n }\n\n shouldReauthenticate = async () => {\n const command = new InitiateAuthCommand({\n ClientId: clientId,\n AuthFlow: AuthFlowType.REFRESH_TOKEN_AUTH,\n AuthParameters: { REFRESH_TOKEN: this.refreshToken }\n })\n\n return this.authenticate(command)\n .then(response => {\n this.storeLoginResponse(response)\n return false\n })\n .catch(_error => {\n console.error('error reauthenticating social login')\n return true\n })\n }\n\n logout = () => {\n this.accessToken = null\n this.idToken = null\n this.refreshToken = null\n this.loggedIn = false\n }\n\n getChannelData = (): Promise<ChannelDto[]> => {\n const url = `${host}/shs/channels`\n\n return this.signedRequest({\n method: 'GET',\n url: url,\n data: ''\n }).then((response: AxiosResponse<ChannelDto[]>) => {\n return response.data\n })\n }\n\n getCurrentChannel = () => {\n return this.getChannelData().then(channels => {\n for (const channelName of STREAM_CHANNELS) {\n const channel = channels.find(channel => channel.name === channelName && channel.status === 'Active')\n\n if (!_.isNil(channel)) {\n return { channelName, channel }\n }\n }\n\n console.error('no current stream found')\n return null\n })\n }\n\n storeLoginResponse = response => {\n this.accessToken = response.accessToken\n this.idToken = response.idToken\n\n if (!_.isNil(response.refreshToken)) {\n this.refreshToken = response.refreshToken\n }\n\n this.loggedIn = true\n }\n\n getUser = () => {\n const command = new GetUserCommand({\n AccessToken: this.accessToken\n })\n\n return this.client.send(command).then(response => {\n return this.returnUserFromResponse(response)\n })\n }\n\n returnUserFromResponse = (response: any) => {\n let user = EMPTY_USER\n\n if (!_.isNil(response.UserAttributes)) {\n const userAttributes = { email: '', email_verified: false, preferred_username: '', sub: '' }\n\n response.UserAttributes.forEach(obj => (userAttributes[obj.Name] = obj.Value))\n user = {\n ...user,\n id: response.Username,\n email: userAttributes.email,\n emailConfirmed: userAttributes.email_verified,\n username: userAttributes.preferred_username,\n sub: userAttributes.sub\n }\n }\n\n return user\n }\n}\n","import * as cookie from 'cookie';\nexport function hasDocumentCookie() {\n // Can we get/set cookies on document.cookie?\n return typeof document === 'object' && typeof document.cookie === 'string';\n}\nexport function cleanCookies() {\n document.cookie.split(';').forEach(function (c) {\n document.cookie = c\n .replace(/^ +/, '')\n .replace(/=.*/, '=;expires=' + new Date().toUTCString() + ';path=/');\n });\n}\nexport function parseCookies(cookies) {\n if (typeof cookies === 'string') {\n return cookie.parse(cookies);\n }\n else if (typeof cookies === 'object' && cookies !== null) {\n return cookies;\n }\n else {\n return {};\n }\n}\nexport function readCookie(value, options = {}) {\n const cleanValue = cleanupCookieValue(value);\n if (!options.doNotParse) {\n try {\n return JSON.parse(cleanValue);\n }\n catch (e) {\n // At least we tried\n }\n }\n // Ignore clean value if we failed the deserialization\n // It is not relevant anymore to trim those values\n return value;\n}\nfunction cleanupCookieValue(value) {\n // express prepend j: before serializing a cookie\n if (value && value[0] === 'j' && value[1] === ':') {\n return value.substr(2);\n }\n return value;\n}\n","import * as cookie from 'cookie';\nimport { hasDocumentCookie, parseCookies, readCookie } from './utils';\nexport default class Cookies {\n constructor(cookies, defaultSetOptions = {}) {\n this.changeListeners = [];\n this.HAS_DOCUMENT_COOKIE = false;\n this.update = () => {\n if (!this.HAS_DOCUMENT_COOKIE) {\n return;\n }\n const previousCookies = this.cookies;\n this.cookies = cookie.parse(document.cookie);\n this._checkChanges(previousCookies);\n };\n const domCookies = typeof document === 'undefined' ? '' : document.cookie;\n this.cookies = parseCookies(cookies || domCookies);\n this.defaultSetOptions = defaultSetOptions;\n this.HAS_DOCUMENT_COOKIE = hasDocumentCookie();\n }\n _emitChange(params) {\n for (let i = 0; i < this.changeListeners.length; ++i) {\n this.changeListeners[i](params);\n }\n }\n _checkChanges(newCookies) {\n const names = new Set(Object.keys(newCookies).concat(Object.keys(this.cookies)));\n names.forEach((name) => {\n if (newCookies[name] !== this.cookies[name]) {\n this._emitChange({\n name,\n value: readCookie(newCookies[name]),\n });\n }\n });\n }\n _startPolling() {\n this.pollingInterval = setInterval(this.update, 300);\n }\n _stopPolling() {\n if (this.pollingInterval) {\n clearInterval(this.pollingInterval);\n }\n }\n get(name, options = {}) {\n if (!options.doNotUpdate) {\n this.update();\n }\n return readCookie(this.cookies[name], options);\n }\n getAll(options = {}) {\n if (!options.doNotUpdate) {\n this.update();\n }\n const result = {};\n for (let name in this.cookies) {\n result[name] = readCookie(this.cookies[name], options);\n }\n return result;\n }\n set(name, value, options) {\n if (options) {\n options = Object.assign(Object.assign({}, this.defaultSetOptions), options);\n }\n else {\n options = this.defaultSetOptions;\n }\n const stringValue = typeof value === 'string' ? value : JSON.stringify(value);\n this.cookies = Object.assign(Object.assign({}, this.cookies), { [name]: stringValue });\n if (this.HAS_DOCUMENT_COOKIE) {\n document.cookie = cookie.serialize(name, stringValue, options);\n }\n this._emitChange({ name, value, options });\n }\n remove(name, options) {\n const finalOptions = (options = Object.assign(Object.assign({}, options), { expires: new Date(1970, 1, 1, 0, 0, 1), maxAge: 0 }));\n this.cookies = Object.assign({}, this.cookies);\n delete this.cookies[name];\n if (this.HAS_DOCUMENT_COOKIE) {\n document.cookie = cookie.serialize(name, '', finalOptions);\n }\n this._emitChange({ name, value: undefined, options });\n }\n addChangeListener(callback) {\n this.changeListeners.push(callback);\n if (this.changeListeners.length === 1) {\n if (typeof window === 'object' && 'cookieStore' in window) {\n window.cookieStore.addEventListener('change', this.update);\n }\n else {\n this._startPolling();\n }\n }\n }\n removeChangeListener(callback) {\n const idx = this.changeListeners.indexOf(callback);\n if (idx >= 0) {\n this.changeListeners.splice(idx, 1);\n }\n if (this.changeListeners.length === 0) {\n if (typeof window === 'object' && 'cookieStore' in window) {\n window.cookieStore.removeEventListener('change', this.update);\n }\n else {\n this._stopPolling();\n }\n }\n }\n}\n","import Cookies from './Cookies';\nexport default Cookies;\nexport * from './types';\n","import Cookies from 'universal-cookie';\nexport default Cookies;\n","import * as React from 'react';\nimport Cookies from './Cookies';\nconst CookiesContext = React.createContext(new Cookies());\nexport const { Provider, Consumer } = CookiesContext;\nexport default CookiesContext;\n","import { useContext, useLayoutEffect, useState, useMemo } from 'react';\nimport CookiesContext from './CookiesContext';\nimport { isInBrowser } from './utils';\nexport default function useCookies(dependencies) {\n const cookies = useContext(CookiesContext);\n if (!cookies) {\n throw new Error('Missing <CookiesProvider>');\n }\n const [allCookies, setCookies] = useState(() => cookies.getAll());\n if (isInBrowser()) {\n useLayoutEffect(() => {\n function onChange() {\n const newCookies = cookies.getAll({\n doNotUpdate: true,\n });\n if (shouldUpdate(dependencies || null, newCookies, allCookies)) {\n setCookies(newCookies);\n }\n }\n cookies.addChangeListener(onChange);\n return () => {\n cookies.removeChangeListener(onChange);\n };\n }, [cookies, allCookies]);\n }\n const setCookie = useMemo(() => cookies.set.bind(cookies), [cookies]);\n const removeCookie = useMemo(() => cookies.remove.bind(cookies), [cookies]);\n const updateCookies = useMemo(() => cookies.update.bind(cookies), [cookies]);\n return [allCookies, setCookie, removeCookie, updateCookies];\n}\nfunction shouldUpdate(dependencies, newCookies, oldCookies) {\n if (!dependencies) {\n return true;\n }\n for (let dependency of dependencies) {\n if (newCookies[dependency] !== oldCookies[dependency]) {\n return true;\n }\n }\n return false;\n}\n","export function isInBrowser() {\n return (typeof window !== 'undefined' &&\n typeof window.document !== 'undefined' &&\n typeof window.document.createElement !== 'undefined');\n}\n","import * as React from 'react';\nimport Cookies from 'universal-cookie';\nimport { Provider } from './CookiesContext';\nexport default class CookiesProvider extends React.Component {\n constructor(props) {\n super(props);\n if (props.cookies) {\n this.cookies = props.cookies;\n }\n else {\n this.cookies = new Cookies(undefined, props.defaultSetOptions);\n }\n }\n render() {\n return React.createElement(Provider, { value: this.cookies }, this.props.children);\n }\n}\n","import Ably from 'ably'\nimport _ from 'lodash'\n\nexport enum AblyState {\n ATTACHED = 'attached',\n INITIALIZED = 'initialized',\n ATTACHING = 'attaching',\n DETACHED = 'detached'\n}\n\nexport enum ConnectionState {\n INITIALIZED = 'initialized',\n CONNECTING = 'connecting',\n CONNECTED = 'connected',\n DISCONNECTED = 'disconnected',\n SUSPENDED = 'suspended',\n CLOSING = 'closing',\n CLOSED = 'closed',\n FAILED = 'failed'\n}\n\n// NOTE: Admin uses messageData.data, app uses messageData.data.data, this is a helper allowing both\nexport const getMessage = (messageData: any) => messageData?.data?.data ?? messageData?.data\n\nexport class AblyClient {\n constructor(cognito) {\n this.getTokenRequest = cognito.getTokenRequest\n }\n\n getTokenRequest: () => Promise<any> = null\n client: Ably.Realtime = null\n userId = null\n channelState: Map<string, string> = new Map()\n\n getUserEventsChannel = () => `bad_trader:${this.userId}:technical:out`\n\n init = () => {\n this.client = new Ably.Realtime({\n idempotentRestPublishing: true,\n authCallback: async (_tokenParams, callback) => {\n try {\n const tokenRequest = await this.getTokenRequest()\n this.userId = tokenRequest.cognitoUsername\n\n callback(null, tokenRequest.ablyAccessToken)\n } catch (error: any) {\n callback(error, null)\n }\n }\n })\n }\n\n // refresh = () => {\n // const idToken = this.idToken\n\n // this.reset()\n // this.init(idToken)\n // }\n\n // connect = (callback = _.noop) => {\n // if (_.isNil(this.client)) {\n // return\n // }\n\n // if (this.client.connection.state === ConnectionState.CONNECTED) {\n // callback()\n // return\n // }\n\n // this.client.connection.on(ConnectionState.CONNECTED, callback)\n // }\n\n enterPresenceChannel = (channelName: string, displayName: string, status: string) => {\n const channel = this.getChannel(channelName)\n\n if (_.isNil(channel)) {\n return false\n }\n\n channel.presence.enterClient(this.userId, { displayName: displayName, status: status })\n\n return true\n }\n\n leavePresenceChannel = (channelName: string) => {\n const channel = this.getChannel(channelName)\n\n if (_.isNil(channel)) {\n return false\n }\n\n channel.presence.leaveClient(this.userId)\n\n return true\n }\n\n disconnect = (callback = _.noop) => {\n if (_.isNil(this.client)) {\n return\n }\n\n this.client.connection.on(ConnectionState.CLOSED, callback)\n this.client.connection.close()\n }\n\n subscribe = (channelName: string, callback: (data) => void) => {\n const channel = this.getChannel(channelName)\n\n if (_.isNil(channel)) {\n return false\n }\n\n channel.subscribe(callback)\n\n return true\n }\n\n getChannel = (channelName: string) => {\n if (_.isNil(this.client)) {\n return null\n }\n\n const channel = this.client.channels.get(channelName)\n\n if (!this.channelState.has(channelName)) {\n channel.on(stateChange => {\n this.channelState.set(channelName, stateChange.current)\n })\n }\n\n return channel\n }\n\n publish = (channelName: string, messageData: any) => {\n const channel = this.getChannel(channelName)\n\n if (_.isNil(channel)) {\n return\n }\n\n const message = { data: messageData }\n\n channel.publish(message)\n }\n\n reset = () => {\n this.client = null\n }\n}\n","import { Outlet, ScrollRestoration } from 'react-router-dom'\nimport logoRed from 'assets/logoRed.svg'\nimport logoYellow from 'assets/logoYellow.svg'\nimport logoOrange from 'assets/logoOrange.svg'\nimport logoBlue from 'assets/logoBlue.svg'\nimport logoGreen from 'assets/logoGreen.svg'\nimport { useLocation } from 'react-router-dom'\nimport { useCallback, useEffect, useState } from 'react'\nimport Header from 'components/header'\nimport Footer from 'components/footer'\nimport LoginModal from 'components/login-modal'\nimport { CognitoClient, EMPTY_PROFILE, EMPTY_USER } from 'lib/cognito'\nimport { CookiesProvider, useCookies } from 'react-cookie'\nimport _ from 'lodash'\nimport { AblyClient } from 'lib/ably'\n\nconst LOGOS_MAP = new Map([\n ['/', logoRed],\n ['/about-us', logoYellow],\n ['/partners', logoOrange],\n ['/faq', logoBlue],\n ['/contact', logoGreen],\n ['/host-application', logoYellow]\n])\n\n// React-router loading\n// export async function loader() {\n// const contacts = [\n// { id: 1, first: 'derek', last: 'watring' },\n// { id: 2, first: 'desrek', last: 'wstring' }\n// ]\n// return { contacts }\n// }\n\nexport default function Root() {\n const location = useLocation()\n const [logo, setLogo] = useState(null)\n const [visible, setVisible] = useState(null)\n const [user, setUser] = useState(EMPTY_USER)\n const [profile, setProfile] = useState(EMPTY_PROFILE)\n const [cognito] = useState(new CognitoClient())\n const [ably] = useState(new AblyClient(cognito))\n const [cookies, setCookie, removeCookie] = useCookies(['idToken', 'accessToken', 'refreshToken'])\n\n const logout = useCallback(() => {\n cognito.logout()\n removeCookie('accessToken')\n removeCookie('idToken')\n removeCookie('refreshToken')\n ably.disconnect()\n ably.reset()\n\n setProfile(EMPTY_PROFILE)\n setUser(EMPTY_USER)\n }, [ably, cognito, removeCookie])\n\n const initializeSocial = useCallback(\n async (_skipUser: boolean) => {\n console.info('MainLoading - saving data to cookies')\n setCookie('accessToken', cognito.accessToken)\n setCookie('idToken', cognito.idToken)\n\n if (!_.isNil(cognito.refreshToken)) {\n setCookie('refreshToken', cognito.refreshToken)\n }\n\n console.info('MainLoading - fetching social info')\n\n try {\n const cogUser = await cognito.getUser()\n // if (!skipUser) {\n setUser(cogUser)\n // }\n\n const profile = await cognito.getProfile(cogUser.sub)\n setProfile(profile)\n } catch {\n console.error('error getting user or profile')\n }\n },\n [cognito, setCookie]\n )\n\n useEffect(() => {\n setLogo(LOGOS_MAP.get(location.pathname) || logoRed)\n }, [location, logo, setLogo])\n\n useEffect(() => {\n const validateSession = async () => {\n try {\n const validUser = await cognito.getUser()\n setUser(validUser)\n console.info('AuthLoading - Validating social session', validUser.email)\n\n if (!validUser.email) {\n return false\n } else {\n if (!validUser.emailConfirmed) {\n console.info('AuthLoading - email unconfirmed', validUser.email)\n }\n\n const isValidSession = !(await cognito.shouldReauthenticate())\n\n console.info(`AuthLoading - ${isValidSession ? 'validated social session' : 'social needs reauthentication'}`)\n\n return isValidSession\n }\n } catch (error: any) {\n // InAppMessage.showError({\n // message: 'Error validating previous session, please log in'\n // })\n console.error('AuthLoading - error getting user to validate session')\n\n return false\n }\n }\n\n const tryToRestoreSession = async (): Promise<boolean> => {\n console.info('AuthLoading - attempting to restore session')\n\n cognito.accessToken = cookies.accessToken\n cognito.idToken = cookies.idToken\n cognito.refreshToken = cookies.refreshToken\n\n if (!cognito.accessToken || !cognito.idToken) {\n console.info('AuthLoading - No past session')\n return false\n } else {\n if (await validateSession()) {\n await initializeSocial(true)\n return true\n } else {\n logout()\n return false\n }\n }\n }\n\n tryToRestoreSession()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [removeCookie, initializeSocial, logout])\n\n // const { contacts } = useLoaderData();\n return (\n <CookiesProvider defaultSetOptions={{ path: '/' }}>\n <Header\n useDark={\n location.pathname === '/host-application' ||\n location.pathname === '/privacy-policy' ||\n location.pathname === '/watch'\n }\n logo={logo}\n />\n <div id=\"detail\">\n <LoginModal visible={visible} setVisible={setVisible} onLogin={initializeSocial} cognito={cognito} />\n <Outlet context={[visible, setVisible, profile, user, cognito, ably]} />\n </div>\n <Footer />\n <ScrollRestoration />\n </CookiesProvider>\n )\n}\n","import 'styles/error-page.css'\nimport 'styles/text.css'\nimport { ScrollRestoration, useRouteError } from 'react-router-dom'\nimport gif404 from 'assets/404.gif'\nimport Footer from 'components/footer'\nimport Header from 'components/header'\n\ntype ErrorResponse = {\n data: any\n status: number\n statusText: string\n message?: string\n}\n\nexport default function ErrorPage() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const error = useRouteError() as ErrorResponse\n\n return (\n <>\n <Header useDark={true} />\n <div className=\"error-page\">\n <div className=\"h1 error-header\">\n {error.status} {error.statusText}.\n </div>\n <div className=\"h3 error-text\">\n We don’t know how you got here but whatever you’re looking for isn’t here anymore.\n </div>\n <img src={gif404} className=\"error-gif\" alt=\"arrows\" />\n </div>\n <Footer />\n <ScrollRestoration />\n </>\n )\n}\n","var _g, _defs;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgMail(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 434,\n height: 328,\n viewBox: \"0 0 434 328\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_365_1675)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M76.9533 293.318C73.6202 293.318 70.2938 292.587 67.1864 291.133C61.5892 288.517 57.3399 283.882 55.2351 278.078L1.39426 129.958C-2.96135 117.973 3.24008 104.672 15.2313 100.316L287.297 1.40122C293.107 -0.710413 299.381 -0.431518 304.978 2.17814C310.576 4.79444 314.825 9.4294 316.93 15.2331L320.94 26.256C321.757 28.4938 320.602 30.9707 318.357 31.7874C316.12 32.6042 313.643 31.4488 312.826 29.2044L308.816 18.1814C307.495 14.5425 304.832 11.634 301.32 10.0005C297.814 8.3603 293.877 8.18765 290.238 9.50908L18.1793 108.43C10.6698 111.16 6.779 119.493 9.50789 127.01L63.3487 275.123C64.67 278.762 67.3325 281.67 70.8382 283.311C74.344 284.951 78.2813 285.123 81.9198 283.802L353.986 184.887C361.495 182.158 365.386 173.818 362.657 166.308L319.884 48.634C319.068 46.3962 320.223 43.9194 322.467 43.1026C324.711 42.2858 327.181 43.4413 327.998 45.6857L370.771 163.359C375.126 175.345 368.918 188.646 356.934 193.002L84.8678 291.91C82.2916 292.846 79.6158 293.311 76.9533 293.311V293.318Z\",\n fill: \"#120E0F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M189.037 159.096C188.765 159.096 188.493 159.07 188.227 159.016L24.6397 127.661C22.2959 127.209 20.7622 124.951 21.2137 122.607C21.6652 120.263 23.9226 118.736 26.2664 119.181L187.324 150.052L290.956 22.949C292.463 21.103 295.178 20.8241 297.024 22.3315C298.87 23.8389 299.149 26.5548 297.642 28.4074L192.377 157.509C191.547 158.525 190.312 159.096 189.031 159.096H189.037Z\",\n fill: \"#120E0F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M389.534 328C388.492 328 387.443 327.926 386.387 327.787L128.909 292.573C126.545 292.248 124.892 290.077 125.217 287.713C125.542 285.349 127.713 283.708 130.077 284.021L387.556 319.234C395.477 320.317 402.8 314.752 403.883 306.837L425.236 150.696C425.76 146.858 424.758 143.046 422.42 139.965C420.077 136.884 416.677 134.892 412.839 134.367L368.726 128.331C366.362 128.006 364.709 125.834 365.034 123.47C365.359 121.106 367.531 119.453 369.894 119.778L414.008 125.814C420.13 126.651 425.554 129.825 429.292 134.746C433.031 139.666 434.624 145.749 433.788 151.871L412.434 308.012C410.848 319.593 400.908 328.013 389.534 328.013V328Z\",\n fill: \"#120E0F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M369.788 240.719C368.566 240.719 367.345 240.201 366.495 239.192C360.566 232.2 351.914 228.182 342.758 228.182C335.919 228.182 329.426 230.36 323.994 234.484C322.096 235.925 319.387 235.553 317.946 233.654C316.505 231.755 316.877 229.046 318.776 227.605C325.721 222.339 334.014 219.55 342.758 219.55C354.457 219.55 365.512 224.676 373.081 233.607C374.622 235.427 374.396 238.149 372.577 239.69C371.767 240.381 370.777 240.713 369.788 240.713V240.719Z\",\n fill: \"#120E0F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M342.758 299.015C332.201 299.015 322.255 294.918 314.765 287.474C313.072 285.794 313.066 283.058 314.745 281.372C316.425 279.678 319.161 279.672 320.847 281.352C326.71 287.175 334.492 290.383 342.758 290.383C353.979 290.383 364.37 284.3 369.881 274.506C371.05 272.427 373.679 271.69 375.757 272.859C377.835 274.027 378.572 276.657 377.404 278.735C370.366 291.239 357.093 299.008 342.758 299.008V299.015Z\",\n fill: \"#120E0F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M395.357 258.11C395.158 258.11 394.959 258.097 394.76 258.07L288.306 243.242C285.943 242.91 284.296 240.732 284.628 238.375C284.953 236.011 287.131 234.358 289.495 234.696L395.948 249.524C398.312 249.856 399.959 252.034 399.627 254.392C399.328 256.55 397.475 258.11 395.357 258.11Z\",\n fill: \"#120E0F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M321.392 263.601C321.193 263.601 320.993 263.588 320.794 263.562L288.937 259.126C286.573 258.794 284.927 256.616 285.259 254.258C285.584 251.894 287.775 250.248 290.126 250.58L321.983 255.015C324.346 255.347 325.993 257.525 325.661 259.883C325.362 262.041 323.51 263.601 321.392 263.601Z\",\n fill: \"#120E0F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M391.612 273.383C391.413 273.383 391.214 273.37 391.015 273.343L336.776 265.786C334.412 265.454 332.765 263.276 333.097 260.919C333.423 258.555 335.601 256.902 337.964 257.24L392.203 264.797C394.567 265.129 396.214 267.307 395.882 269.664C395.583 271.822 393.731 273.383 391.612 273.383Z\",\n fill: \"#120E0F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M338.183 280.94C337.984 280.94 337.785 280.926 337.586 280.9L283.347 273.343C280.983 273.011 279.336 270.833 279.668 268.476C279.994 266.112 282.171 264.458 284.535 264.797L338.774 272.354C341.138 272.686 342.785 274.864 342.453 277.221C342.154 279.379 340.301 280.94 338.183 280.94Z\",\n fill: \"#120E0F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M118.956 251.968L93.4927 260.972C88.6524 262.685 83.3274 260.142 81.6144 255.301L59.438 192.59C58.7674 190.691 59.7634 188.606 61.6623 187.928C63.5612 187.251 65.6461 188.254 66.3233 190.153L88.4997 252.864C88.8715 253.907 90.0202 254.458 91.0626 254.086L116.526 245.082C131.903 239.643 140.548 222.916 135.794 207.79C133.337 199.981 127.966 193.672 120.662 190.02C113.352 186.368 105.092 185.863 97.3968 188.586C95.4979 189.256 93.4131 188.26 92.7358 186.361C88.0217 173.027 74.4503 164.787 60.4738 166.766C59.7435 166.872 59.3451 167.363 59.1724 167.642C58.8471 168.18 58.7807 168.817 58.9865 169.402L61.2905 175.916C61.9611 177.815 60.9651 179.9 59.0662 180.578C57.1673 181.255 55.0824 180.252 54.4052 178.353L52.1012 171.839C51.1584 169.183 51.4638 166.274 52.9245 163.857C54.3587 161.493 56.7357 159.919 59.4447 159.534C75.6919 157.23 91.4942 166.009 98.2998 180.684C106.898 178.506 115.882 179.469 123.922 183.486C133.012 188.028 139.705 195.884 142.752 205.598C148.668 224.43 137.992 245.228 118.949 251.961L118.956 251.968Z\",\n fill: \"#E8E8E8\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_365_1675\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 434,\n height: 328,\n fill: \"white\"\n })))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMail);\nexport default __webpack_public_path__ + \"static/media/mail.16146ad67aefd1ee563ebf4b6327b71d.svg\";\nexport { ForwardRef as ReactComponent };","function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\n/*!\n * GSAP 3.12.2\n * https://greensock.com\n *\n * @license Copyright 2008-2023, GreenSock. All rights reserved.\n * Subject to the terms at https://greensock.com/standard-license or for\n * Club GreenSock members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nvar _config = {\n autoSleep: 120,\n force3D: \"auto\",\n nullTargetWarn: 1,\n units: {\n lineHeight: \"\"\n }\n},\n _defaults = {\n duration: .5,\n overwrite: false,\n delay: 0\n},\n _suppressOverwrites,\n _reverting,\n _context,\n _bigNum = 1e8,\n _tinyNum = 1 / _bigNum,\n _2PI = Math.PI * 2,\n _HALF_PI = _2PI / 4,\n _gsID = 0,\n _sqrt = Math.sqrt,\n _cos = Math.cos,\n _sin = Math.sin,\n _isString = function _isString(value) {\n return typeof value === \"string\";\n},\n _isFunction = function _isFunction(value) {\n return typeof value === \"function\";\n},\n _isNumber = function _isNumber(value) {\n return typeof value === \"number\";\n},\n _isUndefined = function _isUndefined(value) {\n return typeof value === \"undefined\";\n},\n _isObject = function _isObject(value) {\n return typeof value === \"object\";\n},\n _isNotFalse = function _isNotFalse(value) {\n return value !== false;\n},\n _windowExists = function _windowExists() {\n return typeof window !== \"undefined\";\n},\n _isFuncOrString = function _isFuncOrString(value) {\n return _isFunction(value) || _isString(value);\n},\n _isTypedArray = typeof ArrayBuffer === \"function\" && ArrayBuffer.isView || function () {},\n // note: IE10 has ArrayBuffer, but NOT ArrayBuffer.isView().\n_isArray = Array.isArray,\n _strictNumExp = /(?:-?\\.?\\d|\\.)+/gi,\n //only numbers (including negatives and decimals) but NOT relative values.\n_numExp = /[-+=.]*\\d+[.e\\-+]*\\d*[e\\-+]*\\d*/g,\n //finds any numbers, including ones that start with += or -=, negative numbers, and ones in scientific notation like 1e-8.\n_numWithUnitExp = /[-+=.]*\\d+[.e-]*\\d*[a-z%]*/g,\n _complexStringNumExp = /[-+=.]*\\d+\\.?\\d*(?:e-|e\\+)?\\d*/gi,\n //duplicate so that while we're looping through matches from exec(), it doesn't contaminate the lastIndex of _numExp which we use to search for colors too.\n_relExp = /[+-]=-?[.\\d]+/,\n _delimitedValueExp = /[^,'\"\\[\\]\\s]+/gi,\n // previously /[#\\-+.]*\\b[a-z\\d\\-=+%.]+/gi but didn't catch special characters.\n_unitExp = /^[+\\-=e\\s\\d]*\\d+[.\\d]*([a-z]*|%)\\s*$/i,\n _globalTimeline,\n _win,\n _coreInitted,\n _doc,\n _globals = {},\n _installScope = {},\n _coreReady,\n _install = function _install(scope) {\n return (_installScope = _merge(scope, _globals)) && gsap;\n},\n _missingPlugin = function _missingPlugin(property, value) {\n return console.warn(\"Invalid property\", property, \"set to\", value, \"Missing plugin? gsap.registerPlugin()\");\n},\n _warn = function _warn(message, suppress) {\n return !suppress && console.warn(message);\n},\n _addGlobal = function _addGlobal(name, obj) {\n return name && (_globals[name] = obj) && _installScope && (_installScope[name] = obj) || _globals;\n},\n _emptyFunc = function _emptyFunc() {\n return 0;\n},\n _startAtRevertConfig = {\n suppressEvents: true,\n isStart: true,\n kill: false\n},\n _revertConfigNoKill = {\n suppressEvents: true,\n kill: false\n},\n _revertConfig = {\n suppressEvents: true\n},\n _reservedProps = {},\n _lazyTweens = [],\n _lazyLookup = {},\n _lastRenderedFrame,\n _plugins = {},\n _effects = {},\n _nextGCFrame = 30,\n _harnessPlugins = [],\n _callbackNames = \"\",\n _harness = function _harness(targets) {\n var target = targets[0],\n harnessPlugin,\n i;\n _isObject(target) || _isFunction(target) || (targets = [targets]);\n\n if (!(harnessPlugin = (target._gsap || {}).harness)) {\n // find the first target with a harness. We assume targets passed into an animation will be of similar type, meaning the same kind of harness can be used for them all (performance optimization)\n i = _harnessPlugins.length;\n\n while (i-- && !_harnessPlugins[i].targetTest(target)) {}\n\n harnessPlugin = _harnessPlugins[i];\n }\n\n i = targets.length;\n\n while (i--) {\n targets[i] && (targets[i]._gsap || (targets[i]._gsap = new GSCache(targets[i], harnessPlugin))) || targets.splice(i, 1);\n }\n\n return targets;\n},\n _getCache = function _getCache(target) {\n return target._gsap || _harness(toArray(target))[0]._gsap;\n},\n _getProperty = function _getProperty(target, property, v) {\n return (v = target[property]) && _isFunction(v) ? target[property]() : _isUndefined(v) && target.getAttribute && target.getAttribute(property) || v;\n},\n _forEachName = function _forEachName(names, func) {\n return (names = names.split(\",\")).forEach(func) || names;\n},\n //split a comma-delimited list of names into an array, then run a forEach() function and return the split array (this is just a way to consolidate/shorten some code).\n_round = function _round(value) {\n return Math.round(value * 100000) / 100000 || 0;\n},\n _roundPrecise = function _roundPrecise(value) {\n return Math.round(value * 10000000) / 10000000 || 0;\n},\n // increased precision mostly for timing values.\n_parseRelative = function _parseRelative(start, value) {\n var operator = value.charAt(0),\n end = parseFloat(value.substr(2));\n start = parseFloat(start);\n return operator === \"+\" ? start + end : operator === \"-\" ? start - end : operator === \"*\" ? start * end : start / end;\n},\n _arrayContainsAny = function _arrayContainsAny(toSearch, toFind) {\n //searches one array to find matches for any of the items in the toFind array. As soon as one is found, it returns true. It does NOT return all the matches; it's simply a boolean search.\n var l = toFind.length,\n i = 0;\n\n for (; toSearch.indexOf(toFind[i]) < 0 && ++i < l;) {}\n\n return i < l;\n},\n _lazyRender = function _lazyRender() {\n var l = _lazyTweens.length,\n a = _lazyTweens.slice(0),\n i,\n tween;\n\n _lazyLookup = {};\n _lazyTweens.length = 0;\n\n for (i = 0; i < l; i++) {\n tween = a[i];\n tween && tween._lazy && (tween.render(tween._lazy[0], tween._lazy[1], true)._lazy = 0);\n }\n},\n _lazySafeRender = function _lazySafeRender(animation, time, suppressEvents, force) {\n _lazyTweens.length && !_reverting && _lazyRender();\n animation.render(time, suppressEvents, force || _reverting && time < 0 && (animation._initted || animation._startAt));\n _lazyTweens.length && !_reverting && _lazyRender(); //in case rendering caused any tweens to lazy-init, we should render them because typically when someone calls seek() or time() or progress(), they expect an immediate render.\n},\n _numericIfPossible = function _numericIfPossible(value) {\n var n = parseFloat(value);\n return (n || n === 0) && (value + \"\").match(_delimitedValueExp).length < 2 ? n : _isString(value) ? value.trim() : value;\n},\n _passThrough = function _passThrough(p) {\n return p;\n},\n _setDefaults = function _setDefaults(obj, defaults) {\n for (var p in defaults) {\n p in obj || (obj[p] = defaults[p]);\n }\n\n return obj;\n},\n _setKeyframeDefaults = function _setKeyframeDefaults(excludeDuration) {\n return function (obj, defaults) {\n for (var p in defaults) {\n p in obj || p === \"duration\" && excludeDuration || p === \"ease\" || (obj[p] = defaults[p]);\n }\n };\n},\n _merge = function _merge(base, toMerge) {\n for (var p in toMerge) {\n base[p] = toMerge[p];\n }\n\n return base;\n},\n _mergeDeep = function _mergeDeep(base, toMerge) {\n for (var p in toMerge) {\n p !== \"__proto__\" && p !== \"constructor\" && p !== \"prototype\" && (base[p] = _isObject(toMerge[p]) ? _mergeDeep(base[p] || (base[p] = {}), toMerge[p]) : toMerge[p]);\n }\n\n return base;\n},\n _copyExcluding = function _copyExcluding(obj, excluding) {\n var copy = {},\n p;\n\n for (p in obj) {\n p in excluding || (copy[p] = obj[p]);\n }\n\n return copy;\n},\n _inheritDefaults = function _inheritDefaults(vars) {\n var parent = vars.parent || _globalTimeline,\n func = vars.keyframes ? _setKeyframeDefaults(_isArray(vars.keyframes)) : _setDefaults;\n\n if (_isNotFalse(vars.inherit)) {\n while (parent) {\n func(vars, parent.vars.defaults);\n parent = parent.parent || parent._dp;\n }\n }\n\n return vars;\n},\n _arraysMatch = function _arraysMatch(a1, a2) {\n var i = a1.length,\n match = i === a2.length;\n\n while (match && i-- && a1[i] === a2[i]) {}\n\n return i < 0;\n},\n _addLinkedListItem = function _addLinkedListItem(parent, child, firstProp, lastProp, sortBy) {\n if (firstProp === void 0) {\n firstProp = \"_first\";\n }\n\n if (lastProp === void 0) {\n lastProp = \"_last\";\n }\n\n var prev = parent[lastProp],\n t;\n\n if (sortBy) {\n t = child[sortBy];\n\n while (prev && prev[sortBy] > t) {\n prev = prev._prev;\n }\n }\n\n if (prev) {\n child._next = prev._next;\n prev._next = child;\n } else {\n child._next = parent[firstProp];\n parent[firstProp] = child;\n }\n\n if (child._next) {\n child._next._prev = child;\n } else {\n parent[lastProp] = child;\n }\n\n child._prev = prev;\n child.parent = child._dp = parent;\n return child;\n},\n _removeLinkedListItem = function _removeLinkedListItem(parent, child, firstProp, lastProp) {\n if (firstProp === void 0) {\n firstProp = \"_first\";\n }\n\n if (lastProp === void 0) {\n lastProp = \"_last\";\n }\n\n var prev = child._prev,\n next = child._next;\n\n if (prev) {\n prev._next = next;\n } else if (parent[firstProp] === child) {\n parent[firstProp] = next;\n }\n\n if (next) {\n next._prev = prev;\n } else if (parent[lastProp] === child) {\n parent[lastProp] = prev;\n }\n\n child._next = child._prev = child.parent = null; // don't delete the _dp just so we can revert if necessary. But parent should be null to indicate the item isn't in a linked list.\n},\n _removeFromParent = function _removeFromParent(child, onlyIfParentHasAutoRemove) {\n child.parent && (!onlyIfParentHasAutoRemove || child.parent.autoRemoveChildren) && child.parent.remove && child.parent.remove(child);\n child._act = 0;\n},\n _uncache = function _uncache(animation, child) {\n if (animation && (!child || child._end > animation._dur || child._start < 0)) {\n // performance optimization: if a child animation is passed in we should only uncache if that child EXTENDS the animation (its end time is beyond the end)\n var a = animation;\n\n while (a) {\n a._dirty = 1;\n a = a.parent;\n }\n }\n\n return animation;\n},\n _recacheAncestors = function _recacheAncestors(animation) {\n var parent = animation.parent;\n\n while (parent && parent.parent) {\n //sometimes we must force a re-sort of all children and update the duration/totalDuration of all ancestor timelines immediately in case, for example, in the middle of a render loop, one tween alters another tween's timeScale which shoves its startTime before 0, forcing the parent timeline to shift around and shiftChildren() which could affect that next tween's render (startTime). Doesn't matter for the root timeline though.\n parent._dirty = 1;\n parent.totalDuration();\n parent = parent.parent;\n }\n\n return animation;\n},\n _rewindStartAt = function _rewindStartAt(tween, totalTime, suppressEvents, force) {\n return tween._startAt && (_reverting ? tween._startAt.revert(_revertConfigNoKill) : tween.vars.immediateRender && !tween.vars.autoRevert || tween._startAt.render(totalTime, true, force));\n},\n _hasNoPausedAncestors = function _hasNoPausedAncestors(animation) {\n return !animation || animation._ts && _hasNoPausedAncestors(animation.parent);\n},\n _elapsedCycleDuration = function _elapsedCycleDuration(animation) {\n return animation._repeat ? _animationCycle(animation._tTime, animation = animation.duration() + animation._rDelay) * animation : 0;\n},\n // feed in the totalTime and cycleDuration and it'll return the cycle (iteration minus 1) and if the playhead is exactly at the very END, it will NOT bump up to the next cycle.\n_animationCycle = function _animationCycle(tTime, cycleDuration) {\n var whole = Math.floor(tTime /= cycleDuration);\n return tTime && whole === tTime ? whole - 1 : whole;\n},\n _parentToChildTotalTime = function _parentToChildTotalTime(parentTime, child) {\n return (parentTime - child._start) * child._ts + (child._ts >= 0 ? 0 : child._dirty ? child.totalDuration() : child._tDur);\n},\n _setEnd = function _setEnd(animation) {\n return animation._end = _roundPrecise(animation._start + (animation._tDur / Math.abs(animation._ts || animation._rts || _tinyNum) || 0));\n},\n _alignPlayhead = function _alignPlayhead(animation, totalTime) {\n // adjusts the animation's _start and _end according to the provided totalTime (only if the parent's smoothChildTiming is true and the animation isn't paused). It doesn't do any rendering or forcing things back into parent timelines, etc. - that's what totalTime() is for.\n var parent = animation._dp;\n\n if (parent && parent.smoothChildTiming && animation._ts) {\n animation._start = _roundPrecise(parent._time - (animation._ts > 0 ? totalTime / animation._ts : ((animation._dirty ? animation.totalDuration() : animation._tDur) - totalTime) / -animation._ts));\n\n _setEnd(animation);\n\n parent._dirty || _uncache(parent, animation); //for performance improvement. If the parent's cache is already dirty, it already took care of marking the ancestors as dirty too, so skip the function call here.\n }\n\n return animation;\n},\n\n/*\n_totalTimeToTime = (clampedTotalTime, duration, repeat, repeatDelay, yoyo) => {\n\tlet cycleDuration = duration + repeatDelay,\n\t\ttime = _round(clampedTotalTime % cycleDuration);\n\tif (time > duration) {\n\t\ttime = duration;\n\t}\n\treturn (yoyo && (~~(clampedTotalTime / cycleDuration) & 1)) ? duration - time : time;\n},\n*/\n_postAddChecks = function _postAddChecks(timeline, child) {\n var t;\n\n if (child._time || !child._dur && child._initted || child._start < timeline._time && (child._dur || !child.add)) {\n // in case, for example, the _start is moved on a tween that has already rendered, or if it's being inserted into a timeline BEFORE where the playhead is currently. Imagine it's at its end state, then the startTime is moved WAY later (after the end of this timeline), it should render at its beginning. Special case: if it's a timeline (has .add() method) and no duration, we can skip rendering because the user may be populating it AFTER adding it to a parent timeline (unconventional, but possible, and we wouldn't want it to get removed if the parent's autoRemoveChildren is true).\n t = _parentToChildTotalTime(timeline.rawTime(), child);\n\n if (!child._dur || _clamp(0, child.totalDuration(), t) - child._tTime > _tinyNum) {\n child.render(t, true);\n }\n } //if the timeline has already ended but the inserted tween/timeline extends the duration, we should enable this timeline again so that it renders properly. We should also align the playhead with the parent timeline's when appropriate.\n\n\n if (_uncache(timeline, child)._dp && timeline._initted && timeline._time >= timeline._dur && timeline._ts) {\n //in case any of the ancestors had completed but should now be enabled...\n if (timeline._dur < timeline.duration()) {\n t = timeline;\n\n while (t._dp) {\n t.rawTime() >= 0 && t.totalTime(t._tTime); //moves the timeline (shifts its startTime) if necessary, and also enables it. If it's currently zero, though, it may not be scheduled to render until later so there's no need to force it to align with the current playhead position. Only move to catch up with the playhead.\n\n t = t._dp;\n }\n }\n\n timeline._zTime = -_tinyNum; // helps ensure that the next render() will be forced (crossingStart = true in render()), even if the duration hasn't changed (we're adding a child which would need to get rendered). Definitely an edge case. Note: we MUST do this AFTER the loop above where the totalTime() might trigger a render() because this _addToTimeline() method gets called from the Animation constructor, BEFORE tweens even record their targets, etc. so we wouldn't want things to get triggered in the wrong order.\n }\n},\n _addToTimeline = function _addToTimeline(timeline, child, position, skipChecks) {\n child.parent && _removeFromParent(child);\n child._start = _roundPrecise((_isNumber(position) ? position : position || timeline !== _globalTimeline ? _parsePosition(timeline, position, child) : timeline._time) + child._delay);\n child._end = _roundPrecise(child._start + (child.totalDuration() / Math.abs(child.timeScale()) || 0));\n\n _addLinkedListItem(timeline, child, \"_first\", \"_last\", timeline._sort ? \"_start\" : 0);\n\n _isFromOrFromStart(child) || (timeline._recent = child);\n skipChecks || _postAddChecks(timeline, child);\n timeline._ts < 0 && _alignPlayhead(timeline, timeline._tTime); // if the timeline is reversed and the new child makes it longer, we may need to adjust the parent's _start (push it back)\n\n return timeline;\n},\n _scrollTrigger = function _scrollTrigger(animation, trigger) {\n return (_globals.ScrollTrigger || _missingPlugin(\"scrollTrigger\", trigger)) && _globals.ScrollTrigger.create(trigger, animation);\n},\n _attemptInitTween = function _attemptInitTween(tween, time, force, suppressEvents, tTime) {\n _initTween(tween, time, tTime);\n\n if (!tween._initted) {\n return 1;\n }\n\n if (!force && tween._pt && !_reverting && (tween._dur && tween.vars.lazy !== false || !tween._dur && tween.vars.lazy) && _lastRenderedFrame !== _ticker.frame) {\n _lazyTweens.push(tween);\n\n tween._lazy = [tTime, suppressEvents];\n return 1;\n }\n},\n _parentPlayheadIsBeforeStart = function _parentPlayheadIsBeforeStart(_ref) {\n var parent = _ref.parent;\n return parent && parent._ts && parent._initted && !parent._lock && (parent.rawTime() < 0 || _parentPlayheadIsBeforeStart(parent));\n},\n // check parent's _lock because when a timeline repeats/yoyos and does its artificial wrapping, we shouldn't force the ratio back to 0\n_isFromOrFromStart = function _isFromOrFromStart(_ref2) {\n var data = _ref2.data;\n return data === \"isFromStart\" || data === \"isStart\";\n},\n _renderZeroDurationTween = function _renderZeroDurationTween(tween, totalTime, suppressEvents, force) {\n var prevRatio = tween.ratio,\n ratio = totalTime < 0 || !totalTime && (!tween._start && _parentPlayheadIsBeforeStart(tween) && !(!tween._initted && _isFromOrFromStart(tween)) || (tween._ts < 0 || tween._dp._ts < 0) && !_isFromOrFromStart(tween)) ? 0 : 1,\n // if the tween or its parent is reversed and the totalTime is 0, we should go to a ratio of 0. Edge case: if a from() or fromTo() stagger tween is placed later in a timeline, the \"startAt\" zero-duration tween could initially render at a time when the parent timeline's playhead is technically BEFORE where this tween is, so make sure that any \"from\" and \"fromTo\" startAt tweens are rendered the first time at a ratio of 1.\n repeatDelay = tween._rDelay,\n tTime = 0,\n pt,\n iteration,\n prevIteration;\n\n if (repeatDelay && tween._repeat) {\n // in case there's a zero-duration tween that has a repeat with a repeatDelay\n tTime = _clamp(0, tween._tDur, totalTime);\n iteration = _animationCycle(tTime, repeatDelay);\n tween._yoyo && iteration & 1 && (ratio = 1 - ratio);\n\n if (iteration !== _animationCycle(tween._tTime, repeatDelay)) {\n // if iteration changed\n prevRatio = 1 - ratio;\n tween.vars.repeatRefresh && tween._initted && tween.invalidate();\n }\n }\n\n if (ratio !== prevRatio || _reverting || force || tween._zTime === _tinyNum || !totalTime && tween._zTime) {\n if (!tween._initted && _attemptInitTween(tween, totalTime, force, suppressEvents, tTime)) {\n // if we render the very beginning (time == 0) of a fromTo(), we must force the render (normal tweens wouldn't need to render at a time of 0 when the prevTime was also 0). This is also mandatory to make sure overwriting kicks in immediately.\n return;\n }\n\n prevIteration = tween._zTime;\n tween._zTime = totalTime || (suppressEvents ? _tinyNum : 0); // when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration tween, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect.\n\n suppressEvents || (suppressEvents = totalTime && !prevIteration); // if it was rendered previously at exactly 0 (_zTime) and now the playhead is moving away, DON'T fire callbacks otherwise they'll seem like duplicates.\n\n tween.ratio = ratio;\n tween._from && (ratio = 1 - ratio);\n tween._time = 0;\n tween._tTime = tTime;\n pt = tween._pt;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n\n totalTime < 0 && _rewindStartAt(tween, totalTime, suppressEvents, true);\n tween._onUpdate && !suppressEvents && _callback(tween, \"onUpdate\");\n tTime && tween._repeat && !suppressEvents && tween.parent && _callback(tween, \"onRepeat\");\n\n if ((totalTime >= tween._tDur || totalTime < 0) && tween.ratio === ratio) {\n ratio && _removeFromParent(tween, 1);\n\n if (!suppressEvents && !_reverting) {\n _callback(tween, ratio ? \"onComplete\" : \"onReverseComplete\", true);\n\n tween._prom && tween._prom();\n }\n }\n } else if (!tween._zTime) {\n tween._zTime = totalTime;\n }\n},\n _findNextPauseTween = function _findNextPauseTween(animation, prevTime, time) {\n var child;\n\n if (time > prevTime) {\n child = animation._first;\n\n while (child && child._start <= time) {\n if (child.data === \"isPause\" && child._start > prevTime) {\n return child;\n }\n\n child = child._next;\n }\n } else {\n child = animation._last;\n\n while (child && child._start >= time) {\n if (child.data === \"isPause\" && child._start < prevTime) {\n return child;\n }\n\n child = child._prev;\n }\n }\n},\n _setDuration = function _setDuration(animation, duration, skipUncache, leavePlayhead) {\n var repeat = animation._repeat,\n dur = _roundPrecise(duration) || 0,\n totalProgress = animation._tTime / animation._tDur;\n totalProgress && !leavePlayhead && (animation._time *= dur / animation._dur);\n animation._dur = dur;\n animation._tDur = !repeat ? dur : repeat < 0 ? 1e10 : _roundPrecise(dur * (repeat + 1) + animation._rDelay * repeat);\n totalProgress > 0 && !leavePlayhead && _alignPlayhead(animation, animation._tTime = animation._tDur * totalProgress);\n animation.parent && _setEnd(animation);\n skipUncache || _uncache(animation.parent, animation);\n return animation;\n},\n _onUpdateTotalDuration = function _onUpdateTotalDuration(animation) {\n return animation instanceof Timeline ? _uncache(animation) : _setDuration(animation, animation._dur);\n},\n _zeroPosition = {\n _start: 0,\n endTime: _emptyFunc,\n totalDuration: _emptyFunc\n},\n _parsePosition = function _parsePosition(animation, position, percentAnimation) {\n var labels = animation.labels,\n recent = animation._recent || _zeroPosition,\n clippedDuration = animation.duration() >= _bigNum ? recent.endTime(false) : animation._dur,\n //in case there's a child that infinitely repeats, users almost never intend for the insertion point of a new child to be based on a SUPER long value like that so we clip it and assume the most recently-added child's endTime should be used instead.\n i,\n offset,\n isPercent;\n\n if (_isString(position) && (isNaN(position) || position in labels)) {\n //if the string is a number like \"1\", check to see if there's a label with that name, otherwise interpret it as a number (absolute value).\n offset = position.charAt(0);\n isPercent = position.substr(-1) === \"%\";\n i = position.indexOf(\"=\");\n\n if (offset === \"<\" || offset === \">\") {\n i >= 0 && (position = position.replace(/=/, \"\"));\n return (offset === \"<\" ? recent._start : recent.endTime(recent._repeat >= 0)) + (parseFloat(position.substr(1)) || 0) * (isPercent ? (i < 0 ? recent : percentAnimation).totalDuration() / 100 : 1);\n }\n\n if (i < 0) {\n position in labels || (labels[position] = clippedDuration);\n return labels[position];\n }\n\n offset = parseFloat(position.charAt(i - 1) + position.substr(i + 1));\n\n if (isPercent && percentAnimation) {\n offset = offset / 100 * (_isArray(percentAnimation) ? percentAnimation[0] : percentAnimation).totalDuration();\n }\n\n return i > 1 ? _parsePosition(animation, position.substr(0, i - 1), percentAnimation) + offset : clippedDuration + offset;\n }\n\n return position == null ? clippedDuration : +position;\n},\n _createTweenType = function _createTweenType(type, params, timeline) {\n var isLegacy = _isNumber(params[1]),\n varsIndex = (isLegacy ? 2 : 1) + (type < 2 ? 0 : 1),\n vars = params[varsIndex],\n irVars,\n parent;\n\n isLegacy && (vars.duration = params[1]);\n vars.parent = timeline;\n\n if (type) {\n irVars = vars;\n parent = timeline;\n\n while (parent && !(\"immediateRender\" in irVars)) {\n // inheritance hasn't happened yet, but someone may have set a default in an ancestor timeline. We could do vars.immediateRender = _isNotFalse(_inheritDefaults(vars).immediateRender) but that'd exact a slight performance penalty because _inheritDefaults() also runs in the Tween constructor. We're paying a small kb price here to gain speed.\n irVars = parent.vars.defaults || {};\n parent = _isNotFalse(parent.vars.inherit) && parent.parent;\n }\n\n vars.immediateRender = _isNotFalse(irVars.immediateRender);\n type < 2 ? vars.runBackwards = 1 : vars.startAt = params[varsIndex - 1]; // \"from\" vars\n }\n\n return new Tween(params[0], vars, params[varsIndex + 1]);\n},\n _conditionalReturn = function _conditionalReturn(value, func) {\n return value || value === 0 ? func(value) : func;\n},\n _clamp = function _clamp(min, max, value) {\n return value < min ? min : value > max ? max : value;\n},\n getUnit = function getUnit(value, v) {\n return !_isString(value) || !(v = _unitExp.exec(value)) ? \"\" : v[1];\n},\n // note: protect against padded numbers as strings, like \"100.100\". That shouldn't return \"00\" as the unit. If it's numeric, return no unit.\nclamp = function clamp(min, max, value) {\n return _conditionalReturn(value, function (v) {\n return _clamp(min, max, v);\n });\n},\n _slice = [].slice,\n _isArrayLike = function _isArrayLike(value, nonEmpty) {\n return value && _isObject(value) && \"length\" in value && (!nonEmpty && !value.length || value.length - 1 in value && _isObject(value[0])) && !value.nodeType && value !== _win;\n},\n _flatten = function _flatten(ar, leaveStrings, accumulator) {\n if (accumulator === void 0) {\n accumulator = [];\n }\n\n return ar.forEach(function (value) {\n var _accumulator;\n\n return _isString(value) && !leaveStrings || _isArrayLike(value, 1) ? (_accumulator = accumulator).push.apply(_accumulator, toArray(value)) : accumulator.push(value);\n }) || accumulator;\n},\n //takes any value and returns an array. If it's a string (and leaveStrings isn't true), it'll use document.querySelectorAll() and convert that to an array. It'll also accept iterables like jQuery objects.\ntoArray = function toArray(value, scope, leaveStrings) {\n return _context && !scope && _context.selector ? _context.selector(value) : _isString(value) && !leaveStrings && (_coreInitted || !_wake()) ? _slice.call((scope || _doc).querySelectorAll(value), 0) : _isArray(value) ? _flatten(value, leaveStrings) : _isArrayLike(value) ? _slice.call(value, 0) : value ? [value] : [];\n},\n selector = function selector(value) {\n value = toArray(value)[0] || _warn(\"Invalid scope\") || {};\n return function (v) {\n var el = value.current || value.nativeElement || value;\n return toArray(v, el.querySelectorAll ? el : el === value ? _warn(\"Invalid scope\") || _doc.createElement(\"div\") : value);\n };\n},\n shuffle = function shuffle(a) {\n return a.sort(function () {\n return .5 - Math.random();\n });\n},\n // alternative that's a bit faster and more reliably diverse but bigger: for (let j, v, i = a.length; i; j = Math.floor(Math.random() * i), v = a[--i], a[i] = a[j], a[j] = v); return a;\n//for distributing values across an array. Can accept a number, a function or (most commonly) a function which can contain the following properties: {base, amount, from, ease, grid, axis, length, each}. Returns a function that expects the following parameters: index, target, array. Recognizes the following\ndistribute = function distribute(v) {\n if (_isFunction(v)) {\n return v;\n }\n\n var vars = _isObject(v) ? v : {\n each: v\n },\n //n:1 is just to indicate v was a number; we leverage that later to set v according to the length we get. If a number is passed in, we treat it like the old stagger value where 0.1, for example, would mean that things would be distributed with 0.1 between each element in the array rather than a total \"amount\" that's chunked out among them all.\n ease = _parseEase(vars.ease),\n from = vars.from || 0,\n base = parseFloat(vars.base) || 0,\n cache = {},\n isDecimal = from > 0 && from < 1,\n ratios = isNaN(from) || isDecimal,\n axis = vars.axis,\n ratioX = from,\n ratioY = from;\n\n if (_isString(from)) {\n ratioX = ratioY = {\n center: .5,\n edges: .5,\n end: 1\n }[from] || 0;\n } else if (!isDecimal && ratios) {\n ratioX = from[0];\n ratioY = from[1];\n }\n\n return function (i, target, a) {\n var l = (a || vars).length,\n distances = cache[l],\n originX,\n originY,\n x,\n y,\n d,\n j,\n max,\n min,\n wrapAt;\n\n if (!distances) {\n wrapAt = vars.grid === \"auto\" ? 0 : (vars.grid || [1, _bigNum])[1];\n\n if (!wrapAt) {\n max = -_bigNum;\n\n while (max < (max = a[wrapAt++].getBoundingClientRect().left) && wrapAt < l) {}\n\n wrapAt--;\n }\n\n distances = cache[l] = [];\n originX = ratios ? Math.min(wrapAt, l) * ratioX - .5 : from % wrapAt;\n originY = wrapAt === _bigNum ? 0 : ratios ? l * ratioY / wrapAt - .5 : from / wrapAt | 0;\n max = 0;\n min = _bigNum;\n\n for (j = 0; j < l; j++) {\n x = j % wrapAt - originX;\n y = originY - (j / wrapAt | 0);\n distances[j] = d = !axis ? _sqrt(x * x + y * y) : Math.abs(axis === \"y\" ? y : x);\n d > max && (max = d);\n d < min && (min = d);\n }\n\n from === \"random\" && shuffle(distances);\n distances.max = max - min;\n distances.min = min;\n distances.v = l = (parseFloat(vars.amount) || parseFloat(vars.each) * (wrapAt > l ? l - 1 : !axis ? Math.max(wrapAt, l / wrapAt) : axis === \"y\" ? l / wrapAt : wrapAt) || 0) * (from === \"edges\" ? -1 : 1);\n distances.b = l < 0 ? base - l : base;\n distances.u = getUnit(vars.amount || vars.each) || 0; //unit\n\n ease = ease && l < 0 ? _invertEase(ease) : ease;\n }\n\n l = (distances[i] - distances.min) / distances.max || 0;\n return _roundPrecise(distances.b + (ease ? ease(l) : l) * distances.v) + distances.u; //round in order to work around floating point errors\n };\n},\n _roundModifier = function _roundModifier(v) {\n //pass in 0.1 get a function that'll round to the nearest tenth, or 5 to round to the closest 5, or 0.001 to the closest 1000th, etc.\n var p = Math.pow(10, ((v + \"\").split(\".\")[1] || \"\").length); //to avoid floating point math errors (like 24 * 0.1 == 2.4000000000000004), we chop off at a specific number of decimal places (much faster than toFixed())\n\n return function (raw) {\n var n = _roundPrecise(Math.round(parseFloat(raw) / v) * v * p);\n\n return (n - n % 1) / p + (_isNumber(raw) ? 0 : getUnit(raw)); // n - n % 1 replaces Math.floor() in order to handle negative values properly. For example, Math.floor(-150.00000000000003) is 151!\n };\n},\n snap = function snap(snapTo, value) {\n var isArray = _isArray(snapTo),\n radius,\n is2D;\n\n if (!isArray && _isObject(snapTo)) {\n radius = isArray = snapTo.radius || _bigNum;\n\n if (snapTo.values) {\n snapTo = toArray(snapTo.values);\n\n if (is2D = !_isNumber(snapTo[0])) {\n radius *= radius; //performance optimization so we don't have to Math.sqrt() in the loop.\n }\n } else {\n snapTo = _roundModifier(snapTo.increment);\n }\n }\n\n return _conditionalReturn(value, !isArray ? _roundModifier(snapTo) : _isFunction(snapTo) ? function (raw) {\n is2D = snapTo(raw);\n return Math.abs(is2D - raw) <= radius ? is2D : raw;\n } : function (raw) {\n var x = parseFloat(is2D ? raw.x : raw),\n y = parseFloat(is2D ? raw.y : 0),\n min = _bigNum,\n closest = 0,\n i = snapTo.length,\n dx,\n dy;\n\n while (i--) {\n if (is2D) {\n dx = snapTo[i].x - x;\n dy = snapTo[i].y - y;\n dx = dx * dx + dy * dy;\n } else {\n dx = Math.abs(snapTo[i] - x);\n }\n\n if (dx < min) {\n min = dx;\n closest = i;\n }\n }\n\n closest = !radius || min <= radius ? snapTo[closest] : raw;\n return is2D || closest === raw || _isNumber(raw) ? closest : closest + getUnit(raw);\n });\n},\n random = function random(min, max, roundingIncrement, returnFunction) {\n return _conditionalReturn(_isArray(min) ? !max : roundingIncrement === true ? !!(roundingIncrement = 0) : !returnFunction, function () {\n return _isArray(min) ? min[~~(Math.random() * min.length)] : (roundingIncrement = roundingIncrement || 1e-5) && (returnFunction = roundingIncrement < 1 ? Math.pow(10, (roundingIncrement + \"\").length - 2) : 1) && Math.floor(Math.round((min - roundingIncrement / 2 + Math.random() * (max - min + roundingIncrement * .99)) / roundingIncrement) * roundingIncrement * returnFunction) / returnFunction;\n });\n},\n pipe = function pipe() {\n for (var _len = arguments.length, functions = new Array(_len), _key = 0; _key < _len; _key++) {\n functions[_key] = arguments[_key];\n }\n\n return function (value) {\n return functions.reduce(function (v, f) {\n return f(v);\n }, value);\n };\n},\n unitize = function unitize(func, unit) {\n return function (value) {\n return func(parseFloat(value)) + (unit || getUnit(value));\n };\n},\n normalize = function normalize(min, max, value) {\n return mapRange(min, max, 0, 1, value);\n},\n _wrapArray = function _wrapArray(a, wrapper, value) {\n return _conditionalReturn(value, function (index) {\n return a[~~wrapper(index)];\n });\n},\n wrap = function wrap(min, max, value) {\n // NOTE: wrap() CANNOT be an arrow function! A very odd compiling bug causes problems (unrelated to GSAP).\n var range = max - min;\n return _isArray(min) ? _wrapArray(min, wrap(0, min.length), max) : _conditionalReturn(value, function (value) {\n return (range + (value - min) % range) % range + min;\n });\n},\n wrapYoyo = function wrapYoyo(min, max, value) {\n var range = max - min,\n total = range * 2;\n return _isArray(min) ? _wrapArray(min, wrapYoyo(0, min.length - 1), max) : _conditionalReturn(value, function (value) {\n value = (total + (value - min) % total) % total || 0;\n return min + (value > range ? total - value : value);\n });\n},\n _replaceRandom = function _replaceRandom(value) {\n //replaces all occurrences of random(...) in a string with the calculated random value. can be a range like random(-100, 100, 5) or an array like random([0, 100, 500])\n var prev = 0,\n s = \"\",\n i,\n nums,\n end,\n isArray;\n\n while (~(i = value.indexOf(\"random(\", prev))) {\n end = value.indexOf(\")\", i);\n isArray = value.charAt(i + 7) === \"[\";\n nums = value.substr(i + 7, end - i - 7).match(isArray ? _delimitedValueExp : _strictNumExp);\n s += value.substr(prev, i - prev) + random(isArray ? nums : +nums[0], isArray ? 0 : +nums[1], +nums[2] || 1e-5);\n prev = end + 1;\n }\n\n return s + value.substr(prev, value.length - prev);\n},\n mapRange = function mapRange(inMin, inMax, outMin, outMax, value) {\n var inRange = inMax - inMin,\n outRange = outMax - outMin;\n return _conditionalReturn(value, function (value) {\n return outMin + ((value - inMin) / inRange * outRange || 0);\n });\n},\n interpolate = function interpolate(start, end, progress, mutate) {\n var func = isNaN(start + end) ? 0 : function (p) {\n return (1 - p) * start + p * end;\n };\n\n if (!func) {\n var isString = _isString(start),\n master = {},\n p,\n i,\n interpolators,\n l,\n il;\n\n progress === true && (mutate = 1) && (progress = null);\n\n if (isString) {\n start = {\n p: start\n };\n end = {\n p: end\n };\n } else if (_isArray(start) && !_isArray(end)) {\n interpolators = [];\n l = start.length;\n il = l - 2;\n\n for (i = 1; i < l; i++) {\n interpolators.push(interpolate(start[i - 1], start[i])); //build the interpolators up front as a performance optimization so that when the function is called many times, it can just reuse them.\n }\n\n l--;\n\n func = function func(p) {\n p *= l;\n var i = Math.min(il, ~~p);\n return interpolators[i](p - i);\n };\n\n progress = end;\n } else if (!mutate) {\n start = _merge(_isArray(start) ? [] : {}, start);\n }\n\n if (!interpolators) {\n for (p in end) {\n _addPropTween.call(master, start, p, \"get\", end[p]);\n }\n\n func = function func(p) {\n return _renderPropTweens(p, master) || (isString ? start.p : start);\n };\n }\n }\n\n return _conditionalReturn(progress, func);\n},\n _getLabelInDirection = function _getLabelInDirection(timeline, fromTime, backward) {\n //used for nextLabel() and previousLabel()\n var labels = timeline.labels,\n min = _bigNum,\n p,\n distance,\n label;\n\n for (p in labels) {\n distance = labels[p] - fromTime;\n\n if (distance < 0 === !!backward && distance && min > (distance = Math.abs(distance))) {\n label = p;\n min = distance;\n }\n }\n\n return label;\n},\n _callback = function _callback(animation, type, executeLazyFirst) {\n var v = animation.vars,\n callback = v[type],\n prevContext = _context,\n context = animation._ctx,\n params,\n scope,\n result;\n\n if (!callback) {\n return;\n }\n\n params = v[type + \"Params\"];\n scope = v.callbackScope || animation;\n executeLazyFirst && _lazyTweens.length && _lazyRender(); //in case rendering caused any tweens to lazy-init, we should render them because typically when a timeline finishes, users expect things to have rendered fully. Imagine an onUpdate on a timeline that reports/checks tweened values.\n\n context && (_context = context);\n result = params ? callback.apply(scope, params) : callback.call(scope);\n _context = prevContext;\n return result;\n},\n _interrupt = function _interrupt(animation) {\n _removeFromParent(animation);\n\n animation.scrollTrigger && animation.scrollTrigger.kill(!!_reverting);\n animation.progress() < 1 && _callback(animation, \"onInterrupt\");\n return animation;\n},\n _quickTween,\n _registerPluginQueue = [],\n _createPlugin = function _createPlugin(config) {\n if (_windowExists() && config) {\n // edge case: some build tools may pass in a null/undefined value\n config = !config.name && config[\"default\"] || config; //UMD packaging wraps things oddly, so for example MotionPathHelper becomes {MotionPathHelper:MotionPathHelper, default:MotionPathHelper}.\n\n var name = config.name,\n isFunc = _isFunction(config),\n Plugin = name && !isFunc && config.init ? function () {\n this._props = [];\n } : config,\n //in case someone passes in an object that's not a plugin, like CustomEase\n instanceDefaults = {\n init: _emptyFunc,\n render: _renderPropTweens,\n add: _addPropTween,\n kill: _killPropTweensOf,\n modifier: _addPluginModifier,\n rawVars: 0\n },\n statics = {\n targetTest: 0,\n get: 0,\n getSetter: _getSetter,\n aliases: {},\n register: 0\n };\n\n _wake();\n\n if (config !== Plugin) {\n if (_plugins[name]) {\n return;\n }\n\n _setDefaults(Plugin, _setDefaults(_copyExcluding(config, instanceDefaults), statics)); //static methods\n\n\n _merge(Plugin.prototype, _merge(instanceDefaults, _copyExcluding(config, statics))); //instance methods\n\n\n _plugins[Plugin.prop = name] = Plugin;\n\n if (config.targetTest) {\n _harnessPlugins.push(Plugin);\n\n _reservedProps[name] = 1;\n }\n\n name = (name === \"css\" ? \"CSS\" : name.charAt(0).toUpperCase() + name.substr(1)) + \"Plugin\"; //for the global name. \"motionPath\" should become MotionPathPlugin\n }\n\n _addGlobal(name, Plugin);\n\n config.register && config.register(gsap, Plugin, PropTween);\n } else {\n config && _registerPluginQueue.push(config);\n }\n},\n\n/*\n * --------------------------------------------------------------------------------------\n * COLORS\n * --------------------------------------------------------------------------------------\n */\n_255 = 255,\n _colorLookup = {\n aqua: [0, _255, _255],\n lime: [0, _255, 0],\n silver: [192, 192, 192],\n black: [0, 0, 0],\n maroon: [128, 0, 0],\n teal: [0, 128, 128],\n blue: [0, 0, _255],\n navy: [0, 0, 128],\n white: [_255, _255, _255],\n olive: [128, 128, 0],\n yellow: [_255, _255, 0],\n orange: [_255, 165, 0],\n gray: [128, 128, 128],\n purple: [128, 0, 128],\n green: [0, 128, 0],\n red: [_255, 0, 0],\n pink: [_255, 192, 203],\n cyan: [0, _255, _255],\n transparent: [_255, _255, _255, 0]\n},\n // possible future idea to replace the hard-coded color name values - put this in the ticker.wake() where we set the _doc:\n// let ctx = _doc.createElement(\"canvas\").getContext(\"2d\");\n// _forEachName(\"aqua,lime,silver,black,maroon,teal,blue,navy,white,olive,yellow,orange,gray,purple,green,red,pink,cyan\", color => {ctx.fillStyle = color; _colorLookup[color] = splitColor(ctx.fillStyle)});\n_hue = function _hue(h, m1, m2) {\n h += h < 0 ? 1 : h > 1 ? -1 : 0;\n return (h * 6 < 1 ? m1 + (m2 - m1) * h * 6 : h < .5 ? m2 : h * 3 < 2 ? m1 + (m2 - m1) * (2 / 3 - h) * 6 : m1) * _255 + .5 | 0;\n},\n splitColor = function splitColor(v, toHSL, forceAlpha) {\n var a = !v ? _colorLookup.black : _isNumber(v) ? [v >> 16, v >> 8 & _255, v & _255] : 0,\n r,\n g,\n b,\n h,\n s,\n l,\n max,\n min,\n d,\n wasHSL;\n\n if (!a) {\n if (v.substr(-1) === \",\") {\n //sometimes a trailing comma is included and we should chop it off (typically from a comma-delimited list of values like a textShadow:\"2px 2px 2px blue, 5px 5px 5px rgb(255,0,0)\" - in this example \"blue,\" has a trailing comma. We could strip it out inside parseComplex() but we'd need to do it to the beginning and ending values plus it wouldn't provide protection from other potential scenarios like if the user passes in a similar value.\n v = v.substr(0, v.length - 1);\n }\n\n if (_colorLookup[v]) {\n a = _colorLookup[v];\n } else if (v.charAt(0) === \"#\") {\n if (v.length < 6) {\n //for shorthand like #9F0 or #9F0F (could have alpha)\n r = v.charAt(1);\n g = v.charAt(2);\n b = v.charAt(3);\n v = \"#\" + r + r + g + g + b + b + (v.length === 5 ? v.charAt(4) + v.charAt(4) : \"\");\n }\n\n if (v.length === 9) {\n // hex with alpha, like #fd5e53ff\n a = parseInt(v.substr(1, 6), 16);\n return [a >> 16, a >> 8 & _255, a & _255, parseInt(v.substr(7), 16) / 255];\n }\n\n v = parseInt(v.substr(1), 16);\n a = [v >> 16, v >> 8 & _255, v & _255];\n } else if (v.substr(0, 3) === \"hsl\") {\n a = wasHSL = v.match(_strictNumExp);\n\n if (!toHSL) {\n h = +a[0] % 360 / 360;\n s = +a[1] / 100;\n l = +a[2] / 100;\n g = l <= .5 ? l * (s + 1) : l + s - l * s;\n r = l * 2 - g;\n a.length > 3 && (a[3] *= 1); //cast as number\n\n a[0] = _hue(h + 1 / 3, r, g);\n a[1] = _hue(h, r, g);\n a[2] = _hue(h - 1 / 3, r, g);\n } else if (~v.indexOf(\"=\")) {\n //if relative values are found, just return the raw strings with the relative prefixes in place.\n a = v.match(_numExp);\n forceAlpha && a.length < 4 && (a[3] = 1);\n return a;\n }\n } else {\n a = v.match(_strictNumExp) || _colorLookup.transparent;\n }\n\n a = a.map(Number);\n }\n\n if (toHSL && !wasHSL) {\n r = a[0] / _255;\n g = a[1] / _255;\n b = a[2] / _255;\n max = Math.max(r, g, b);\n min = Math.min(r, g, b);\n l = (max + min) / 2;\n\n if (max === min) {\n h = s = 0;\n } else {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = max === r ? (g - b) / d + (g < b ? 6 : 0) : max === g ? (b - r) / d + 2 : (r - g) / d + 4;\n h *= 60;\n }\n\n a[0] = ~~(h + .5);\n a[1] = ~~(s * 100 + .5);\n a[2] = ~~(l * 100 + .5);\n }\n\n forceAlpha && a.length < 4 && (a[3] = 1);\n return a;\n},\n _colorOrderData = function _colorOrderData(v) {\n // strips out the colors from the string, finds all the numeric slots (with units) and returns an array of those. The Array also has a \"c\" property which is an Array of the index values where the colors belong. This is to help work around issues where there's a mis-matched order of color/numeric data like drop-shadow(#f00 0px 1px 2px) and drop-shadow(0x 1px 2px #f00). This is basically a helper function used in _formatColors()\n var values = [],\n c = [],\n i = -1;\n v.split(_colorExp).forEach(function (v) {\n var a = v.match(_numWithUnitExp) || [];\n values.push.apply(values, a);\n c.push(i += a.length + 1);\n });\n values.c = c;\n return values;\n},\n _formatColors = function _formatColors(s, toHSL, orderMatchData) {\n var result = \"\",\n colors = (s + result).match(_colorExp),\n type = toHSL ? \"hsla(\" : \"rgba(\",\n i = 0,\n c,\n shell,\n d,\n l;\n\n if (!colors) {\n return s;\n }\n\n colors = colors.map(function (color) {\n return (color = splitColor(color, toHSL, 1)) && type + (toHSL ? color[0] + \",\" + color[1] + \"%,\" + color[2] + \"%,\" + color[3] : color.join(\",\")) + \")\";\n });\n\n if (orderMatchData) {\n d = _colorOrderData(s);\n c = orderMatchData.c;\n\n if (c.join(result) !== d.c.join(result)) {\n shell = s.replace(_colorExp, \"1\").split(_numWithUnitExp);\n l = shell.length - 1;\n\n for (; i < l; i++) {\n result += shell[i] + (~c.indexOf(i) ? colors.shift() || type + \"0,0,0,0)\" : (d.length ? d : colors.length ? colors : orderMatchData).shift());\n }\n }\n }\n\n if (!shell) {\n shell = s.split(_colorExp);\n l = shell.length - 1;\n\n for (; i < l; i++) {\n result += shell[i] + colors[i];\n }\n }\n\n return result + shell[l];\n},\n _colorExp = function () {\n var s = \"(?:\\\\b(?:(?:rgb|rgba|hsl|hsla)\\\\(.+?\\\\))|\\\\B#(?:[0-9a-f]{3,4}){1,2}\\\\b\",\n //we'll dynamically build this Regular Expression to conserve file size. After building it, it will be able to find rgb(), rgba(), # (hexadecimal), and named color values like red, blue, purple, etc.,\n p;\n\n for (p in _colorLookup) {\n s += \"|\" + p + \"\\\\b\";\n }\n\n return new RegExp(s + \")\", \"gi\");\n}(),\n _hslExp = /hsl[a]?\\(/,\n _colorStringFilter = function _colorStringFilter(a) {\n var combined = a.join(\" \"),\n toHSL;\n _colorExp.lastIndex = 0;\n\n if (_colorExp.test(combined)) {\n toHSL = _hslExp.test(combined);\n a[1] = _formatColors(a[1], toHSL);\n a[0] = _formatColors(a[0], toHSL, _colorOrderData(a[1])); // make sure the order of numbers/colors match with the END value.\n\n return true;\n }\n},\n\n/*\n * --------------------------------------------------------------------------------------\n * TICKER\n * --------------------------------------------------------------------------------------\n */\n_tickerActive,\n _ticker = function () {\n var _getTime = Date.now,\n _lagThreshold = 500,\n _adjustedLag = 33,\n _startTime = _getTime(),\n _lastUpdate = _startTime,\n _gap = 1000 / 240,\n _nextTime = _gap,\n _listeners = [],\n _id,\n _req,\n _raf,\n _self,\n _delta,\n _i,\n _tick = function _tick(v) {\n var elapsed = _getTime() - _lastUpdate,\n manual = v === true,\n overlap,\n dispatch,\n time,\n frame;\n\n elapsed > _lagThreshold && (_startTime += elapsed - _adjustedLag);\n _lastUpdate += elapsed;\n time = _lastUpdate - _startTime;\n overlap = time - _nextTime;\n\n if (overlap > 0 || manual) {\n frame = ++_self.frame;\n _delta = time - _self.time * 1000;\n _self.time = time = time / 1000;\n _nextTime += overlap + (overlap >= _gap ? 4 : _gap - overlap);\n dispatch = 1;\n }\n\n manual || (_id = _req(_tick)); //make sure the request is made before we dispatch the \"tick\" event so that timing is maintained. Otherwise, if processing the \"tick\" requires a bunch of time (like 15ms) and we're using a setTimeout() that's based on 16.7ms, it'd technically take 31.7ms between frames otherwise.\n\n if (dispatch) {\n for (_i = 0; _i < _listeners.length; _i++) {\n // use _i and check _listeners.length instead of a variable because a listener could get removed during the loop, and if that happens to an element less than the current index, it'd throw things off in the loop.\n _listeners[_i](time, _delta, frame, v);\n }\n }\n };\n\n _self = {\n time: 0,\n frame: 0,\n tick: function tick() {\n _tick(true);\n },\n deltaRatio: function deltaRatio(fps) {\n return _delta / (1000 / (fps || 60));\n },\n wake: function wake() {\n if (_coreReady) {\n if (!_coreInitted && _windowExists()) {\n _win = _coreInitted = window;\n _doc = _win.document || {};\n _globals.gsap = gsap;\n (_win.gsapVersions || (_win.gsapVersions = [])).push(gsap.version);\n\n _install(_installScope || _win.GreenSockGlobals || !_win.gsap && _win || {});\n\n _raf = _win.requestAnimationFrame;\n\n _registerPluginQueue.forEach(_createPlugin);\n }\n\n _id && _self.sleep();\n\n _req = _raf || function (f) {\n return setTimeout(f, _nextTime - _self.time * 1000 + 1 | 0);\n };\n\n _tickerActive = 1;\n\n _tick(2);\n }\n },\n sleep: function sleep() {\n (_raf ? _win.cancelAnimationFrame : clearTimeout)(_id);\n _tickerActive = 0;\n _req = _emptyFunc;\n },\n lagSmoothing: function lagSmoothing(threshold, adjustedLag) {\n _lagThreshold = threshold || Infinity; // zero should be interpreted as basically unlimited\n\n _adjustedLag = Math.min(adjustedLag || 33, _lagThreshold);\n },\n fps: function fps(_fps) {\n _gap = 1000 / (_fps || 240);\n _nextTime = _self.time * 1000 + _gap;\n },\n add: function add(callback, once, prioritize) {\n var func = once ? function (t, d, f, v) {\n callback(t, d, f, v);\n\n _self.remove(func);\n } : callback;\n\n _self.remove(callback);\n\n _listeners[prioritize ? \"unshift\" : \"push\"](func);\n\n _wake();\n\n return func;\n },\n remove: function remove(callback, i) {\n ~(i = _listeners.indexOf(callback)) && _listeners.splice(i, 1) && _i >= i && _i--;\n },\n _listeners: _listeners\n };\n return _self;\n}(),\n _wake = function _wake() {\n return !_tickerActive && _ticker.wake();\n},\n //also ensures the core classes are initialized.\n\n/*\n* -------------------------------------------------\n* EASING\n* -------------------------------------------------\n*/\n_easeMap = {},\n _customEaseExp = /^[\\d.\\-M][\\d.\\-,\\s]/,\n _quotesExp = /[\"']/g,\n _parseObjectInString = function _parseObjectInString(value) {\n //takes a string like \"{wiggles:10, type:anticipate})\" and turns it into a real object. Notice it ends in \")\" and includes the {} wrappers. This is because we only use this function for parsing ease configs and prioritized optimization rather than reusability.\n var obj = {},\n split = value.substr(1, value.length - 3).split(\":\"),\n key = split[0],\n i = 1,\n l = split.length,\n index,\n val,\n parsedVal;\n\n for (; i < l; i++) {\n val = split[i];\n index = i !== l - 1 ? val.lastIndexOf(\",\") : val.length;\n parsedVal = val.substr(0, index);\n obj[key] = isNaN(parsedVal) ? parsedVal.replace(_quotesExp, \"\").trim() : +parsedVal;\n key = val.substr(index + 1).trim();\n }\n\n return obj;\n},\n _valueInParentheses = function _valueInParentheses(value) {\n var open = value.indexOf(\"(\") + 1,\n close = value.indexOf(\")\"),\n nested = value.indexOf(\"(\", open);\n return value.substring(open, ~nested && nested < close ? value.indexOf(\")\", close + 1) : close);\n},\n _configEaseFromString = function _configEaseFromString(name) {\n //name can be a string like \"elastic.out(1,0.5)\", and pass in _easeMap as obj and it'll parse it out and call the actual function like _easeMap.Elastic.easeOut.config(1,0.5). It will also parse custom ease strings as long as CustomEase is loaded and registered (internally as _easeMap._CE).\n var split = (name + \"\").split(\"(\"),\n ease = _easeMap[split[0]];\n return ease && split.length > 1 && ease.config ? ease.config.apply(null, ~name.indexOf(\"{\") ? [_parseObjectInString(split[1])] : _valueInParentheses(name).split(\",\").map(_numericIfPossible)) : _easeMap._CE && _customEaseExp.test(name) ? _easeMap._CE(\"\", name) : ease;\n},\n _invertEase = function _invertEase(ease) {\n return function (p) {\n return 1 - ease(1 - p);\n };\n},\n // allow yoyoEase to be set in children and have those affected when the parent/ancestor timeline yoyos.\n_propagateYoyoEase = function _propagateYoyoEase(timeline, isYoyo) {\n var child = timeline._first,\n ease;\n\n while (child) {\n if (child instanceof Timeline) {\n _propagateYoyoEase(child, isYoyo);\n } else if (child.vars.yoyoEase && (!child._yoyo || !child._repeat) && child._yoyo !== isYoyo) {\n if (child.timeline) {\n _propagateYoyoEase(child.timeline, isYoyo);\n } else {\n ease = child._ease;\n child._ease = child._yEase;\n child._yEase = ease;\n child._yoyo = isYoyo;\n }\n }\n\n child = child._next;\n }\n},\n _parseEase = function _parseEase(ease, defaultEase) {\n return !ease ? defaultEase : (_isFunction(ease) ? ease : _easeMap[ease] || _configEaseFromString(ease)) || defaultEase;\n},\n _insertEase = function _insertEase(names, easeIn, easeOut, easeInOut) {\n if (easeOut === void 0) {\n easeOut = function easeOut(p) {\n return 1 - easeIn(1 - p);\n };\n }\n\n if (easeInOut === void 0) {\n easeInOut = function easeInOut(p) {\n return p < .5 ? easeIn(p * 2) / 2 : 1 - easeIn((1 - p) * 2) / 2;\n };\n }\n\n var ease = {\n easeIn: easeIn,\n easeOut: easeOut,\n easeInOut: easeInOut\n },\n lowercaseName;\n\n _forEachName(names, function (name) {\n _easeMap[name] = _globals[name] = ease;\n _easeMap[lowercaseName = name.toLowerCase()] = easeOut;\n\n for (var p in ease) {\n _easeMap[lowercaseName + (p === \"easeIn\" ? \".in\" : p === \"easeOut\" ? \".out\" : \".inOut\")] = _easeMap[name + \".\" + p] = ease[p];\n }\n });\n\n return ease;\n},\n _easeInOutFromOut = function _easeInOutFromOut(easeOut) {\n return function (p) {\n return p < .5 ? (1 - easeOut(1 - p * 2)) / 2 : .5 + easeOut((p - .5) * 2) / 2;\n };\n},\n _configElastic = function _configElastic(type, amplitude, period) {\n var p1 = amplitude >= 1 ? amplitude : 1,\n //note: if amplitude is < 1, we simply adjust the period for a more natural feel. Otherwise the math doesn't work right and the curve starts at 1.\n p2 = (period || (type ? .3 : .45)) / (amplitude < 1 ? amplitude : 1),\n p3 = p2 / _2PI * (Math.asin(1 / p1) || 0),\n easeOut = function easeOut(p) {\n return p === 1 ? 1 : p1 * Math.pow(2, -10 * p) * _sin((p - p3) * p2) + 1;\n },\n ease = type === \"out\" ? easeOut : type === \"in\" ? function (p) {\n return 1 - easeOut(1 - p);\n } : _easeInOutFromOut(easeOut);\n\n p2 = _2PI / p2; //precalculate to optimize\n\n ease.config = function (amplitude, period) {\n return _configElastic(type, amplitude, period);\n };\n\n return ease;\n},\n _configBack = function _configBack(type, overshoot) {\n if (overshoot === void 0) {\n overshoot = 1.70158;\n }\n\n var easeOut = function easeOut(p) {\n return p ? --p * p * ((overshoot + 1) * p + overshoot) + 1 : 0;\n },\n ease = type === \"out\" ? easeOut : type === \"in\" ? function (p) {\n return 1 - easeOut(1 - p);\n } : _easeInOutFromOut(easeOut);\n\n ease.config = function (overshoot) {\n return _configBack(type, overshoot);\n };\n\n return ease;\n}; // a cheaper (kb and cpu) but more mild way to get a parameterized weighted ease by feeding in a value between -1 (easeIn) and 1 (easeOut) where 0 is linear.\n// _weightedEase = ratio => {\n// \tlet y = 0.5 + ratio / 2;\n// \treturn p => (2 * (1 - p) * p * y + p * p);\n// },\n// a stronger (but more expensive kb/cpu) parameterized weighted ease that lets you feed in a value between -1 (easeIn) and 1 (easeOut) where 0 is linear.\n// _weightedEaseStrong = ratio => {\n// \tratio = .5 + ratio / 2;\n// \tlet o = 1 / 3 * (ratio < .5 ? ratio : 1 - ratio),\n// \t\tb = ratio - o,\n// \t\tc = ratio + o;\n// \treturn p => p === 1 ? p : 3 * b * (1 - p) * (1 - p) * p + 3 * c * (1 - p) * p * p + p * p * p;\n// };\n\n\n_forEachName(\"Linear,Quad,Cubic,Quart,Quint,Strong\", function (name, i) {\n var power = i < 5 ? i + 1 : i;\n\n _insertEase(name + \",Power\" + (power - 1), i ? function (p) {\n return Math.pow(p, power);\n } : function (p) {\n return p;\n }, function (p) {\n return 1 - Math.pow(1 - p, power);\n }, function (p) {\n return p < .5 ? Math.pow(p * 2, power) / 2 : 1 - Math.pow((1 - p) * 2, power) / 2;\n });\n});\n\n_easeMap.Linear.easeNone = _easeMap.none = _easeMap.Linear.easeIn;\n\n_insertEase(\"Elastic\", _configElastic(\"in\"), _configElastic(\"out\"), _configElastic());\n\n(function (n, c) {\n var n1 = 1 / c,\n n2 = 2 * n1,\n n3 = 2.5 * n1,\n easeOut = function easeOut(p) {\n return p < n1 ? n * p * p : p < n2 ? n * Math.pow(p - 1.5 / c, 2) + .75 : p < n3 ? n * (p -= 2.25 / c) * p + .9375 : n * Math.pow(p - 2.625 / c, 2) + .984375;\n };\n\n _insertEase(\"Bounce\", function (p) {\n return 1 - easeOut(1 - p);\n }, easeOut);\n})(7.5625, 2.75);\n\n_insertEase(\"Expo\", function (p) {\n return p ? Math.pow(2, 10 * (p - 1)) : 0;\n});\n\n_insertEase(\"Circ\", function (p) {\n return -(_sqrt(1 - p * p) - 1);\n});\n\n_insertEase(\"Sine\", function (p) {\n return p === 1 ? 1 : -_cos(p * _HALF_PI) + 1;\n});\n\n_insertEase(\"Back\", _configBack(\"in\"), _configBack(\"out\"), _configBack());\n\n_easeMap.SteppedEase = _easeMap.steps = _globals.SteppedEase = {\n config: function config(steps, immediateStart) {\n if (steps === void 0) {\n steps = 1;\n }\n\n var p1 = 1 / steps,\n p2 = steps + (immediateStart ? 0 : 1),\n p3 = immediateStart ? 1 : 0,\n max = 1 - _tinyNum;\n return function (p) {\n return ((p2 * _clamp(0, max, p) | 0) + p3) * p1;\n };\n }\n};\n_defaults.ease = _easeMap[\"quad.out\"];\n\n_forEachName(\"onComplete,onUpdate,onStart,onRepeat,onReverseComplete,onInterrupt\", function (name) {\n return _callbackNames += name + \",\" + name + \"Params,\";\n});\n/*\n * --------------------------------------------------------------------------------------\n * CACHE\n * --------------------------------------------------------------------------------------\n */\n\n\nexport var GSCache = function GSCache(target, harness) {\n this.id = _gsID++;\n target._gsap = this;\n this.target = target;\n this.harness = harness;\n this.get = harness ? harness.get : _getProperty;\n this.set = harness ? harness.getSetter : _getSetter;\n};\n/*\n * --------------------------------------------------------------------------------------\n * ANIMATION\n * --------------------------------------------------------------------------------------\n */\n\nexport var Animation = /*#__PURE__*/function () {\n function Animation(vars) {\n this.vars = vars;\n this._delay = +vars.delay || 0;\n\n if (this._repeat = vars.repeat === Infinity ? -2 : vars.repeat || 0) {\n // TODO: repeat: Infinity on a timeline's children must flag that timeline internally and affect its totalDuration, otherwise it'll stop in the negative direction when reaching the start.\n this._rDelay = vars.repeatDelay || 0;\n this._yoyo = !!vars.yoyo || !!vars.yoyoEase;\n }\n\n this._ts = 1;\n\n _setDuration(this, +vars.duration, 1, 1);\n\n this.data = vars.data;\n\n if (_context) {\n this._ctx = _context;\n\n _context.data.push(this);\n }\n\n _tickerActive || _ticker.wake();\n }\n\n var _proto = Animation.prototype;\n\n _proto.delay = function delay(value) {\n if (value || value === 0) {\n this.parent && this.parent.smoothChildTiming && this.startTime(this._start + value - this._delay);\n this._delay = value;\n return this;\n }\n\n return this._delay;\n };\n\n _proto.duration = function duration(value) {\n return arguments.length ? this.totalDuration(this._repeat > 0 ? value + (value + this._rDelay) * this._repeat : value) : this.totalDuration() && this._dur;\n };\n\n _proto.totalDuration = function totalDuration(value) {\n if (!arguments.length) {\n return this._tDur;\n }\n\n this._dirty = 0;\n return _setDuration(this, this._repeat < 0 ? value : (value - this._repeat * this._rDelay) / (this._repeat + 1));\n };\n\n _proto.totalTime = function totalTime(_totalTime, suppressEvents) {\n _wake();\n\n if (!arguments.length) {\n return this._tTime;\n }\n\n var parent = this._dp;\n\n if (parent && parent.smoothChildTiming && this._ts) {\n _alignPlayhead(this, _totalTime);\n\n !parent._dp || parent.parent || _postAddChecks(parent, this); // edge case: if this is a child of a timeline that already completed, for example, we must re-activate the parent.\n //in case any of the ancestor timelines had completed but should now be enabled, we should reset their totalTime() which will also ensure that they're lined up properly and enabled. Skip for animations that are on the root (wasteful). Example: a TimelineLite.exportRoot() is performed when there's a paused tween on the root, the export will not complete until that tween is unpaused, but imagine a child gets restarted later, after all [unpaused] tweens have completed. The start of that child would get pushed out, but one of the ancestors may have completed.\n\n while (parent && parent.parent) {\n if (parent.parent._time !== parent._start + (parent._ts >= 0 ? parent._tTime / parent._ts : (parent.totalDuration() - parent._tTime) / -parent._ts)) {\n parent.totalTime(parent._tTime, true);\n }\n\n parent = parent.parent;\n }\n\n if (!this.parent && this._dp.autoRemoveChildren && (this._ts > 0 && _totalTime < this._tDur || this._ts < 0 && _totalTime > 0 || !this._tDur && !_totalTime)) {\n //if the animation doesn't have a parent, put it back into its last parent (recorded as _dp for exactly cases like this). Limit to parents with autoRemoveChildren (like globalTimeline) so that if the user manually removes an animation from a timeline and then alters its playhead, it doesn't get added back in.\n _addToTimeline(this._dp, this, this._start - this._delay);\n }\n }\n\n if (this._tTime !== _totalTime || !this._dur && !suppressEvents || this._initted && Math.abs(this._zTime) === _tinyNum || !_totalTime && !this._initted && (this.add || this._ptLookup)) {\n // check for _ptLookup on a Tween instance to ensure it has actually finished being instantiated, otherwise if this.reverse() gets called in the Animation constructor, it could trigger a render() here even though the _targets weren't populated, thus when _init() is called there won't be any PropTweens (it'll act like the tween is non-functional)\n this._ts || (this._pTime = _totalTime); // otherwise, if an animation is paused, then the playhead is moved back to zero, then resumed, it'd revert back to the original time at the pause\n //if (!this._lock) { // avoid endless recursion (not sure we need this yet or if it's worth the performance hit)\n // this._lock = 1;\n\n _lazySafeRender(this, _totalTime, suppressEvents); // this._lock = 0;\n //}\n\n }\n\n return this;\n };\n\n _proto.time = function time(value, suppressEvents) {\n return arguments.length ? this.totalTime(Math.min(this.totalDuration(), value + _elapsedCycleDuration(this)) % (this._dur + this._rDelay) || (value ? this._dur : 0), suppressEvents) : this._time; // note: if the modulus results in 0, the playhead could be exactly at the end or the beginning, and we always defer to the END with a non-zero value, otherwise if you set the time() to the very end (duration()), it would render at the START!\n };\n\n _proto.totalProgress = function totalProgress(value, suppressEvents) {\n return arguments.length ? this.totalTime(this.totalDuration() * value, suppressEvents) : this.totalDuration() ? Math.min(1, this._tTime / this._tDur) : this.ratio;\n };\n\n _proto.progress = function progress(value, suppressEvents) {\n return arguments.length ? this.totalTime(this.duration() * (this._yoyo && !(this.iteration() & 1) ? 1 - value : value) + _elapsedCycleDuration(this), suppressEvents) : this.duration() ? Math.min(1, this._time / this._dur) : this.ratio;\n };\n\n _proto.iteration = function iteration(value, suppressEvents) {\n var cycleDuration = this.duration() + this._rDelay;\n\n return arguments.length ? this.totalTime(this._time + (value - 1) * cycleDuration, suppressEvents) : this._repeat ? _animationCycle(this._tTime, cycleDuration) + 1 : 1;\n } // potential future addition:\n // isPlayingBackwards() {\n // \tlet animation = this,\n // \t\torientation = 1; // 1 = forward, -1 = backward\n // \twhile (animation) {\n // \t\torientation *= animation.reversed() || (animation.repeat() && !(animation.iteration() & 1)) ? -1 : 1;\n // \t\tanimation = animation.parent;\n // \t}\n // \treturn orientation < 0;\n // }\n ;\n\n _proto.timeScale = function timeScale(value) {\n if (!arguments.length) {\n return this._rts === -_tinyNum ? 0 : this._rts; // recorded timeScale. Special case: if someone calls reverse() on an animation with timeScale of 0, we assign it -_tinyNum to remember it's reversed.\n }\n\n if (this._rts === value) {\n return this;\n }\n\n var tTime = this.parent && this._ts ? _parentToChildTotalTime(this.parent._time, this) : this._tTime; // make sure to do the parentToChildTotalTime() BEFORE setting the new _ts because the old one must be used in that calculation.\n // future addition? Up side: fast and minimal file size. Down side: only works on this animation; if a timeline is reversed, for example, its childrens' onReverse wouldn't get called.\n //(+value < 0 && this._rts >= 0) && _callback(this, \"onReverse\", true);\n // prioritize rendering where the parent's playhead lines up instead of this._tTime because there could be a tween that's animating another tween's timeScale in the same rendering loop (same parent), thus if the timeScale tween renders first, it would alter _start BEFORE _tTime was set on that tick (in the rendering loop), effectively freezing it until the timeScale tween finishes.\n\n this._rts = +value || 0;\n this._ts = this._ps || value === -_tinyNum ? 0 : this._rts; // _ts is the functional timeScale which would be 0 if the animation is paused.\n\n this.totalTime(_clamp(-Math.abs(this._delay), this._tDur, tTime), true);\n\n _setEnd(this); // if parent.smoothChildTiming was false, the end time didn't get updated in the _alignPlayhead() method, so do it here.\n\n\n return _recacheAncestors(this);\n };\n\n _proto.paused = function paused(value) {\n if (!arguments.length) {\n return this._ps;\n }\n\n if (this._ps !== value) {\n this._ps = value;\n\n if (value) {\n this._pTime = this._tTime || Math.max(-this._delay, this.rawTime()); // if the pause occurs during the delay phase, make sure that's factored in when resuming.\n\n this._ts = this._act = 0; // _ts is the functional timeScale, so a paused tween would effectively have a timeScale of 0. We record the \"real\" timeScale as _rts (recorded time scale)\n } else {\n _wake();\n\n this._ts = this._rts; //only defer to _pTime (pauseTime) if tTime is zero. Remember, someone could pause() an animation, then scrub the playhead and resume(). If the parent doesn't have smoothChildTiming, we render at the rawTime() because the startTime won't get updated.\n\n this.totalTime(this.parent && !this.parent.smoothChildTiming ? this.rawTime() : this._tTime || this._pTime, this.progress() === 1 && Math.abs(this._zTime) !== _tinyNum && (this._tTime -= _tinyNum)); // edge case: animation.progress(1).pause().play() wouldn't render again because the playhead is already at the end, but the call to totalTime() below will add it back to its parent...and not remove it again (since removing only happens upon rendering at a new time). Offsetting the _tTime slightly is done simply to cause the final render in totalTime() that'll pop it off its timeline (if autoRemoveChildren is true, of course). Check to make sure _zTime isn't -_tinyNum to avoid an edge case where the playhead is pushed to the end but INSIDE a tween/callback, the timeline itself is paused thus halting rendering and leaving a few unrendered. When resuming, it wouldn't render those otherwise.\n }\n }\n\n return this;\n };\n\n _proto.startTime = function startTime(value) {\n if (arguments.length) {\n this._start = value;\n var parent = this.parent || this._dp;\n parent && (parent._sort || !this.parent) && _addToTimeline(parent, this, value - this._delay);\n return this;\n }\n\n return this._start;\n };\n\n _proto.endTime = function endTime(includeRepeats) {\n return this._start + (_isNotFalse(includeRepeats) ? this.totalDuration() : this.duration()) / Math.abs(this._ts || 1);\n };\n\n _proto.rawTime = function rawTime(wrapRepeats) {\n var parent = this.parent || this._dp; // _dp = detached parent\n\n return !parent ? this._tTime : wrapRepeats && (!this._ts || this._repeat && this._time && this.totalProgress() < 1) ? this._tTime % (this._dur + this._rDelay) : !this._ts ? this._tTime : _parentToChildTotalTime(parent.rawTime(wrapRepeats), this);\n };\n\n _proto.revert = function revert(config) {\n if (config === void 0) {\n config = _revertConfig;\n }\n\n var prevIsReverting = _reverting;\n _reverting = config;\n\n if (this._initted || this._startAt) {\n this.timeline && this.timeline.revert(config);\n this.totalTime(-0.01, config.suppressEvents);\n }\n\n this.data !== \"nested\" && config.kill !== false && this.kill();\n _reverting = prevIsReverting;\n return this;\n };\n\n _proto.globalTime = function globalTime(rawTime) {\n var animation = this,\n time = arguments.length ? rawTime : animation.rawTime();\n\n while (animation) {\n time = animation._start + time / (animation._ts || 1);\n animation = animation._dp;\n }\n\n return !this.parent && this._sat ? this._sat.vars.immediateRender ? -Infinity : this._sat.globalTime(rawTime) : time; // the _startAt tweens for .fromTo() and .from() that have immediateRender should always be FIRST in the timeline (important for context.revert()). \"_sat\" stands for _startAtTween, referring to the parent tween that created the _startAt. We must discern if that tween had immediateRender so that we can know whether or not to prioritize it in revert().\n };\n\n _proto.repeat = function repeat(value) {\n if (arguments.length) {\n this._repeat = value === Infinity ? -2 : value;\n return _onUpdateTotalDuration(this);\n }\n\n return this._repeat === -2 ? Infinity : this._repeat;\n };\n\n _proto.repeatDelay = function repeatDelay(value) {\n if (arguments.length) {\n var time = this._time;\n this._rDelay = value;\n\n _onUpdateTotalDuration(this);\n\n return time ? this.time(time) : this;\n }\n\n return this._rDelay;\n };\n\n _proto.yoyo = function yoyo(value) {\n if (arguments.length) {\n this._yoyo = value;\n return this;\n }\n\n return this._yoyo;\n };\n\n _proto.seek = function seek(position, suppressEvents) {\n return this.totalTime(_parsePosition(this, position), _isNotFalse(suppressEvents));\n };\n\n _proto.restart = function restart(includeDelay, suppressEvents) {\n return this.play().totalTime(includeDelay ? -this._delay : 0, _isNotFalse(suppressEvents));\n };\n\n _proto.play = function play(from, suppressEvents) {\n from != null && this.seek(from, suppressEvents);\n return this.reversed(false).paused(false);\n };\n\n _proto.reverse = function reverse(from, suppressEvents) {\n from != null && this.seek(from || this.totalDuration(), suppressEvents);\n return this.reversed(true).paused(false);\n };\n\n _proto.pause = function pause(atTime, suppressEvents) {\n atTime != null && this.seek(atTime, suppressEvents);\n return this.paused(true);\n };\n\n _proto.resume = function resume() {\n return this.paused(false);\n };\n\n _proto.reversed = function reversed(value) {\n if (arguments.length) {\n !!value !== this.reversed() && this.timeScale(-this._rts || (value ? -_tinyNum : 0)); // in case timeScale is zero, reversing would have no effect so we use _tinyNum.\n\n return this;\n }\n\n return this._rts < 0;\n };\n\n _proto.invalidate = function invalidate() {\n this._initted = this._act = 0;\n this._zTime = -_tinyNum;\n return this;\n };\n\n _proto.isActive = function isActive() {\n var parent = this.parent || this._dp,\n start = this._start,\n rawTime;\n return !!(!parent || this._ts && this._initted && parent.isActive() && (rawTime = parent.rawTime(true)) >= start && rawTime < this.endTime(true) - _tinyNum);\n };\n\n _proto.eventCallback = function eventCallback(type, callback, params) {\n var vars = this.vars;\n\n if (arguments.length > 1) {\n if (!callback) {\n delete vars[type];\n } else {\n vars[type] = callback;\n params && (vars[type + \"Params\"] = params);\n type === \"onUpdate\" && (this._onUpdate = callback);\n }\n\n return this;\n }\n\n return vars[type];\n };\n\n _proto.then = function then(onFulfilled) {\n var self = this;\n return new Promise(function (resolve) {\n var f = _isFunction(onFulfilled) ? onFulfilled : _passThrough,\n _resolve = function _resolve() {\n var _then = self.then;\n self.then = null; // temporarily null the then() method to avoid an infinite loop (see https://github.com/greensock/GSAP/issues/322)\n\n _isFunction(f) && (f = f(self)) && (f.then || f === self) && (self.then = _then);\n resolve(f);\n self.then = _then;\n };\n\n if (self._initted && self.totalProgress() === 1 && self._ts >= 0 || !self._tTime && self._ts < 0) {\n _resolve();\n } else {\n self._prom = _resolve;\n }\n });\n };\n\n _proto.kill = function kill() {\n _interrupt(this);\n };\n\n return Animation;\n}();\n\n_setDefaults(Animation.prototype, {\n _time: 0,\n _start: 0,\n _end: 0,\n _tTime: 0,\n _tDur: 0,\n _dirty: 0,\n _repeat: 0,\n _yoyo: false,\n parent: null,\n _initted: false,\n _rDelay: 0,\n _ts: 1,\n _dp: 0,\n ratio: 0,\n _zTime: -_tinyNum,\n _prom: 0,\n _ps: false,\n _rts: 1\n});\n/*\n * -------------------------------------------------\n * TIMELINE\n * -------------------------------------------------\n */\n\n\nexport var Timeline = /*#__PURE__*/function (_Animation) {\n _inheritsLoose(Timeline, _Animation);\n\n function Timeline(vars, position) {\n var _this;\n\n if (vars === void 0) {\n vars = {};\n }\n\n _this = _Animation.call(this, vars) || this;\n _this.labels = {};\n _this.smoothChildTiming = !!vars.smoothChildTiming;\n _this.autoRemoveChildren = !!vars.autoRemoveChildren;\n _this._sort = _isNotFalse(vars.sortChildren);\n _globalTimeline && _addToTimeline(vars.parent || _globalTimeline, _assertThisInitialized(_this), position);\n vars.reversed && _this.reverse();\n vars.paused && _this.paused(true);\n vars.scrollTrigger && _scrollTrigger(_assertThisInitialized(_this), vars.scrollTrigger);\n return _this;\n }\n\n var _proto2 = Timeline.prototype;\n\n _proto2.to = function to(targets, vars, position) {\n _createTweenType(0, arguments, this);\n\n return this;\n };\n\n _proto2.from = function from(targets, vars, position) {\n _createTweenType(1, arguments, this);\n\n return this;\n };\n\n _proto2.fromTo = function fromTo(targets, fromVars, toVars, position) {\n _createTweenType(2, arguments, this);\n\n return this;\n };\n\n _proto2.set = function set(targets, vars, position) {\n vars.duration = 0;\n vars.parent = this;\n _inheritDefaults(vars).repeatDelay || (vars.repeat = 0);\n vars.immediateRender = !!vars.immediateRender;\n new Tween(targets, vars, _parsePosition(this, position), 1);\n return this;\n };\n\n _proto2.call = function call(callback, params, position) {\n return _addToTimeline(this, Tween.delayedCall(0, callback, params), position);\n } //ONLY for backward compatibility! Maybe delete?\n ;\n\n _proto2.staggerTo = function staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) {\n vars.duration = duration;\n vars.stagger = vars.stagger || stagger;\n vars.onComplete = onCompleteAll;\n vars.onCompleteParams = onCompleteAllParams;\n vars.parent = this;\n new Tween(targets, vars, _parsePosition(this, position));\n return this;\n };\n\n _proto2.staggerFrom = function staggerFrom(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) {\n vars.runBackwards = 1;\n _inheritDefaults(vars).immediateRender = _isNotFalse(vars.immediateRender);\n return this.staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams);\n };\n\n _proto2.staggerFromTo = function staggerFromTo(targets, duration, fromVars, toVars, stagger, position, onCompleteAll, onCompleteAllParams) {\n toVars.startAt = fromVars;\n _inheritDefaults(toVars).immediateRender = _isNotFalse(toVars.immediateRender);\n return this.staggerTo(targets, duration, toVars, stagger, position, onCompleteAll, onCompleteAllParams);\n };\n\n _proto2.render = function render(totalTime, suppressEvents, force) {\n var prevTime = this._time,\n tDur = this._dirty ? this.totalDuration() : this._tDur,\n dur = this._dur,\n tTime = totalTime <= 0 ? 0 : _roundPrecise(totalTime),\n // if a paused timeline is resumed (or its _start is updated for another reason...which rounds it), that could result in the playhead shifting a **tiny** amount and a zero-duration child at that spot may get rendered at a different ratio, like its totalTime in render() may be 1e-17 instead of 0, for example.\n crossingStart = this._zTime < 0 !== totalTime < 0 && (this._initted || !dur),\n time,\n child,\n next,\n iteration,\n cycleDuration,\n prevPaused,\n pauseTween,\n timeScale,\n prevStart,\n prevIteration,\n yoyo,\n isYoyo;\n this !== _globalTimeline && tTime > tDur && totalTime >= 0 && (tTime = tDur);\n\n if (tTime !== this._tTime || force || crossingStart) {\n if (prevTime !== this._time && dur) {\n //if totalDuration() finds a child with a negative startTime and smoothChildTiming is true, things get shifted around internally so we need to adjust the time accordingly. For example, if a tween starts at -30 we must shift EVERYTHING forward 30 seconds and move this timeline's startTime backward by 30 seconds so that things align with the playhead (no jump).\n tTime += this._time - prevTime;\n totalTime += this._time - prevTime;\n }\n\n time = tTime;\n prevStart = this._start;\n timeScale = this._ts;\n prevPaused = !timeScale;\n\n if (crossingStart) {\n dur || (prevTime = this._zTime); //when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration timeline, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect.\n\n (totalTime || !suppressEvents) && (this._zTime = totalTime);\n }\n\n if (this._repeat) {\n //adjust the time for repeats and yoyos\n yoyo = this._yoyo;\n cycleDuration = dur + this._rDelay;\n\n if (this._repeat < -1 && totalTime < 0) {\n return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force);\n }\n\n time = _roundPrecise(tTime % cycleDuration); //round to avoid floating point errors. (4 % 0.8 should be 0 but some browsers report it as 0.79999999!)\n\n if (tTime === tDur) {\n // the tDur === tTime is for edge cases where there's a lengthy decimal on the duration and it may reach the very end but the time is rendered as not-quite-there (remember, tDur is rounded to 4 decimals whereas dur isn't)\n iteration = this._repeat;\n time = dur;\n } else {\n iteration = ~~(tTime / cycleDuration);\n\n if (iteration && iteration === tTime / cycleDuration) {\n time = dur;\n iteration--;\n }\n\n time > dur && (time = dur);\n }\n\n prevIteration = _animationCycle(this._tTime, cycleDuration);\n !prevTime && this._tTime && prevIteration !== iteration && this._tTime - prevIteration * cycleDuration - this._dur <= 0 && (prevIteration = iteration); // edge case - if someone does addPause() at the very beginning of a repeating timeline, that pause is technically at the same spot as the end which causes this._time to get set to 0 when the totalTime would normally place the playhead at the end. See https://greensock.com/forums/topic/23823-closing-nav-animation-not-working-on-ie-and-iphone-6-maybe-other-older-browser/?tab=comments#comment-113005 also, this._tTime - prevIteration * cycleDuration - this._dur <= 0 just checks to make sure it wasn't previously in the \"repeatDelay\" portion\n\n if (yoyo && iteration & 1) {\n time = dur - time;\n isYoyo = 1;\n }\n /*\n make sure children at the end/beginning of the timeline are rendered properly. If, for example,\n a 3-second long timeline rendered at 2.9 seconds previously, and now renders at 3.2 seconds (which\n would get translated to 2.8 seconds if the timeline yoyos or 0.2 seconds if it just repeats), there\n could be a callback or a short tween that's at 2.95 or 3 seconds in which wouldn't render. So\n we need to push the timeline to the end (and/or beginning depending on its yoyo value). Also we must\n ensure that zero-duration tweens at the very beginning or end of the Timeline work.\n */\n\n\n if (iteration !== prevIteration && !this._lock) {\n var rewinding = yoyo && prevIteration & 1,\n doesWrap = rewinding === (yoyo && iteration & 1);\n iteration < prevIteration && (rewinding = !rewinding);\n prevTime = rewinding ? 0 : tTime % dur ? dur : tTime; // if the playhead is landing exactly at the end of an iteration, use that totalTime rather than only the duration, otherwise it'll skip the 2nd render since it's effectively at the same time.\n\n this._lock = 1;\n this.render(prevTime || (isYoyo ? 0 : _roundPrecise(iteration * cycleDuration)), suppressEvents, !dur)._lock = 0;\n this._tTime = tTime; // if a user gets the iteration() inside the onRepeat, for example, it should be accurate.\n\n !suppressEvents && this.parent && _callback(this, \"onRepeat\");\n this.vars.repeatRefresh && !isYoyo && (this.invalidate()._lock = 1);\n\n if (prevTime && prevTime !== this._time || prevPaused !== !this._ts || this.vars.onRepeat && !this.parent && !this._act) {\n // if prevTime is 0 and we render at the very end, _time will be the end, thus won't match. So in this edge case, prevTime won't match _time but that's okay. If it gets killed in the onRepeat, eject as well.\n return this;\n }\n\n dur = this._dur; // in case the duration changed in the onRepeat\n\n tDur = this._tDur;\n\n if (doesWrap) {\n this._lock = 2;\n prevTime = rewinding ? dur : -0.0001;\n this.render(prevTime, true);\n this.vars.repeatRefresh && !isYoyo && this.invalidate();\n }\n\n this._lock = 0;\n\n if (!this._ts && !prevPaused) {\n return this;\n } //in order for yoyoEase to work properly when there's a stagger, we must swap out the ease in each sub-tween.\n\n\n _propagateYoyoEase(this, isYoyo);\n }\n }\n\n if (this._hasPause && !this._forcing && this._lock < 2) {\n pauseTween = _findNextPauseTween(this, _roundPrecise(prevTime), _roundPrecise(time));\n\n if (pauseTween) {\n tTime -= time - (time = pauseTween._start);\n }\n }\n\n this._tTime = tTime;\n this._time = time;\n this._act = !timeScale; //as long as it's not paused, force it to be active so that if the user renders independent of the parent timeline, it'll be forced to re-render on the next tick.\n\n if (!this._initted) {\n this._onUpdate = this.vars.onUpdate;\n this._initted = 1;\n this._zTime = totalTime;\n prevTime = 0; // upon init, the playhead should always go forward; someone could invalidate() a completed timeline and then if they restart(), that would make child tweens render in reverse order which could lock in the wrong starting values if they build on each other, like tl.to(obj, {x: 100}).to(obj, {x: 0}).\n }\n\n if (!prevTime && time && !suppressEvents && !iteration) {\n _callback(this, \"onStart\");\n\n if (this._tTime !== tTime) {\n // in case the onStart triggered a render at a different spot, eject. Like if someone did animation.pause(0.5) or something inside the onStart.\n return this;\n }\n }\n\n if (time >= prevTime && totalTime >= 0) {\n child = this._first;\n\n while (child) {\n next = child._next;\n\n if ((child._act || time >= child._start) && child._ts && pauseTween !== child) {\n if (child.parent !== this) {\n // an extreme edge case - the child's render could do something like kill() the \"next\" one in the linked list, or reparent it. In that case we must re-initiate the whole render to be safe.\n return this.render(totalTime, suppressEvents, force);\n }\n\n child.render(child._ts > 0 ? (time - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (time - child._start) * child._ts, suppressEvents, force);\n\n if (time !== this._time || !this._ts && !prevPaused) {\n //in case a tween pauses or seeks the timeline when rendering, like inside of an onUpdate/onComplete\n pauseTween = 0;\n next && (tTime += this._zTime = -_tinyNum); // it didn't finish rendering, so flag zTime as negative so that so that the next time render() is called it'll be forced (to render any remaining children)\n\n break;\n }\n }\n\n child = next;\n }\n } else {\n child = this._last;\n var adjustedTime = totalTime < 0 ? totalTime : time; //when the playhead goes backward beyond the start of this timeline, we must pass that information down to the child animations so that zero-duration tweens know whether to render their starting or ending values.\n\n while (child) {\n next = child._prev;\n\n if ((child._act || adjustedTime <= child._end) && child._ts && pauseTween !== child) {\n if (child.parent !== this) {\n // an extreme edge case - the child's render could do something like kill() the \"next\" one in the linked list, or reparent it. In that case we must re-initiate the whole render to be safe.\n return this.render(totalTime, suppressEvents, force);\n }\n\n child.render(child._ts > 0 ? (adjustedTime - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (adjustedTime - child._start) * child._ts, suppressEvents, force || _reverting && (child._initted || child._startAt)); // if reverting, we should always force renders of initted tweens (but remember that .fromTo() or .from() may have a _startAt but not _initted yet). If, for example, a .fromTo() tween with a stagger (which creates an internal timeline) gets reverted BEFORE some of its child tweens render for the first time, it may not properly trigger them to revert.\n\n if (time !== this._time || !this._ts && !prevPaused) {\n //in case a tween pauses or seeks the timeline when rendering, like inside of an onUpdate/onComplete\n pauseTween = 0;\n next && (tTime += this._zTime = adjustedTime ? -_tinyNum : _tinyNum); // it didn't finish rendering, so adjust zTime so that so that the next time render() is called it'll be forced (to render any remaining children)\n\n break;\n }\n }\n\n child = next;\n }\n }\n\n if (pauseTween && !suppressEvents) {\n this.pause();\n pauseTween.render(time >= prevTime ? 0 : -_tinyNum)._zTime = time >= prevTime ? 1 : -1;\n\n if (this._ts) {\n //the callback resumed playback! So since we may have held back the playhead due to where the pause is positioned, go ahead and jump to where it's SUPPOSED to be (if no pause happened).\n this._start = prevStart; //if the pause was at an earlier time and the user resumed in the callback, it could reposition the timeline (changing its startTime), throwing things off slightly, so we make sure the _start doesn't shift.\n\n _setEnd(this);\n\n return this.render(totalTime, suppressEvents, force);\n }\n }\n\n this._onUpdate && !suppressEvents && _callback(this, \"onUpdate\", true);\n if (tTime === tDur && this._tTime >= this.totalDuration() || !tTime && prevTime) if (prevStart === this._start || Math.abs(timeScale) !== Math.abs(this._ts)) if (!this._lock) {\n // remember, a child's callback may alter this timeline's playhead or timeScale which is why we need to add some of these checks.\n (totalTime || !dur) && (tTime === tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1); // don't remove if the timeline is reversed and the playhead isn't at 0, otherwise tl.progress(1).reverse() won't work. Only remove if the playhead is at the end and timeScale is positive, or if the playhead is at 0 and the timeScale is negative.\n\n if (!suppressEvents && !(totalTime < 0 && !prevTime) && (tTime || prevTime || !tDur)) {\n _callback(this, tTime === tDur && totalTime >= 0 ? \"onComplete\" : \"onReverseComplete\", true);\n\n this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom();\n }\n }\n }\n\n return this;\n };\n\n _proto2.add = function add(child, position) {\n var _this2 = this;\n\n _isNumber(position) || (position = _parsePosition(this, position, child));\n\n if (!(child instanceof Animation)) {\n if (_isArray(child)) {\n child.forEach(function (obj) {\n return _this2.add(obj, position);\n });\n return this;\n }\n\n if (_isString(child)) {\n return this.addLabel(child, position);\n }\n\n if (_isFunction(child)) {\n child = Tween.delayedCall(0, child);\n } else {\n return this;\n }\n }\n\n return this !== child ? _addToTimeline(this, child, position) : this; //don't allow a timeline to be added to itself as a child!\n };\n\n _proto2.getChildren = function getChildren(nested, tweens, timelines, ignoreBeforeTime) {\n if (nested === void 0) {\n nested = true;\n }\n\n if (tweens === void 0) {\n tweens = true;\n }\n\n if (timelines === void 0) {\n timelines = true;\n }\n\n if (ignoreBeforeTime === void 0) {\n ignoreBeforeTime = -_bigNum;\n }\n\n var a = [],\n child = this._first;\n\n while (child) {\n if (child._start >= ignoreBeforeTime) {\n if (child instanceof Tween) {\n tweens && a.push(child);\n } else {\n timelines && a.push(child);\n nested && a.push.apply(a, child.getChildren(true, tweens, timelines));\n }\n }\n\n child = child._next;\n }\n\n return a;\n };\n\n _proto2.getById = function getById(id) {\n var animations = this.getChildren(1, 1, 1),\n i = animations.length;\n\n while (i--) {\n if (animations[i].vars.id === id) {\n return animations[i];\n }\n }\n };\n\n _proto2.remove = function remove(child) {\n if (_isString(child)) {\n return this.removeLabel(child);\n }\n\n if (_isFunction(child)) {\n return this.killTweensOf(child);\n }\n\n _removeLinkedListItem(this, child);\n\n if (child === this._recent) {\n this._recent = this._last;\n }\n\n return _uncache(this);\n };\n\n _proto2.totalTime = function totalTime(_totalTime2, suppressEvents) {\n if (!arguments.length) {\n return this._tTime;\n }\n\n this._forcing = 1;\n\n if (!this._dp && this._ts) {\n //special case for the global timeline (or any other that has no parent or detached parent).\n this._start = _roundPrecise(_ticker.time - (this._ts > 0 ? _totalTime2 / this._ts : (this.totalDuration() - _totalTime2) / -this._ts));\n }\n\n _Animation.prototype.totalTime.call(this, _totalTime2, suppressEvents);\n\n this._forcing = 0;\n return this;\n };\n\n _proto2.addLabel = function addLabel(label, position) {\n this.labels[label] = _parsePosition(this, position);\n return this;\n };\n\n _proto2.removeLabel = function removeLabel(label) {\n delete this.labels[label];\n return this;\n };\n\n _proto2.addPause = function addPause(position, callback, params) {\n var t = Tween.delayedCall(0, callback || _emptyFunc, params);\n t.data = \"isPause\";\n this._hasPause = 1;\n return _addToTimeline(this, t, _parsePosition(this, position));\n };\n\n _proto2.removePause = function removePause(position) {\n var child = this._first;\n position = _parsePosition(this, position);\n\n while (child) {\n if (child._start === position && child.data === \"isPause\") {\n _removeFromParent(child);\n }\n\n child = child._next;\n }\n };\n\n _proto2.killTweensOf = function killTweensOf(targets, props, onlyActive) {\n var tweens = this.getTweensOf(targets, onlyActive),\n i = tweens.length;\n\n while (i--) {\n _overwritingTween !== tweens[i] && tweens[i].kill(targets, props);\n }\n\n return this;\n };\n\n _proto2.getTweensOf = function getTweensOf(targets, onlyActive) {\n var a = [],\n parsedTargets = toArray(targets),\n child = this._first,\n isGlobalTime = _isNumber(onlyActive),\n // a number is interpreted as a global time. If the animation spans\n children;\n\n while (child) {\n if (child instanceof Tween) {\n if (_arrayContainsAny(child._targets, parsedTargets) && (isGlobalTime ? (!_overwritingTween || child._initted && child._ts) && child.globalTime(0) <= onlyActive && child.globalTime(child.totalDuration()) > onlyActive : !onlyActive || child.isActive())) {\n // note: if this is for overwriting, it should only be for tweens that aren't paused and are initted.\n a.push(child);\n }\n } else if ((children = child.getTweensOf(parsedTargets, onlyActive)).length) {\n a.push.apply(a, children);\n }\n\n child = child._next;\n }\n\n return a;\n } // potential future feature - targets() on timelines\n // targets() {\n // \tlet result = [];\n // \tthis.getChildren(true, true, false).forEach(t => result.push(...t.targets()));\n // \treturn result.filter((v, i) => result.indexOf(v) === i);\n // }\n ;\n\n _proto2.tweenTo = function tweenTo(position, vars) {\n vars = vars || {};\n\n var tl = this,\n endTime = _parsePosition(tl, position),\n _vars = vars,\n startAt = _vars.startAt,\n _onStart = _vars.onStart,\n onStartParams = _vars.onStartParams,\n immediateRender = _vars.immediateRender,\n initted,\n tween = Tween.to(tl, _setDefaults({\n ease: vars.ease || \"none\",\n lazy: false,\n immediateRender: false,\n time: endTime,\n overwrite: \"auto\",\n duration: vars.duration || Math.abs((endTime - (startAt && \"time\" in startAt ? startAt.time : tl._time)) / tl.timeScale()) || _tinyNum,\n onStart: function onStart() {\n tl.pause();\n\n if (!initted) {\n var duration = vars.duration || Math.abs((endTime - (startAt && \"time\" in startAt ? startAt.time : tl._time)) / tl.timeScale());\n tween._dur !== duration && _setDuration(tween, duration, 0, 1).render(tween._time, true, true);\n initted = 1;\n }\n\n _onStart && _onStart.apply(tween, onStartParams || []); //in case the user had an onStart in the vars - we don't want to overwrite it.\n }\n }, vars));\n\n return immediateRender ? tween.render(0) : tween;\n };\n\n _proto2.tweenFromTo = function tweenFromTo(fromPosition, toPosition, vars) {\n return this.tweenTo(toPosition, _setDefaults({\n startAt: {\n time: _parsePosition(this, fromPosition)\n }\n }, vars));\n };\n\n _proto2.recent = function recent() {\n return this._recent;\n };\n\n _proto2.nextLabel = function nextLabel(afterTime) {\n if (afterTime === void 0) {\n afterTime = this._time;\n }\n\n return _getLabelInDirection(this, _parsePosition(this, afterTime));\n };\n\n _proto2.previousLabel = function previousLabel(beforeTime) {\n if (beforeTime === void 0) {\n beforeTime = this._time;\n }\n\n return _getLabelInDirection(this, _parsePosition(this, beforeTime), 1);\n };\n\n _proto2.currentLabel = function currentLabel(value) {\n return arguments.length ? this.seek(value, true) : this.previousLabel(this._time + _tinyNum);\n };\n\n _proto2.shiftChildren = function shiftChildren(amount, adjustLabels, ignoreBeforeTime) {\n if (ignoreBeforeTime === void 0) {\n ignoreBeforeTime = 0;\n }\n\n var child = this._first,\n labels = this.labels,\n p;\n\n while (child) {\n if (child._start >= ignoreBeforeTime) {\n child._start += amount;\n child._end += amount;\n }\n\n child = child._next;\n }\n\n if (adjustLabels) {\n for (p in labels) {\n if (labels[p] >= ignoreBeforeTime) {\n labels[p] += amount;\n }\n }\n }\n\n return _uncache(this);\n };\n\n _proto2.invalidate = function invalidate(soft) {\n var child = this._first;\n this._lock = 0;\n\n while (child) {\n child.invalidate(soft);\n child = child._next;\n }\n\n return _Animation.prototype.invalidate.call(this, soft);\n };\n\n _proto2.clear = function clear(includeLabels) {\n if (includeLabels === void 0) {\n includeLabels = true;\n }\n\n var child = this._first,\n next;\n\n while (child) {\n next = child._next;\n this.remove(child);\n child = next;\n }\n\n this._dp && (this._time = this._tTime = this._pTime = 0);\n includeLabels && (this.labels = {});\n return _uncache(this);\n };\n\n _proto2.totalDuration = function totalDuration(value) {\n var max = 0,\n self = this,\n child = self._last,\n prevStart = _bigNum,\n prev,\n start,\n parent;\n\n if (arguments.length) {\n return self.timeScale((self._repeat < 0 ? self.duration() : self.totalDuration()) / (self.reversed() ? -value : value));\n }\n\n if (self._dirty) {\n parent = self.parent;\n\n while (child) {\n prev = child._prev; //record it here in case the tween changes position in the sequence...\n\n child._dirty && child.totalDuration(); //could change the tween._startTime, so make sure the animation's cache is clean before analyzing it.\n\n start = child._start;\n\n if (start > prevStart && self._sort && child._ts && !self._lock) {\n //in case one of the tweens shifted out of order, it needs to be re-inserted into the correct position in the sequence\n self._lock = 1; //prevent endless recursive calls - there are methods that get triggered that check duration/totalDuration when we add().\n\n _addToTimeline(self, child, start - child._delay, 1)._lock = 0;\n } else {\n prevStart = start;\n }\n\n if (start < 0 && child._ts) {\n //children aren't allowed to have negative startTimes unless smoothChildTiming is true, so adjust here if one is found.\n max -= start;\n\n if (!parent && !self._dp || parent && parent.smoothChildTiming) {\n self._start += start / self._ts;\n self._time -= start;\n self._tTime -= start;\n }\n\n self.shiftChildren(-start, false, -1e999);\n prevStart = 0;\n }\n\n child._end > max && child._ts && (max = child._end);\n child = prev;\n }\n\n _setDuration(self, self === _globalTimeline && self._time > max ? self._time : max, 1, 1);\n\n self._dirty = 0;\n }\n\n return self._tDur;\n };\n\n Timeline.updateRoot = function updateRoot(time) {\n if (_globalTimeline._ts) {\n _lazySafeRender(_globalTimeline, _parentToChildTotalTime(time, _globalTimeline));\n\n _lastRenderedFrame = _ticker.frame;\n }\n\n if (_ticker.frame >= _nextGCFrame) {\n _nextGCFrame += _config.autoSleep || 120;\n var child = _globalTimeline._first;\n if (!child || !child._ts) if (_config.autoSleep && _ticker._listeners.length < 2) {\n while (child && !child._ts) {\n child = child._next;\n }\n\n child || _ticker.sleep();\n }\n }\n };\n\n return Timeline;\n}(Animation);\n\n_setDefaults(Timeline.prototype, {\n _lock: 0,\n _hasPause: 0,\n _forcing: 0\n});\n\nvar _addComplexStringPropTween = function _addComplexStringPropTween(target, prop, start, end, setter, stringFilter, funcParam) {\n //note: we call _addComplexStringPropTween.call(tweenInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus \"this\" would refer to the plugin.\n var pt = new PropTween(this._pt, target, prop, 0, 1, _renderComplexString, null, setter),\n index = 0,\n matchIndex = 0,\n result,\n startNums,\n color,\n endNum,\n chunk,\n startNum,\n hasRandom,\n a;\n pt.b = start;\n pt.e = end;\n start += \"\"; //ensure values are strings\n\n end += \"\";\n\n if (hasRandom = ~end.indexOf(\"random(\")) {\n end = _replaceRandom(end);\n }\n\n if (stringFilter) {\n a = [start, end];\n stringFilter(a, target, prop); //pass an array with the starting and ending values and let the filter do whatever it needs to the values.\n\n start = a[0];\n end = a[1];\n }\n\n startNums = start.match(_complexStringNumExp) || [];\n\n while (result = _complexStringNumExp.exec(end)) {\n endNum = result[0];\n chunk = end.substring(index, result.index);\n\n if (color) {\n color = (color + 1) % 5;\n } else if (chunk.substr(-5) === \"rgba(\") {\n color = 1;\n }\n\n if (endNum !== startNums[matchIndex++]) {\n startNum = parseFloat(startNums[matchIndex - 1]) || 0; //these nested PropTweens are handled in a special way - we'll never actually call a render or setter method on them. We'll just loop through them in the parent complex string PropTween's render method.\n\n pt._pt = {\n _next: pt._pt,\n p: chunk || matchIndex === 1 ? chunk : \",\",\n //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case.\n s: startNum,\n c: endNum.charAt(1) === \"=\" ? _parseRelative(startNum, endNum) - startNum : parseFloat(endNum) - startNum,\n m: color && color < 4 ? Math.round : 0\n };\n index = _complexStringNumExp.lastIndex;\n }\n }\n\n pt.c = index < end.length ? end.substring(index, end.length) : \"\"; //we use the \"c\" of the PropTween to store the final part of the string (after the last number)\n\n pt.fp = funcParam;\n\n if (_relExp.test(end) || hasRandom) {\n pt.e = 0; //if the end string contains relative values or dynamic random(...) values, delete the end it so that on the final render we don't actually set it to the string with += or -= characters (forces it to use the calculated value).\n }\n\n this._pt = pt; //start the linked list with this new PropTween. Remember, we call _addComplexStringPropTween.call(tweenInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus \"this\" would refer to the plugin.\n\n return pt;\n},\n _addPropTween = function _addPropTween(target, prop, start, end, index, targets, modifier, stringFilter, funcParam, optional) {\n _isFunction(end) && (end = end(index || 0, target, targets));\n var currentValue = target[prop],\n parsedStart = start !== \"get\" ? start : !_isFunction(currentValue) ? currentValue : funcParam ? target[prop.indexOf(\"set\") || !_isFunction(target[\"get\" + prop.substr(3)]) ? prop : \"get\" + prop.substr(3)](funcParam) : target[prop](),\n setter = !_isFunction(currentValue) ? _setterPlain : funcParam ? _setterFuncWithParam : _setterFunc,\n pt;\n\n if (_isString(end)) {\n if (~end.indexOf(\"random(\")) {\n end = _replaceRandom(end);\n }\n\n if (end.charAt(1) === \"=\") {\n pt = _parseRelative(parsedStart, end) + (getUnit(parsedStart) || 0);\n\n if (pt || pt === 0) {\n // to avoid isNaN, like if someone passes in a value like \"!= whatever\"\n end = pt;\n }\n }\n }\n\n if (!optional || parsedStart !== end || _forceAllPropTweens) {\n if (!isNaN(parsedStart * end) && end !== \"\") {\n // fun fact: any number multiplied by \"\" is evaluated as the number 0!\n pt = new PropTween(this._pt, target, prop, +parsedStart || 0, end - (parsedStart || 0), typeof currentValue === \"boolean\" ? _renderBoolean : _renderPlain, 0, setter);\n funcParam && (pt.fp = funcParam);\n modifier && pt.modifier(modifier, this, target);\n return this._pt = pt;\n }\n\n !currentValue && !(prop in target) && _missingPlugin(prop, end);\n return _addComplexStringPropTween.call(this, target, prop, parsedStart, end, setter, stringFilter || _config.stringFilter, funcParam);\n }\n},\n //creates a copy of the vars object and processes any function-based values (putting the resulting values directly into the copy) as well as strings with \"random()\" in them. It does NOT process relative values.\n_processVars = function _processVars(vars, index, target, targets, tween) {\n _isFunction(vars) && (vars = _parseFuncOrString(vars, tween, index, target, targets));\n\n if (!_isObject(vars) || vars.style && vars.nodeType || _isArray(vars) || _isTypedArray(vars)) {\n return _isString(vars) ? _parseFuncOrString(vars, tween, index, target, targets) : vars;\n }\n\n var copy = {},\n p;\n\n for (p in vars) {\n copy[p] = _parseFuncOrString(vars[p], tween, index, target, targets);\n }\n\n return copy;\n},\n _checkPlugin = function _checkPlugin(property, vars, tween, index, target, targets) {\n var plugin, pt, ptLookup, i;\n\n if (_plugins[property] && (plugin = new _plugins[property]()).init(target, plugin.rawVars ? vars[property] : _processVars(vars[property], index, target, targets, tween), tween, index, targets) !== false) {\n tween._pt = pt = new PropTween(tween._pt, target, property, 0, 1, plugin.render, plugin, 0, plugin.priority);\n\n if (tween !== _quickTween) {\n ptLookup = tween._ptLookup[tween._targets.indexOf(target)]; //note: we can't use tween._ptLookup[index] because for staggered tweens, the index from the fullTargets array won't match what it is in each individual tween that spawns from the stagger.\n\n i = plugin._props.length;\n\n while (i--) {\n ptLookup[plugin._props[i]] = pt;\n }\n }\n }\n\n return plugin;\n},\n _overwritingTween,\n //store a reference temporarily so we can avoid overwriting itself.\n_forceAllPropTweens,\n _initTween = function _initTween(tween, time, tTime) {\n var vars = tween.vars,\n ease = vars.ease,\n startAt = vars.startAt,\n immediateRender = vars.immediateRender,\n lazy = vars.lazy,\n onUpdate = vars.onUpdate,\n onUpdateParams = vars.onUpdateParams,\n callbackScope = vars.callbackScope,\n runBackwards = vars.runBackwards,\n yoyoEase = vars.yoyoEase,\n keyframes = vars.keyframes,\n autoRevert = vars.autoRevert,\n dur = tween._dur,\n prevStartAt = tween._startAt,\n targets = tween._targets,\n parent = tween.parent,\n fullTargets = parent && parent.data === \"nested\" ? parent.vars.targets : targets,\n autoOverwrite = tween._overwrite === \"auto\" && !_suppressOverwrites,\n tl = tween.timeline,\n cleanVars,\n i,\n p,\n pt,\n target,\n hasPriority,\n gsData,\n harness,\n plugin,\n ptLookup,\n index,\n harnessVars,\n overwritten;\n tl && (!keyframes || !ease) && (ease = \"none\");\n tween._ease = _parseEase(ease, _defaults.ease);\n tween._yEase = yoyoEase ? _invertEase(_parseEase(yoyoEase === true ? ease : yoyoEase, _defaults.ease)) : 0;\n\n if (yoyoEase && tween._yoyo && !tween._repeat) {\n //there must have been a parent timeline with yoyo:true that is currently in its yoyo phase, so flip the eases.\n yoyoEase = tween._yEase;\n tween._yEase = tween._ease;\n tween._ease = yoyoEase;\n }\n\n tween._from = !tl && !!vars.runBackwards; //nested timelines should never run backwards - the backwards-ness is in the child tweens.\n\n if (!tl || keyframes && !vars.stagger) {\n //if there's an internal timeline, skip all the parsing because we passed that task down the chain.\n harness = targets[0] ? _getCache(targets[0]).harness : 0;\n harnessVars = harness && vars[harness.prop]; //someone may need to specify CSS-specific values AND non-CSS values, like if the element has an \"x\" property plus it's a standard DOM element. We allow people to distinguish by wrapping plugin-specific stuff in a css:{} object for example.\n\n cleanVars = _copyExcluding(vars, _reservedProps);\n\n if (prevStartAt) {\n prevStartAt._zTime < 0 && prevStartAt.progress(1); // in case it's a lazy startAt that hasn't rendered yet.\n\n time < 0 && runBackwards && immediateRender && !autoRevert ? prevStartAt.render(-1, true) : prevStartAt.revert(runBackwards && dur ? _revertConfigNoKill : _startAtRevertConfig); // if it's a \"startAt\" (not \"from()\" or runBackwards: true), we only need to do a shallow revert (keep transforms cached in CSSPlugin)\n // don't just _removeFromParent(prevStartAt.render(-1, true)) because that'll leave inline styles. We're creating a new _startAt for \"startAt\" tweens that re-capture things to ensure that if the pre-tween values changed since the tween was created, they're recorded.\n\n prevStartAt._lazy = 0;\n }\n\n if (startAt) {\n _removeFromParent(tween._startAt = Tween.set(targets, _setDefaults({\n data: \"isStart\",\n overwrite: false,\n parent: parent,\n immediateRender: true,\n lazy: !prevStartAt && _isNotFalse(lazy),\n startAt: null,\n delay: 0,\n onUpdate: onUpdate,\n onUpdateParams: onUpdateParams,\n callbackScope: callbackScope,\n stagger: 0\n }, startAt))); //copy the properties/values into a new object to avoid collisions, like var to = {x:0}, from = {x:500}; timeline.fromTo(e, from, to).fromTo(e, to, from);\n\n\n tween._startAt._dp = 0; // don't allow it to get put back into root timeline! Like when revert() is called and totalTime() gets set.\n\n tween._startAt._sat = tween; // used in globalTime(). _sat stands for _startAtTween\n\n time < 0 && (_reverting || !immediateRender && !autoRevert) && tween._startAt.revert(_revertConfigNoKill); // rare edge case, like if a render is forced in the negative direction of a non-initted tween.\n\n if (immediateRender) {\n if (dur && time <= 0 && tTime <= 0) {\n // check tTime here because in the case of a yoyo tween whose playhead gets pushed to the end like tween.progress(1), we should allow it through so that the onComplete gets fired properly.\n time && (tween._zTime = time);\n return; //we skip initialization here so that overwriting doesn't occur until the tween actually begins. Otherwise, if you create several immediateRender:true tweens of the same target/properties to drop into a Timeline, the last one created would overwrite the first ones because they didn't get placed into the timeline yet before the first render occurs and kicks in overwriting.\n }\n }\n } else if (runBackwards && dur) {\n //from() tweens must be handled uniquely: their beginning values must be rendered but we don't want overwriting to occur yet (when time is still 0). Wait until the tween actually begins before doing all the routines like overwriting. At that time, we should render at the END of the tween to ensure that things initialize correctly (remember, from() tweens go backwards)\n if (!prevStartAt) {\n time && (immediateRender = false); //in rare cases (like if a from() tween runs and then is invalidate()-ed), immediateRender could be true but the initial forced-render gets skipped, so there's no need to force the render in this context when the _time is greater than 0\n\n p = _setDefaults({\n overwrite: false,\n data: \"isFromStart\",\n //we tag the tween with as \"isFromStart\" so that if [inside a plugin] we need to only do something at the very END of a tween, we have a way of identifying this tween as merely the one that's setting the beginning values for a \"from()\" tween. For example, clearProps in CSSPlugin should only get applied at the very END of a tween and without this tag, from(...{height:100, clearProps:\"height\", delay:1}) would wipe the height at the beginning of the tween and after 1 second, it'd kick back in.\n lazy: immediateRender && !prevStartAt && _isNotFalse(lazy),\n immediateRender: immediateRender,\n //zero-duration tweens render immediately by default, but if we're not specifically instructed to render this tween immediately, we should skip this and merely _init() to record the starting values (rendering them immediately would push them to completion which is wasteful in that case - we'd have to render(-1) immediately after)\n stagger: 0,\n parent: parent //ensures that nested tweens that had a stagger are handled properly, like gsap.from(\".class\", {y: gsap.utils.wrap([-100,100]), stagger: 0.5})\n\n }, cleanVars);\n harnessVars && (p[harness.prop] = harnessVars); // in case someone does something like .from(..., {css:{}})\n\n _removeFromParent(tween._startAt = Tween.set(targets, p));\n\n tween._startAt._dp = 0; // don't allow it to get put back into root timeline!\n\n tween._startAt._sat = tween; // used in globalTime()\n\n time < 0 && (_reverting ? tween._startAt.revert(_revertConfigNoKill) : tween._startAt.render(-1, true));\n tween._zTime = time;\n\n if (!immediateRender) {\n _initTween(tween._startAt, _tinyNum, _tinyNum); //ensures that the initial values are recorded\n\n } else if (!time) {\n return;\n }\n }\n }\n\n tween._pt = tween._ptCache = 0;\n lazy = dur && _isNotFalse(lazy) || lazy && !dur;\n\n for (i = 0; i < targets.length; i++) {\n target = targets[i];\n gsData = target._gsap || _harness(targets)[i]._gsap;\n tween._ptLookup[i] = ptLookup = {};\n _lazyLookup[gsData.id] && _lazyTweens.length && _lazyRender(); //if other tweens of the same target have recently initted but haven't rendered yet, we've got to force the render so that the starting values are correct (imagine populating a timeline with a bunch of sequential tweens and then jumping to the end)\n\n index = fullTargets === targets ? i : fullTargets.indexOf(target);\n\n if (harness && (plugin = new harness()).init(target, harnessVars || cleanVars, tween, index, fullTargets) !== false) {\n tween._pt = pt = new PropTween(tween._pt, target, plugin.name, 0, 1, plugin.render, plugin, 0, plugin.priority);\n\n plugin._props.forEach(function (name) {\n ptLookup[name] = pt;\n });\n\n plugin.priority && (hasPriority = 1);\n }\n\n if (!harness || harnessVars) {\n for (p in cleanVars) {\n if (_plugins[p] && (plugin = _checkPlugin(p, cleanVars, tween, index, target, fullTargets))) {\n plugin.priority && (hasPriority = 1);\n } else {\n ptLookup[p] = pt = _addPropTween.call(tween, target, p, \"get\", cleanVars[p], index, fullTargets, 0, vars.stringFilter);\n }\n }\n }\n\n tween._op && tween._op[i] && tween.kill(target, tween._op[i]);\n\n if (autoOverwrite && tween._pt) {\n _overwritingTween = tween;\n\n _globalTimeline.killTweensOf(target, ptLookup, tween.globalTime(time)); // make sure the overwriting doesn't overwrite THIS tween!!!\n\n\n overwritten = !tween.parent;\n _overwritingTween = 0;\n }\n\n tween._pt && lazy && (_lazyLookup[gsData.id] = 1);\n }\n\n hasPriority && _sortPropTweensByPriority(tween);\n tween._onInit && tween._onInit(tween); //plugins like RoundProps must wait until ALL of the PropTweens are instantiated. In the plugin's init() function, it sets the _onInit on the tween instance. May not be pretty/intuitive, but it's fast and keeps file size down.\n }\n\n tween._onUpdate = onUpdate;\n tween._initted = (!tween._op || tween._pt) && !overwritten; // if overwrittenProps resulted in the entire tween being killed, do NOT flag it as initted or else it may render for one tick.\n\n keyframes && time <= 0 && tl.render(_bigNum, true, true); // if there's a 0% keyframe, it'll render in the \"before\" state for any staggered/delayed animations thus when the following tween initializes, it'll use the \"before\" state instead of the \"after\" state as the initial values.\n},\n _updatePropTweens = function _updatePropTweens(tween, property, value, start, startIsRelative, ratio, time) {\n var ptCache = (tween._pt && tween._ptCache || (tween._ptCache = {}))[property],\n pt,\n rootPT,\n lookup,\n i;\n\n if (!ptCache) {\n ptCache = tween._ptCache[property] = [];\n lookup = tween._ptLookup;\n i = tween._targets.length;\n\n while (i--) {\n pt = lookup[i][property];\n\n if (pt && pt.d && pt.d._pt) {\n // it's a plugin, so find the nested PropTween\n pt = pt.d._pt;\n\n while (pt && pt.p !== property && pt.fp !== property) {\n // \"fp\" is functionParam for things like setting CSS variables which require .setProperty(\"--var-name\", value)\n pt = pt._next;\n }\n }\n\n if (!pt) {\n // there is no PropTween associated with that property, so we must FORCE one to be created and ditch out of this\n // if the tween has other properties that already rendered at new positions, we'd normally have to rewind to put them back like tween.render(0, true) before forcing an _initTween(), but that can create another edge case like tweening a timeline's progress would trigger onUpdates to fire which could move other things around. It's better to just inform users that .resetTo() should ONLY be used for tweens that already have that property. For example, you can't gsap.to(...{ y: 0 }) and then tween.restTo(\"x\", 200) for example.\n _forceAllPropTweens = 1; // otherwise, when we _addPropTween() and it finds no change between the start and end values, it skips creating a PropTween (for efficiency...why tween when there's no difference?) but in this case we NEED that PropTween created so we can edit it.\n\n tween.vars[property] = \"+=0\";\n\n _initTween(tween, time);\n\n _forceAllPropTweens = 0;\n return 1;\n }\n\n ptCache.push(pt);\n }\n }\n\n i = ptCache.length;\n\n while (i--) {\n rootPT = ptCache[i];\n pt = rootPT._pt || rootPT; // complex values may have nested PropTweens. We only accommodate the FIRST value.\n\n pt.s = (start || start === 0) && !startIsRelative ? start : pt.s + (start || 0) + ratio * pt.c;\n pt.c = value - pt.s;\n rootPT.e && (rootPT.e = _round(value) + getUnit(rootPT.e)); // mainly for CSSPlugin (end value)\n\n rootPT.b && (rootPT.b = pt.s + getUnit(rootPT.b)); // (beginning value)\n }\n},\n _addAliasesToVars = function _addAliasesToVars(targets, vars) {\n var harness = targets[0] ? _getCache(targets[0]).harness : 0,\n propertyAliases = harness && harness.aliases,\n copy,\n p,\n i,\n aliases;\n\n if (!propertyAliases) {\n return vars;\n }\n\n copy = _merge({}, vars);\n\n for (p in propertyAliases) {\n if (p in copy) {\n aliases = propertyAliases[p].split(\",\");\n i = aliases.length;\n\n while (i--) {\n copy[aliases[i]] = copy[p];\n }\n }\n }\n\n return copy;\n},\n // parses multiple formats, like {\"0%\": {x: 100}, {\"50%\": {x: -20}} and { x: {\"0%\": 100, \"50%\": -20} }, and an \"ease\" can be set on any object. We populate an \"allProps\" object with an Array for each property, like {x: [{}, {}], y:[{}, {}]} with data for each property tween. The objects have a \"t\" (time), \"v\", (value), and \"e\" (ease) property. This allows us to piece together a timeline later.\n_parseKeyframe = function _parseKeyframe(prop, obj, allProps, easeEach) {\n var ease = obj.ease || easeEach || \"power1.inOut\",\n p,\n a;\n\n if (_isArray(obj)) {\n a = allProps[prop] || (allProps[prop] = []); // t = time (out of 100), v = value, e = ease\n\n obj.forEach(function (value, i) {\n return a.push({\n t: i / (obj.length - 1) * 100,\n v: value,\n e: ease\n });\n });\n } else {\n for (p in obj) {\n a = allProps[p] || (allProps[p] = []);\n p === \"ease\" || a.push({\n t: parseFloat(prop),\n v: obj[p],\n e: ease\n });\n }\n }\n},\n _parseFuncOrString = function _parseFuncOrString(value, tween, i, target, targets) {\n return _isFunction(value) ? value.call(tween, i, target, targets) : _isString(value) && ~value.indexOf(\"random(\") ? _replaceRandom(value) : value;\n},\n _staggerTweenProps = _callbackNames + \"repeat,repeatDelay,yoyo,repeatRefresh,yoyoEase,autoRevert\",\n _staggerPropsToSkip = {};\n\n_forEachName(_staggerTweenProps + \",id,stagger,delay,duration,paused,scrollTrigger\", function (name) {\n return _staggerPropsToSkip[name] = 1;\n});\n/*\n * --------------------------------------------------------------------------------------\n * TWEEN\n * --------------------------------------------------------------------------------------\n */\n\n\nexport var Tween = /*#__PURE__*/function (_Animation2) {\n _inheritsLoose(Tween, _Animation2);\n\n function Tween(targets, vars, position, skipInherit) {\n var _this3;\n\n if (typeof vars === \"number\") {\n position.duration = vars;\n vars = position;\n position = null;\n }\n\n _this3 = _Animation2.call(this, skipInherit ? vars : _inheritDefaults(vars)) || this;\n var _this3$vars = _this3.vars,\n duration = _this3$vars.duration,\n delay = _this3$vars.delay,\n immediateRender = _this3$vars.immediateRender,\n stagger = _this3$vars.stagger,\n overwrite = _this3$vars.overwrite,\n keyframes = _this3$vars.keyframes,\n defaults = _this3$vars.defaults,\n scrollTrigger = _this3$vars.scrollTrigger,\n yoyoEase = _this3$vars.yoyoEase,\n parent = vars.parent || _globalTimeline,\n parsedTargets = (_isArray(targets) || _isTypedArray(targets) ? _isNumber(targets[0]) : \"length\" in vars) ? [targets] : toArray(targets),\n tl,\n i,\n copy,\n l,\n p,\n curTarget,\n staggerFunc,\n staggerVarsToMerge;\n _this3._targets = parsedTargets.length ? _harness(parsedTargets) : _warn(\"GSAP target \" + targets + \" not found. https://greensock.com\", !_config.nullTargetWarn) || [];\n _this3._ptLookup = []; //PropTween lookup. An array containing an object for each target, having keys for each tweening property\n\n _this3._overwrite = overwrite;\n\n if (keyframes || stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) {\n vars = _this3.vars;\n tl = _this3.timeline = new Timeline({\n data: \"nested\",\n defaults: defaults || {},\n targets: parent && parent.data === \"nested\" ? parent.vars.targets : parsedTargets\n }); // we need to store the targets because for staggers and keyframes, we end up creating an individual tween for each but function-based values need to know the index and the whole Array of targets.\n\n tl.kill();\n tl.parent = tl._dp = _assertThisInitialized(_this3);\n tl._start = 0;\n\n if (stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) {\n l = parsedTargets.length;\n staggerFunc = stagger && distribute(stagger);\n\n if (_isObject(stagger)) {\n //users can pass in callbacks like onStart/onComplete in the stagger object. These should fire with each individual tween.\n for (p in stagger) {\n if (~_staggerTweenProps.indexOf(p)) {\n staggerVarsToMerge || (staggerVarsToMerge = {});\n staggerVarsToMerge[p] = stagger[p];\n }\n }\n }\n\n for (i = 0; i < l; i++) {\n copy = _copyExcluding(vars, _staggerPropsToSkip);\n copy.stagger = 0;\n yoyoEase && (copy.yoyoEase = yoyoEase);\n staggerVarsToMerge && _merge(copy, staggerVarsToMerge);\n curTarget = parsedTargets[i]; //don't just copy duration or delay because if they're a string or function, we'd end up in an infinite loop because _isFuncOrString() would evaluate as true in the child tweens, entering this loop, etc. So we parse the value straight from vars and default to 0.\n\n copy.duration = +_parseFuncOrString(duration, _assertThisInitialized(_this3), i, curTarget, parsedTargets);\n copy.delay = (+_parseFuncOrString(delay, _assertThisInitialized(_this3), i, curTarget, parsedTargets) || 0) - _this3._delay;\n\n if (!stagger && l === 1 && copy.delay) {\n // if someone does delay:\"random(1, 5)\", repeat:-1, for example, the delay shouldn't be inside the repeat.\n _this3._delay = delay = copy.delay;\n _this3._start += delay;\n copy.delay = 0;\n }\n\n tl.to(curTarget, copy, staggerFunc ? staggerFunc(i, curTarget, parsedTargets) : 0);\n tl._ease = _easeMap.none;\n }\n\n tl.duration() ? duration = delay = 0 : _this3.timeline = 0; // if the timeline's duration is 0, we don't need a timeline internally!\n } else if (keyframes) {\n _inheritDefaults(_setDefaults(tl.vars.defaults, {\n ease: \"none\"\n }));\n\n tl._ease = _parseEase(keyframes.ease || vars.ease || \"none\");\n var time = 0,\n a,\n kf,\n v;\n\n if (_isArray(keyframes)) {\n keyframes.forEach(function (frame) {\n return tl.to(parsedTargets, frame, \">\");\n });\n tl.duration(); // to ensure tl._dur is cached because we tap into it for performance purposes in the render() method.\n } else {\n copy = {};\n\n for (p in keyframes) {\n p === \"ease\" || p === \"easeEach\" || _parseKeyframe(p, keyframes[p], copy, keyframes.easeEach);\n }\n\n for (p in copy) {\n a = copy[p].sort(function (a, b) {\n return a.t - b.t;\n });\n time = 0;\n\n for (i = 0; i < a.length; i++) {\n kf = a[i];\n v = {\n ease: kf.e,\n duration: (kf.t - (i ? a[i - 1].t : 0)) / 100 * duration\n };\n v[p] = kf.v;\n tl.to(parsedTargets, v, time);\n time += v.duration;\n }\n }\n\n tl.duration() < duration && tl.to({}, {\n duration: duration - tl.duration()\n }); // in case keyframes didn't go to 100%\n }\n }\n\n duration || _this3.duration(duration = tl.duration());\n } else {\n _this3.timeline = 0; //speed optimization, faster lookups (no going up the prototype chain)\n }\n\n if (overwrite === true && !_suppressOverwrites) {\n _overwritingTween = _assertThisInitialized(_this3);\n\n _globalTimeline.killTweensOf(parsedTargets);\n\n _overwritingTween = 0;\n }\n\n _addToTimeline(parent, _assertThisInitialized(_this3), position);\n\n vars.reversed && _this3.reverse();\n vars.paused && _this3.paused(true);\n\n if (immediateRender || !duration && !keyframes && _this3._start === _roundPrecise(parent._time) && _isNotFalse(immediateRender) && _hasNoPausedAncestors(_assertThisInitialized(_this3)) && parent.data !== \"nested\") {\n _this3._tTime = -_tinyNum; //forces a render without having to set the render() \"force\" parameter to true because we want to allow lazying by default (using the \"force\" parameter always forces an immediate full render)\n\n _this3.render(Math.max(0, -delay) || 0); //in case delay is negative\n\n }\n\n scrollTrigger && _scrollTrigger(_assertThisInitialized(_this3), scrollTrigger);\n return _this3;\n }\n\n var _proto3 = Tween.prototype;\n\n _proto3.render = function render(totalTime, suppressEvents, force) {\n var prevTime = this._time,\n tDur = this._tDur,\n dur = this._dur,\n isNegative = totalTime < 0,\n tTime = totalTime > tDur - _tinyNum && !isNegative ? tDur : totalTime < _tinyNum ? 0 : totalTime,\n time,\n pt,\n iteration,\n cycleDuration,\n prevIteration,\n isYoyo,\n ratio,\n timeline,\n yoyoEase;\n\n if (!dur) {\n _renderZeroDurationTween(this, totalTime, suppressEvents, force);\n } else if (tTime !== this._tTime || !totalTime || force || !this._initted && this._tTime || this._startAt && this._zTime < 0 !== isNegative) {\n //this senses if we're crossing over the start time, in which case we must record _zTime and force the render, but we do it in this lengthy conditional way for performance reasons (usually we can skip the calculations): this._initted && (this._zTime < 0) !== (totalTime < 0)\n time = tTime;\n timeline = this.timeline;\n\n if (this._repeat) {\n //adjust the time for repeats and yoyos\n cycleDuration = dur + this._rDelay;\n\n if (this._repeat < -1 && isNegative) {\n return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force);\n }\n\n time = _roundPrecise(tTime % cycleDuration); //round to avoid floating point errors. (4 % 0.8 should be 0 but some browsers report it as 0.79999999!)\n\n if (tTime === tDur) {\n // the tDur === tTime is for edge cases where there's a lengthy decimal on the duration and it may reach the very end but the time is rendered as not-quite-there (remember, tDur is rounded to 4 decimals whereas dur isn't)\n iteration = this._repeat;\n time = dur;\n } else {\n iteration = ~~(tTime / cycleDuration);\n\n if (iteration && iteration === tTime / cycleDuration) {\n time = dur;\n iteration--;\n }\n\n time > dur && (time = dur);\n }\n\n isYoyo = this._yoyo && iteration & 1;\n\n if (isYoyo) {\n yoyoEase = this._yEase;\n time = dur - time;\n }\n\n prevIteration = _animationCycle(this._tTime, cycleDuration);\n\n if (time === prevTime && !force && this._initted) {\n //could be during the repeatDelay part. No need to render and fire callbacks.\n this._tTime = tTime;\n return this;\n }\n\n if (iteration !== prevIteration) {\n timeline && this._yEase && _propagateYoyoEase(timeline, isYoyo); //repeatRefresh functionality\n\n if (this.vars.repeatRefresh && !isYoyo && !this._lock) {\n this._lock = force = 1; //force, otherwise if lazy is true, the _attemptInitTween() will return and we'll jump out and get caught bouncing on each tick.\n\n this.render(_roundPrecise(cycleDuration * iteration), true).invalidate()._lock = 0;\n }\n }\n }\n\n if (!this._initted) {\n if (_attemptInitTween(this, isNegative ? totalTime : time, force, suppressEvents, tTime)) {\n this._tTime = 0; // in constructor if immediateRender is true, we set _tTime to -_tinyNum to have the playhead cross the starting point but we can't leave _tTime as a negative number.\n\n return this;\n }\n\n if (prevTime !== this._time) {\n // rare edge case - during initialization, an onUpdate in the _startAt (.fromTo()) might force this tween to render at a different spot in which case we should ditch this render() call so that it doesn't revert the values.\n return this;\n }\n\n if (dur !== this._dur) {\n // while initting, a plugin like InertiaPlugin might alter the duration, so rerun from the start to ensure everything renders as it should.\n return this.render(totalTime, suppressEvents, force);\n }\n }\n\n this._tTime = tTime;\n this._time = time;\n\n if (!this._act && this._ts) {\n this._act = 1; //as long as it's not paused, force it to be active so that if the user renders independent of the parent timeline, it'll be forced to re-render on the next tick.\n\n this._lazy = 0;\n }\n\n this.ratio = ratio = (yoyoEase || this._ease)(time / dur);\n\n if (this._from) {\n this.ratio = ratio = 1 - ratio;\n }\n\n if (time && !prevTime && !suppressEvents && !iteration) {\n _callback(this, \"onStart\");\n\n if (this._tTime !== tTime) {\n // in case the onStart triggered a render at a different spot, eject. Like if someone did animation.pause(0.5) or something inside the onStart.\n return this;\n }\n }\n\n pt = this._pt;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n\n timeline && timeline.render(totalTime < 0 ? totalTime : !time && isYoyo ? -_tinyNum : timeline._dur * timeline._ease(time / this._dur), suppressEvents, force) || this._startAt && (this._zTime = totalTime);\n\n if (this._onUpdate && !suppressEvents) {\n isNegative && _rewindStartAt(this, totalTime, suppressEvents, force); //note: for performance reasons, we tuck this conditional logic inside less traveled areas (most tweens don't have an onUpdate). We'd just have it at the end before the onComplete, but the values should be updated before any onUpdate is called, so we ALSO put it here and then if it's not called, we do so later near the onComplete.\n\n _callback(this, \"onUpdate\");\n }\n\n this._repeat && iteration !== prevIteration && this.vars.onRepeat && !suppressEvents && this.parent && _callback(this, \"onRepeat\");\n\n if ((tTime === this._tDur || !tTime) && this._tTime === tTime) {\n isNegative && !this._onUpdate && _rewindStartAt(this, totalTime, true, true);\n (totalTime || !dur) && (tTime === this._tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1); // don't remove if we're rendering at exactly a time of 0, as there could be autoRevert values that should get set on the next tick (if the playhead goes backward beyond the startTime, negative totalTime). Don't remove if the timeline is reversed and the playhead isn't at 0, otherwise tl.progress(1).reverse() won't work. Only remove if the playhead is at the end and timeScale is positive, or if the playhead is at 0 and the timeScale is negative.\n\n if (!suppressEvents && !(isNegative && !prevTime) && (tTime || prevTime || isYoyo)) {\n // if prevTime and tTime are zero, we shouldn't fire the onReverseComplete. This could happen if you gsap.to(... {paused:true}).play();\n _callback(this, tTime === tDur ? \"onComplete\" : \"onReverseComplete\", true);\n\n this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom();\n }\n }\n }\n\n return this;\n };\n\n _proto3.targets = function targets() {\n return this._targets;\n };\n\n _proto3.invalidate = function invalidate(soft) {\n // \"soft\" gives us a way to clear out everything EXCEPT the recorded pre-\"from\" portion of from() tweens. Otherwise, for example, if you tween.progress(1).render(0, true true).invalidate(), the \"from\" values would persist and then on the next render, the from() tweens would initialize and the current value would match the \"from\" values, thus animate from the same value to the same value (no animation). We tap into this in ScrollTrigger's refresh() where we must push a tween to completion and then back again but honor its init state in case the tween is dependent on another tween further up on the page.\n (!soft || !this.vars.runBackwards) && (this._startAt = 0);\n this._pt = this._op = this._onUpdate = this._lazy = this.ratio = 0;\n this._ptLookup = [];\n this.timeline && this.timeline.invalidate(soft);\n return _Animation2.prototype.invalidate.call(this, soft);\n };\n\n _proto3.resetTo = function resetTo(property, value, start, startIsRelative) {\n _tickerActive || _ticker.wake();\n this._ts || this.play();\n var time = Math.min(this._dur, (this._dp._time - this._start) * this._ts),\n ratio;\n this._initted || _initTween(this, time);\n ratio = this._ease(time / this._dur); // don't just get tween.ratio because it may not have rendered yet.\n // possible future addition to allow an object with multiple values to update, like tween.resetTo({x: 100, y: 200}); At this point, it doesn't seem worth the added kb given the fact that most users will likely opt for the convenient gsap.quickTo() way of interacting with this method.\n // if (_isObject(property)) { // performance optimization\n // \tfor (p in property) {\n // \t\tif (_updatePropTweens(this, p, property[p], value ? value[p] : null, start, ratio, time)) {\n // \t\t\treturn this.resetTo(property, value, start, startIsRelative); // if a PropTween wasn't found for the property, it'll get forced with a re-initialization so we need to jump out and start over again.\n // \t\t}\n // \t}\n // } else {\n\n if (_updatePropTweens(this, property, value, start, startIsRelative, ratio, time)) {\n return this.resetTo(property, value, start, startIsRelative); // if a PropTween wasn't found for the property, it'll get forced with a re-initialization so we need to jump out and start over again.\n } //}\n\n\n _alignPlayhead(this, 0);\n\n this.parent || _addLinkedListItem(this._dp, this, \"_first\", \"_last\", this._dp._sort ? \"_start\" : 0);\n return this.render(0);\n };\n\n _proto3.kill = function kill(targets, vars) {\n if (vars === void 0) {\n vars = \"all\";\n }\n\n if (!targets && (!vars || vars === \"all\")) {\n this._lazy = this._pt = 0;\n return this.parent ? _interrupt(this) : this;\n }\n\n if (this.timeline) {\n var tDur = this.timeline.totalDuration();\n this.timeline.killTweensOf(targets, vars, _overwritingTween && _overwritingTween.vars.overwrite !== true)._first || _interrupt(this); // if nothing is left tweening, interrupt.\n\n this.parent && tDur !== this.timeline.totalDuration() && _setDuration(this, this._dur * this.timeline._tDur / tDur, 0, 1); // if a nested tween is killed that changes the duration, it should affect this tween's duration. We must use the ratio, though, because sometimes the internal timeline is stretched like for keyframes where they don't all add up to whatever the parent tween's duration was set to.\n\n return this;\n }\n\n var parsedTargets = this._targets,\n killingTargets = targets ? toArray(targets) : parsedTargets,\n propTweenLookup = this._ptLookup,\n firstPT = this._pt,\n overwrittenProps,\n curLookup,\n curOverwriteProps,\n props,\n p,\n pt,\n i;\n\n if ((!vars || vars === \"all\") && _arraysMatch(parsedTargets, killingTargets)) {\n vars === \"all\" && (this._pt = 0);\n return _interrupt(this);\n }\n\n overwrittenProps = this._op = this._op || [];\n\n if (vars !== \"all\") {\n //so people can pass in a comma-delimited list of property names\n if (_isString(vars)) {\n p = {};\n\n _forEachName(vars, function (name) {\n return p[name] = 1;\n });\n\n vars = p;\n }\n\n vars = _addAliasesToVars(parsedTargets, vars);\n }\n\n i = parsedTargets.length;\n\n while (i--) {\n if (~killingTargets.indexOf(parsedTargets[i])) {\n curLookup = propTweenLookup[i];\n\n if (vars === \"all\") {\n overwrittenProps[i] = vars;\n props = curLookup;\n curOverwriteProps = {};\n } else {\n curOverwriteProps = overwrittenProps[i] = overwrittenProps[i] || {};\n props = vars;\n }\n\n for (p in props) {\n pt = curLookup && curLookup[p];\n\n if (pt) {\n if (!(\"kill\" in pt.d) || pt.d.kill(p) === true) {\n _removeLinkedListItem(this, pt, \"_pt\");\n }\n\n delete curLookup[p];\n }\n\n if (curOverwriteProps !== \"all\") {\n curOverwriteProps[p] = 1;\n }\n }\n }\n }\n\n this._initted && !this._pt && firstPT && _interrupt(this); //if all tweening properties are killed, kill the tween. Without this line, if there's a tween with multiple targets and then you killTweensOf() each target individually, the tween would technically still remain active and fire its onComplete even though there aren't any more properties tweening.\n\n return this;\n };\n\n Tween.to = function to(targets, vars) {\n return new Tween(targets, vars, arguments[2]);\n };\n\n Tween.from = function from(targets, vars) {\n return _createTweenType(1, arguments);\n };\n\n Tween.delayedCall = function delayedCall(delay, callback, params, scope) {\n return new Tween(callback, 0, {\n immediateRender: false,\n lazy: false,\n overwrite: false,\n delay: delay,\n onComplete: callback,\n onReverseComplete: callback,\n onCompleteParams: params,\n onReverseCompleteParams: params,\n callbackScope: scope\n }); // we must use onReverseComplete too for things like timeline.add(() => {...}) which should be triggered in BOTH directions (forward and reverse)\n };\n\n Tween.fromTo = function fromTo(targets, fromVars, toVars) {\n return _createTweenType(2, arguments);\n };\n\n Tween.set = function set(targets, vars) {\n vars.duration = 0;\n vars.repeatDelay || (vars.repeat = 0);\n return new Tween(targets, vars);\n };\n\n Tween.killTweensOf = function killTweensOf(targets, props, onlyActive) {\n return _globalTimeline.killTweensOf(targets, props, onlyActive);\n };\n\n return Tween;\n}(Animation);\n\n_setDefaults(Tween.prototype, {\n _targets: [],\n _lazy: 0,\n _startAt: 0,\n _op: 0,\n _onInit: 0\n}); //add the pertinent timeline methods to Tween instances so that users can chain conveniently and create a timeline automatically. (removed due to concerns that it'd ultimately add to more confusion especially for beginners)\n// _forEachName(\"to,from,fromTo,set,call,add,addLabel,addPause\", name => {\n// \tTween.prototype[name] = function() {\n// \t\tlet tl = new Timeline();\n// \t\treturn _addToTimeline(tl, this)[name].apply(tl, toArray(arguments));\n// \t}\n// });\n//for backward compatibility. Leverage the timeline calls.\n\n\n_forEachName(\"staggerTo,staggerFrom,staggerFromTo\", function (name) {\n Tween[name] = function () {\n var tl = new Timeline(),\n params = _slice.call(arguments, 0);\n\n params.splice(name === \"staggerFromTo\" ? 5 : 4, 0, 0);\n return tl[name].apply(tl, params);\n };\n});\n/*\n * --------------------------------------------------------------------------------------\n * PROPTWEEN\n * --------------------------------------------------------------------------------------\n */\n\n\nvar _setterPlain = function _setterPlain(target, property, value) {\n return target[property] = value;\n},\n _setterFunc = function _setterFunc(target, property, value) {\n return target[property](value);\n},\n _setterFuncWithParam = function _setterFuncWithParam(target, property, value, data) {\n return target[property](data.fp, value);\n},\n _setterAttribute = function _setterAttribute(target, property, value) {\n return target.setAttribute(property, value);\n},\n _getSetter = function _getSetter(target, property) {\n return _isFunction(target[property]) ? _setterFunc : _isUndefined(target[property]) && target.setAttribute ? _setterAttribute : _setterPlain;\n},\n _renderPlain = function _renderPlain(ratio, data) {\n return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 1000000) / 1000000, data);\n},\n _renderBoolean = function _renderBoolean(ratio, data) {\n return data.set(data.t, data.p, !!(data.s + data.c * ratio), data);\n},\n _renderComplexString = function _renderComplexString(ratio, data) {\n var pt = data._pt,\n s = \"\";\n\n if (!ratio && data.b) {\n //b = beginning string\n s = data.b;\n } else if (ratio === 1 && data.e) {\n //e = ending string\n s = data.e;\n } else {\n while (pt) {\n s = pt.p + (pt.m ? pt.m(pt.s + pt.c * ratio) : Math.round((pt.s + pt.c * ratio) * 10000) / 10000) + s; //we use the \"p\" property for the text inbetween (like a suffix). And in the context of a complex string, the modifier (m) is typically just Math.round(), like for RGB colors.\n\n pt = pt._next;\n }\n\n s += data.c; //we use the \"c\" of the PropTween to store the final chunk of non-numeric text.\n }\n\n data.set(data.t, data.p, s, data);\n},\n _renderPropTweens = function _renderPropTweens(ratio, data) {\n var pt = data._pt;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n},\n _addPluginModifier = function _addPluginModifier(modifier, tween, target, property) {\n var pt = this._pt,\n next;\n\n while (pt) {\n next = pt._next;\n pt.p === property && pt.modifier(modifier, tween, target);\n pt = next;\n }\n},\n _killPropTweensOf = function _killPropTweensOf(property) {\n var pt = this._pt,\n hasNonDependentRemaining,\n next;\n\n while (pt) {\n next = pt._next;\n\n if (pt.p === property && !pt.op || pt.op === property) {\n _removeLinkedListItem(this, pt, \"_pt\");\n } else if (!pt.dep) {\n hasNonDependentRemaining = 1;\n }\n\n pt = next;\n }\n\n return !hasNonDependentRemaining;\n},\n _setterWithModifier = function _setterWithModifier(target, property, value, data) {\n data.mSet(target, property, data.m.call(data.tween, value, data.mt), data);\n},\n _sortPropTweensByPriority = function _sortPropTweensByPriority(parent) {\n var pt = parent._pt,\n next,\n pt2,\n first,\n last; //sorts the PropTween linked list in order of priority because some plugins need to do their work after ALL of the PropTweens were created (like RoundPropsPlugin and ModifiersPlugin)\n\n while (pt) {\n next = pt._next;\n pt2 = first;\n\n while (pt2 && pt2.pr > pt.pr) {\n pt2 = pt2._next;\n }\n\n if (pt._prev = pt2 ? pt2._prev : last) {\n pt._prev._next = pt;\n } else {\n first = pt;\n }\n\n if (pt._next = pt2) {\n pt2._prev = pt;\n } else {\n last = pt;\n }\n\n pt = next;\n }\n\n parent._pt = first;\n}; //PropTween key: t = target, p = prop, r = renderer, d = data, s = start, c = change, op = overwriteProperty (ONLY populated when it's different than p), pr = priority, _next/_prev for the linked list siblings, set = setter, m = modifier, mSet = modifierSetter (the original setter, before a modifier was added)\n\n\nexport var PropTween = /*#__PURE__*/function () {\n function PropTween(next, target, prop, start, change, renderer, data, setter, priority) {\n this.t = target;\n this.s = start;\n this.c = change;\n this.p = prop;\n this.r = renderer || _renderPlain;\n this.d = data || this;\n this.set = setter || _setterPlain;\n this.pr = priority || 0;\n this._next = next;\n\n if (next) {\n next._prev = this;\n }\n }\n\n var _proto4 = PropTween.prototype;\n\n _proto4.modifier = function modifier(func, tween, target) {\n this.mSet = this.mSet || this.set; //in case it was already set (a PropTween can only have one modifier)\n\n this.set = _setterWithModifier;\n this.m = func;\n this.mt = target; //modifier target\n\n this.tween = tween;\n };\n\n return PropTween;\n}(); //Initialization tasks\n\n_forEachName(_callbackNames + \"parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger\", function (name) {\n return _reservedProps[name] = 1;\n});\n\n_globals.TweenMax = _globals.TweenLite = Tween;\n_globals.TimelineLite = _globals.TimelineMax = Timeline;\n_globalTimeline = new Timeline({\n sortChildren: false,\n defaults: _defaults,\n autoRemoveChildren: true,\n id: \"root\",\n smoothChildTiming: true\n});\n_config.stringFilter = _colorStringFilter;\n\nvar _media = [],\n _listeners = {},\n _emptyArray = [],\n _lastMediaTime = 0,\n _contextID = 0,\n _dispatch = function _dispatch(type) {\n return (_listeners[type] || _emptyArray).map(function (f) {\n return f();\n });\n},\n _onMediaChange = function _onMediaChange() {\n var time = Date.now(),\n matches = [];\n\n if (time - _lastMediaTime > 2) {\n _dispatch(\"matchMediaInit\");\n\n _media.forEach(function (c) {\n var queries = c.queries,\n conditions = c.conditions,\n match,\n p,\n anyMatch,\n toggled;\n\n for (p in queries) {\n match = _win.matchMedia(queries[p]).matches; // Firefox doesn't update the \"matches\" property of the MediaQueryList object correctly - it only does so as it calls its change handler - so we must re-create a media query here to ensure it's accurate.\n\n match && (anyMatch = 1);\n\n if (match !== conditions[p]) {\n conditions[p] = match;\n toggled = 1;\n }\n }\n\n if (toggled) {\n c.revert();\n anyMatch && matches.push(c);\n }\n });\n\n _dispatch(\"matchMediaRevert\");\n\n matches.forEach(function (c) {\n return c.onMatch(c);\n });\n _lastMediaTime = time;\n\n _dispatch(\"matchMedia\");\n }\n};\n\nvar Context = /*#__PURE__*/function () {\n function Context(func, scope) {\n this.selector = scope && selector(scope);\n this.data = [];\n this._r = []; // returned/cleanup functions\n\n this.isReverted = false;\n this.id = _contextID++; // to work around issues that frameworks like Vue cause by making things into Proxies which make it impossible to do something like _media.indexOf(this) because \"this\" would no longer refer to the Context instance itself - it'd refer to a Proxy! We needed a way to identify the context uniquely\n\n func && this.add(func);\n }\n\n var _proto5 = Context.prototype;\n\n _proto5.add = function add(name, func, scope) {\n // possible future addition if we need the ability to add() an animation to a context and for whatever reason cannot create that animation inside of a context.add(() => {...}) function.\n // if (name && _isFunction(name.revert)) {\n // \tthis.data.push(name);\n // \treturn (name._ctx = this);\n // }\n if (_isFunction(name)) {\n scope = func;\n func = name;\n name = _isFunction;\n }\n\n var self = this,\n f = function f() {\n var prev = _context,\n prevSelector = self.selector,\n result;\n prev && prev !== self && prev.data.push(self);\n scope && (self.selector = selector(scope));\n _context = self;\n result = func.apply(self, arguments);\n _isFunction(result) && self._r.push(result);\n _context = prev;\n self.selector = prevSelector;\n self.isReverted = false;\n return result;\n };\n\n self.last = f;\n return name === _isFunction ? f(self) : name ? self[name] = f : f;\n };\n\n _proto5.ignore = function ignore(func) {\n var prev = _context;\n _context = null;\n func(this);\n _context = prev;\n };\n\n _proto5.getTweens = function getTweens() {\n var a = [];\n this.data.forEach(function (e) {\n return e instanceof Context ? a.push.apply(a, e.getTweens()) : e instanceof Tween && !(e.parent && e.parent.data === \"nested\") && a.push(e);\n });\n return a;\n };\n\n _proto5.clear = function clear() {\n this._r.length = this.data.length = 0;\n };\n\n _proto5.kill = function kill(revert, matchMedia) {\n var _this4 = this;\n\n if (revert) {\n var tweens = this.getTweens();\n this.data.forEach(function (t) {\n // Flip plugin tweens are very different in that they should actually be pushed to their end. The plugin replaces the timeline's .revert() method to do exactly that. But we also need to remove any of those nested tweens inside the flip timeline so that they don't get individually reverted.\n if (t.data === \"isFlip\") {\n t.revert();\n t.getChildren(true, true, false).forEach(function (tween) {\n return tweens.splice(tweens.indexOf(tween), 1);\n });\n }\n }); // save as an object so that we can cache the globalTime for each tween to optimize performance during the sort\n\n tweens.map(function (t) {\n return {\n g: t.globalTime(0),\n t: t\n };\n }).sort(function (a, b) {\n return b.g - a.g || -Infinity;\n }).forEach(function (o) {\n return o.t.revert(revert);\n }); // note: all of the _startAt tweens should be reverted in reverse order that they were created, and they'll all have the same globalTime (-1) so the \" || -1\" in the sort keeps the order properly.\n\n this.data.forEach(function (e) {\n return !(e instanceof Tween) && e.revert && e.revert(revert);\n });\n\n this._r.forEach(function (f) {\n return f(revert, _this4);\n });\n\n this.isReverted = true;\n } else {\n this.data.forEach(function (e) {\n return e.kill && e.kill();\n });\n }\n\n this.clear();\n\n if (matchMedia) {\n var i = _media.length;\n\n while (i--) {\n // previously, we checked _media.indexOf(this), but some frameworks like Vue enforce Proxy objects that make it impossible to get the proper result that way, so we must use a unique ID number instead.\n _media[i].id === this.id && _media.splice(i, 1);\n }\n }\n };\n\n _proto5.revert = function revert(config) {\n this.kill(config || {});\n };\n\n return Context;\n}();\n\nvar MatchMedia = /*#__PURE__*/function () {\n function MatchMedia(scope) {\n this.contexts = [];\n this.scope = scope;\n }\n\n var _proto6 = MatchMedia.prototype;\n\n _proto6.add = function add(conditions, func, scope) {\n _isObject(conditions) || (conditions = {\n matches: conditions\n });\n var context = new Context(0, scope || this.scope),\n cond = context.conditions = {},\n mq,\n p,\n active;\n _context && !context.selector && (context.selector = _context.selector); // in case a context is created inside a context. Like a gsap.matchMedia() that's inside a scoped gsap.context()\n\n this.contexts.push(context);\n func = context.add(\"onMatch\", func);\n context.queries = conditions;\n\n for (p in conditions) {\n if (p === \"all\") {\n active = 1;\n } else {\n mq = _win.matchMedia(conditions[p]);\n\n if (mq) {\n _media.indexOf(context) < 0 && _media.push(context);\n (cond[p] = mq.matches) && (active = 1);\n mq.addListener ? mq.addListener(_onMediaChange) : mq.addEventListener(\"change\", _onMediaChange);\n }\n }\n }\n\n active && func(context);\n return this;\n } // refresh() {\n // \tlet time = _lastMediaTime,\n // \t\tmedia = _media;\n // \t_lastMediaTime = -1;\n // \t_media = this.contexts;\n // \t_onMediaChange();\n // \t_lastMediaTime = time;\n // \t_media = media;\n // }\n ;\n\n _proto6.revert = function revert(config) {\n this.kill(config || {});\n };\n\n _proto6.kill = function kill(revert) {\n this.contexts.forEach(function (c) {\n return c.kill(revert, true);\n });\n };\n\n return MatchMedia;\n}();\n/*\n * --------------------------------------------------------------------------------------\n * GSAP\n * --------------------------------------------------------------------------------------\n */\n\n\nvar _gsap = {\n registerPlugin: function registerPlugin() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n args.forEach(function (config) {\n return _createPlugin(config);\n });\n },\n timeline: function timeline(vars) {\n return new Timeline(vars);\n },\n getTweensOf: function getTweensOf(targets, onlyActive) {\n return _globalTimeline.getTweensOf(targets, onlyActive);\n },\n getProperty: function getProperty(target, property, unit, uncache) {\n _isString(target) && (target = toArray(target)[0]); //in case selector text or an array is passed in\n\n var getter = _getCache(target || {}).get,\n format = unit ? _passThrough : _numericIfPossible;\n\n unit === \"native\" && (unit = \"\");\n return !target ? target : !property ? function (property, unit, uncache) {\n return format((_plugins[property] && _plugins[property].get || getter)(target, property, unit, uncache));\n } : format((_plugins[property] && _plugins[property].get || getter)(target, property, unit, uncache));\n },\n quickSetter: function quickSetter(target, property, unit) {\n target = toArray(target);\n\n if (target.length > 1) {\n var setters = target.map(function (t) {\n return gsap.quickSetter(t, property, unit);\n }),\n l = setters.length;\n return function (value) {\n var i = l;\n\n while (i--) {\n setters[i](value);\n }\n };\n }\n\n target = target[0] || {};\n\n var Plugin = _plugins[property],\n cache = _getCache(target),\n p = cache.harness && (cache.harness.aliases || {})[property] || property,\n // in case it's an alias, like \"rotate\" for \"rotation\".\n setter = Plugin ? function (value) {\n var p = new Plugin();\n _quickTween._pt = 0;\n p.init(target, unit ? value + unit : value, _quickTween, 0, [target]);\n p.render(1, p);\n _quickTween._pt && _renderPropTweens(1, _quickTween);\n } : cache.set(target, p);\n\n return Plugin ? setter : function (value) {\n return setter(target, p, unit ? value + unit : value, cache, 1);\n };\n },\n quickTo: function quickTo(target, property, vars) {\n var _merge2;\n\n var tween = gsap.to(target, _merge((_merge2 = {}, _merge2[property] = \"+=0.1\", _merge2.paused = true, _merge2), vars || {})),\n func = function func(value, start, startIsRelative) {\n return tween.resetTo(property, value, start, startIsRelative);\n };\n\n func.tween = tween;\n return func;\n },\n isTweening: function isTweening(targets) {\n return _globalTimeline.getTweensOf(targets, true).length > 0;\n },\n defaults: function defaults(value) {\n value && value.ease && (value.ease = _parseEase(value.ease, _defaults.ease));\n return _mergeDeep(_defaults, value || {});\n },\n config: function config(value) {\n return _mergeDeep(_config, value || {});\n },\n registerEffect: function registerEffect(_ref3) {\n var name = _ref3.name,\n effect = _ref3.effect,\n plugins = _ref3.plugins,\n defaults = _ref3.defaults,\n extendTimeline = _ref3.extendTimeline;\n (plugins || \"\").split(\",\").forEach(function (pluginName) {\n return pluginName && !_plugins[pluginName] && !_globals[pluginName] && _warn(name + \" effect requires \" + pluginName + \" plugin.\");\n });\n\n _effects[name] = function (targets, vars, tl) {\n return effect(toArray(targets), _setDefaults(vars || {}, defaults), tl);\n };\n\n if (extendTimeline) {\n Timeline.prototype[name] = function (targets, vars, position) {\n return this.add(_effects[name](targets, _isObject(vars) ? vars : (position = vars) && {}, this), position);\n };\n }\n },\n registerEase: function registerEase(name, ease) {\n _easeMap[name] = _parseEase(ease);\n },\n parseEase: function parseEase(ease, defaultEase) {\n return arguments.length ? _parseEase(ease, defaultEase) : _easeMap;\n },\n getById: function getById(id) {\n return _globalTimeline.getById(id);\n },\n exportRoot: function exportRoot(vars, includeDelayedCalls) {\n if (vars === void 0) {\n vars = {};\n }\n\n var tl = new Timeline(vars),\n child,\n next;\n tl.smoothChildTiming = _isNotFalse(vars.smoothChildTiming);\n\n _globalTimeline.remove(tl);\n\n tl._dp = 0; //otherwise it'll get re-activated when adding children and be re-introduced into _globalTimeline's linked list (then added to itself).\n\n tl._time = tl._tTime = _globalTimeline._time;\n child = _globalTimeline._first;\n\n while (child) {\n next = child._next;\n\n if (includeDelayedCalls || !(!child._dur && child instanceof Tween && child.vars.onComplete === child._targets[0])) {\n _addToTimeline(tl, child, child._start - child._delay);\n }\n\n child = next;\n }\n\n _addToTimeline(_globalTimeline, tl, 0);\n\n return tl;\n },\n context: function context(func, scope) {\n return func ? new Context(func, scope) : _context;\n },\n matchMedia: function matchMedia(scope) {\n return new MatchMedia(scope);\n },\n matchMediaRefresh: function matchMediaRefresh() {\n return _media.forEach(function (c) {\n var cond = c.conditions,\n found,\n p;\n\n for (p in cond) {\n if (cond[p]) {\n cond[p] = false;\n found = 1;\n }\n }\n\n found && c.revert();\n }) || _onMediaChange();\n },\n addEventListener: function addEventListener(type, callback) {\n var a = _listeners[type] || (_listeners[type] = []);\n ~a.indexOf(callback) || a.push(callback);\n },\n removeEventListener: function removeEventListener(type, callback) {\n var a = _listeners[type],\n i = a && a.indexOf(callback);\n i >= 0 && a.splice(i, 1);\n },\n utils: {\n wrap: wrap,\n wrapYoyo: wrapYoyo,\n distribute: distribute,\n random: random,\n snap: snap,\n normalize: normalize,\n getUnit: getUnit,\n clamp: clamp,\n splitColor: splitColor,\n toArray: toArray,\n selector: selector,\n mapRange: mapRange,\n pipe: pipe,\n unitize: unitize,\n interpolate: interpolate,\n shuffle: shuffle\n },\n install: _install,\n effects: _effects,\n ticker: _ticker,\n updateRoot: Timeline.updateRoot,\n plugins: _plugins,\n globalTimeline: _globalTimeline,\n core: {\n PropTween: PropTween,\n globals: _addGlobal,\n Tween: Tween,\n Timeline: Timeline,\n Animation: Animation,\n getCache: _getCache,\n _removeLinkedListItem: _removeLinkedListItem,\n reverting: function reverting() {\n return _reverting;\n },\n context: function context(toAdd) {\n if (toAdd && _context) {\n _context.data.push(toAdd);\n\n toAdd._ctx = _context;\n }\n\n return _context;\n },\n suppressOverwrites: function suppressOverwrites(value) {\n return _suppressOverwrites = value;\n }\n }\n};\n\n_forEachName(\"to,from,fromTo,delayedCall,set,killTweensOf\", function (name) {\n return _gsap[name] = Tween[name];\n});\n\n_ticker.add(Timeline.updateRoot);\n\n_quickTween = _gsap.to({}, {\n duration: 0\n}); // ---- EXTRA PLUGINS --------------------------------------------------------\n\nvar _getPluginPropTween = function _getPluginPropTween(plugin, prop) {\n var pt = plugin._pt;\n\n while (pt && pt.p !== prop && pt.op !== prop && pt.fp !== prop) {\n pt = pt._next;\n }\n\n return pt;\n},\n _addModifiers = function _addModifiers(tween, modifiers) {\n var targets = tween._targets,\n p,\n i,\n pt;\n\n for (p in modifiers) {\n i = targets.length;\n\n while (i--) {\n pt = tween._ptLookup[i][p];\n\n if (pt && (pt = pt.d)) {\n if (pt._pt) {\n // is a plugin\n pt = _getPluginPropTween(pt, p);\n }\n\n pt && pt.modifier && pt.modifier(modifiers[p], tween, targets[i], p);\n }\n }\n }\n},\n _buildModifierPlugin = function _buildModifierPlugin(name, modifier) {\n return {\n name: name,\n rawVars: 1,\n //don't pre-process function-based values or \"random()\" strings.\n init: function init(target, vars, tween) {\n tween._onInit = function (tween) {\n var temp, p;\n\n if (_isString(vars)) {\n temp = {};\n\n _forEachName(vars, function (name) {\n return temp[name] = 1;\n }); //if the user passes in a comma-delimited list of property names to roundProps, like \"x,y\", we round to whole numbers.\n\n\n vars = temp;\n }\n\n if (modifier) {\n temp = {};\n\n for (p in vars) {\n temp[p] = modifier(vars[p]);\n }\n\n vars = temp;\n }\n\n _addModifiers(tween, vars);\n };\n }\n };\n}; //register core plugins\n\n\nexport var gsap = _gsap.registerPlugin({\n name: \"attr\",\n init: function init(target, vars, tween, index, targets) {\n var p, pt, v;\n this.tween = tween;\n\n for (p in vars) {\n v = target.getAttribute(p) || \"\";\n pt = this.add(target, \"setAttribute\", (v || 0) + \"\", vars[p], index, targets, 0, 0, p);\n pt.op = p;\n pt.b = v; // record the beginning value so we can revert()\n\n this._props.push(p);\n }\n },\n render: function render(ratio, data) {\n var pt = data._pt;\n\n while (pt) {\n _reverting ? pt.set(pt.t, pt.p, pt.b, pt) : pt.r(ratio, pt.d); // if reverting, go back to the original (pt.b)\n\n pt = pt._next;\n }\n }\n}, {\n name: \"endArray\",\n init: function init(target, value) {\n var i = value.length;\n\n while (i--) {\n this.add(target, i, target[i] || 0, value[i], 0, 0, 0, 0, 0, 1);\n }\n }\n}, _buildModifierPlugin(\"roundProps\", _roundModifier), _buildModifierPlugin(\"modifiers\"), _buildModifierPlugin(\"snap\", snap)) || _gsap; //to prevent the core plugins from being dropped via aggressive tree shaking, we must include them in the variable declaration in this way.\n\nTween.version = Timeline.version = gsap.version = \"3.12.2\";\n_coreReady = 1;\n_windowExists() && _wake();\nvar Power0 = _easeMap.Power0,\n Power1 = _easeMap.Power1,\n Power2 = _easeMap.Power2,\n Power3 = _easeMap.Power3,\n Power4 = _easeMap.Power4,\n Linear = _easeMap.Linear,\n Quad = _easeMap.Quad,\n Cubic = _easeMap.Cubic,\n Quart = _easeMap.Quart,\n Quint = _easeMap.Quint,\n Strong = _easeMap.Strong,\n Elastic = _easeMap.Elastic,\n Back = _easeMap.Back,\n SteppedEase = _easeMap.SteppedEase,\n Bounce = _easeMap.Bounce,\n Sine = _easeMap.Sine,\n Expo = _easeMap.Expo,\n Circ = _easeMap.Circ;\nexport { Power0, Power1, Power2, Power3, Power4, Linear, Quad, Cubic, Quart, Quint, Strong, Elastic, Back, SteppedEase, Bounce, Sine, Expo, Circ };\nexport { Tween as TweenMax, Tween as TweenLite, Timeline as TimelineMax, Timeline as TimelineLite, gsap as default, wrap, wrapYoyo, distribute, random, snap, normalize, getUnit, clamp, splitColor, toArray, selector, mapRange, pipe, unitize, interpolate, shuffle }; //export some internal methods/orojects for use in CSSPlugin so that we can externalize that file and allow custom builds that exclude it.\n\nexport { _getProperty, _numExp, _numWithUnitExp, _isString, _isUndefined, _renderComplexString, _relExp, _setDefaults, _removeLinkedListItem, _forEachName, _sortPropTweensByPriority, _colorStringFilter, _replaceRandom, _checkPlugin, _plugins, _ticker, _config, _roundModifier, _round, _missingPlugin, _getSetter, _getCache, _colorExp, _parseRelative };","/*!\n * CSSPlugin 3.12.2\n * https://greensock.com\n *\n * Copyright 2008-2023, GreenSock. All rights reserved.\n * Subject to the terms at https://greensock.com/standard-license or for\n * Club GreenSock members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nimport { gsap, _getProperty, _numExp, _numWithUnitExp, getUnit, _isString, _isUndefined, _renderComplexString, _relExp, _forEachName, _sortPropTweensByPriority, _colorStringFilter, _checkPlugin, _replaceRandom, _plugins, GSCache, PropTween, _config, _ticker, _round, _missingPlugin, _getSetter, _getCache, _colorExp, _parseRelative, _setDefaults, _removeLinkedListItem //for the commented-out className feature.\n} from \"./gsap-core.js\";\n\nvar _win,\n _doc,\n _docElement,\n _pluginInitted,\n _tempDiv,\n _tempDivStyler,\n _recentSetterPlugin,\n _reverting,\n _windowExists = function _windowExists() {\n return typeof window !== \"undefined\";\n},\n _transformProps = {},\n _RAD2DEG = 180 / Math.PI,\n _DEG2RAD = Math.PI / 180,\n _atan2 = Math.atan2,\n _bigNum = 1e8,\n _capsExp = /([A-Z])/g,\n _horizontalExp = /(left|right|width|margin|padding|x)/i,\n _complexExp = /[\\s,\\(]\\S/,\n _propertyAliases = {\n autoAlpha: \"opacity,visibility\",\n scale: \"scaleX,scaleY\",\n alpha: \"opacity\"\n},\n _renderCSSProp = function _renderCSSProp(ratio, data) {\n return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u, data);\n},\n _renderPropWithEnd = function _renderPropWithEnd(ratio, data) {\n return data.set(data.t, data.p, ratio === 1 ? data.e : Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u, data);\n},\n _renderCSSPropWithBeginning = function _renderCSSPropWithBeginning(ratio, data) {\n return data.set(data.t, data.p, ratio ? Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u : data.b, data);\n},\n //if units change, we need a way to render the original unit/value when the tween goes all the way back to the beginning (ratio:0)\n_renderRoundedCSSProp = function _renderRoundedCSSProp(ratio, data) {\n var value = data.s + data.c * ratio;\n data.set(data.t, data.p, ~~(value + (value < 0 ? -.5 : .5)) + data.u, data);\n},\n _renderNonTweeningValue = function _renderNonTweeningValue(ratio, data) {\n return data.set(data.t, data.p, ratio ? data.e : data.b, data);\n},\n _renderNonTweeningValueOnlyAtEnd = function _renderNonTweeningValueOnlyAtEnd(ratio, data) {\n return data.set(data.t, data.p, ratio !== 1 ? data.b : data.e, data);\n},\n _setterCSSStyle = function _setterCSSStyle(target, property, value) {\n return target.style[property] = value;\n},\n _setterCSSProp = function _setterCSSProp(target, property, value) {\n return target.style.setProperty(property, value);\n},\n _setterTransform = function _setterTransform(target, property, value) {\n return target._gsap[property] = value;\n},\n _setterScale = function _setterScale(target, property, value) {\n return target._gsap.scaleX = target._gsap.scaleY = value;\n},\n _setterScaleWithRender = function _setterScaleWithRender(target, property, value, data, ratio) {\n var cache = target._gsap;\n cache.scaleX = cache.scaleY = value;\n cache.renderTransform(ratio, cache);\n},\n _setterTransformWithRender = function _setterTransformWithRender(target, property, value, data, ratio) {\n var cache = target._gsap;\n cache[property] = value;\n cache.renderTransform(ratio, cache);\n},\n _transformProp = \"transform\",\n _transformOriginProp = _transformProp + \"Origin\",\n _saveStyle = function _saveStyle(property, isNotCSS) {\n var _this = this;\n\n var target = this.target,\n style = target.style;\n\n if (property in _transformProps && style) {\n this.tfm = this.tfm || {};\n\n if (property !== \"transform\") {\n property = _propertyAliases[property] || property;\n ~property.indexOf(\",\") ? property.split(\",\").forEach(function (a) {\n return _this.tfm[a] = _get(target, a);\n }) : this.tfm[property] = target._gsap.x ? target._gsap[property] : _get(target, property); // note: scale would map to \"scaleX,scaleY\", thus we loop and apply them both.\n } else {\n return _propertyAliases.transform.split(\",\").forEach(function (p) {\n return _saveStyle.call(_this, p, isNotCSS);\n });\n }\n\n if (this.props.indexOf(_transformProp) >= 0) {\n return;\n }\n\n if (target._gsap.svg) {\n this.svgo = target.getAttribute(\"data-svg-origin\");\n this.props.push(_transformOriginProp, isNotCSS, \"\");\n }\n\n property = _transformProp;\n }\n\n (style || isNotCSS) && this.props.push(property, isNotCSS, style[property]);\n},\n _removeIndependentTransforms = function _removeIndependentTransforms(style) {\n if (style.translate) {\n style.removeProperty(\"translate\");\n style.removeProperty(\"scale\");\n style.removeProperty(\"rotate\");\n }\n},\n _revertStyle = function _revertStyle() {\n var props = this.props,\n target = this.target,\n style = target.style,\n cache = target._gsap,\n i,\n p;\n\n for (i = 0; i < props.length; i += 3) {\n // stored like this: property, isNotCSS, value\n props[i + 1] ? target[props[i]] = props[i + 2] : props[i + 2] ? style[props[i]] = props[i + 2] : style.removeProperty(props[i].substr(0, 2) === \"--\" ? props[i] : props[i].replace(_capsExp, \"-$1\").toLowerCase());\n }\n\n if (this.tfm) {\n for (p in this.tfm) {\n cache[p] = this.tfm[p];\n }\n\n if (cache.svg) {\n cache.renderTransform();\n target.setAttribute(\"data-svg-origin\", this.svgo || \"\");\n }\n\n i = _reverting();\n\n if ((!i || !i.isStart) && !style[_transformProp]) {\n _removeIndependentTransforms(style);\n\n cache.uncache = 1; // if it's a startAt that's being reverted in the _initTween() of the core, we don't need to uncache transforms. This is purely a performance optimization.\n }\n }\n},\n _getStyleSaver = function _getStyleSaver(target, properties) {\n var saver = {\n target: target,\n props: [],\n revert: _revertStyle,\n save: _saveStyle\n };\n target._gsap || gsap.core.getCache(target); // just make sure there's a _gsap cache defined because we read from it in _saveStyle() and it's more efficient to just check it here once.\n\n properties && properties.split(\",\").forEach(function (p) {\n return saver.save(p);\n });\n return saver;\n},\n _supports3D,\n _createElement = function _createElement(type, ns) {\n var e = _doc.createElementNS ? _doc.createElementNS((ns || \"http://www.w3.org/1999/xhtml\").replace(/^https/, \"http\"), type) : _doc.createElement(type); //some servers swap in https for http in the namespace which can break things, making \"style\" inaccessible.\n\n return e.style ? e : _doc.createElement(type); //some environments won't allow access to the element's style when created with a namespace in which case we default to the standard createElement() to work around the issue. Also note that when GSAP is embedded directly inside an SVG file, createElement() won't allow access to the style object in Firefox (see https://greensock.com/forums/topic/20215-problem-using-tweenmax-in-standalone-self-containing-svg-file-err-cannot-set-property-csstext-of-undefined/).\n},\n _getComputedProperty = function _getComputedProperty(target, property, skipPrefixFallback) {\n var cs = getComputedStyle(target);\n return cs[property] || cs.getPropertyValue(property.replace(_capsExp, \"-$1\").toLowerCase()) || cs.getPropertyValue(property) || !skipPrefixFallback && _getComputedProperty(target, _checkPropPrefix(property) || property, 1) || \"\"; //css variables may not need caps swapped out for dashes and lowercase.\n},\n _prefixes = \"O,Moz,ms,Ms,Webkit\".split(\",\"),\n _checkPropPrefix = function _checkPropPrefix(property, element, preferPrefix) {\n var e = element || _tempDiv,\n s = e.style,\n i = 5;\n\n if (property in s && !preferPrefix) {\n return property;\n }\n\n property = property.charAt(0).toUpperCase() + property.substr(1);\n\n while (i-- && !(_prefixes[i] + property in s)) {}\n\n return i < 0 ? null : (i === 3 ? \"ms\" : i >= 0 ? _prefixes[i] : \"\") + property;\n},\n _initCore = function _initCore() {\n if (_windowExists() && window.document) {\n _win = window;\n _doc = _win.document;\n _docElement = _doc.documentElement;\n _tempDiv = _createElement(\"div\") || {\n style: {}\n };\n _tempDivStyler = _createElement(\"div\");\n _transformProp = _checkPropPrefix(_transformProp);\n _transformOriginProp = _transformProp + \"Origin\";\n _tempDiv.style.cssText = \"border-width:0;line-height:0;position:absolute;padding:0\"; //make sure to override certain properties that may contaminate measurements, in case the user has overreaching style sheets.\n\n _supports3D = !!_checkPropPrefix(\"perspective\");\n _reverting = gsap.core.reverting;\n _pluginInitted = 1;\n }\n},\n _getBBoxHack = function _getBBoxHack(swapIfPossible) {\n //works around issues in some browsers (like Firefox) that don't correctly report getBBox() on SVG elements inside a <defs> element and/or <mask>. We try creating an SVG, adding it to the documentElement and toss the element in there so that it's definitely part of the rendering tree, then grab the bbox and if it works, we actually swap out the original getBBox() method for our own that does these extra steps whenever getBBox is needed. This helps ensure that performance is optimal (only do all these extra steps when absolutely necessary...most elements don't need it).\n var svg = _createElement(\"svg\", this.ownerSVGElement && this.ownerSVGElement.getAttribute(\"xmlns\") || \"http://www.w3.org/2000/svg\"),\n oldParent = this.parentNode,\n oldSibling = this.nextSibling,\n oldCSS = this.style.cssText,\n bbox;\n\n _docElement.appendChild(svg);\n\n svg.appendChild(this);\n this.style.display = \"block\";\n\n if (swapIfPossible) {\n try {\n bbox = this.getBBox();\n this._gsapBBox = this.getBBox; //store the original\n\n this.getBBox = _getBBoxHack;\n } catch (e) {}\n } else if (this._gsapBBox) {\n bbox = this._gsapBBox();\n }\n\n if (oldParent) {\n if (oldSibling) {\n oldParent.insertBefore(this, oldSibling);\n } else {\n oldParent.appendChild(this);\n }\n }\n\n _docElement.removeChild(svg);\n\n this.style.cssText = oldCSS;\n return bbox;\n},\n _getAttributeFallbacks = function _getAttributeFallbacks(target, attributesArray) {\n var i = attributesArray.length;\n\n while (i--) {\n if (target.hasAttribute(attributesArray[i])) {\n return target.getAttribute(attributesArray[i]);\n }\n }\n},\n _getBBox = function _getBBox(target) {\n var bounds;\n\n try {\n bounds = target.getBBox(); //Firefox throws errors if you try calling getBBox() on an SVG element that's not rendered (like in a <symbol> or <defs>). https://bugzilla.mozilla.org/show_bug.cgi?id=612118\n } catch (error) {\n bounds = _getBBoxHack.call(target, true);\n }\n\n bounds && (bounds.width || bounds.height) || target.getBBox === _getBBoxHack || (bounds = _getBBoxHack.call(target, true)); //some browsers (like Firefox) misreport the bounds if the element has zero width and height (it just assumes it's at x:0, y:0), thus we need to manually grab the position in that case.\n\n return bounds && !bounds.width && !bounds.x && !bounds.y ? {\n x: +_getAttributeFallbacks(target, [\"x\", \"cx\", \"x1\"]) || 0,\n y: +_getAttributeFallbacks(target, [\"y\", \"cy\", \"y1\"]) || 0,\n width: 0,\n height: 0\n } : bounds;\n},\n _isSVG = function _isSVG(e) {\n return !!(e.getCTM && (!e.parentNode || e.ownerSVGElement) && _getBBox(e));\n},\n //reports if the element is an SVG on which getBBox() actually works\n_removeProperty = function _removeProperty(target, property) {\n if (property) {\n var style = target.style;\n\n if (property in _transformProps && property !== _transformOriginProp) {\n property = _transformProp;\n }\n\n if (style.removeProperty) {\n if (property.substr(0, 2) === \"ms\" || property.substr(0, 6) === \"webkit\") {\n //Microsoft and some Webkit browsers don't conform to the standard of capitalizing the first prefix character, so we adjust so that when we prefix the caps with a dash, it's correct (otherwise it'd be \"ms-transform\" instead of \"-ms-transform\" for IE9, for example)\n property = \"-\" + property;\n }\n\n style.removeProperty(property.replace(_capsExp, \"-$1\").toLowerCase());\n } else {\n //note: old versions of IE use \"removeAttribute()\" instead of \"removeProperty()\"\n style.removeAttribute(property);\n }\n }\n},\n _addNonTweeningPT = function _addNonTweeningPT(plugin, target, property, beginning, end, onlySetAtEnd) {\n var pt = new PropTween(plugin._pt, target, property, 0, 1, onlySetAtEnd ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue);\n plugin._pt = pt;\n pt.b = beginning;\n pt.e = end;\n\n plugin._props.push(property);\n\n return pt;\n},\n _nonConvertibleUnits = {\n deg: 1,\n rad: 1,\n turn: 1\n},\n _nonStandardLayouts = {\n grid: 1,\n flex: 1\n},\n //takes a single value like 20px and converts it to the unit specified, like \"%\", returning only the numeric amount.\n_convertToUnit = function _convertToUnit(target, property, value, unit) {\n var curValue = parseFloat(value) || 0,\n curUnit = (value + \"\").trim().substr((curValue + \"\").length) || \"px\",\n // some browsers leave extra whitespace at the beginning of CSS variables, hence the need to trim()\n style = _tempDiv.style,\n horizontal = _horizontalExp.test(property),\n isRootSVG = target.tagName.toLowerCase() === \"svg\",\n measureProperty = (isRootSVG ? \"client\" : \"offset\") + (horizontal ? \"Width\" : \"Height\"),\n amount = 100,\n toPixels = unit === \"px\",\n toPercent = unit === \"%\",\n px,\n parent,\n cache,\n isSVG;\n\n if (unit === curUnit || !curValue || _nonConvertibleUnits[unit] || _nonConvertibleUnits[curUnit]) {\n return curValue;\n }\n\n curUnit !== \"px\" && !toPixels && (curValue = _convertToUnit(target, property, value, \"px\"));\n isSVG = target.getCTM && _isSVG(target);\n\n if ((toPercent || curUnit === \"%\") && (_transformProps[property] || ~property.indexOf(\"adius\"))) {\n px = isSVG ? target.getBBox()[horizontal ? \"width\" : \"height\"] : target[measureProperty];\n return _round(toPercent ? curValue / px * amount : curValue / 100 * px);\n }\n\n style[horizontal ? \"width\" : \"height\"] = amount + (toPixels ? curUnit : unit);\n parent = ~property.indexOf(\"adius\") || unit === \"em\" && target.appendChild && !isRootSVG ? target : target.parentNode;\n\n if (isSVG) {\n parent = (target.ownerSVGElement || {}).parentNode;\n }\n\n if (!parent || parent === _doc || !parent.appendChild) {\n parent = _doc.body;\n }\n\n cache = parent._gsap;\n\n if (cache && toPercent && cache.width && horizontal && cache.time === _ticker.time && !cache.uncache) {\n return _round(curValue / cache.width * amount);\n } else {\n (toPercent || curUnit === \"%\") && !_nonStandardLayouts[_getComputedProperty(parent, \"display\")] && (style.position = _getComputedProperty(target, \"position\"));\n parent === target && (style.position = \"static\"); // like for borderRadius, if it's a % we must have it relative to the target itself but that may not have position: relative or position: absolute in which case it'd go up the chain until it finds its offsetParent (bad). position: static protects against that.\n\n parent.appendChild(_tempDiv);\n px = _tempDiv[measureProperty];\n parent.removeChild(_tempDiv);\n style.position = \"absolute\";\n\n if (horizontal && toPercent) {\n cache = _getCache(parent);\n cache.time = _ticker.time;\n cache.width = parent[measureProperty];\n }\n }\n\n return _round(toPixels ? px * curValue / amount : px && curValue ? amount / px * curValue : 0);\n},\n _get = function _get(target, property, unit, uncache) {\n var value;\n _pluginInitted || _initCore();\n\n if (property in _propertyAliases && property !== \"transform\") {\n property = _propertyAliases[property];\n\n if (~property.indexOf(\",\")) {\n property = property.split(\",\")[0];\n }\n }\n\n if (_transformProps[property] && property !== \"transform\") {\n value = _parseTransform(target, uncache);\n value = property !== \"transformOrigin\" ? value[property] : value.svg ? value.origin : _firstTwoOnly(_getComputedProperty(target, _transformOriginProp)) + \" \" + value.zOrigin + \"px\";\n } else {\n value = target.style[property];\n\n if (!value || value === \"auto\" || uncache || ~(value + \"\").indexOf(\"calc(\")) {\n value = _specialProps[property] && _specialProps[property](target, property, unit) || _getComputedProperty(target, property) || _getProperty(target, property) || (property === \"opacity\" ? 1 : 0); // note: some browsers, like Firefox, don't report borderRadius correctly! Instead, it only reports every corner like borderTopLeftRadius\n }\n }\n\n return unit && !~(value + \"\").trim().indexOf(\" \") ? _convertToUnit(target, property, value, unit) + unit : value;\n},\n _tweenComplexCSSString = function _tweenComplexCSSString(target, prop, start, end) {\n // note: we call _tweenComplexCSSString.call(pluginInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus \"this\" would refer to the plugin.\n if (!start || start === \"none\") {\n // some browsers like Safari actually PREFER the prefixed property and mis-report the unprefixed value like clipPath (BUG). In other words, even though clipPath exists in the style (\"clipPath\" in target.style) and it's set in the CSS properly (along with -webkit-clip-path), Safari reports clipPath as \"none\" whereas WebkitClipPath reports accurately like \"ellipse(100% 0% at 50% 0%)\", so in this case we must SWITCH to using the prefixed property instead. See https://greensock.com/forums/topic/18310-clippath-doesnt-work-on-ios/\n var p = _checkPropPrefix(prop, target, 1),\n s = p && _getComputedProperty(target, p, 1);\n\n if (s && s !== start) {\n prop = p;\n start = s;\n } else if (prop === \"borderColor\") {\n start = _getComputedProperty(target, \"borderTopColor\"); // Firefox bug: always reports \"borderColor\" as \"\", so we must fall back to borderTopColor. See https://greensock.com/forums/topic/24583-how-to-return-colors-that-i-had-after-reverse/\n }\n }\n\n var pt = new PropTween(this._pt, target.style, prop, 0, 1, _renderComplexString),\n index = 0,\n matchIndex = 0,\n a,\n result,\n startValues,\n startNum,\n color,\n startValue,\n endValue,\n endNum,\n chunk,\n endUnit,\n startUnit,\n endValues;\n pt.b = start;\n pt.e = end;\n start += \"\"; // ensure values are strings\n\n end += \"\";\n\n if (end === \"auto\") {\n target.style[prop] = end;\n end = _getComputedProperty(target, prop) || end;\n target.style[prop] = start;\n }\n\n a = [start, end];\n\n _colorStringFilter(a); // pass an array with the starting and ending values and let the filter do whatever it needs to the values. If colors are found, it returns true and then we must match where the color shows up order-wise because for things like boxShadow, sometimes the browser provides the computed values with the color FIRST, but the user provides it with the color LAST, so flip them if necessary. Same for drop-shadow().\n\n\n start = a[0];\n end = a[1];\n startValues = start.match(_numWithUnitExp) || [];\n endValues = end.match(_numWithUnitExp) || [];\n\n if (endValues.length) {\n while (result = _numWithUnitExp.exec(end)) {\n endValue = result[0];\n chunk = end.substring(index, result.index);\n\n if (color) {\n color = (color + 1) % 5;\n } else if (chunk.substr(-5) === \"rgba(\" || chunk.substr(-5) === \"hsla(\") {\n color = 1;\n }\n\n if (endValue !== (startValue = startValues[matchIndex++] || \"\")) {\n startNum = parseFloat(startValue) || 0;\n startUnit = startValue.substr((startNum + \"\").length);\n endValue.charAt(1) === \"=\" && (endValue = _parseRelative(startNum, endValue) + startUnit);\n endNum = parseFloat(endValue);\n endUnit = endValue.substr((endNum + \"\").length);\n index = _numWithUnitExp.lastIndex - endUnit.length;\n\n if (!endUnit) {\n //if something like \"perspective:300\" is passed in and we must add a unit to the end\n endUnit = endUnit || _config.units[prop] || startUnit;\n\n if (index === end.length) {\n end += endUnit;\n pt.e += endUnit;\n }\n }\n\n if (startUnit !== endUnit) {\n startNum = _convertToUnit(target, prop, startValue, endUnit) || 0;\n } // these nested PropTweens are handled in a special way - we'll never actually call a render or setter method on them. We'll just loop through them in the parent complex string PropTween's render method.\n\n\n pt._pt = {\n _next: pt._pt,\n p: chunk || matchIndex === 1 ? chunk : \",\",\n //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case.\n s: startNum,\n c: endNum - startNum,\n m: color && color < 4 || prop === \"zIndex\" ? Math.round : 0\n };\n }\n }\n\n pt.c = index < end.length ? end.substring(index, end.length) : \"\"; //we use the \"c\" of the PropTween to store the final part of the string (after the last number)\n } else {\n pt.r = prop === \"display\" && end === \"none\" ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue;\n }\n\n _relExp.test(end) && (pt.e = 0); //if the end string contains relative values or dynamic random(...) values, delete the end it so that on the final render we don't actually set it to the string with += or -= characters (forces it to use the calculated value).\n\n this._pt = pt; //start the linked list with this new PropTween. Remember, we call _tweenComplexCSSString.call(pluginInstance...) to ensure that it's scoped properly. We may call it from within another plugin too, thus \"this\" would refer to the plugin.\n\n return pt;\n},\n _keywordToPercent = {\n top: \"0%\",\n bottom: \"100%\",\n left: \"0%\",\n right: \"100%\",\n center: \"50%\"\n},\n _convertKeywordsToPercentages = function _convertKeywordsToPercentages(value) {\n var split = value.split(\" \"),\n x = split[0],\n y = split[1] || \"50%\";\n\n if (x === \"top\" || x === \"bottom\" || y === \"left\" || y === \"right\") {\n //the user provided them in the wrong order, so flip them\n value = x;\n x = y;\n y = value;\n }\n\n split[0] = _keywordToPercent[x] || x;\n split[1] = _keywordToPercent[y] || y;\n return split.join(\" \");\n},\n _renderClearProps = function _renderClearProps(ratio, data) {\n if (data.tween && data.tween._time === data.tween._dur) {\n var target = data.t,\n style = target.style,\n props = data.u,\n cache = target._gsap,\n prop,\n clearTransforms,\n i;\n\n if (props === \"all\" || props === true) {\n style.cssText = \"\";\n clearTransforms = 1;\n } else {\n props = props.split(\",\");\n i = props.length;\n\n while (--i > -1) {\n prop = props[i];\n\n if (_transformProps[prop]) {\n clearTransforms = 1;\n prop = prop === \"transformOrigin\" ? _transformOriginProp : _transformProp;\n }\n\n _removeProperty(target, prop);\n }\n }\n\n if (clearTransforms) {\n _removeProperty(target, _transformProp);\n\n if (cache) {\n cache.svg && target.removeAttribute(\"transform\");\n\n _parseTransform(target, 1); // force all the cached values back to \"normal\"/identity, otherwise if there's another tween that's already set to render transforms on this element, it could display the wrong values.\n\n\n cache.uncache = 1;\n\n _removeIndependentTransforms(style);\n }\n }\n }\n},\n // note: specialProps should return 1 if (and only if) they have a non-zero priority. It indicates we need to sort the linked list.\n_specialProps = {\n clearProps: function clearProps(plugin, target, property, endValue, tween) {\n if (tween.data !== \"isFromStart\") {\n var pt = plugin._pt = new PropTween(plugin._pt, target, property, 0, 0, _renderClearProps);\n pt.u = endValue;\n pt.pr = -10;\n pt.tween = tween;\n\n plugin._props.push(property);\n\n return 1;\n }\n }\n /* className feature (about 0.4kb gzipped).\n , className(plugin, target, property, endValue, tween) {\n \tlet _renderClassName = (ratio, data) => {\n \t\t\tdata.css.render(ratio, data.css);\n \t\t\tif (!ratio || ratio === 1) {\n \t\t\t\tlet inline = data.rmv,\n \t\t\t\t\ttarget = data.t,\n \t\t\t\t\tp;\n \t\t\t\ttarget.setAttribute(\"class\", ratio ? data.e : data.b);\n \t\t\t\tfor (p in inline) {\n \t\t\t\t\t_removeProperty(target, p);\n \t\t\t\t}\n \t\t\t}\n \t\t},\n \t\t_getAllStyles = (target) => {\n \t\t\tlet styles = {},\n \t\t\t\tcomputed = getComputedStyle(target),\n \t\t\t\tp;\n \t\t\tfor (p in computed) {\n \t\t\t\tif (isNaN(p) && p !== \"cssText\" && p !== \"length\") {\n \t\t\t\t\tstyles[p] = computed[p];\n \t\t\t\t}\n \t\t\t}\n \t\t\t_setDefaults(styles, _parseTransform(target, 1));\n \t\t\treturn styles;\n \t\t},\n \t\tstartClassList = target.getAttribute(\"class\"),\n \t\tstyle = target.style,\n \t\tcssText = style.cssText,\n \t\tcache = target._gsap,\n \t\tclassPT = cache.classPT,\n \t\tinlineToRemoveAtEnd = {},\n \t\tdata = {t:target, plugin:plugin, rmv:inlineToRemoveAtEnd, b:startClassList, e:(endValue.charAt(1) !== \"=\") ? endValue : startClassList.replace(new RegExp(\"(?:\\\\s|^)\" + endValue.substr(2) + \"(?![\\\\w-])\"), \"\") + ((endValue.charAt(0) === \"+\") ? \" \" + endValue.substr(2) : \"\")},\n \t\tchangingVars = {},\n \t\tstartVars = _getAllStyles(target),\n \t\ttransformRelated = /(transform|perspective)/i,\n \t\tendVars, p;\n \tif (classPT) {\n \t\tclassPT.r(1, classPT.d);\n \t\t_removeLinkedListItem(classPT.d.plugin, classPT, \"_pt\");\n \t}\n \ttarget.setAttribute(\"class\", data.e);\n \tendVars = _getAllStyles(target, true);\n \ttarget.setAttribute(\"class\", startClassList);\n \tfor (p in endVars) {\n \t\tif (endVars[p] !== startVars[p] && !transformRelated.test(p)) {\n \t\t\tchangingVars[p] = endVars[p];\n \t\t\tif (!style[p] && style[p] !== \"0\") {\n \t\t\t\tinlineToRemoveAtEnd[p] = 1;\n \t\t\t}\n \t\t}\n \t}\n \tcache.classPT = plugin._pt = new PropTween(plugin._pt, target, \"className\", 0, 0, _renderClassName, data, 0, -11);\n \tif (style.cssText !== cssText) { //only apply if things change. Otherwise, in cases like a background-image that's pulled dynamically, it could cause a refresh. See https://greensock.com/forums/topic/20368-possible-gsap-bug-switching-classnames-in-chrome/.\n \t\tstyle.cssText = cssText; //we recorded cssText before we swapped classes and ran _getAllStyles() because in cases when a className tween is overwritten, we remove all the related tweening properties from that class change (otherwise class-specific stuff can't override properties we've directly set on the target's style object due to specificity).\n \t}\n \t_parseTransform(target, true); //to clear the caching of transforms\n \tdata.css = new gsap.plugins.css();\n \tdata.css.init(target, changingVars, tween);\n \tplugin._props.push(...data.css._props);\n \treturn 1;\n }\n */\n\n},\n\n/*\n * --------------------------------------------------------------------------------------\n * TRANSFORMS\n * --------------------------------------------------------------------------------------\n */\n_identity2DMatrix = [1, 0, 0, 1, 0, 0],\n _rotationalProperties = {},\n _isNullTransform = function _isNullTransform(value) {\n return value === \"matrix(1, 0, 0, 1, 0, 0)\" || value === \"none\" || !value;\n},\n _getComputedTransformMatrixAsArray = function _getComputedTransformMatrixAsArray(target) {\n var matrixString = _getComputedProperty(target, _transformProp);\n\n return _isNullTransform(matrixString) ? _identity2DMatrix : matrixString.substr(7).match(_numExp).map(_round);\n},\n _getMatrix = function _getMatrix(target, force2D) {\n var cache = target._gsap || _getCache(target),\n style = target.style,\n matrix = _getComputedTransformMatrixAsArray(target),\n parent,\n nextSibling,\n temp,\n addedToDOM;\n\n if (cache.svg && target.getAttribute(\"transform\")) {\n temp = target.transform.baseVal.consolidate().matrix; //ensures that even complex values like \"translate(50,60) rotate(135,0,0)\" are parsed because it mashes it into a matrix.\n\n matrix = [temp.a, temp.b, temp.c, temp.d, temp.e, temp.f];\n return matrix.join(\",\") === \"1,0,0,1,0,0\" ? _identity2DMatrix : matrix;\n } else if (matrix === _identity2DMatrix && !target.offsetParent && target !== _docElement && !cache.svg) {\n //note: if offsetParent is null, that means the element isn't in the normal document flow, like if it has display:none or one of its ancestors has display:none). Firefox returns null for getComputedStyle() if the element is in an iframe that has display:none. https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n //browsers don't report transforms accurately unless the element is in the DOM and has a display value that's not \"none\". Firefox and Microsoft browsers have a partial bug where they'll report transforms even if display:none BUT not any percentage-based values like translate(-50%, 8px) will be reported as if it's translate(0, 8px).\n temp = style.display;\n style.display = \"block\";\n parent = target.parentNode;\n\n if (!parent || !target.offsetParent) {\n // note: in 3.3.0 we switched target.offsetParent to _doc.body.contains(target) to avoid [sometimes unnecessary] MutationObserver calls but that wasn't adequate because there are edge cases where nested position: fixed elements need to get reparented to accurately sense transforms. See https://github.com/greensock/GSAP/issues/388 and https://github.com/greensock/GSAP/issues/375\n addedToDOM = 1; //flag\n\n nextSibling = target.nextElementSibling;\n\n _docElement.appendChild(target); //we must add it to the DOM in order to get values properly\n\n }\n\n matrix = _getComputedTransformMatrixAsArray(target);\n temp ? style.display = temp : _removeProperty(target, \"display\");\n\n if (addedToDOM) {\n nextSibling ? parent.insertBefore(target, nextSibling) : parent ? parent.appendChild(target) : _docElement.removeChild(target);\n }\n }\n\n return force2D && matrix.length > 6 ? [matrix[0], matrix[1], matrix[4], matrix[5], matrix[12], matrix[13]] : matrix;\n},\n _applySVGOrigin = function _applySVGOrigin(target, origin, originIsAbsolute, smooth, matrixArray, pluginToAddPropTweensTo) {\n var cache = target._gsap,\n matrix = matrixArray || _getMatrix(target, true),\n xOriginOld = cache.xOrigin || 0,\n yOriginOld = cache.yOrigin || 0,\n xOffsetOld = cache.xOffset || 0,\n yOffsetOld = cache.yOffset || 0,\n a = matrix[0],\n b = matrix[1],\n c = matrix[2],\n d = matrix[3],\n tx = matrix[4],\n ty = matrix[5],\n originSplit = origin.split(\" \"),\n xOrigin = parseFloat(originSplit[0]) || 0,\n yOrigin = parseFloat(originSplit[1]) || 0,\n bounds,\n determinant,\n x,\n y;\n\n if (!originIsAbsolute) {\n bounds = _getBBox(target);\n xOrigin = bounds.x + (~originSplit[0].indexOf(\"%\") ? xOrigin / 100 * bounds.width : xOrigin);\n yOrigin = bounds.y + (~(originSplit[1] || originSplit[0]).indexOf(\"%\") ? yOrigin / 100 * bounds.height : yOrigin);\n } else if (matrix !== _identity2DMatrix && (determinant = a * d - b * c)) {\n //if it's zero (like if scaleX and scaleY are zero), skip it to avoid errors with dividing by zero.\n x = xOrigin * (d / determinant) + yOrigin * (-c / determinant) + (c * ty - d * tx) / determinant;\n y = xOrigin * (-b / determinant) + yOrigin * (a / determinant) - (a * ty - b * tx) / determinant;\n xOrigin = x;\n yOrigin = y;\n }\n\n if (smooth || smooth !== false && cache.smooth) {\n tx = xOrigin - xOriginOld;\n ty = yOrigin - yOriginOld;\n cache.xOffset = xOffsetOld + (tx * a + ty * c) - tx;\n cache.yOffset = yOffsetOld + (tx * b + ty * d) - ty;\n } else {\n cache.xOffset = cache.yOffset = 0;\n }\n\n cache.xOrigin = xOrigin;\n cache.yOrigin = yOrigin;\n cache.smooth = !!smooth;\n cache.origin = origin;\n cache.originIsAbsolute = !!originIsAbsolute;\n target.style[_transformOriginProp] = \"0px 0px\"; //otherwise, if someone sets an origin via CSS, it will likely interfere with the SVG transform attribute ones (because remember, we're baking the origin into the matrix() value).\n\n if (pluginToAddPropTweensTo) {\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"xOrigin\", xOriginOld, xOrigin);\n\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"yOrigin\", yOriginOld, yOrigin);\n\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"xOffset\", xOffsetOld, cache.xOffset);\n\n _addNonTweeningPT(pluginToAddPropTweensTo, cache, \"yOffset\", yOffsetOld, cache.yOffset);\n }\n\n target.setAttribute(\"data-svg-origin\", xOrigin + \" \" + yOrigin);\n},\n _parseTransform = function _parseTransform(target, uncache) {\n var cache = target._gsap || new GSCache(target);\n\n if (\"x\" in cache && !uncache && !cache.uncache) {\n return cache;\n }\n\n var style = target.style,\n invertedScaleX = cache.scaleX < 0,\n px = \"px\",\n deg = \"deg\",\n cs = getComputedStyle(target),\n origin = _getComputedProperty(target, _transformOriginProp) || \"0\",\n x,\n y,\n z,\n scaleX,\n scaleY,\n rotation,\n rotationX,\n rotationY,\n skewX,\n skewY,\n perspective,\n xOrigin,\n yOrigin,\n matrix,\n angle,\n cos,\n sin,\n a,\n b,\n c,\n d,\n a12,\n a22,\n t1,\n t2,\n t3,\n a13,\n a23,\n a33,\n a42,\n a43,\n a32;\n x = y = z = rotation = rotationX = rotationY = skewX = skewY = perspective = 0;\n scaleX = scaleY = 1;\n cache.svg = !!(target.getCTM && _isSVG(target));\n\n if (cs.translate) {\n // accommodate independent transforms by combining them into normal ones.\n if (cs.translate !== \"none\" || cs.scale !== \"none\" || cs.rotate !== \"none\") {\n style[_transformProp] = (cs.translate !== \"none\" ? \"translate3d(\" + (cs.translate + \" 0 0\").split(\" \").slice(0, 3).join(\", \") + \") \" : \"\") + (cs.rotate !== \"none\" ? \"rotate(\" + cs.rotate + \") \" : \"\") + (cs.scale !== \"none\" ? \"scale(\" + cs.scale.split(\" \").join(\",\") + \") \" : \"\") + (cs[_transformProp] !== \"none\" ? cs[_transformProp] : \"\");\n }\n\n style.scale = style.rotate = style.translate = \"none\";\n }\n\n matrix = _getMatrix(target, cache.svg);\n\n if (cache.svg) {\n if (cache.uncache) {\n // if cache.uncache is true (and maybe if origin is 0,0), we need to set element.style.transformOrigin = (cache.xOrigin - bbox.x) + \"px \" + (cache.yOrigin - bbox.y) + \"px\". Previously we let the data-svg-origin stay instead, but when introducing revert(), it complicated things.\n t2 = target.getBBox();\n origin = cache.xOrigin - t2.x + \"px \" + (cache.yOrigin - t2.y) + \"px\";\n t1 = \"\";\n } else {\n t1 = !uncache && target.getAttribute(\"data-svg-origin\"); // Remember, to work around browser inconsistencies we always force SVG elements' transformOrigin to 0,0 and offset the translation accordingly.\n }\n\n _applySVGOrigin(target, t1 || origin, !!t1 || cache.originIsAbsolute, cache.smooth !== false, matrix);\n }\n\n xOrigin = cache.xOrigin || 0;\n yOrigin = cache.yOrigin || 0;\n\n if (matrix !== _identity2DMatrix) {\n a = matrix[0]; //a11\n\n b = matrix[1]; //a21\n\n c = matrix[2]; //a31\n\n d = matrix[3]; //a41\n\n x = a12 = matrix[4];\n y = a22 = matrix[5]; //2D matrix\n\n if (matrix.length === 6) {\n scaleX = Math.sqrt(a * a + b * b);\n scaleY = Math.sqrt(d * d + c * c);\n rotation = a || b ? _atan2(b, a) * _RAD2DEG : 0; //note: if scaleX is 0, we cannot accurately measure rotation. Same for skewX with a scaleY of 0. Therefore, we default to the previously recorded value (or zero if that doesn't exist).\n\n skewX = c || d ? _atan2(c, d) * _RAD2DEG + rotation : 0;\n skewX && (scaleY *= Math.abs(Math.cos(skewX * _DEG2RAD)));\n\n if (cache.svg) {\n x -= xOrigin - (xOrigin * a + yOrigin * c);\n y -= yOrigin - (xOrigin * b + yOrigin * d);\n } //3D matrix\n\n } else {\n a32 = matrix[6];\n a42 = matrix[7];\n a13 = matrix[8];\n a23 = matrix[9];\n a33 = matrix[10];\n a43 = matrix[11];\n x = matrix[12];\n y = matrix[13];\n z = matrix[14];\n angle = _atan2(a32, a33);\n rotationX = angle * _RAD2DEG; //rotationX\n\n if (angle) {\n cos = Math.cos(-angle);\n sin = Math.sin(-angle);\n t1 = a12 * cos + a13 * sin;\n t2 = a22 * cos + a23 * sin;\n t3 = a32 * cos + a33 * sin;\n a13 = a12 * -sin + a13 * cos;\n a23 = a22 * -sin + a23 * cos;\n a33 = a32 * -sin + a33 * cos;\n a43 = a42 * -sin + a43 * cos;\n a12 = t1;\n a22 = t2;\n a32 = t3;\n } //rotationY\n\n\n angle = _atan2(-c, a33);\n rotationY = angle * _RAD2DEG;\n\n if (angle) {\n cos = Math.cos(-angle);\n sin = Math.sin(-angle);\n t1 = a * cos - a13 * sin;\n t2 = b * cos - a23 * sin;\n t3 = c * cos - a33 * sin;\n a43 = d * sin + a43 * cos;\n a = t1;\n b = t2;\n c = t3;\n } //rotationZ\n\n\n angle = _atan2(b, a);\n rotation = angle * _RAD2DEG;\n\n if (angle) {\n cos = Math.cos(angle);\n sin = Math.sin(angle);\n t1 = a * cos + b * sin;\n t2 = a12 * cos + a22 * sin;\n b = b * cos - a * sin;\n a22 = a22 * cos - a12 * sin;\n a = t1;\n a12 = t2;\n }\n\n if (rotationX && Math.abs(rotationX) + Math.abs(rotation) > 359.9) {\n //when rotationY is set, it will often be parsed as 180 degrees different than it should be, and rotationX and rotation both being 180 (it looks the same), so we adjust for that here.\n rotationX = rotation = 0;\n rotationY = 180 - rotationY;\n }\n\n scaleX = _round(Math.sqrt(a * a + b * b + c * c));\n scaleY = _round(Math.sqrt(a22 * a22 + a32 * a32));\n angle = _atan2(a12, a22);\n skewX = Math.abs(angle) > 0.0002 ? angle * _RAD2DEG : 0;\n perspective = a43 ? 1 / (a43 < 0 ? -a43 : a43) : 0;\n }\n\n if (cache.svg) {\n //sense if there are CSS transforms applied on an SVG element in which case we must overwrite them when rendering. The transform attribute is more reliable cross-browser, but we can't just remove the CSS ones because they may be applied in a CSS rule somewhere (not just inline).\n t1 = target.getAttribute(\"transform\");\n cache.forceCSS = target.setAttribute(\"transform\", \"\") || !_isNullTransform(_getComputedProperty(target, _transformProp));\n t1 && target.setAttribute(\"transform\", t1);\n }\n }\n\n if (Math.abs(skewX) > 90 && Math.abs(skewX) < 270) {\n if (invertedScaleX) {\n scaleX *= -1;\n skewX += rotation <= 0 ? 180 : -180;\n rotation += rotation <= 0 ? 180 : -180;\n } else {\n scaleY *= -1;\n skewX += skewX <= 0 ? 180 : -180;\n }\n }\n\n uncache = uncache || cache.uncache;\n cache.x = x - ((cache.xPercent = x && (!uncache && cache.xPercent || (Math.round(target.offsetWidth / 2) === Math.round(-x) ? -50 : 0))) ? target.offsetWidth * cache.xPercent / 100 : 0) + px;\n cache.y = y - ((cache.yPercent = y && (!uncache && cache.yPercent || (Math.round(target.offsetHeight / 2) === Math.round(-y) ? -50 : 0))) ? target.offsetHeight * cache.yPercent / 100 : 0) + px;\n cache.z = z + px;\n cache.scaleX = _round(scaleX);\n cache.scaleY = _round(scaleY);\n cache.rotation = _round(rotation) + deg;\n cache.rotationX = _round(rotationX) + deg;\n cache.rotationY = _round(rotationY) + deg;\n cache.skewX = skewX + deg;\n cache.skewY = skewY + deg;\n cache.transformPerspective = perspective + px;\n\n if (cache.zOrigin = parseFloat(origin.split(\" \")[2]) || 0) {\n style[_transformOriginProp] = _firstTwoOnly(origin);\n }\n\n cache.xOffset = cache.yOffset = 0;\n cache.force3D = _config.force3D;\n cache.renderTransform = cache.svg ? _renderSVGTransforms : _supports3D ? _renderCSSTransforms : _renderNon3DTransforms;\n cache.uncache = 0;\n return cache;\n},\n _firstTwoOnly = function _firstTwoOnly(value) {\n return (value = value.split(\" \"))[0] + \" \" + value[1];\n},\n //for handling transformOrigin values, stripping out the 3rd dimension\n_addPxTranslate = function _addPxTranslate(target, start, value) {\n var unit = getUnit(start);\n return _round(parseFloat(start) + parseFloat(_convertToUnit(target, \"x\", value + \"px\", unit))) + unit;\n},\n _renderNon3DTransforms = function _renderNon3DTransforms(ratio, cache) {\n cache.z = \"0px\";\n cache.rotationY = cache.rotationX = \"0deg\";\n cache.force3D = 0;\n\n _renderCSSTransforms(ratio, cache);\n},\n _zeroDeg = \"0deg\",\n _zeroPx = \"0px\",\n _endParenthesis = \") \",\n _renderCSSTransforms = function _renderCSSTransforms(ratio, cache) {\n var _ref = cache || this,\n xPercent = _ref.xPercent,\n yPercent = _ref.yPercent,\n x = _ref.x,\n y = _ref.y,\n z = _ref.z,\n rotation = _ref.rotation,\n rotationY = _ref.rotationY,\n rotationX = _ref.rotationX,\n skewX = _ref.skewX,\n skewY = _ref.skewY,\n scaleX = _ref.scaleX,\n scaleY = _ref.scaleY,\n transformPerspective = _ref.transformPerspective,\n force3D = _ref.force3D,\n target = _ref.target,\n zOrigin = _ref.zOrigin,\n transforms = \"\",\n use3D = force3D === \"auto\" && ratio && ratio !== 1 || force3D === true; // Safari has a bug that causes it not to render 3D transform-origin values properly, so we force the z origin to 0, record it in the cache, and then do the math here to offset the translate values accordingly (basically do the 3D transform-origin part manually)\n\n\n if (zOrigin && (rotationX !== _zeroDeg || rotationY !== _zeroDeg)) {\n var angle = parseFloat(rotationY) * _DEG2RAD,\n a13 = Math.sin(angle),\n a33 = Math.cos(angle),\n cos;\n\n angle = parseFloat(rotationX) * _DEG2RAD;\n cos = Math.cos(angle);\n x = _addPxTranslate(target, x, a13 * cos * -zOrigin);\n y = _addPxTranslate(target, y, -Math.sin(angle) * -zOrigin);\n z = _addPxTranslate(target, z, a33 * cos * -zOrigin + zOrigin);\n }\n\n if (transformPerspective !== _zeroPx) {\n transforms += \"perspective(\" + transformPerspective + _endParenthesis;\n }\n\n if (xPercent || yPercent) {\n transforms += \"translate(\" + xPercent + \"%, \" + yPercent + \"%) \";\n }\n\n if (use3D || x !== _zeroPx || y !== _zeroPx || z !== _zeroPx) {\n transforms += z !== _zeroPx || use3D ? \"translate3d(\" + x + \", \" + y + \", \" + z + \") \" : \"translate(\" + x + \", \" + y + _endParenthesis;\n }\n\n if (rotation !== _zeroDeg) {\n transforms += \"rotate(\" + rotation + _endParenthesis;\n }\n\n if (rotationY !== _zeroDeg) {\n transforms += \"rotateY(\" + rotationY + _endParenthesis;\n }\n\n if (rotationX !== _zeroDeg) {\n transforms += \"rotateX(\" + rotationX + _endParenthesis;\n }\n\n if (skewX !== _zeroDeg || skewY !== _zeroDeg) {\n transforms += \"skew(\" + skewX + \", \" + skewY + _endParenthesis;\n }\n\n if (scaleX !== 1 || scaleY !== 1) {\n transforms += \"scale(\" + scaleX + \", \" + scaleY + _endParenthesis;\n }\n\n target.style[_transformProp] = transforms || \"translate(0, 0)\";\n},\n _renderSVGTransforms = function _renderSVGTransforms(ratio, cache) {\n var _ref2 = cache || this,\n xPercent = _ref2.xPercent,\n yPercent = _ref2.yPercent,\n x = _ref2.x,\n y = _ref2.y,\n rotation = _ref2.rotation,\n skewX = _ref2.skewX,\n skewY = _ref2.skewY,\n scaleX = _ref2.scaleX,\n scaleY = _ref2.scaleY,\n target = _ref2.target,\n xOrigin = _ref2.xOrigin,\n yOrigin = _ref2.yOrigin,\n xOffset = _ref2.xOffset,\n yOffset = _ref2.yOffset,\n forceCSS = _ref2.forceCSS,\n tx = parseFloat(x),\n ty = parseFloat(y),\n a11,\n a21,\n a12,\n a22,\n temp;\n\n rotation = parseFloat(rotation);\n skewX = parseFloat(skewX);\n skewY = parseFloat(skewY);\n\n if (skewY) {\n //for performance reasons, we combine all skewing into the skewX and rotation values. Remember, a skewY of 10 degrees looks the same as a rotation of 10 degrees plus a skewX of 10 degrees.\n skewY = parseFloat(skewY);\n skewX += skewY;\n rotation += skewY;\n }\n\n if (rotation || skewX) {\n rotation *= _DEG2RAD;\n skewX *= _DEG2RAD;\n a11 = Math.cos(rotation) * scaleX;\n a21 = Math.sin(rotation) * scaleX;\n a12 = Math.sin(rotation - skewX) * -scaleY;\n a22 = Math.cos(rotation - skewX) * scaleY;\n\n if (skewX) {\n skewY *= _DEG2RAD;\n temp = Math.tan(skewX - skewY);\n temp = Math.sqrt(1 + temp * temp);\n a12 *= temp;\n a22 *= temp;\n\n if (skewY) {\n temp = Math.tan(skewY);\n temp = Math.sqrt(1 + temp * temp);\n a11 *= temp;\n a21 *= temp;\n }\n }\n\n a11 = _round(a11);\n a21 = _round(a21);\n a12 = _round(a12);\n a22 = _round(a22);\n } else {\n a11 = scaleX;\n a22 = scaleY;\n a21 = a12 = 0;\n }\n\n if (tx && !~(x + \"\").indexOf(\"px\") || ty && !~(y + \"\").indexOf(\"px\")) {\n tx = _convertToUnit(target, \"x\", x, \"px\");\n ty = _convertToUnit(target, \"y\", y, \"px\");\n }\n\n if (xOrigin || yOrigin || xOffset || yOffset) {\n tx = _round(tx + xOrigin - (xOrigin * a11 + yOrigin * a12) + xOffset);\n ty = _round(ty + yOrigin - (xOrigin * a21 + yOrigin * a22) + yOffset);\n }\n\n if (xPercent || yPercent) {\n //The SVG spec doesn't support percentage-based translation in the \"transform\" attribute, so we merge it into the translation to simulate it.\n temp = target.getBBox();\n tx = _round(tx + xPercent / 100 * temp.width);\n ty = _round(ty + yPercent / 100 * temp.height);\n }\n\n temp = \"matrix(\" + a11 + \",\" + a21 + \",\" + a12 + \",\" + a22 + \",\" + tx + \",\" + ty + \")\";\n target.setAttribute(\"transform\", temp);\n forceCSS && (target.style[_transformProp] = temp); //some browsers prioritize CSS transforms over the transform attribute. When we sense that the user has CSS transforms applied, we must overwrite them this way (otherwise some browser simply won't render the transform attribute changes!)\n},\n _addRotationalPropTween = function _addRotationalPropTween(plugin, target, property, startNum, endValue) {\n var cap = 360,\n isString = _isString(endValue),\n endNum = parseFloat(endValue) * (isString && ~endValue.indexOf(\"rad\") ? _RAD2DEG : 1),\n change = endNum - startNum,\n finalValue = startNum + change + \"deg\",\n direction,\n pt;\n\n if (isString) {\n direction = endValue.split(\"_\")[1];\n\n if (direction === \"short\") {\n change %= cap;\n\n if (change !== change % (cap / 2)) {\n change += change < 0 ? cap : -cap;\n }\n }\n\n if (direction === \"cw\" && change < 0) {\n change = (change + cap * _bigNum) % cap - ~~(change / cap) * cap;\n } else if (direction === \"ccw\" && change > 0) {\n change = (change - cap * _bigNum) % cap - ~~(change / cap) * cap;\n }\n }\n\n plugin._pt = pt = new PropTween(plugin._pt, target, property, startNum, change, _renderPropWithEnd);\n pt.e = finalValue;\n pt.u = \"deg\";\n\n plugin._props.push(property);\n\n return pt;\n},\n _assign = function _assign(target, source) {\n // Internet Explorer doesn't have Object.assign(), so we recreate it here.\n for (var p in source) {\n target[p] = source[p];\n }\n\n return target;\n},\n _addRawTransformPTs = function _addRawTransformPTs(plugin, transforms, target) {\n //for handling cases where someone passes in a whole transform string, like transform: \"scale(2, 3) rotate(20deg) translateY(30em)\"\n var startCache = _assign({}, target._gsap),\n exclude = \"perspective,force3D,transformOrigin,svgOrigin\",\n style = target.style,\n endCache,\n p,\n startValue,\n endValue,\n startNum,\n endNum,\n startUnit,\n endUnit;\n\n if (startCache.svg) {\n startValue = target.getAttribute(\"transform\");\n target.setAttribute(\"transform\", \"\");\n style[_transformProp] = transforms;\n endCache = _parseTransform(target, 1);\n\n _removeProperty(target, _transformProp);\n\n target.setAttribute(\"transform\", startValue);\n } else {\n startValue = getComputedStyle(target)[_transformProp];\n style[_transformProp] = transforms;\n endCache = _parseTransform(target, 1);\n style[_transformProp] = startValue;\n }\n\n for (p in _transformProps) {\n startValue = startCache[p];\n endValue = endCache[p];\n\n if (startValue !== endValue && exclude.indexOf(p) < 0) {\n //tweening to no perspective gives very unintuitive results - just keep the same perspective in that case.\n startUnit = getUnit(startValue);\n endUnit = getUnit(endValue);\n startNum = startUnit !== endUnit ? _convertToUnit(target, p, startValue, endUnit) : parseFloat(startValue);\n endNum = parseFloat(endValue);\n plugin._pt = new PropTween(plugin._pt, endCache, p, startNum, endNum - startNum, _renderCSSProp);\n plugin._pt.u = endUnit || 0;\n\n plugin._props.push(p);\n }\n }\n\n _assign(endCache, startCache);\n}; // handle splitting apart padding, margin, borderWidth, and borderRadius into their 4 components. Firefox, for example, won't report borderRadius correctly - it will only do borderTopLeftRadius and the other corners. We also want to handle paddingTop, marginLeft, borderRightWidth, etc.\n\n\n_forEachName(\"padding,margin,Width,Radius\", function (name, index) {\n var t = \"Top\",\n r = \"Right\",\n b = \"Bottom\",\n l = \"Left\",\n props = (index < 3 ? [t, r, b, l] : [t + l, t + r, b + r, b + l]).map(function (side) {\n return index < 2 ? name + side : \"border\" + side + name;\n });\n\n _specialProps[index > 1 ? \"border\" + name : name] = function (plugin, target, property, endValue, tween) {\n var a, vars;\n\n if (arguments.length < 4) {\n // getter, passed target, property, and unit (from _get())\n a = props.map(function (prop) {\n return _get(plugin, prop, property);\n });\n vars = a.join(\" \");\n return vars.split(a[0]).length === 5 ? a[0] : vars;\n }\n\n a = (endValue + \"\").split(\" \");\n vars = {};\n props.forEach(function (prop, i) {\n return vars[prop] = a[i] = a[i] || a[(i - 1) / 2 | 0];\n });\n plugin.init(target, vars, tween);\n };\n});\n\nexport var CSSPlugin = {\n name: \"css\",\n register: _initCore,\n targetTest: function targetTest(target) {\n return target.style && target.nodeType;\n },\n init: function init(target, vars, tween, index, targets) {\n var props = this._props,\n style = target.style,\n startAt = tween.vars.startAt,\n startValue,\n endValue,\n endNum,\n startNum,\n type,\n specialProp,\n p,\n startUnit,\n endUnit,\n relative,\n isTransformRelated,\n transformPropTween,\n cache,\n smooth,\n hasPriority,\n inlineProps;\n _pluginInitted || _initCore(); // we may call init() multiple times on the same plugin instance, like when adding special properties, so make sure we don't overwrite the revert data or inlineProps\n\n this.styles = this.styles || _getStyleSaver(target);\n inlineProps = this.styles.props;\n this.tween = tween;\n\n for (p in vars) {\n if (p === \"autoRound\") {\n continue;\n }\n\n endValue = vars[p];\n\n if (_plugins[p] && _checkPlugin(p, vars, tween, index, target, targets)) {\n // plugins\n continue;\n }\n\n type = typeof endValue;\n specialProp = _specialProps[p];\n\n if (type === \"function\") {\n endValue = endValue.call(tween, index, target, targets);\n type = typeof endValue;\n }\n\n if (type === \"string\" && ~endValue.indexOf(\"random(\")) {\n endValue = _replaceRandom(endValue);\n }\n\n if (specialProp) {\n specialProp(this, target, p, endValue, tween) && (hasPriority = 1);\n } else if (p.substr(0, 2) === \"--\") {\n //CSS variable\n startValue = (getComputedStyle(target).getPropertyValue(p) + \"\").trim();\n endValue += \"\";\n _colorExp.lastIndex = 0;\n\n if (!_colorExp.test(startValue)) {\n // colors don't have units\n startUnit = getUnit(startValue);\n endUnit = getUnit(endValue);\n }\n\n endUnit ? startUnit !== endUnit && (startValue = _convertToUnit(target, p, startValue, endUnit) + endUnit) : startUnit && (endValue += startUnit);\n this.add(style, \"setProperty\", startValue, endValue, index, targets, 0, 0, p);\n props.push(p);\n inlineProps.push(p, 0, style[p]);\n } else if (type !== \"undefined\") {\n if (startAt && p in startAt) {\n // in case someone hard-codes a complex value as the start, like top: \"calc(2vh / 2)\". Without this, it'd use the computed value (always in px)\n startValue = typeof startAt[p] === \"function\" ? startAt[p].call(tween, index, target, targets) : startAt[p];\n _isString(startValue) && ~startValue.indexOf(\"random(\") && (startValue = _replaceRandom(startValue));\n getUnit(startValue + \"\") || (startValue += _config.units[p] || getUnit(_get(target, p)) || \"\"); // for cases when someone passes in a unitless value like {x: 100}; if we try setting translate(100, 0px) it won't work.\n\n (startValue + \"\").charAt(1) === \"=\" && (startValue = _get(target, p)); // can't work with relative values\n } else {\n startValue = _get(target, p);\n }\n\n startNum = parseFloat(startValue);\n relative = type === \"string\" && endValue.charAt(1) === \"=\" && endValue.substr(0, 2);\n relative && (endValue = endValue.substr(2));\n endNum = parseFloat(endValue);\n\n if (p in _propertyAliases) {\n if (p === \"autoAlpha\") {\n //special case where we control the visibility along with opacity. We still allow the opacity value to pass through and get tweened.\n if (startNum === 1 && _get(target, \"visibility\") === \"hidden\" && endNum) {\n //if visibility is initially set to \"hidden\", we should interpret that as intent to make opacity 0 (a convenience)\n startNum = 0;\n }\n\n inlineProps.push(\"visibility\", 0, style.visibility);\n\n _addNonTweeningPT(this, style, \"visibility\", startNum ? \"inherit\" : \"hidden\", endNum ? \"inherit\" : \"hidden\", !endNum);\n }\n\n if (p !== \"scale\" && p !== \"transform\") {\n p = _propertyAliases[p];\n ~p.indexOf(\",\") && (p = p.split(\",\")[0]);\n }\n }\n\n isTransformRelated = p in _transformProps; //--- TRANSFORM-RELATED ---\n\n if (isTransformRelated) {\n this.styles.save(p);\n\n if (!transformPropTween) {\n cache = target._gsap;\n cache.renderTransform && !vars.parseTransform || _parseTransform(target, vars.parseTransform); // if, for example, gsap.set(... {transform:\"translateX(50vw)\"}), the _get() call doesn't parse the transform, thus cache.renderTransform won't be set yet so force the parsing of the transform here.\n\n smooth = vars.smoothOrigin !== false && cache.smooth;\n transformPropTween = this._pt = new PropTween(this._pt, style, _transformProp, 0, 1, cache.renderTransform, cache, 0, -1); //the first time through, create the rendering PropTween so that it runs LAST (in the linked list, we keep adding to the beginning)\n\n transformPropTween.dep = 1; //flag it as dependent so that if things get killed/overwritten and this is the only PropTween left, we can safely kill the whole tween.\n }\n\n if (p === \"scale\") {\n this._pt = new PropTween(this._pt, cache, \"scaleY\", cache.scaleY, (relative ? _parseRelative(cache.scaleY, relative + endNum) : endNum) - cache.scaleY || 0, _renderCSSProp);\n this._pt.u = 0;\n props.push(\"scaleY\", p);\n p += \"X\";\n } else if (p === \"transformOrigin\") {\n inlineProps.push(_transformOriginProp, 0, style[_transformOriginProp]);\n endValue = _convertKeywordsToPercentages(endValue); //in case something like \"left top\" or \"bottom right\" is passed in. Convert to percentages.\n\n if (cache.svg) {\n _applySVGOrigin(target, endValue, 0, smooth, 0, this);\n } else {\n endUnit = parseFloat(endValue.split(\" \")[2]) || 0; //handle the zOrigin separately!\n\n endUnit !== cache.zOrigin && _addNonTweeningPT(this, cache, \"zOrigin\", cache.zOrigin, endUnit);\n\n _addNonTweeningPT(this, style, p, _firstTwoOnly(startValue), _firstTwoOnly(endValue));\n }\n\n continue;\n } else if (p === \"svgOrigin\") {\n _applySVGOrigin(target, endValue, 1, smooth, 0, this);\n\n continue;\n } else if (p in _rotationalProperties) {\n _addRotationalPropTween(this, cache, p, startNum, relative ? _parseRelative(startNum, relative + endValue) : endValue);\n\n continue;\n } else if (p === \"smoothOrigin\") {\n _addNonTweeningPT(this, cache, \"smooth\", cache.smooth, endValue);\n\n continue;\n } else if (p === \"force3D\") {\n cache[p] = endValue;\n continue;\n } else if (p === \"transform\") {\n _addRawTransformPTs(this, endValue, target);\n\n continue;\n }\n } else if (!(p in style)) {\n p = _checkPropPrefix(p) || p;\n }\n\n if (isTransformRelated || (endNum || endNum === 0) && (startNum || startNum === 0) && !_complexExp.test(endValue) && p in style) {\n startUnit = (startValue + \"\").substr((startNum + \"\").length);\n endNum || (endNum = 0); // protect against NaN\n\n endUnit = getUnit(endValue) || (p in _config.units ? _config.units[p] : startUnit);\n startUnit !== endUnit && (startNum = _convertToUnit(target, p, startValue, endUnit));\n this._pt = new PropTween(this._pt, isTransformRelated ? cache : style, p, startNum, (relative ? _parseRelative(startNum, relative + endNum) : endNum) - startNum, !isTransformRelated && (endUnit === \"px\" || p === \"zIndex\") && vars.autoRound !== false ? _renderRoundedCSSProp : _renderCSSProp);\n this._pt.u = endUnit || 0;\n\n if (startUnit !== endUnit && endUnit !== \"%\") {\n //when the tween goes all the way back to the beginning, we need to revert it to the OLD/ORIGINAL value (with those units). We record that as a \"b\" (beginning) property and point to a render method that handles that. (performance optimization)\n this._pt.b = startValue;\n this._pt.r = _renderCSSPropWithBeginning;\n }\n } else if (!(p in style)) {\n if (p in target) {\n //maybe it's not a style - it could be a property added directly to an element in which case we'll try to animate that.\n this.add(target, p, startValue || target[p], relative ? relative + endValue : endValue, index, targets);\n } else if (p !== \"parseTransform\") {\n _missingPlugin(p, endValue);\n\n continue;\n }\n } else {\n _tweenComplexCSSString.call(this, target, p, startValue, relative ? relative + endValue : endValue);\n }\n\n isTransformRelated || (p in style ? inlineProps.push(p, 0, style[p]) : inlineProps.push(p, 1, startValue || target[p]));\n props.push(p);\n }\n }\n\n hasPriority && _sortPropTweensByPriority(this);\n },\n render: function render(ratio, data) {\n if (data.tween._time || !_reverting()) {\n var pt = data._pt;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n } else {\n data.styles.revert();\n }\n },\n get: _get,\n aliases: _propertyAliases,\n getSetter: function getSetter(target, property, plugin) {\n //returns a setter function that accepts target, property, value and applies it accordingly. Remember, properties like \"x\" aren't as simple as target.style.property = value because they've got to be applied to a proxy object and then merged into a transform string in a renderer.\n var p = _propertyAliases[property];\n p && p.indexOf(\",\") < 0 && (property = p);\n return property in _transformProps && property !== _transformOriginProp && (target._gsap.x || _get(target, \"x\")) ? plugin && _recentSetterPlugin === plugin ? property === \"scale\" ? _setterScale : _setterTransform : (_recentSetterPlugin = plugin || {}) && (property === \"scale\" ? _setterScaleWithRender : _setterTransformWithRender) : target.style && !_isUndefined(target.style[property]) ? _setterCSSStyle : ~property.indexOf(\"-\") ? _setterCSSProp : _getSetter(target, property);\n },\n core: {\n _removeProperty: _removeProperty,\n _getMatrix: _getMatrix\n }\n};\ngsap.utils.checkPrefix = _checkPropPrefix;\ngsap.core.getStyleSaver = _getStyleSaver;\n\n(function (positionAndScale, rotation, others, aliases) {\n var all = _forEachName(positionAndScale + \",\" + rotation + \",\" + others, function (name) {\n _transformProps[name] = 1;\n });\n\n _forEachName(rotation, function (name) {\n _config.units[name] = \"deg\";\n _rotationalProperties[name] = 1;\n });\n\n _propertyAliases[all[13]] = positionAndScale + \",\" + rotation;\n\n _forEachName(aliases, function (name) {\n var split = name.split(\":\");\n _propertyAliases[split[1]] = all[split[0]];\n });\n})(\"x,y,z,scale,scaleX,scaleY,xPercent,yPercent\", \"rotation,rotationX,rotationY,skewX,skewY\", \"transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective\", \"0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY\");\n\n_forEachName(\"x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective\", function (name) {\n _config.units[name] = \"px\";\n});\n\ngsap.registerPlugin(CSSPlugin);\nexport { CSSPlugin as default, _getBBox, _createElement, _checkPropPrefix as checkPrefix };","import { gsap, Power0, Power1, Power2, Power3, Power4, Linear, Quad, Cubic, Quart, Quint, Strong, Elastic, Back, SteppedEase, Bounce, Sine, Expo, Circ, TweenLite, TimelineLite, TimelineMax } from \"./gsap-core.js\";\nimport { CSSPlugin } from \"./CSSPlugin.js\";\nvar gsapWithCSS = gsap.registerPlugin(CSSPlugin) || gsap,\n // to protect from tree shaking\nTweenMaxWithCSS = gsapWithCSS.core.Tween;\nexport { gsapWithCSS as gsap, gsapWithCSS as default, CSSPlugin, TweenMaxWithCSS as TweenMax, TweenLite, TimelineMax, TimelineLite, Power0, Power1, Power2, Power3, Power4, Linear, Quad, Cubic, Quart, Quint, Strong, Elastic, Back, SteppedEase, Bounce, Sine, Expo, Circ };","import 'styles/background.css'\nimport { forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react'\nimport { gsap } from 'gsap'\nimport _ from 'lodash'\n\nexport default function Background({ src, tintColor }) {\n const [windowDimensions, setWindowDimensions] = useState(getWindowDimensions())\n const backgroundRef = useRef(null)\n\n function getWindowDimensions() {\n const { innerWidth: width, innerHeight: height } = window\n return {\n width,\n height\n }\n }\n\n useEffect(() => {\n const handleMouseMove = ({ clientX, clientY }) => {\n const _x = Math.max(-400, Math.min(400, windowDimensions.width / 2 - clientX))\n const _y = Math.max(-400, Math.min(400, windowDimensions.height / 2 - clientY))\n const x = (3 * _x) / 100\n const y = (5 * _y) / 100\n\n if (!_.isNil(backgroundRef.current)) {\n backgroundRef.current.moveTo(x, y)\n }\n }\n\n function handleResize() {\n setWindowDimensions(getWindowDimensions())\n }\n\n document.addEventListener('mousemove', handleMouseMove)\n window.addEventListener('resize', handleResize)\n return () => {\n window.removeEventListener('resize', handleResize)\n document.removeEventListener('mousemove', handleMouseMove)\n }\n }, [windowDimensions.height, windowDimensions.width])\n\n return (\n <div className=\"bg-container\">\n <BackgroundImage style={{ backgroundImage: `url(${src})` }} ref={backgroundRef} />\n <div className=\"background-tint\" style={{ backgroundColor: tintColor }} />\n </div>\n )\n}\n\nconst BackgroundImage = forwardRef((props: { style }, ref) => {\n const el = useRef()\n\n useImperativeHandle(\n ref,\n () => {\n // return our API\n return {\n moveTo(x, y) {\n gsap.to(el.current, { x, y, duration: 5, delay: 0.1, ease: 'back.out' })\n }\n }\n },\n []\n )\n\n return <div className=\"background\" ref={el} style={props.style} />\n})\n","import { useEffect, useRef } from 'react';\nimport { useLocation } from 'react-router-dom';\n\nfunction ScrollToAnchor() {\n const location = useLocation();\n const lastHash = useRef('');\n\n // listen to location change using useEffect with location as dependency\n // https://jasonwatmore.com/react-router-v6-listen-to-location-route-change-without-history-listen\n useEffect(() => {\n if (location.hash) {\n lastHash.current = location.hash.slice(1); // safe hash for further use after navigation\n }\n\n if (lastHash.current && document.getElementById(`${lastHash.current.toLocaleLowerCase()}-1`)) {\n setTimeout(() => {\n document\n .getElementById(`${lastHash.current.toLocaleLowerCase()}-1`)\n ?.scrollIntoView({ block: 'start', inline: 'nearest'});\n lastHash.current = '';\n }, 100);\n }\n }, [location]);\n\n return null;\n}\n\nexport default ScrollToAnchor;","import 'styles/landing.css'\nimport 'styles/text.css'\nimport social from 'assets/social.png'\nimport arrowRightActive from 'assets/arrowRightActive.png'\nimport invest from 'assets/invest.png'\nimport insight from 'assets/insight.png'\nimport simple from 'assets/simple.png'\nimport logoGif from 'assets/logo.gif'\nimport promo from 'assets/promo.png'\nimport mail from 'assets/mail.svg'\nimport Button from 'components/button'\nimport Background from 'components/background'\nimport bg from 'assets/landingBackground.jpeg'\nimport ScrollToAnchor from 'components/anchor'\n// import WhatArePoints from 'assets/WhatArePoints.gif'\n\nexport default function Landing() {\n return (\n <>\n <ScrollToAnchor />\n <Background src={bg} tintColor={'#ff8f8f'} />\n <div className=\"header\">\n <div className=\"header-top\">\n <div className=\"h1 header-text\">\n Meet\n <br />\n Bad Trader\n </div>\n </div>\n <div className=\"h3 header-text\">\n An app with the tools, data, and community to help you learn more from your mistakes and become a more strategic investor. \n </div>\n </div>\n <div className=\"content\">\n <div className=\"content-container margin-content\">\n <div className=\"small-content-container\">\n <div className=\"h2 highlight-purple\">\n Social Investing\n </div>\n <div className=\"info-container-left\">\n <div className=\"h3 info-text\">\n Watch daily streams that feature live trading and market coverage, and talk trading and news in the Bad Trader forums.\n </div>\n <br />\n <div className=\"h5 info-text itemRow\">\n <img src={arrowRightActive} className=\"arrowRight\" alt=\"arrowActive\" />\n Daily livestreams\n </div>\n <div className=\"h5 info-text itemRow\">\n <img src={arrowRightActive} className=\"arrowRight\" alt=\"arrowActive\" />\n Live chat\n </div>\n <div className=\"h5 info-text itemRow\">\n <img src={arrowRightActive} className=\"arrowRight\" alt=\"arrowActive\" />\n Community forums\n </div>\n </div>\n </div>\n <div className=\"photo-container\">\n <img src={social} className=\"photo\" alt=\"social\" />\n </div>\n </div>\n <div className=\"content-container margin-content content-container-reverse\">\n <div className=\"photo-container\">\n <img src={invest} className=\"photo\" alt=\"invest\" />\n </div>\n <div className=\"small-content-container\">\n <div className=\"h2 highlight-green\">\n Strategic Investing\n </div>\n <div className=\"info-container-right\">\n <div className=\"h3 info-text\">\n Track analyst ratings and price targets, track market events like earnings and CPI, and filter for symbols using a detailed stock screener.\n </div>\n <br />\n <div className=\"h5 info-text itemRow\">\n <img src={arrowRightActive} className=\"arrowRight\" alt=\"arrowActive\" />\n Analyst ratings\n </div>\n <div className=\"h5 info-text itemRow\">\n <img src={arrowRightActive} className=\"arrowRight\" alt=\"arrowActive\" />\n Market events calendar\n </div>\n <div className=\"h5 info-text itemRow\">\n <img src={arrowRightActive} className=\"arrowRight\" alt=\"arrowActive\" />\n Stock screener\n </div>\n </div>\n </div>\n </div>\n <div className=\"content-container margin-content\">\n <div className=\"small-content-container\">\n <div className=\"h2 highlight-red\">\n Simplified Investing\n </div>\n <div className=\"info-container-left\">\n <div className=\"h3 info-text\">\n Get visual snapshots of daily market data, set up orders with our simplified UI, and view payout diagrams for option orders. \n </div>\n <br />\n <div className=\"h5 info-text itemRow\">\n <img src={arrowRightActive} className=\"arrowRight\" alt=\"arrowActive\" />\n Market snapshots and visuals\n </div>\n <div className=\"h5 info-text itemRow\">\n <img src={arrowRightActive} className=\"arrowRight\" alt=\"arrowActive\" />\n Simplified option chain\n </div>\n <div className=\"h5 info-text itemRow\">\n <img src={arrowRightActive} className=\"arrowRight\" alt=\"arrowActive\" />\n Stock screener\n </div>\n </div>\n </div>\n <div className=\"photo-container\">\n <img src={simple} className=\"photo\" alt=\"simple\" />\n </div>\n </div>\n <div className=\"content-container margin-content content-container-reverse\">\n <div className=\"photo-container\">\n <img src={insight} className=\"photo\" alt=\"insight\" />\n </div>\n <div className=\"small-content-container\">\n <div className=\"h2 highlight-yellow\">\n Insightful Investing\n </div>\n {/* <img src={WhatArePoints} className=\"ufo\" alt=\"chaseGus\" /> */}\n <div className=\"info-container-right\">\n <div className=\"h3 info-text\">\n Connect your brokerage account to gain portfolio insights and make more informed decisions. \n </div>\n <br />\n <div className=\"h5 info-text itemRow\">\n <img src={arrowRightActive} className=\"arrowRight\" alt=\"arrowActive\" />\n Portfolio history\n </div>\n <div className=\"h5 info-text itemRow\">\n <img src={arrowRightActive} className=\"arrowRight\" alt=\"arrowActive\" />\n Sector breakdown\n </div>\n <div className=\"h5 info-text itemRow\" id=\"download-1\">\n <img src={arrowRightActive} className=\"arrowRight\" alt=\"arrowActive\" />\n YTD summary\n </div>\n </div>\n </div>\n </div>\n <div className=\"promo-background\">\n <div className=\"promo-container\">\n <div className=\"column-promo\">\n <img src={logoGif} className=\"gif-logo-home\" alt=\"logo\" />\n <img src={promo} className=\"promo\" alt=\"promo\" />\n </div>\n <div className=\"promo-content-container\">\n <div className=\"h3 promo-header\">Want to join our legion of Bad Traders?</div>\n <div className=\"p1 promo-subline\">Download the latest and greatest for your mobile device below.</div>\n <div className=\"button-container-promo\">\n <a\n href=\"https://play.google.com/store/apps/details?id=com.tastyworks.mobile.badtrader.android&hl=en_US&gl=US\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Button\n buttonStyle=\"rounded-button-light rounded-button-label-light button-left\"\n aria-label={'Android'}\n label=\"Android\"\n />\n </a>\n <a\n href=\"https://apps.apple.com/us/app/bad-trader/id1638952698\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Button\n buttonStyle=\"rounded-button-light rounded-button-label-light\"\n aria-label={'iOS'}\n label=\"iOS\"\n />\n </a>\n </div>\n </div>\n </div>\n </div>\n <div className=\"mailing-container\">\n <div className=\"mailing-inner-container\">\n <div className=\"h2 mailing-header\">\n Want to join our sexy\n <br /> mailing list?\n </div>\n <div className=\"mailing-bottom-container\">\n <div className=\"mailing-form\">\n <div className=\"mailing-text\">\n We'll send you app updates. Just drop your email here to keep in touch.\n </div>\n <iframe\n frameBorder=\"0\"\n scrolling=\"no\"\n title=\"form-email-list\"\n className=\"mailing-form-iframe\"\n src=\"https://cdn.forms-content-1.sg-form.com/c96d6330-517d-11ee-9f93-ea8b1437f8af\"\n />\n </div>\n <div className=\"mail-photo-container\">\n <img src={mail} className=\"mail\" alt=\"chaseGus\" />\n </div>\n </div>\n </div>\n </div>\n </div>\n </>\n )\n}\n","var _g;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgArrowLeft(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 13,\n height: 24,\n viewBox: \"0 0 13 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group 588\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12.7071 0.292893C12.3166 -0.0976311 11.6834 -0.0976311 11.2929 0.292893L0.292893 11.2929C-0.0976315 11.6834 -0.0976315 12.3166 0.292893 12.7071L11.2929 23.7071C11.6834 24.0976 12.3166 24.0976 12.7071 23.7071C13.0976 23.3166 13.0976 22.6834 12.7071 22.2929L2.41421 12L12.7071 1.70711C13.0976 1.31658 13.0976 0.683417 12.7071 0.292893Z\",\n fill: \"#8FF2FF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)_2\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12.7071 6.79289C12.3166 6.40237 11.6834 6.40237 11.2929 6.79289L6.79289 11.2929C6.40237 11.6834 6.40237 12.3166 6.79289 12.7071L11.2929 17.2071C11.6834 17.5976 12.3166 17.5976 12.7071 17.2071C13.0976 16.8166 13.0976 16.1834 12.7071 15.7929L8.91421 12L12.7071 8.20711C13.0976 7.81658 13.0976 7.18342 12.7071 6.79289Z\",\n fill: \"#8FF2FF\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowLeft);\nexport default __webpack_public_path__ + \"static/media/arrow-left.745f1b43d38f2775346d0db0cb4cc956.svg\";\nexport { ForwardRef as ReactComponent };","import { useState } from 'react'\nimport 'styles/contact.css'\nimport 'styles/text.css'\nimport arrowLeft from 'assets/arrow-left.svg'\n// import arrow from 'assets/arrow.gif'\nimport submitGif from 'assets/submitGif.gif'\nimport Button from 'components/button'\nimport bug from 'assets/bug.gif'\n// import color from 'assets/color.gif'\nimport handshake from 'assets/handshake.gif'\nimport join from 'assets/join.gif'\nimport other from 'assets/other.gif'\nimport suggestion from 'assets/suggestion.gif'\nimport support from 'assets/support.gif'\nimport _ from 'lodash'\nimport Background from 'components/background'\nimport bg from 'assets/aboutUsBackground.jpeg'\n\nconst gifMap = new Map([\n ['Other', other],\n ['Join the Team', join],\n ['Become a Marketing Affiliate', handshake],\n ['Suggest a Feature', suggestion],\n ['Report a Bug', bug],\n ['Bad Trader Support', support]\n])\n\nexport default function Contact() {\n const [expanded, setExpanded] = useState(false)\n const [submitted, setSubmitted] = useState(false)\n\n const [topic, setTopic] = useState('')\n const [firstName, setFirstName] = useState('')\n const [lastName, setLastName] = useState('')\n const [email, setEmail] = useState('')\n const [message, setMessage] = useState('')\n\n const gif = gifMap.get(topic)\n\n const submit = () => {\n setSubmitted(true)\n }\n\n const isFull =\n !_.isEmpty(message) && !_.isEmpty(email) && !_.isEmpty(lastName) && !_.isEmpty(firstName) && !_.isEmpty(topic)\n\n return (\n <>\n <Background src={bg} tintColor={'#8fffa7'} />\n <div className=\"header-contact\">\n <div className=\"h1 header-left-contact\">\n Hit us\n <br />\n up.\n {/* <img src={arrow} className=\"arrow\" alt=\"chaseGus\" /> */}\n </div>\n <div className=\"header-right-contact\">\n {submitted ? (\n <div className=\"h3 submit-container\">\n We'll get back to you soon!\n <img src={submitGif} className=\"submit-gif\" alt=\"gif\" />\n <Button\n buttonStyle=\"small-600 rounded-button-mail rounded-button-label-mail\"\n aria-label={'Download'}\n onClick={() => setSubmitted(false)}\n label=\"Ask Another\"\n />\n </div>\n ) : (\n <>\n <div\n className={`small-600 text-input-form contact-highlight ${expanded && 'text-input-expanded'}`}\n onClick={() => setExpanded(!expanded)}\n >\n <div className=\"dropdown\">\n {!_.isEmpty(topic) && <img src={gif} className=\"topic-gif\" alt=\"topic\" />}\n <div>{topic || 'Pick a topic...'}</div>\n <img src={arrowLeft} className={`arrow-right-contact ${expanded && 'arrow-animate'}`} alt=\"arrows\" />\n </div>\n <ul className={`dropdown-container ${expanded && 'dropdown-expanded'}`}>\n <li className=\"item\" onClick={() => setTopic('Bad Trader Support')}>\n Bad Trader Support\n </li>\n <li className=\"item\" onClick={() => setTopic('Report a Bug')}>\n Report a Bug\n </li>\n <li className=\"item\" onClick={() => setTopic('Suggest a Feature')}>\n Suggest a Feature\n </li>\n <li className=\"item\" onClick={() => setTopic('Become a Marketing Affiliate')}>\n Become a Marketing Affiliate\n </li>\n <li className=\"item\" onClick={() => setTopic('Join the Team')}>\n Join the Team\n </li>\n <li className=\"item\" onClick={() => setTopic('Other')}>\n Other\n </li>\n </ul>\n </div>\n <div className=\"name-container\">\n <div className=\"xx-small text-input-form\">\n First Name\n <input\n type=\"text\"\n className=\"input-contact\"\n name=\"fname\"\n value={firstName}\n onChange={evt => setFirstName(evt.target.value)}\n />\n </div>\n <div className=\"xx-small text-input-form\">\n Last Name\n <input\n type=\"text\"\n className=\"input-contact\"\n name=\"lname\"\n value={lastName}\n onChange={evt => setLastName(evt.target.value)}\n />\n </div>\n </div>\n <div className=\"xx-small text-input-form\">\n Email\n <input\n type=\"email\"\n className=\"input\"\n name=\"email\"\n value={email}\n onChange={evt => setEmail(evt.target.value)}\n />\n </div>\n <div className=\"xx-small text-input-form big\">\n Leave a Message\n <textarea\n className=\"input big-input\"\n name=\"message\"\n value={message}\n onChange={evt => setMessage(evt.target.value)}\n />\n </div>\n <a\n href={\n !isFull\n ? null\n : `mailto:support@badtrader.app?subject=${topic}%20-%20${firstName}%20${lastName}&body=${message}`\n }\n onClick={submit}\n className=\"submit-form\"\n >\n <Button\n buttonStyle=\"rounded-button-mail rounded-button-label-mail submit-button\"\n aria-label={'submit'}\n label=\"Submit\"\n />\n </a>\n <div className=\"brokerage-warning\">\n <div className=\"h3 brokerage-warning-header\">Brokerage questions?</div>\n <div className=\"large-500 brokerage-warning-text\">\n Check out tastytrade’s support page{' '}\n <a className=\"brokerage-link\" href=\"https://support.tastyworks.com/support/home\">\n here\n </a>\n .\n </div>\n </div>\n </>\n )}\n </div>\n </div>\n </>\n )\n}\n","var _path, _path2, _path3;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgChart(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M6 11C5.45228 11 5 11.4523 5 12V20C5 20.5477 5.45228 21 6 21H8C8.54772 21 9 20.5477 9 20V16.55C9 15.9977 9.44772 15.55 10 15.55C10.5523 15.55 11 15.9977 11 16.55V20C11 21.6523 9.65228 23 8 23H6C4.34772 23 3 21.6523 3 20V12C3 10.3477 4.34772 9 6 9H8C9.65228 9 11 10.3477 11 12V14C11 14.5523 10.5523 15 10 15C9.44772 15 9 14.5523 9 14V12C9 11.4523 8.54772 11 8 11H6Z\",\n fill: \"#928183\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15 17C14.4523 17 14 17.4523 14 18V22C14 22.5523 13.5523 23 13 23C12.4477 23 12 22.5523 12 22V18C12 16.3477 13.3477 15 15 15H17C18.6523 15 20 16.3477 20 18V26C20 27.6523 18.6523 29 17 29H15C13.3477 29 12 27.6523 12 26V24.73C12 24.1777 12.4477 23.73 13 23.73C13.5523 23.73 14 24.1777 14 24.73V26C14 26.5477 14.4523 27 15 27H17C17.5477 27 18 26.5477 18 26V18C18 17.4523 17.5477 17 17 17H15Z\",\n fill: \"#928183\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M24 5C23.4523 5 23 5.45228 23 6V22C23 22.5477 23.4523 23 24 23H26C26.5477 23 27 22.5477 27 22V21C27 20.4477 27.4477 20 28 20C28.5523 20 29 20.4477 29 21V22C29 23.6523 27.6523 25 26 25H24C22.3477 25 21 23.6523 21 22V6C21 4.34772 22.3477 3 24 3H26C27.6523 3 29 4.34772 29 6V18C29 18.5523 28.5523 19 28 19C27.4477 19 27 18.5523 27 18V6C27 5.45228 26.5477 5 26 5H24Z\",\n fill: \"#928183\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgChart);\nexport default __webpack_public_path__ + \"static/media/chart.e94ba90a76ae39a415eb03ed5114b4ac.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgChevronRight(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"General/Inactive/Chevron/Right\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.2197 6.21967C10.5126 5.92678 10.9874 5.92678 11.2803 6.21967L14.9553 9.89467C16.1482 11.0876 16.1482 12.9124 14.9553 14.1053L11.2803 17.7803C10.9874 18.0732 10.5126 18.0732 10.2197 17.7803C9.92678 17.4874 9.92678 17.0126 10.2197 16.7197L13.8947 13.0447C14.5018 12.4376 14.5018 11.5624 13.8947 10.9553L10.2197 7.28033C9.92678 6.98744 9.92678 6.51256 10.2197 6.21967Z\",\n fill: \"#928183\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgChevronRight);\nexport default __webpack_public_path__ + \"static/media/chevronRight.80bda0576957ad67e5bf51cd7906aac9.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5, _path6, _path7;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgTrend(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4 17.4301C4.55228 17.4301 5 17.8778 5 18.4301V28.4301C5 28.9823 4.55228 29.4301 4 29.4301C3.44772 29.4301 3 28.9823 3 28.4301V18.4301C3 17.8778 3.44772 17.4301 4 17.4301Z\",\n fill: \"#928183\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.80005 15.4301C9.35233 15.4301 9.80005 15.8778 9.80005 16.4301V28.4301C9.80005 28.9823 9.35233 29.4301 8.80005 29.4301C8.24776 29.4301 7.80005 28.9823 7.80005 28.4301V16.4301C7.80005 15.8778 8.24776 15.4301 8.80005 15.4301Z\",\n fill: \"#928183\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M13.6001 13.4301C14.1524 13.4301 14.6001 13.8778 14.6001 14.4301V28.4301C14.6001 28.9823 14.1524 29.4301 13.6001 29.4301C13.0478 29.4301 12.6001 28.9823 12.6001 28.4301V14.4301C12.6001 13.8778 13.0478 13.4301 13.6001 13.4301Z\",\n fill: \"#928183\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M18.3999 11.4301C18.9522 11.4301 19.3999 11.8778 19.3999 12.4301V28.4301C19.3999 28.9823 18.9522 29.4301 18.3999 29.4301C17.8476 29.4301 17.3999 28.9823 17.3999 28.4301V12.4301C17.3999 11.8778 17.8476 11.4301 18.3999 11.4301Z\",\n fill: \"#928183\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M23.2 9.43005C23.7522 9.43005 24.2 9.87777 24.2 10.4301V28.4301C24.2 28.9823 23.7522 29.4301 23.2 29.4301C22.6477 29.4301 22.2 28.9823 22.2 28.4301V10.4301C22.2 9.87777 22.6477 9.43005 23.2 9.43005Z\",\n fill: \"#928183\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M28 7.43005C28.5523 7.43005 29 7.87777 29 8.43005V28.4301C29 28.9823 28.5523 29.4301 28 29.4301C27.4477 29.4301 27 28.9823 27 28.4301V8.43005C27 7.87777 27.4477 7.43005 28 7.43005Z\",\n fill: \"#928183\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M28.9172 3.60144C29.1373 4.10796 28.9051 4.69702 28.3986 4.91715L4.39858 15.3471C3.89206 15.5673 3.303 15.3351 3.08287 14.8286C2.86275 14.3221 3.09492 13.733 3.60144 13.5129L27.6014 3.08287C28.108 2.86275 28.697 3.09492 28.9172 3.60144Z\",\n fill: \"#928183\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTrend);\nexport default __webpack_public_path__ + \"static/media/trend.96ab0c0f83c2a4d785cf35ec3cc273d8.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgGraph(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.15394 23.8062C6.93252 25.1188 5.29847 26 3 26C2.44772 26 2 25.5523 2 25C2 24.4477 2.44772 24 3 24C4.70153 24 5.81748 23.3812 6.68981 22.4438C7.61048 21.4544 8.27 20.1018 8.96594 18.5833C9.0154 18.4754 9.06512 18.3665 9.11521 18.2567C9.73905 16.8896 10.4203 15.3966 11.3671 14.2412C12.4426 12.9288 13.8973 12 16 12C18.1027 12 19.5574 12.9288 20.6329 14.2412C21.5797 15.3966 22.2609 16.8896 22.8848 18.2567C22.9349 18.3665 22.9846 18.4754 23.0341 18.5833C23.73 20.1018 24.3895 21.4544 25.3102 22.4438C26.1825 23.3812 27.2985 24 29 24C29.5523 24 30 24.4477 30 25C30 25.5523 29.5523 26 29 26C26.7015 26 25.0675 25.1188 23.8461 23.8062C22.673 22.5456 21.895 20.8982 21.2159 19.4167C21.1759 19.3294 21.1363 19.2427 21.0969 19.1567C20.4381 17.7165 19.8605 16.4541 19.0859 15.5088C18.3176 14.5712 17.3973 14 16 14C14.6027 14 13.6824 14.5712 12.9141 15.5088C12.1395 16.4541 11.562 17.7165 10.9031 19.1566C10.8637 19.2427 10.8241 19.3294 10.7841 19.4167C10.105 20.8982 9.32702 22.5456 8.15394 23.8062Z\",\n fill: \"#928183\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M2 29C2 28.4477 2.44772 28 3 28H29C29.5523 28 30 28.4477 30 29C30 29.5523 29.5523 30 29 30H3C2.44772 30 2 29.5523 2 29Z\",\n fill: \"#928183\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M9.45192 2.284C9.84736 1.89845 10.4805 1.90646 10.866 2.3019L16 7.56754L21.134 2.3019C21.5196 1.90646 22.1527 1.89845 22.5481 2.284C22.9436 2.66955 22.9516 3.30266 22.566 3.6981L16.716 9.6981C16.5278 9.89114 16.2696 10 16 10C15.7304 10 15.4722 9.89114 15.284 9.6981L9.43402 3.6981C9.04847 3.30266 9.05649 2.66955 9.45192 2.284Z\",\n fill: \"#928183\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgGraph);\nexport default __webpack_public_path__ + \"static/media/graph.6b690d649178d14a1cb83f54fa57ed54.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgChartActive(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 34,\n height: 34,\n viewBox: \"0 0 34 34\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#filter0_di_42_341)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M7 12C6.45228 12 6 12.4523 6 13V21C6 21.5477 6.45228 22 7 22H9C9.54772 22 10 21.5477 10 21V17.55C10 16.9977 10.4477 16.55 11 16.55C11.5523 16.55 12 16.9977 12 17.55V21C12 22.6523 10.6523 24 9 24H7C5.34772 24 4 22.6523 4 21V13C4 11.3477 5.34772 10 7 10H9C10.6523 10 12 11.3477 12 13V15C12 15.5523 11.5523 16 11 16C10.4477 16 10 15.5523 10 15V13C10 12.4523 9.54772 12 9 12H7Z\",\n fill: \"#8FF2FF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16 18C15.4523 18 15 18.4523 15 19V23C15 23.5523 14.5523 24 14 24C13.4477 24 13 23.5523 13 23V19C13 17.3477 14.3477 16 16 16H18C19.6523 16 21 17.3477 21 19V27C21 28.6523 19.6523 30 18 30H16C14.3477 30 13 28.6523 13 27V25.73C13 25.1777 13.4477 24.73 14 24.73C14.5523 24.73 15 25.1777 15 25.73V27C15 27.5477 15.4523 28 16 28H18C18.5477 28 19 27.5477 19 27V19C19 18.4523 18.5477 18 18 18H16Z\",\n fill: \"#8FF2FF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M25 6C24.4523 6 24 6.45228 24 7V23C24 23.5477 24.4523 24 25 24H27C27.5477 24 28 23.5477 28 23V22C28 21.4477 28.4477 21 29 21C29.5523 21 30 21.4477 30 22V23C30 24.6523 28.6523 26 27 26H25C23.3477 26 22 24.6523 22 23V7C22 5.34772 23.3477 4 25 4H27C28.6523 4 30 5.34772 30 7V19C30 19.5523 29.5523 20 29 20C28.4477 20 28 19.5523 28 19V7C28 6.45228 27.5477 6 27 6H25Z\",\n fill: \"#8FF2FF\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter0_di_42_341\",\n x: -3,\n y: -3,\n width: 40,\n height: 40,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n }, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n }), /*#__PURE__*/React.createElement(\"feOffset\", null), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 2\n }), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0.634667 0 0 0 0 0.991667 0 0 0 1 0\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"screen\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_42_341\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow_42_341\",\n result: \"shape\"\n }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n }), /*#__PURE__*/React.createElement(\"feOffset\", null), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 0.5\n }), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"arithmetic\",\n k2: -1,\n k3: 1\n }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0.485907 0 0 0 0 0.758854 0 0 0 1 0\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"hard-light\",\n in2: \"shape\",\n result: \"effect2_innerShadow_42_341\"\n })))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgChartActive);\nexport default __webpack_public_path__ + \"static/media/chart-active.325b04dda6666f208014544e4c5e5646.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgTrendActive(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 34,\n height: 35,\n viewBox: \"0 0 34 35\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#filter0_di_42_413)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5 18.4301C5.55228 18.4301 6 18.8778 6 19.4301V29.4301C6 29.9823 5.55228 30.4301 5 30.4301C4.44772 30.4301 4 29.9823 4 29.4301V19.4301C4 18.8778 4.44772 18.4301 5 18.4301Z\",\n fill: \"#FDFF8F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M9.80005 16.4301C10.3523 16.4301 10.8 16.8778 10.8 17.4301V29.4301C10.8 29.9823 10.3523 30.4301 9.80005 30.4301C9.24776 30.4301 8.80005 29.9823 8.80005 29.4301V17.4301C8.80005 16.8778 9.24776 16.4301 9.80005 16.4301Z\",\n fill: \"#FDFF8F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M14.6001 14.4301C15.1524 14.4301 15.6001 14.8778 15.6001 15.4301V29.4301C15.6001 29.9823 15.1524 30.4301 14.6001 30.4301C14.0478 30.4301 13.6001 29.9823 13.6001 29.4301V15.4301C13.6001 14.8778 14.0478 14.4301 14.6001 14.4301Z\",\n fill: \"#FDFF8F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M19.3999 12.4301C19.9522 12.4301 20.3999 12.8778 20.3999 13.4301V29.4301C20.3999 29.9823 19.9522 30.4301 19.3999 30.4301C18.8476 30.4301 18.3999 29.9823 18.3999 29.4301V13.4301C18.3999 12.8778 18.8476 12.4301 19.3999 12.4301Z\",\n fill: \"#FDFF8F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M24.2 10.4301C24.7522 10.4301 25.2 10.8778 25.2 11.4301V29.4301C25.2 29.9823 24.7522 30.4301 24.2 30.4301C23.6477 30.4301 23.2 29.9823 23.2 29.4301V11.4301C23.2 10.8778 23.6477 10.4301 24.2 10.4301Z\",\n fill: \"#FDFF8F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M29 8.43005C29.5523 8.43005 30 8.87777 30 9.43005V29.4301C30 29.9823 29.5523 30.4301 29 30.4301C28.4477 30.4301 28 29.9823 28 29.4301V9.43005C28 8.87777 28.4477 8.43005 29 8.43005Z\",\n fill: \"#FDFF8F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M29.9172 4.60144C30.1373 5.10796 29.9051 5.69702 29.3986 5.91715L5.39858 16.3471C4.89206 16.5673 4.303 16.3351 4.08287 15.8286C3.86275 15.3221 4.09492 14.733 4.60144 14.5129L28.6014 4.08287C29.108 3.86275 29.697 4.09492 29.9172 4.60144Z\",\n fill: \"#FDFF8F\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter0_di_42_413\",\n x: -3,\n y: -3,\n width: 40,\n height: 40,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n }, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n }), /*#__PURE__*/React.createElement(\"feOffset\", null), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 2\n }), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.991667 0 0 0 0 0.833 0 0 0 0 0 0 0 0 1 0\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"screen\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_42_413\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow_42_413\",\n result: \"shape\"\n }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n }), /*#__PURE__*/React.createElement(\"feOffset\", null), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 0.5\n }), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"arithmetic\",\n k2: -1,\n k3: 1\n }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.466667 0 0 0 0 0.336 0 0 0 0 0 0 0 0 1 0\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"hard-light\",\n in2: \"shape\",\n result: \"effect2_innerShadow_42_413\"\n })))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTrendActive);\nexport default __webpack_public_path__ + \"static/media/trend-active.086d10cc841633ea8ea771657889db19.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgGraphActive(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 36,\n height: 36,\n viewBox: \"0 0 36 36\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#filter0_di_42_369)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.1539 25.8062C8.93252 27.1188 7.29847 28 5 28C4.44772 28 4 27.5523 4 27C4 26.4477 4.44772 26 5 26C6.70153 26 7.81748 25.3812 8.68981 24.4438C9.61048 23.4544 10.27 22.1018 10.9659 20.5833C11.0154 20.4754 11.0651 20.3665 11.1152 20.2567C11.7391 18.8896 12.4203 17.3966 13.3671 16.2412C14.4426 14.9288 15.8973 14 18 14C20.1027 14 21.5574 14.9288 22.6329 16.2412C23.5797 17.3966 24.2609 18.8896 24.8848 20.2567C24.9349 20.3665 24.9846 20.4754 25.0341 20.5833C25.73 22.1018 26.3895 23.4544 27.3102 24.4438C28.1825 25.3812 29.2985 26 31 26C31.5523 26 32 26.4477 32 27C32 27.5523 31.5523 28 31 28C28.7015 28 27.0675 27.1188 25.8461 25.8062C24.673 24.5456 23.895 22.8982 23.2159 21.4167C23.1759 21.3294 23.1363 21.2427 23.0969 21.1567C22.4381 19.7165 21.8605 18.4541 21.0859 17.5088C20.3176 16.5712 19.3973 16 18 16C16.6027 16 15.6824 16.5712 14.9141 17.5088C14.1395 18.4541 13.562 19.7165 12.9031 21.1566C12.8637 21.2427 12.8241 21.3294 12.7841 21.4167C12.105 22.8982 11.327 24.5456 10.1539 25.8062Z\",\n fill: \"#FFC58F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4 31C4 30.4477 4.44772 30 5 30H31C31.5523 30 32 30.4477 32 31C32 31.5523 31.5523 32 31 32H5C4.44772 32 4 31.5523 4 31Z\",\n fill: \"#FFC58F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M11.4519 4.284C11.8474 3.89845 12.4805 3.90646 12.866 4.3019L18 9.56754L23.134 4.3019C23.5196 3.90646 24.1527 3.89845 24.5481 4.284C24.9436 4.66955 24.9516 5.30266 24.566 5.6981L18.716 11.6981C18.5278 11.8911 18.2696 12 18 12C17.7304 12 17.4722 11.8911 17.284 11.6981L11.434 5.6981C11.0485 5.30266 11.0565 4.66955 11.4519 4.284Z\",\n fill: \"#FFC58F\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter0_di_42_369\",\n x: -2,\n y: -2,\n width: 40,\n height: 40,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n }, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n }), /*#__PURE__*/React.createElement(\"feOffset\", null), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 2\n }), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.9375 0 0 0 0 0.3375 0 0 0 0 0 0 0 0 1 0\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"screen\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_42_369\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow_42_369\",\n result: \"shape\"\n }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n }), /*#__PURE__*/React.createElement(\"feOffset\", null), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 0.5\n }), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"arithmetic\",\n k2: -1,\n k3: 1\n }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.804036 0 0 0 0 0.144659 0 0 0 0 0 0 0 0 1 0\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"hard-light\",\n in2: \"shape\",\n result: \"effect2_innerShadow_42_369\"\n })))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgGraphActive);\nexport default __webpack_public_path__ + \"static/media/graph-active.164d7d155b9cafe41af3b642dbdbb9e6.svg\";\nexport { ForwardRef as ReactComponent };","import 'styles/partners.css'\nimport 'styles/text.css'\nimport tasty from 'assets/tasty.png'\nimport chart from 'assets/chart.svg'\nimport chevronRight from 'assets/chevronRight.svg'\nimport trend from 'assets/trend.svg'\nimport graph from 'assets/graph.svg'\nimport chartActive from 'assets/chart-active.svg'\nimport trendActive from 'assets/trend-active.svg'\nimport graphActive from 'assets/graph-active.svg'\nimport chartGif from 'assets/chartGif.gif'\nimport { useState } from 'react'\nimport Button from 'components/button'\nimport Background from 'components/background'\nimport bg from 'assets/partnerBackground.jpeg'\n\nexport default function Partners() {\n const [stockExpanded, setStockExpanded] = useState(false)\n const [optionsExpanded, setOptionsExpanded] = useState(false)\n const [futuresExpanded, setFuturesExpanded] = useState(false)\n\n const setExpanded = val => () => {\n setStockExpanded(false)\n setOptionsExpanded(false)\n setFuturesExpanded(false)\n\n if (val === 'stock') {\n setStockExpanded(!stockExpanded)\n }\n if (val === 'options') {\n setOptionsExpanded(!optionsExpanded)\n }\n if (val === 'futures') {\n setFuturesExpanded(!futuresExpanded)\n }\n }\n\n return (\n <>\n <Background src={bg} tintColor={'#ffc58f'} />\n <div className=\"header-partners\">\n <div className=\"h1 header-partners-text\">Partners on Bad Trader.</div>\n <div className=\"partner-description-container\">\n <img src={chartGif} className=\"chart-gif\" alt=\"chart\" />\n <div className=\"h5 partner-description-content\">\n <span>\n Through our marketing affiliates, Bad Trader allows users to log into their broker and access a wide range\n of products and a simplified selection of strategies. Trading commissions and fees are charged by the\n individual broker. Bad Trader does not charge any fees to its users\n </span>\n <span className=\"h5 haha\"> (even for guac).</span>\n </div>\n </div>\n </div>\n <div className=\"partner-container\">\n <div className=\"tasty-container\">\n <div className=\"tasty-left\">\n <img src={tasty} className=\"tasty-logo\" alt=\"chaseGus\" />\n <div className=\"h5 tagline\">Join the club, genius.</div>\n <a href=\"https://info.tastytrade.com/join-tastytrade?utm_source=119&utm_medium=internal_link\" className=\"long-button\" target=\"_blank\" rel=\"noreferrer\">\n <Button\n buttonStyle=\"rounded-button-light rounded-button-label-light long-button\"\n aria-label={'Download'}\n label=\"Open a tastytrade account\"\n />\n </a>\n <div className=\"legal legal-margin\">\n tastytrade, Inc. (“tastytradeâ€) has entered into a Marketing Agreement with Bad Trader, LLC (“Bad Traderâ€)\n whereby tastytrade pays compensation to Bad Trader to recommend tastytrade’s brokerage services and to\n permit orders to be sent to tastytrade through Bad Trader’s App. Bad Trader and tastytrade are separate,\n but affiliated companies. The existence of this Bad Trader should not be deemed as an endorsement or\n recommendation of Bad Trader by tastytrade and/or any of its other affiliated companies. Neither\n tastytrade nor any of its other affiliated companies is responsible for the privacy practices of Bad\n Trader or its website, programs, or App. tastytrade does not warrant the accuracy or content of the\n products or services offered by Bad Trader or its website, programs, or App.\n </div>\n </div>\n <div className=\"tasty-right\">\n <div className=\"large-500 type-container\" onClick={setExpanded('stock')}>\n <div className=\"h5 type\">\n <div className=\"type-name\">\n <img src={stockExpanded ? chartActive : chart} className=\"trading-icon\" alt=\"chaseGus\" />\n Stocks & ETFs*\n </div>\n <img src={chevronRight} className=\"chevron-right\" alt=\"chaseGus\" />\n </div>\n <div className={`type-text ${stockExpanded && 'text-expanded'}`}>\n Through their tastytrade account, Bad Trader users can buy or sell stocks and ETFs commission-free* and\n in fractional shares.\n </div>\n </div>\n <div className=\"large-500 type-container\" onClick={setExpanded('options')}>\n <div className=\"type\">\n <div className=\"type-name\">\n <img src={optionsExpanded ? graphActive : graph} className=\"trading-icon\" alt=\"chaseGus\" />\n Options\n </div>\n <img src={chevronRight} className=\"chevron-right\" alt=\"chaseGus\" />\n </div>\n <div className={`type-text ${optionsExpanded && 'text-expanded'}`}>\n With a tastytrade margin account, Bad Trader users can utilize a simplified selection of long and short\n options strategies on stocks, ETFs, and broad-based indices.\n </div>\n </div>\n <div className=\"large-500 type-container\" onClick={setExpanded('futures')}>\n <div className=\"type\">\n <div className=\"type-name\">\n <img src={futuresExpanded ? trendActive : trend} className=\"trading-icon\" alt=\"chaseGus\" />\n Futures\n </div>\n <img src={chevronRight} className=\"chevron-right\" alt=\"chaseGus\" />\n </div>\n <div className={`type-text ${futuresExpanded && 'text-expanded'}`}>\n With a tastytrade futures account, Bad Trader users can access futures and get exposure to a range of\n commodities products.\n </div>\n </div>\n <div className=\"legal\">\n *All stock trades incur a clearing fee of $0.0008 per share, and applicable exchange and regulatory fees.\n </div>\n </div>\n </div>\n </div>\n </>\n )\n}\n","var _g;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgLocation(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 22,\n viewBox: \"0 0 20 22\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group 634\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15.3252 4.18663C12.3916 1.32125 7.60687 1.32125 4.67327 4.18663C1.74975 7.04216 1.74953 11.6571 4.67262 14.5129C4.67283 14.5131 4.67306 14.5134 4.67327 14.5136L9.99238 19.6963L10.9689 18.7198C11.2618 18.4269 11.7367 18.4269 12.0295 18.7198C12.3224 19.0127 12.3224 19.4875 12.0295 19.7804L10.5295 21.2804C10.2393 21.5706 9.76977 21.5737 9.47582 21.2873L3.62582 15.5873L3.62516 15.5866C0.0989036 12.1424 0.0989036 6.55782 3.62516 3.11357C7.14156 -0.321058 12.8569 -0.321058 16.3733 3.11357C19.8995 6.55782 19.8995 12.1424 16.3733 15.5866L16.3718 15.5881L13.7468 18.1381C13.4497 18.4267 12.9749 18.4198 12.6863 18.1227C12.3976 17.8256 12.4045 17.3508 12.7016 17.0621L15.3252 14.5136C15.3254 14.5134 15.3256 14.5132 15.3258 14.513C18.2489 11.6572 18.2487 7.04218 15.3252 4.18663Z\",\n fill: \"#928183\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)_2\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.4091 6.64119C8.51123 6.34465 6.91936 7.93652 7.2159 9.8344L7.21661 9.83893L7.21659 9.83893C7.39272 11.0131 8.33695 11.9574 9.51115 12.1335L9.51567 12.1342C11.4136 12.4307 13.0054 10.8388 12.7089 8.94097C12.7072 8.93001 12.7057 8.91903 12.7045 8.90801C12.6481 8.40069 12.4195 7.9352 12.1237 7.58032C11.8586 7.26211 11.9015 6.78919 12.2198 6.52402C12.538 6.25884 13.0109 6.30184 13.2761 6.62005C13.7273 7.16156 14.0968 7.88997 14.1934 8.72565C14.6351 11.62 12.1821 14.0676 9.28633 13.6165C7.46236 13.3419 6.00816 11.8877 5.73353 10.0637C5.28169 7.16258 7.7393 4.70583 10.6407 5.15917C11.0499 5.22312 11.3298 5.60672 11.2659 6.01597C11.202 6.42521 10.8184 6.70514 10.4091 6.64119Z\",\n fill: \"#928183\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLocation);\nexport default __webpack_public_path__ + \"static/media/location.af0d6e3cbf1485cf190efa7a1d7f1e5a.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgTrophy(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 22,\n viewBox: \"0 0 24 22\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group 682\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12.0892 3.49561C12.4006 3.49561 12.6726 3.70577 12.7513 4.007C13.0841 5.28177 13.3498 5.87932 13.7456 6.26596C14.1441 6.65513 14.762 6.91669 16.0698 7.24241C16.3747 7.31834 16.5887 7.59215 16.5887 7.90634C16.5887 8.22053 16.3747 8.49434 16.0698 8.57027C14.762 8.89599 14.1441 9.15756 13.7456 9.54673C13.3498 9.93336 13.0841 10.5309 12.7513 11.8057C12.6726 12.107 12.4005 12.3171 12.0891 12.3171C11.7778 12.317 11.5057 12.1067 11.4272 11.8055C11.322 11.4021 11.2595 11.219 11.2023 11.0885C11.1577 10.9868 11.1163 10.9137 11.0411 10.7809C11.0115 10.7286 10.9767 10.667 10.9343 10.5908C10.7508 10.2605 10.8697 9.84396 11.2 9.6604C11.4626 9.51447 11.7797 9.55974 11.9909 9.75038C12.1999 9.28837 12.4526 8.89687 12.7895 8.5678C13.0641 8.29957 13.3809 8.08633 13.7449 7.90634C13.3809 7.72635 13.0641 7.51311 12.7895 7.24488C12.5037 6.96577 12.2785 6.64174 12.0892 6.26787C11.9 6.64174 11.6748 6.96577 11.389 7.24488C11.0401 7.58567 10.6231 7.83771 10.1277 8.04554C10.1584 8.06788 10.1882 8.08972 10.2171 8.11097C10.315 8.18276 10.4035 8.2477 10.4873 8.30127C10.8057 8.50474 10.8989 8.92782 10.6955 9.24624C10.492 9.56466 10.0689 9.65785 9.75049 9.45438C9.58128 9.34626 9.44544 9.2474 9.32059 9.15654C8.98344 8.91118 8.72638 8.72411 8.1087 8.57027C7.80382 8.49434 7.58984 8.22053 7.58984 7.90634C7.58984 7.59215 7.80382 7.31834 8.1087 7.24241C9.41652 6.91669 10.0344 6.65513 10.4329 6.26596C10.8287 5.87932 11.0944 5.28177 11.4272 4.007C11.5059 3.70577 11.7779 3.49561 12.0892 3.49561Z\",\n fill: \"#928183\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group 681\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)_2\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5.6518 1.68434C5.52952 1.68434 5.45826 1.77682 5.45826 1.85748V7.90565C5.45826 11.3271 8.30237 14.1275 11.8444 14.1275C15.3869 14.1275 18.2306 11.3266 18.2306 7.90565V1.85748C18.2306 1.7768 18.1593 1.68434 18.037 1.68434H16.9612C16.5833 1.68434 16.2769 1.37801 16.2769 1.00013C16.2769 0.622249 16.5833 0.315918 16.9612 0.315918H18.037C18.8851 0.315918 19.599 0.991412 19.599 1.85748V7.90565C19.599 12.1125 16.1122 15.4959 11.8444 15.4959C7.57719 15.4959 4.08984 12.113 4.08984 7.90565V1.85748C4.08984 0.990381 4.80481 0.315918 5.6518 0.315918H14.6246C15.0025 0.315918 15.3088 0.622249 15.3088 1.00013C15.3088 1.37801 15.0025 1.68434 14.6246 1.68434H5.6518Z\",\n fill: \"#928183\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)_3\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M21.8127 4.60058C21.4315 3.67475 20.1117 3.565 19.5801 4.43204C19.3826 4.7542 18.9614 4.85526 18.6392 4.65776C18.317 4.46027 18.216 4.039 18.4135 3.71684C19.5241 1.90521 22.2663 2.10829 23.078 4.07946C24.0747 6.49877 23.1134 9.26062 20.836 10.581C20.5091 10.7705 20.0904 10.6591 19.9009 10.3322C19.7114 10.0053 19.8227 9.58664 20.1497 9.39711C21.8461 8.41358 22.5436 6.37467 21.8128 4.60069L21.8127 4.60058Z\",\n fill: \"#928183\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)_4\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.614442 4.07946C1.42616 2.10829 4.16841 1.90521 5.279 3.71684C5.4765 4.039 5.37543 4.46027 5.05327 4.65776C4.73111 4.85526 4.30985 4.7542 4.11235 4.43204C3.58082 3.565 2.26096 3.67475 1.87976 4.60058L1.87971 4.60069C1.14892 6.37467 1.84641 8.41358 3.54283 9.39711C3.86974 9.58664 3.98111 10.0053 3.79158 10.3322C3.60204 10.6591 3.18339 10.7705 2.85647 10.581C0.579142 9.26064 -0.382158 6.49886 0.614397 4.07957\",\n fill: \"#928183\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)_5\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M11.9616 14.147C12.3394 14.147 12.6458 14.4533 12.6458 14.8312V17.4799C12.6458 17.8578 12.3394 18.1641 11.9616 18.1641C11.5837 18.1641 11.2773 17.8578 11.2773 17.4799V14.8312C11.2773 14.4533 11.5837 14.147 11.9616 14.147Z\",\n fill: \"#928183\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)_6\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.36207 18.5999L7.98477 20.3159H13.3633C13.7412 20.3159 14.0475 20.6223 14.0475 21.0002C14.0475 21.378 13.7412 21.6844 13.3633 21.6844H7.65958C7.08531 21.6844 6.43353 21.2055 6.55347 20.4585C6.55554 20.4456 6.55798 20.4328 6.56078 20.4201L7.06865 18.1101C7.17282 17.5418 7.694 17.2314 8.17065 17.2314H15.7524C16.2299 17.2314 16.7493 17.5428 16.8542 18.1094L17.3623 20.4201C17.365 20.4324 17.3673 20.4447 17.3693 20.4572C17.4913 21.2069 16.8366 21.6844 16.2635 21.6844H15.6458C15.2679 21.6844 14.9616 21.378 14.9616 21.0002C14.9616 20.6223 15.2679 20.3159 15.6458 20.3159H15.9383L15.561 18.5999H8.36207Z\",\n fill: \"#928183\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTrophy);\nexport default __webpack_public_path__ + \"static/media/trophy.595f5ca20315f8a53da97dbfdb0561b0.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgDocument(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 22,\n viewBox: \"0 0 17 22\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group 603\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5.15217 0.71967C5.29282 0.579018 5.48359 0.5 5.6825 0.5H15.4325C15.8467 0.5 16.1825 0.835786 16.1825 1.25V3.9125C16.1825 4.32671 15.8467 4.6625 15.4325 4.6625C15.0183 4.6625 14.6825 4.32671 14.6825 3.9125V2H5.99316L2 5.99316V20H13.0625C13.9592 20 14.6825 19.2723 14.6825 18.38V7.4525C14.6825 7.03829 15.0183 6.7025 15.4325 6.7025C15.8467 6.7025 16.1825 7.03829 16.1825 7.4525V18.38C16.1825 20.0977 14.7908 21.5 13.0625 21.5H1.25C0.835786 21.5 0.5 21.1642 0.5 20.75V5.6825C0.5 5.48359 0.579018 5.29282 0.71967 5.15217L5.15217 0.71967Z\",\n fill: \"#928183\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)_2\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.04688 7.45264C4.04688 7.03842 4.38266 6.70264 4.79688 6.70264H11.8844C12.2986 6.70264 12.6344 7.03842 12.6344 7.45264C12.6344 7.86685 12.2986 8.20264 11.8844 8.20264H4.79688C4.38266 8.20264 4.04688 7.86685 4.04688 7.45264Z\",\n fill: \"#928183\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)_3\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.04688 11C4.04688 10.5858 4.38266 10.25 4.79688 10.25H11.8844C12.2986 10.25 12.6344 10.5858 12.6344 11C12.6344 11.4142 12.2986 11.75 11.8844 11.75H4.79688C4.38266 11.75 4.04688 11.4142 4.04688 11Z\",\n fill: \"#928183\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)_4\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.04688 14.5474C4.04688 14.1331 4.38266 13.7974 4.79688 13.7974H8.33687C8.75109 13.7974 9.08687 14.1331 9.08687 14.5474C9.08687 14.9616 8.75109 15.2974 8.33687 15.2974H4.79688C4.38266 15.2974 4.04688 14.9616 4.04688 14.5474Z\",\n fill: \"#928183\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDocument);\nexport default __webpack_public_path__ + \"static/media/document.815b1ff93613a1c98061b083ee50bf0b.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgEducation(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 18,\n viewBox: \"0 0 22 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group 693\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Union\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.6444 0.839647C10.8664 0.720118 11.1336 0.720118 11.3556 0.839647L21.1056 6.08965C21.3485 6.22046 21.5 6.47409 21.5 6.75C21.5 7.02591 21.3485 7.27954 21.1056 7.41035L11.3556 12.6604C11.1336 12.7799 10.8664 12.7799 10.6444 12.6604L0.894425 7.41035C0.651493 7.27954 0.5 7.02591 0.5 6.75C0.5 6.47409 0.651493 6.22046 0.894425 6.08965L10.6444 0.839647ZM2.83195 6.75L11 11.1482L19.1681 6.75L11 2.35182L2.83195 6.75ZM5.44392 10.535C5.83881 10.66 6.05755 11.0815 5.93251 11.4764C5.81332 11.8528 5.75 12.2564 5.75 12.6675C5.75 13.271 5.88846 13.7332 6.1107 14.0956C6.33421 14.4601 6.66767 14.7647 7.11792 15.012C8.03973 15.5183 9.38958 15.75 11 15.75C12.6112 15.75 13.9609 15.5199 14.8825 15.0146C15.3325 14.7678 15.6658 14.4636 15.8892 14.099C16.1114 13.7363 16.25 13.2733 16.25 12.6675C16.25 12.2495 16.1869 11.8534 16.0675 11.4764C15.9424 11.0815 16.1612 10.66 16.5561 10.535C16.951 10.4099 17.3725 10.6287 17.4975 11.0236C17.6631 11.5466 17.75 12.0955 17.75 12.6675C17.75 13.513 17.553 14.2546 17.1682 14.8827C16.7845 15.5087 16.2393 15.9813 15.6037 16.3298C14.3541 17.0151 12.7038 17.25 11 17.25C9.29542 17.25 7.64527 17.013 6.39583 16.3267C5.76046 15.9778 5.21548 15.5052 4.83195 14.8797C4.44716 14.2521 4.25 13.5115 4.25 12.6675C4.25 12.1036 4.33668 11.5472 4.50249 11.0236C4.62754 10.6287 5.04903 10.4099 5.44392 10.535ZM2 9C2 8.58579 1.66421 8.25 1.25 8.25C0.835786 8.25 0.5 8.58579 0.5 9V14.25C0.5 14.6642 0.835786 15 1.25 15C1.66421 15 2 14.6642 2 14.25V9ZM5 6.75C5 6.33579 5.33579 6 5.75 6H8.87803C9.18691 5.12611 10.0203 4.5 11 4.5C12.2426 4.5 13.25 5.50736 13.25 6.75C13.25 7.99264 12.2426 9 11 9C10.0203 9 9.18691 8.37389 8.87803 7.5H5.75C5.33579 7.5 5 7.16421 5 6.75ZM10.25 6.75C10.25 7.16421 10.5858 7.5 11 7.5C11.4142 7.5 11.75 7.16421 11.75 6.75C11.75 6.33579 11.4142 6 11 6C10.5858 6 10.25 6.33579 10.25 6.75Z\",\n fill: \"#928183\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEducation);\nexport default __webpack_public_path__ + \"static/media/education.49e0115be1fe718c540bdd377bdfddbd.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgSparkle(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 22,\n viewBox: \"0 0 22 22\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group 571\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.68038 0.50002C9.02252 0.502475 9.31962 0.736169 9.40261 1.0681L10.3014 4.66338C10.6119 5.83703 11.5348 6.73388 12.5877 6.96786C12.5941 6.96929 12.6005 6.9708 12.6069 6.97239L16.2069 7.87239C16.5374 7.95502 16.7707 8.25002 16.7749 8.59067C16.7792 8.93132 16.5533 9.23204 16.2249 9.32286L12.6999 10.2979C12.3007 10.4083 11.8876 10.1742 11.7771 9.77494C11.6667 9.37572 11.9008 8.96256 12.3001 8.85214L13.0792 8.63663L12.2522 8.42988C10.6111 8.06086 9.28939 6.71171 8.8497 5.04087L8.84734 5.03192L8.84739 5.0319L8.65343 4.25604L8.42864 5.10332C8.05785 6.74189 6.70984 8.0611 5.04087 8.50031L5.03192 8.50266L5.0319 8.50261L4.25604 8.69657L5.10333 8.92136C6.7419 9.29216 8.0611 10.6402 8.50031 12.3091L8.50266 12.3181L8.50261 12.3181L8.675 13.0077L8.84739 12.3181C9.03501 11.5676 9.48454 10.867 9.89884 10.3699C10.164 10.0517 10.6369 10.0087 10.9551 10.2738C11.2733 10.539 11.3163 11.0119 11.0512 11.3301C10.7155 11.733 10.415 12.2324 10.3026 12.6819L9.40261 16.2819C9.31914 16.6158 9.01915 16.85 8.675 16.85C8.33085 16.85 8.03086 16.6158 7.94739 16.2819L7.04858 12.6866C6.73807 11.513 5.81523 10.6161 4.7623 10.3821C4.75238 10.3799 4.7425 10.3775 4.73267 10.3749L1.05767 9.39992C0.72697 9.31218 0.497564 9.01175 0.50002 8.66962C0.502475 8.32748 0.736169 8.03038 1.0681 7.94739L4.66338 7.04857C5.83703 6.73806 6.73388 5.81523 6.96786 4.7623C6.97007 4.75238 6.97247 4.7425 6.97508 4.73267L7.95008 1.05767C8.03782 0.72697 8.33825 0.497564 8.68038 0.50002Z\",\n fill: \"#928183\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)_2\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16.1766 11C16.5251 11 16.8277 11.2401 16.9069 11.5796L17.4305 13.8234C17.5891 14.4502 18.0513 14.9124 18.6782 15.0711L20.922 15.5946C21.2614 15.6738 21.5016 15.9764 21.5016 16.325C21.5016 16.6736 21.2614 16.9762 20.922 17.0554L18.6782 17.5789C18.0514 17.7376 17.5891 18.1998 17.4305 18.8266L16.9069 21.0704C16.8277 21.4099 16.5251 21.65 16.1766 21.65C15.828 21.65 15.5254 21.4099 15.4462 21.0704L14.9226 18.8267C14.764 18.1998 14.3018 17.7376 13.6749 17.5789L11.4311 17.0554C11.0917 16.9762 10.8516 16.6736 10.8516 16.325C10.8516 15.9764 11.0917 15.6738 11.4311 15.5946L13.6451 15.078C14.316 14.8444 14.7725 14.3552 14.9246 13.8147L15.4462 11.5796C15.5254 11.2401 15.828 11 16.1766 11ZM16.1692 14.7438C15.839 15.4204 15.2725 15.9661 14.5783 16.31C15.2892 16.6268 15.8522 17.1838 16.1766 17.89C16.4958 17.1948 17.0464 16.6443 17.7416 16.325C17.041 16.0033 16.4873 15.4466 16.1692 14.7438Z\",\n fill: \"#928183\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSparkle);\nexport default __webpack_public_path__ + \"static/media/sparkle.32a14faa166eabd6c07f73300de21b5a.svg\";\nexport { ForwardRef as ReactComponent };","import 'styles/about-us.css'\nimport 'styles/text.css'\nimport arrows from 'assets/arrows.gif'\nimport microphone from 'assets/microphone.gif'\nimport eyes from 'assets/eyes.gif'\nimport errol from 'assets/errol.png'\nimport julia from 'assets/julia.png'\nimport thomas from 'assets/thomas.png'\nimport nwa from 'assets/nwa.png'\nimport luis from 'assets/luis.png'\nimport james from 'assets/james.png'\nimport ivan from 'assets/ivan.png'\nimport gus from 'assets/gus.png'\nimport chase from 'assets/chase.png'\nimport errolInactive from 'assets/errol-inactive.png'\nimport juliaInactive from 'assets/julia-inactive.png'\nimport thomasInactive from 'assets/thomas-inactive.png'\nimport nwaInactive from 'assets/nwa-inactive.png'\nimport luisInactive from 'assets/luis-inactive.png'\nimport jamesInactive from 'assets/james-inactive.png'\nimport ivanInactive from 'assets/ivan-inactive.png'\nimport gusInactive from 'assets/gus-inactive.png'\nimport chaseInactive from 'assets/chase-inactive.png'\nimport arrowLeft from 'assets/arrow-left.svg'\nimport location from 'assets/location.svg'\nimport trophy from 'assets/trophy.svg'\nimport chart from 'assets/chart.svg'\nimport document from 'assets/document.svg'\nimport education from 'assets/education.svg'\nimport sparkle from 'assets/sparkle.svg'\nimport Button from 'components/button'\nimport { useEffect, useRef, useState } from 'react'\nimport Contentstack from 'contentstack'\nimport _ from 'lodash'\nimport { Host } from 'lib/contentstack'\nimport { Link } from 'react-router-dom'\nimport bg from 'assets/hostsBackground.jpeg'\nimport Background from 'components/background'\n\nconst hostListOrdered = ['James', 'Thomas', 'Julia', 'Nwachukwu', 'Errol', 'Ivan', 'Gus', 'Chase', 'Luis']\n\nexport default function AboutUs() {\n const stack = Contentstack.Stack({\n api_key: 'blt7dfbfed3d53813b9',\n delivery_token: 'csb410fca7f78a5bb853c98799',\n environment: 'production'\n })\n const [currentIndex, setCurrentIndex] = useState(4)\n const [currentHost, setCurrentHost] = useState(null as Host)\n\n let hostsList = useRef(new Map<string, Host>())\n\n useEffect(() => {\n setCurrentHost(hostsList.current.get(hostListOrdered[currentIndex]))\n }, [hostsList, setCurrentHost, currentIndex])\n\n useEffect(() => {\n stack\n .ContentType('host')\n .Query()\n .toJSON()\n .find()\n .then(\n hosts => {\n hostsList.current = new Map(\n _.compact(hosts[0] as Host[]).map(host => [\n host.name.split(' ')[0],\n { firstName: host.name.split(' ')[0], ...host }\n ])\n ) as Map<string, Host>\n\n setCurrentHost(hostsList.current.get(hostListOrdered[currentIndex]))\n },\n _err => {\n console.error('content stack hosts error')\n }\n )\n .catch(_err => console.error('content stack hosts error'))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const raise = () => {\n if (currentIndex < 8) {\n setCurrentIndex(currentIndex + 1)\n }\n }\n\n const lower = () => {\n if (currentIndex > 0) {\n setCurrentIndex(currentIndex - 1)\n }\n }\n\n return (\n <>\n <Background src={bg} tintColor={'#fdff8f'} />\n <div className=\"header-hosts\">\n <div className=\"h1 header-hosts-text\">\n Meet the\n <br />\n hosts.\n </div>\n <img src={microphone} className=\"microphone\" alt=\"microphone\" />\n <img src={arrows} className=\"arrows\" alt=\"arrows\" />\n </div>\n <div className=\"hosts-container\">\n <div className=\"carousel-container\">\n <div className=\"carousel-left\" onClick={lower} />\n <div className=\"carousel-right\" onClick={raise} />\n <img src={arrowLeft} className=\"arrow-left left-arrow\" alt=\"arrow-left\" />\n <img\n src={arrowLeft}\n className=\"arrow-left flipped\"\n alt=\"arrow-right\"\n onClick={() => setCurrentIndex(currentIndex + 1)}\n />\n <div className=\"slider-container\">\n <div\n className=\"slider\"\n style={{\n transform: `translateX(${\n (currentIndex - 1) * -10 +\n (currentIndex < 4 ? 2 + Math.abs(4 - currentIndex) : -Math.abs(4 - currentIndex))\n }%) translateX(0px)`\n }}\n >\n <div className={`carousel-item pos-${currentIndex > 4 ? 4 : Math.abs(currentIndex)}`}>\n <img src={currentIndex === 0 ? james : jamesInactive} className=\"headshot\" alt=\"james\" />\n </div>\n <div className={`carousel-item pos-${currentIndex > 5 ? 4 : Math.abs(1 - currentIndex)}`}>\n <img src={currentIndex === 1 ? thomas : thomasInactive} className=\"headshot\" alt=\"thomas\" />\n </div>\n <div className={`carousel-item pos-${currentIndex > 6 ? 4 : Math.abs(2 - currentIndex)}`}>\n <img src={currentIndex === 2 ? julia : juliaInactive} className=\"headshot\" alt=\"julia\" />\n </div>\n <div className={`carousel-item pos-${currentIndex > 7 ? 4 : Math.abs(3 - currentIndex)}`}>\n <img src={currentIndex === 3 ? nwa : nwaInactive} className=\"headshot\" alt=\"nwa\" />\n </div>\n <div className={`carousel-item pos-${Math.abs(4 - currentIndex)}`}>\n <img src={currentIndex === 4 ? errol : errolInactive} className=\"headshot\" alt=\"errol\" />\n </div>\n <div className={`carousel-item pos-${currentIndex < 1 ? 4 : Math.abs(5 - currentIndex)}`}>\n <img src={currentIndex === 5 ? ivan : ivanInactive} className=\"headshot\" alt=\"ivan\" />\n </div>\n <div className={`carousel-item pos-${currentIndex < 2 ? 4 : Math.abs(6 - currentIndex)}`}>\n <img src={currentIndex === 6 ? gus : gusInactive} className=\"headshot\" alt=\"gus\" />\n </div>\n <div className={`carousel-item pos-${currentIndex < 3 ? 4 : Math.abs(7 - currentIndex)}`}>\n <img src={currentIndex === 7 ? chase : chaseInactive} className=\"headshot\" alt=\"chase\" />\n </div>\n <div className={`carousel-item pos-${currentIndex < 4 ? 4 : Math.abs(8 - currentIndex)}`}>\n <img src={currentIndex === 8 ? luis : luisInactive} className=\"headshot\" alt=\"luis\" />\n </div>\n </div>\n </div>\n </div>\n <div className=\"details-container\">\n <div className=\"details-left\">\n <div\n className=\"h2 name\"\n style={{ color: currentHost?.colors.neon, textShadow: `0px 0px 20px ${currentHost?.colors.glow}` }}\n >\n {currentHost?.firstName}.\n </div>\n <div className=\"section-container\">\n <div className=\"large-600 section-label\">\n <img src={location} className=\"section-icon\" alt=\"errol\" />\n Hometown\n </div>\n <div className=\"large-500 section-data\" style={{ color: currentHost?.colors.neon }}>\n {currentHost?.hometown}\n </div>\n </div>\n <div className=\"section-container\">\n <div className=\"large-600 section-label\">\n <img src={trophy} className=\"section-icon\" alt=\"errol\" />\n Top Expertise\n </div>\n <div className=\"large-500 section-data\" style={{ color: currentHost?.colors.neon }}>\n {currentHost?.top_expertises.replaceAll(',', ', ')}\n </div>\n </div>\n <div className=\"section-container\">\n <div className=\"large-600 section-label\">\n <img src={chart} className=\"section-icon\" alt=\"errol\" />\n Trading Style\n </div>\n <div className=\"large-500 section-data\" style={{ color: currentHost?.colors.neon }}>\n {currentHost?.strategies.replaceAll(',', ', ')}\n </div>\n </div>\n <div className=\"section-container\">\n <div className=\"large-600 section-label\">\n <img src={document} className=\"section-icon\" alt=\"errol\" />\n Background\n </div>\n <div className=\"large-500 section-data\" style={{ color: currentHost?.colors.neon }}>\n {currentHost?.background_experience}\n </div>\n </div>\n <div className=\"section-container\">\n <div className=\"large-600 section-label\">\n <img src={education} className=\"section-icon\" alt=\"errol\" />\n Education\n </div>\n <div className=\"large-500 section-data\" style={{ color: currentHost?.colors.neon }}>\n {currentHost?.education}\n </div>\n </div>\n <div className=\"section-container\">\n <div className=\"large-600 section-label\">\n <img src={sparkle} className=\"section-icon\" alt=\"errol\" />\n Fun Facts\n </div>\n <div className=\"large-500 section-data\" style={{ color: currentHost?.colors.neon }}>\n {currentHost?.personal_description}\n </div>\n </div>\n </div>\n <div className=\"details-right\">\n <div className=\"h4 favorite-header\">Favorite...</div>\n <div className=\"small-400 favorite-container favorite-data\">\n <div className=\"small-600 favorite-label favorite-left\">Food</div>\n {_.get(currentHost, 'favorites.food')}\n </div>\n <div className=\"small-400 favorite-container favorite-data\">\n <div className=\"small-600 favorite-label favorite-left\">Travel Destination</div>\n {_.get(currentHost, 'favorites.destination')}\n </div>\n <div className=\"small-400 favorite-container favorite-data\">\n <div className=\"small-600 favorite-label favorite-left\">Movie</div>\n {_.get(currentHost, 'favorites.movie')}\n </div>\n <div className=\"small-400 favorite-container favorite-data\">\n <div className=\"small-600 favorite-label favorite-left\">Music</div>\n {_.get(currentHost, 'favorites.music')}\n </div>\n <div className=\"small-400 favorite-container favorite-data\">\n <div className=\"small-600 favorite-label favorite-left\">Game</div>\n {_.get(currentHost, 'favorites.game')}\n </div>\n <div className=\"small-400 favorite-container favorite-data\">\n <div className=\"small-600 favorite-label favorite-left\">Animal</div>\n {_.get(currentHost, 'favorites.animal')}\n </div>\n <div className=\"small-400 favorite-container favorite-data\">\n <div className=\"small-600 favorite-label favorite-left\">Sport</div>\n {_.get(currentHost, 'favorites.sport')}\n </div>\n <div className=\"small-400 favorite-container favorite-data\">\n <div className=\"small-600 favorite-label favorite-left\">Ticker</div>\n {_.get(currentHost, 'favorites.ticker')}\n </div>\n </div>\n </div>\n </div>\n <div className=\"help-wanted-container\">\n <div className=\"help-wanted-left\">\n <div className=\"h2 help-wanted-header\">Want to become a host?</div>\n <div>\n <div className=\"h5 help-wanted-subheader\">Answer this questionnaire and then we’ll talk.</div>\n <Link to=\"/host-application\">\n <Button\n buttonStyle=\"rounded-button-light rounded-button-label-light long-button button-host\"\n aria-label=\"host-app\"\n label=\"I want to be a Host\"\n />\n </Link>\n </div>\n </div>\n <div className=\"help-wanted-right\">\n <img src={eyes} className=\"eyes\" alt=\"eyes\" />\n </div>\n </div>\n </>\n )\n}\n","import 'styles/faq.css'\nimport 'styles/text.css'\nimport arrowDown from 'assets/arrow-down.gif'\nimport arrowLeft from 'assets/arrow-left.svg'\nimport confused from 'assets/confused.gif'\nimport BTABroker from 'assets/BTABroker.gif'\nimport Fees from 'assets/Fees.gif'\nimport SendMail from 'assets/SendMail.gif'\nimport StartingOnBT from 'assets/StartingOnBT.gif'\nimport WhatsTheDifference from 'assets/WhatsTheDifference.gif'\nimport WhatisBadTrader from 'assets/WhatisBadTrader.gif'\nimport WhatArePoints from 'assets/WhatArePoints.gif'\nimport { useState } from 'react'\nimport Button from 'components/button'\nimport Background from 'components/background'\nimport bg from 'assets/faq-background.jpeg'\n\nexport default function Faq() {\n return (\n <>\n <Background src={bg} tintColor={'#8ff2ff'} />\n <div className=\"header-faq\">\n <div className=\"h1 header-text-faq\">Some stuff we're frequently asked.</div>\n <div className=\"faq-description-container\">\n <div className=\"h3 faq-description-content\">How many cheeseburgers wide is the Earth?</div>\n </div>\n <img src={arrowDown} className=\"arrow-down\" alt=\"arrows\" />\n </div>\n <div className=\"content-faq\">\n <div className=\"faq-container\">\n <FAQRow\n title=\"What is Bad Trader\"\n text=\"Bad Trader is an app that offers daily livestreams and chat, and will offer users the ability to connect\n to their brokerage account. In the future, users can also earn daily rewards, accumulate points, lose\n all your points on a bet that goes south, and experiment with speculation without risking anything but\n your time and dignity.\"\n src={WhatisBadTrader}\n />\n <FAQRow\n title=\"What are points?\"\n text=\"Points are in-app currency you accumulate by watching streams, completing polls, and hanging with the\n inmates. They have no monetary value or cash equivalence, but with points, users can buy chat rewards,\n upgrade your profile or wager them straight to the moon.\"\n src={WhatArePoints}\n />\n <FAQRow\n title=\"How do I get started on Bad Trader?\"\n text=\"To use the full extent of the Bad Trader app, you’ll need to either open a brokerage account or log into\n an existing account through one of our brokerage affiliates. Not ready to trade just yet? Lurkers\n welcome! Users with engagement-only accounts can still access all non-trading features on Bad Trader\n such as stream and chat.\"\n src={StartingOnBT}\n />\n <FAQRow\n title=\"Is Bad Trader a broker?\"\n text=\"Bad Trader is not a broker-dealer. Bad Trader is an application that connects electronically to certain\n brokers through those brokers’ APIs. The Bad Trader app allows users to (i) send messages to those\n brokers that contain orders and (ii) view certain information about their brokerage accounts at those\n brokers. Bad Trader does not execute or get involved with your trades or your brokerage account. Check\n out the Trade page for more information on the specific brokers that users can connect to through the\n Bad Trader app.\"\n src={BTABroker}\n />\n <FAQRow\n title=\"What’s the difference between my broker and Bad Trader?\"\n text=\"Bad Trader is not a broker-dealer. Bad Trader is an application that connects electronically to certain\n brokers through those brokers’ APIs. The Bad Trader app allows users to (i) send messages to those\n brokers that contain orders and (ii) view certain information about their brokerage accounts at those\n brokers. Bad Trader does not execute or get involved with your trades or your brokerage account. Check\n out the Trade page for more information on the specific brokers that users can connect to through the\n Bad Trader app.\"\n src={WhatsTheDifference}\n />\n <FAQRow\n title=\"Where do I send my support questions?\"\n text=\"Because Bad Trader does not hold your account or execute your orders, our support team cannot answer any\n support questions pertaining to your broker, your orders, your brokerage account, or your ability to\n trade. We can answer questions pertaining to our platform (such as why chat isn’t working or why your\n points are not updating), but any questions pertaining to your brokerage account, orders, fills, or\n quotes should be directed to your broker.\"\n src={SendMail}\n />\n <FAQRow\n title=\"What kind of fees can I expect?\"\n text=\"Trading fees and commissions are charged by the broker. Bad Trader is not a broker-dealer and does not\n charge any additional fees to its users. To learn more about the fees your broker charges, check out\n their applicable commissions and fees on their website.\"\n src={Fees}\n />\n </div>\n <div className=\"h4 faq-container-footer\">\n <div className=\"faq-row remove-border\">\n <div className=\"faq-header-container faq-header-container-confused\">\n <img src={confused} className=\"confused\" alt=\"confused\" />\n Are you still absolutely confused as hell?\n </div>\n </div>\n <Button\n buttonStyle=\"rounded-button-light rounded-button-label-light contact-us\"\n aria-label={'Download'}\n label=\"Contact Us\"\n />\n </div>\n </div>\n </>\n )\n}\n\nfunction FAQRow({ title, text, src }) {\n const [expanded, setExpanded] = useState(false)\n\n return (\n <div className=\"faq-row\">\n <div className=\"faq-header-container\" onClick={() => setExpanded(!expanded)}>\n <div className={`h4 faq-header ${expanded && 'highlighted-header'}`}>{title}</div>\n <img src={arrowLeft} className={`arrow-right-faq mirror ${expanded && 'arrow-animate-faq'}`} alt=\"arrows\" />\n </div>\n <div className={`faq-item ${expanded && 'faq-animate-open'}`}>\n <div className=\"large-600 faq-text\">{text}</div>\n <div className=\"animation-container\">\n <img src={src} className=\"faq-animation\" alt=\"arrows\" />\n </div>\n </div>\n </div>\n )\n}\n","import 'styles/privacy-policy.css'\nimport 'styles/text.css'\nimport React from 'react'\nimport { Link } from 'react-router-dom'\n\nexport default function PrivacyPolicy() {\n React.useEffect(() => {\n window.location.replace('http://www.badtrader.squarespace.com/s/Bad-Trader-Privacy-Policy-SEPT-2024.docx')\n }, [])\n \n return (\n <>\n <div className=\"pp-page\">\n {/* <div className=\"h1 pp-header\">Bad Trader Privacy Policy.</div>\n <div className=\"h5 pp-date\">Last Updated: 05/09/2023</div>\n <div className=\"h5 pp-reminder\">\n Bad Trader, LLC (collectively “Bad Trader,†“we,†“us,†or “ourâ€) is a media platform providing live and\n on-demand interactive video programming and chat forums about topics including but not limited to financial\n markets, trading, sports, entertainment, and other newsworthy subject matter. This Privacy Policy is designed\n to help you understand how we collect, use, process, and share your personal information, and to help you\n understand and exercise your privacy rights.\n </div>\n <div className=\"pp-row-container\">\n <PolicyRow tag={'1'} text=\"1. SCOPE AND UPDATES TO THIS PRIVACY POLICY\" />\n <PolicyRow tag={'2'} text=\"2. PERSONAL INFORMATION WE COLLECT\" />\n <PolicyRow tag={'3'} text=\"3. HOW WE USE YOUR PERSONAL INFORMATION\" />\n <PolicyRow tag={'4'} text=\"4. HOW WE DISCLOSE YOUR PERSONAL INFORMATION\" />\n <PolicyRow tag={'5'} text=\"5. YOUR PRIVACY CHOICE AND RIGHTS\" />\n <PolicyRow tag={'6'} text=\"6. SECURITY OF YOUR INFORMATION\" />\n <PolicyRow tag={'7'} text=\"7. INTERNATIONAL DATA TRANSFERS\" />\n <PolicyRow tag={'8'} text=\"8. RETENTION OF PERSONAL INFORMATION\" />\n <PolicyRow\n tag={'9'}\n text=\"9. ADDITIONAL INFORMATION FOR RESIDENTS OF CALIFORNIA, VIRGINIA, CONNECTICUT, UTAH, AND COLORADO...\"\n />\n <PolicyRow tag={'9A'} text=\"A. PERSONAL INFORMATION WE COLLECT AND SHARE\" />\n <PolicyRow tag={'9B'} text=\"B. USE OF PERSONAL INFORMATION\" />\n <PolicyRow tag={'9C'} text=\"C. SALE/SHARING OF PERSONAL INFORMATION\" />\n <PolicyRow tag={'9D'} text=\"D. YOUR RIGHTS AND CHOICES\" />\n <PolicyRow tag={'10'} text=\"10. SUPPLEMENTAL NOTICE FOR RESIDENTS OF NEVADA\" />\n <PolicyRow tag={'11'} text=\"11. CHILDREN’S INFORMATION\" />\n <PolicyRow tag={'12'} text=\"12. OTHER PROVISIONS\" />\n <PolicyRow tag={'13'} text=\"13. CONTACT US\" />\n </div>\n <div className=\"pp-content-container\">\n <PolicyContainer\n id=\"1\"\n title=\"1. SCOPE AND UPDATES TO THIS PRIVACY POLICY\"\n content={\n <div className=\"large-600 pp-text\">\n This Privacy Policy applies to personal information processed by Bad Trader, including on our websites,\n mobile applications, software, and other online or offline offerings. To make this Privacy Policy easier\n to read, our websites, platform, mobile applications, software, and other offerings are collectively\n referred to here as the “Services.â€\n <br />\n <br />\n <span className=\"large-600 pp-text-highlight\">Changes to our Privacy Policy.</span> We may revise this\n Privacy Policy from time to time in our sole discretion. If there are any material changes to this\n Privacy Policy, we will notify you as required by applicable law. You understand and agree that you will\n be deemed to have accepted the updated Privacy Policy if you continue to use our Services after the new\n Privacy Policy takes effect.\n </div>\n }\n />\n <PolicyContainer\n id=\"2\"\n title=\"2. PERSONAL INFORMATION WE COLLECT\"\n content={\n <div className=\"large-600 pp-text\">\n The categories of personal information we collect depend on how you interact with us, our Services, and\n the requirements of applicable law. Generally speaking, we collect personal information that you provide\n to us, information we obtain automatically when you use our Services, and information from other sources\n such as third-party services and organizations. See below for more details regarding each category.\n <br />\n <br />\n <div className=\"pp-margin\">\n <span className=\"h5 pp-text-subheader\">A. Personal Information You Provide to Us Directly</span>\n <br />\n <br />\n We may collect personal information that you provide to us, such as:\n <br />\n <br />\n <span className=\"large-600 pp-text-highlight\">Account Creation.</span> We may collect personal\n information when you create an account, such as your email address, age, password, optional phone\n number for multi-factor authentication, and the username you will present to other users.\n <br />\n <br />\n <span className=\"large-600 pp-text-highlight\">Third-Party Services Information.</span> Our platform\n may allow you to connect to an existing thirdparty account that you control, such as a brokerage\n account, in order to access certain features. Although by default we do not store your third-party’s\n login credentials or any banking/payment information, we do maintain metrics that track your\n communications with that third party while using our platform.\n <br />\n <br />\n <span className=\"large-600 pp-text-highlight\"> Interactive Features.</span> We and others who use our\n Services may collect personal information that you submit or make available through our interactive\n features, including but not limited to realtime chat communications made in connection with our video\n content. For example, our Services may include an “About Me†page, where you can choose to share your\n milestones and progress with other users and/or select an avatar image. Any information you provide\n using the public sharing features of the Services will be considered “public,†unless otherwise\n required by applicable law, and is not subject to the privacy protections referenced herein. Please\n exercise caution before revealing any information that may identify you in the real world to other\n users.\n <br />\n <br />\n <span className=\"large-600 pp-text-highlight\">Your Communications with Us.</span> We may collect\n personal information, such as email address, phone number, or mailing address when you request\n information about our Services, register for our newsletter or text message alerts, request customer\n or technical support, or otherwise communicate with us. Surveys and Polls. We may contact you to\n participate in surveys or polls. If you decide to participate, we may collect personal information\n from you in connection with the survey or poll.\n <br />\n <br />\n <span className=\"large-600 pp-text-highlight\">Promotions, Sweepstakes or Contests.</span> We may\n collect personal information you provide for any promotions, sweepstakes, or contests that we offer.\n In some jurisdictions, we are required to publicly share information of promotion, sweepstakes, and\n contest winners.\n <br />\n <br />\n <span className=\"large-600 pp-text-highlight\">Conferences, Trade Shows, and Other Events.</span> We\n may collect personal information from individuals when we attend or host conferences, trade shows, and\n other events.\n <br />\n <br />\n <span className=\"large-600 pp-text-highlight\">\n Business Development and Strategic Partnerships.\n </span>{' '}\n We may collect personal information from individuals and third parties to assess and pursue potential\n business opportunities.\n <br />\n <br />\n <span className=\"large-600 pp-text-highlight\">Job Applications.</span> We may post job openings and\n opportunities on our Services. If you respond to one of these postings, we may collect your personal\n information, such as your application, CV, cover letter, and/or any other information you provide to\n us.\n <br />\n <br />\n <span className=\"pp-text-subheader\">B. Personal Information Collected Automatically</span>\n <br />\n <br />\n <span className=\"pp-margin-0\">\n We may collect personal information that you provide to us, such as:\n </span>\n <br />\n <br />\n <span className=\"large-600 pp-text-highlight\">Automatic Collection of Personal Information.</span> We\n may collect certain information automatically when you use our Services, such as your Internet\n Protocol (IP) address, user settings, MAC address, cookie identifiers, mobile carrier, mobile\n advertising and other unique identifiers, browser or device information, location information\n (including approximate location derived from IP address), and Internet service provider. We may also\n automatically collect information regarding your use of our Services, such as pages that you visit\n before, during and after using our Services, information about the links you click, the types of\n content you interact with, the frequency and duration of your activities, and other information about\n how you use our Services.\n <br />\n <br />\n <div className=\"pp-margin-2\">\n <span className=\"large-600 pp-text-highlight\">Crash Reports.</span> If you provide crash reports, we\n may collect personal information related to such crash reports, including detailed diagnostic\n information about your device and the activities that led to the crash.\n </div>\n <br />\n <span className=\"large-600 pp-text-highlight\">\n Cookies and Other Technologies (Cookie Policy).\n </span>{' '}\n We, as well as third parties that provide content, advertising, or other functionality on our\n Services, may use cookies, pixel tags, and other technologies (collectively, “Technologiesâ€) to\n automatically collect information through your use of our Services.\n <br />\n <br />\n <div className=\"pp-margin-2\">\n <span className=\"large-600 pp-text-highlight\">Cookies.</span> Cookies are small text files placed in\n device browsers that store preferences and facilitate and enhance your experience.\n <br />\n <br />\n <span className=\"large-600 pp-text-highlight\">Pixel Tags/Web Beacons.</span> A pixel tag (also known\n as a web beacon) is a piece of code embedded in our Services that collects information about\n engagement on our Services. The use of a pixel tag allows us to record, for example, that a user has\n visited a particular web page or clicked on a particular advertisement. We may also include web\n beacons in e-mails to understand whether messages have been opened, acted on, or forwarded.{' '}\n </div>\n <br />\n <span className=\"pp-margin-0\">\n Our uses of these Technologies fall into the following general categories:\n </span>\n <br />\n <br />\n <span className=\"large-600 pp-text-highlight\">Operationally Necessary.</span> This includes\n Technologies that allow you access to our Services, applications, and tools that are required to\n identify irregular website behavior, prevent fraudulent activity, improve security, or allow you to\n make use of our functionality;\n <br />\n <br />\n <span className=\"large-600 pp-text-highlight\">Performance-Related.</span> We may use Technologies to\n assess the performance of our Services, including as part of our analytic practices to help us\n understand how individuals use our Services (see Analytics below);\n <br />\n <br />\n <span className=\"large-600 pp-text-highlight\">Functionality-Related.</span> We may use Technologies\n that allow us to offer you enhanced functionality when accessing or using our Services. This may\n include identifying you when you sign into our Services or keeping track of your specified\n preferences, interests, or past items viewed;\n <br />\n <br />\n <span className=\"large-600 pp-text-highlight\">Advertising- or Targeting-Related.</span> We may use\n first party or third-party Technologies to deliver content, including ads relevant to your interests,\n on our Services or on third-party digital properties.\n <br />\n <br />\n <div className=\"pp-margin-0\">\n Some of the advertising Technologies we use include, but are not limited to Meta, Google, AppLovin,\n LiveRamp, Criteo, Microsoft, and their partners. Click each partner’s name for more information\n regarding their privacy practices.\n <br />\n <br />\n See <HashLink>“Your Privacy Choices and Rightsâ€</HashLink> below to understand your choices\n regarding these Technologies.\n </div>\n <br />\n <span className=\"large-600 pp-text-highlight\">Analytics.</span> We may use Technologies and other\n third-party tools to process analytics information on our Services. These Technologies allow us to\n better understand how our digital Services are used and to continually improve and personalize our\n Services. Some of our analytics partners include:\n <br />\n <br />\n <div className=\"pp-margin-2\">\n <span className=\"large-600 pp-text-highlight\">Firebase/Google Analytics.</span> For more information\n about how Google uses your personal information (including for its own purposes, e.g., for profiling\n or linking it to other data), please visit Google Analytics’ Privacy Policy. To learn more about how\n to opt-out of Google Analytics’ use of your information, please click here.\n </div>\n <br />\n <span className=\"large-600 pp-text-highlight\">Social Media Platforms.</span> Our Services may contain\n social media buttons, such as Twitter, Instagram, TikTok, and YouTube, which might include widgets\n such as the “share this†button or other interactive mini programs). These features may collect\n personal information such as your IP address and which page you are visiting on our Services, and may\n set a cookie to enable the feature to function properly. Your interactions with these platforms are\n governed by the privacy policy of the company providing it.\n <br />\n <br />\n <span className=\"pp-text-subheader\">C. Personal Information Collected from Other Sources</span>\n <br />\n <br />\n </div>\n <span className=\"large-600 pp-text-highlight\">Third-Party Services and Sources.</span> We may obtain\n personal information about you from other sources, including through third-party services and\n organizations. For example, if you access our Services through a third-party application, such as an app\n store, a third-party login service, or a social networking site, we may collect personal information\n about you from that third-party application that you have made available via your privacy settings.\n <br />\n <br />\n <span className=\"large-600 pp-text-highlight\">Referrals and Sharing Features.</span> Our Services may\n offer various tools and functionalities that allow you to provide personal information about your\n friends through our referral service. Our referral services may also allow you to forward or share\n certain content with a friend or colleague, such as an email inviting your friend to use our Services.\n Please only share with us contact information of people with whom you have a relationship (e.g.,\n relative, friend, neighbor, or co-worker).\n </div>\n }\n />\n <PolicyContainer\n id=\"3\"\n title=\"3. HOW WE USE YOUR PERSONAL INFORMATION\"\n content={\n <div className=\"large-600 pp-text\">\n We use your personal information for a variety of business purposes, including to provide our Services,\n for administrative purposes, and to market our products and Services, as described below.\n <br />\n <br />\n <div className=\"pp-margin\">\n <span className=\"pp-text-subheader\">A. Provide Our Services</span>\n <br />\n <br />\n We use your information to fullfil our contract with you and provide you with our Services, such as:\n </div>\n <br />\n • Managing your information and accounts;\n <br />\n • Providing access to certain areas, functionalities, and features of our Services;\n <br />\n • Answering requests for customer or technical support;\n <br />\n • Communicating with you about your account, activities on our Services, and policy\n <br />\n • Processing your financial information and other payment methods for products or Services purchased;\n <br />\n • Processing applications if you apply for a job we post on our Services;\n <br />\n • Allowing you to register for promotions and events.\n <br />\n <br />\n <span className=\"pp-text-subheader pp-margin\">B. Administrative Purposes</span>\n <br />\n <br />\n We use your information for various administrative purposes, such as:\n <br />\n <br />\n <div className=\"pp-margin\">\n • Pursuing our legitimate interests such as direct marketing, research, and development (including\n marketing research), network and information security, and fraud prevention;\n <br />\n • Detecting security incidents, protecting against malicious, deceptive, fraudulent, or illegal\n activity, and prosecuting those responsible for that activity;\n <br />\n • Measuring interest and engagement in our Services;\n <br />\n • Short-term, transient use, such as contextual customization of ads;\n <br />\n • Improving, upgrading, or enhancing our Services;\n <br />\n • Developing new products and services;\n <br />\n • Ensuring internal quality control and safety;\n <br />\n • Authenticating and verifying individual identities, including requests to exercise your rights under\n this Privacy Policy;\n <br />\n • Debugging to identify and repair errors with our Services;\n <br />\n • Auditing relating to interactions, transactions, and other compliance activities;\n <br />\n • Sharing personal information with third parties as needed to provide the Services;\n <br />\n • Enforcing our agreements and policies; and\n <br />\n • Carrying out activities that are required to comply with our legal obligations.\n <br />\n <br />\n <span className=\"pp-text-subheader\">C. Marketing and Advertising our Products and Services</span>\n </div>\n <br />\n We may use personal information to tailor and provide you with content and advertisements. We may\n provide you with these materials as permitted by applicable law.\n <br />\n <br />\n Some of the ways we market to you include email campaigns, custom audiences advertising, and\n “interest-based†or “personalized advertising,†including through cross-device tracking.\n <br />\n <br />\n If you have any questions about our marketing practices or if you would like to opt out of the use of\n your personal information for marketing purposes, you may contact us at any time as set forth in “\n <HashLink>Contact Us</HashLink>†below.\n <br />\n <br />\n <span className=\"pp-text-subheader pp-margin\">D. With Your Consent</span>\n <br />\n <br />\n We may use personal information for other purposes that are clearly disclosed to you at the time you\n provide personal information or with your consent.\n <br />\n <br />\n <span className=\"pp-text-subheader pp-margin\">E. Other Purposes</span>\n <br />\n <br />\n We also use your personal information for other purposes as requested by you or as permitted by\n applicable law.\n <br />\n <br />\n <div className=\"pp-margin\">\n <span className=\"large-600 pp-text-highlight\">Automated Decision Making.</span> We may engage in\n automated decision making, including profiling. For example, we may engage in automated decision\n making to recommend certain videos for you to watch on our Services. Bad Trader’s processing of your\n personal information will not result in a decision based solely on automated processing that\n significantly affects you unless such a decision is necessary as part of a contract we have with you,\n we have your consent, or we are permitted by law to engage in such automated decision making. If you\n have questions about our automated decision making, you may contact us as set forth in “Contact Usâ€\n below.\n <br />\n <br />\n <span className=\"large-600 pp-text-highlight\">De-identified and Aggregated Information.</span> We may\n use personal information to create deidentified and/or aggregated information (for example, aggregate\n reports detailing the total number of users we have in a given jurisdiction). We may share those\n de-identified/aggregated records with third parties, including our advertising partners.\n </div>\n </div>\n }\n />\n <PolicyContainer\n id=\"4\"\n title=\"4. HOW WE DISCLOSE YOUR PERSONAL INFORMATION\"\n content={\n <div className=\"large-600 pp-text\">\n We disclose your personal information to third parties for a variety of business purposes, including to\n provide our Services, to protect us or others, or in the event of a major business transaction such as a\n merger, sale, or asset transfer, as described below.\n <br />\n <br />\n <div className=\"pp-margin\">\n <span className=\"pp-text-subheader\">A. Disclosures to Provide our Services</span>\n <br />\n <br />\n <span className=\"large-600 pp-text-highlight\">Service Providers.</span> We may share your personal\n information with our third-party service providers and vendors that assist us with the provision of\n our Services. This includes but is not limited to service providers and vendors that provide us with\n IT support, hosting, payment processing, customer service, and related services.\n <br />\n <br />\n <span className=\"large-600 pp-text-highlight\">Business Partners.</span> We may share your personal\n information with business partners to provide you with a product or service you have requested. We may\n also share your personal information with business partners with whom we jointly offer products or\n services.\n <br />\n <br />\n <span className=\"large-600 pp-text-highlight\">Affiliates.</span> We may share your personal\n information with our company affiliates (our “Affiliatesâ€) for our administrative purposes, IT\n management, or for them to provide services to you or support and supplement the Services we provide.\n <br />\n <br />\n <span className=\"large-600 pp-text-highlight\">\n Other Users or Third Parties You Share or Interact With.\n </span>{' '}\n As described above in “Personal Information We Collect,†our Services may allow you to share personal\n information or interact with other users and third parties (including individuals and third parties\n who do not use our Services and the general public).\n <br />\n <br />\n <span className=\"large-600 pp-text-highlight\">Advertising Partners.</span> We may share your personal\n information with third-party advertising partners. These third-party advertising partners may set\n Technologies and other tracking tools on our Services to collect information regarding your activities\n and your device (e.g., your IP address, cookie identifiers, page(s) visited, location, time of day).\n These advertising partners may use this information (and similar information collected from other\n services) for purposes of delivering personalized advertisements to you when you visit digital\n properties within their networks. This practice is commonly referred to as “interest-based\n advertising†or “personalized advertising.â€\n </div>\n <br />\n <span className=\"large-600 pp-text-highlight\">APIs/SDKs.</span> We may use third-party application\n program interfaces (“APIsâ€) and software development kits (“SDKsâ€) as part of the functionality of our\n Services. For more information about our use of APIs and SDKs, please contact us as set forth in\n “Contact Us†below.\n <br />\n <br />\n <span className=\"pp-text-subheader\">B. Disclosures to Protect Us or Others</span>\n <br />\n <br />\n <div className=\"pp-margin\">\n We may access, preserve, and disclose any information we store associated with you to external parties\n if we, in good faith, believe doing so is required or appropriate to: comply with law enforcement or\n national security requests and legal process, such as a court order or subpoena; protect your, our, or\n others’ rights, property, or safety; enforce our policies or contracts; collect amounts owed to us; or\n assist with an investigation or prosecution of suspected or actual illegal activity.\n </div>\n <br />\n <span className=\"pp-text-subheader\">\n C. Disclosure in the Event of Merger, Sale, or Other Asset Transfers\n </span>\n <br />\n <br />\n <div className=\"pp-margin\">\n If we are involved in an actual or proposed merger, acquisition, financing due diligence,\n reorganization, bankruptcy, receivership, purchase, or sale of assets or all or parts of our business,\n or transition of service to another provider, your information may be sold or transferred in\n connection with such a transaction, as permitted by law and/or contract.\n </div>\n </div>\n }\n />\n <PolicyContainer\n id=\"5\"\n title=\"5. YOUR PRIVACY CHOICES AND RIGHTS\"\n content={\n <div className=\"large-600 pp-text\">\n <span className=\"large-600 pp-text-highlight\">Your Privacy Choices.</span> The privacy choices you may\n have about your personal information are determined by applicable law and are described below.\n </div>\n }\n />\n </div> */}\n </div>\n </>\n )\n}\n\nexport function PolicyRow({ text, tag }) {\n return (\n <div className=\"h5 pp-row\">\n <div className=\"pp-row-val\">{text}</div>\n <div className=\"pp-line\"></div>\n <Link to={`/privacy-policy#${tag}`}>\n <div className=\"large-600 pp-go-to\">Go To</div>\n </Link>\n </div>\n )\n}\n\nexport function PolicyContainer({ title, content, id }) {\n return (\n <div className=\"pp-container\" id={id}>\n <div className=\"h4 pp-context-header\">{title}</div>\n {content}\n </div>\n )\n}\n","import { Types } from 'ably'\nimport arrowLeft from 'assets/arrow-left.svg'\nimport Loader from 'components/loader'\nimport Contentstack from 'contentstack'\nimport { ConnectionState, getMessage } from 'lib/ably'\nimport { ChannelDto, EMPTY_PROFILE, UserStatus } from 'lib/cognito'\nimport { Channel, Host, ScheduledShow, Show } from 'lib/contentstack'\nimport _ from 'lodash'\nimport moment from 'moment'\nimport { useEffect, useLayoutEffect, useRef, useState } from 'react'\nimport { useCookies } from 'react-cookie'\nimport { useOutletContext } from 'react-router-dom'\nimport 'styles/text.css'\nimport 'styles/watch.css'\n\nconst CHANNEL_CHAT_IN = 'bad_trader:chat:in'\nconst NEW_MESSAGES_ID = '_[NEW_MESSAGES]_'\n\ntype MessageOut = {\n displayName: string\n version: number\n message: string\n timestamp: string // format 2022-12-19T17:00:01Z\n channelName: string\n userToken: string\n streamIsLive: boolean\n}\n\ntype MessageIn = {\n version: number\n displayName: string\n clientId: string\n message: string\n messageId: string\n timestamp: string // format 2022-12-19T17:00:01Z\n}\n\nexport default function Watch() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [_visible, setVisible, profile, user, cognito, ably] = useOutletContext() as any\n const [cookies] = useCookies(['refreshToken'])\n const [message, setMessage] = useState('')\n let shows = useRef(new Map<string, Show>())\n let hosts = useRef(new Map<string, Host>())\n let sortedDaySchedule = useRef([])\n let mainChannel = useRef({\n title: '',\n description: '',\n visible_title: '',\n url: { href: '', title: '' },\n schedule: []\n } as Channel)\n const ref = useRef(null)\n const calendarItemRef = useRef(null)\n const [videoHeight, setVideoHeight] = useState(0)\n const [tabIndex, setTabIndex] = useState(0)\n const [chatHeight, setChatHeight] = useState(0)\n const [isSmall, setIsSmall] = useState(false)\n const [currentLiveShow, setCurrentLiveShow] = useState(null as ScheduledShow)\n const [lastLiveShow, setLastLiveShow] = useState(null as ScheduledShow)\n const [isLive, setIsLive] = useState(false)\n const [isChatLoading, setIsChatLoading] = useState(true)\n const [isVideoLoading, setIsVideoLoading] = useState(true)\n const [streamUrl, setStreamUrl] = useState('')\n let channel = useRef(null as Types.RealtimeChannelCallbacks)\n let channelStatus = useRef(null as Types.RealtimeChannelCallbacks)\n const [showData, setShowData] = useState(null as ScheduledShow)\n const [messages, setMessages] = useState([] as MessageIn[])\n const messagesEndRef = useRef(null)\n let channelName = useRef(null as string)\n let channelId = useRef(null as string)\n\n const autoGrow = e => {\n e.target.style.height = '5px'\n const height = e.target.scrollHeight < 40 ? e.target.scrollHeight : e.target.scrollHeight + 5\n e.target.style.height = height + 'px'\n }\n\n const handleResize = () => {\n setIsSmall(window.innerWidth < 799)\n const videoHeight = Math.min(window.innerHeight - 80 - 24 - 60, ref.current.offsetWidth * (50 / 89))\n setChatHeight(window.innerHeight - videoHeight - 80 - 62 - 16 - 34 - 16)\n setVideoHeight(videoHeight)\n }\n\n useLayoutEffect(() => {\n handleResize()\n }, [])\n\n const handleUserKeyPress = e => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault()\n\n if (_.isEmpty(profile.id)) {\n setVisible(true)\n }\n\n const messageToSend = message.trim()\n\n if (_.isEmpty(messageToSend)) {\n return\n }\n\n const messageData: MessageOut = {\n version: 1,\n displayName: profile.displayName,\n userToken: cognito.idToken,\n message: messageToSend,\n timestamp: moment().format(),\n channelName: channelName.current,\n streamIsLive: isLive\n }\n\n ably.publish(CHANNEL_CHAT_IN, messageData)\n setMessage('')\n }\n }\n\n useEffect(() => {\n messagesEndRef.current?.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'start' })\n }, [messages])\n\n useEffect(() => {\n setIsLive(!_.isNil(currentLiveShow))\n }, [currentLiveShow])\n\n useEffect(() => {\n setShowData(isLive ? currentLiveShow : lastLiveShow)\n }, [isLive, currentLiveShow, lastLiveShow])\n\n const channelStatusEvent = messageData => {\n const message = getMessage(messageData)\n const type = message?.type\n if (type !== 'channel.stream.updated') {\n return\n }\n\n if (channelName.current === message?.channelName) {\n console.info('ChannelStore channelEvent', type, message)\n\n if (streamUrl !== message?.streamUrl) {\n setStreamUrl(message?.streamUrl)\n }\n\n if (channelId.current !== message?.channelId) {\n channelId.current = message?.channelId\n }\n }\n }\n\n const channelChatEvent = messageData => setMessages(prev => prev.slice(0, 60).concat([getMessage(messageData)]))\n\n const subscribe = (i: number) => {\n const getUserStatus = () => {\n return _.isEmpty(profile.status) ? EMPTY_PROFILE.status : profile.status\n }\n\n if (ably.client?.connection.state !== ConnectionState.CONNECTED) {\n console.info(`watch - aborting ably connection - state: ${ably.client?.connection.state}`)\n const timeout = 500 * 2 ** i\n console.info(`watch - deferring ably connection for ${timeout / 1000} seconds`)\n setTimeout(() => subscribe(i + 1), timeout)\n return\n }\n\n if (getUserStatus() === UserStatus.Banned) {\n console.info('watch - aborting ably connection - user banned')\n return\n }\n\n // Sub to channel status changes\n const channelStatusOut = 'bad_trader:channel:status:out'\n channelStatus.current = ably.getChannel(channelStatusOut)\n if (!_.isNil(channelStatus.current)) {\n channelStatus.current.subscribe(channelStatusEvent)\n } else {\n console.info('watch - aborting ably status connection - no channel found')\n }\n\n // Sub to channel chat\n const channelChatOut = _.isNil(channelName.current) ? null : `bad_trader:chat:${channelName.current}:out`\n if (!_.isNil(channelChatOut)) {\n channel.current = ably.getChannel(channelChatOut)\n } else {\n console.info('watch - aborting ably chat connection - no channel found')\n return\n }\n\n if (!_.isNil(channel.current)) {\n channel.current.subscribe(channelChatEvent)\n\n channel.current.history((_err, resultPage) => {\n const items = resultPage?.items\n const rawMessages = items.map(getMessage)\n\n // if (!_.isNil(rootStore.notificationStore.lastReadChatTime)) {\n // const lastReadChatTime = moment(lastReadChatTime)\n\n // if (lastReadChatTime.isAfter(moment().subtract(1, 'day'))) {\n // const newMessageMarker = {\n // version: 1,\n // displayName: NEW_MESSAGES_ID,\n // message: NEW_MESSAGES_CONTENT,\n // messageId: NEW_MESSAGES_ID,\n // timestamp: rootStore.notificationStore.lastReadChatTime.toISOString() // format 2022-12-19T17:00:01Z\n // }\n\n // rawMessages.push(newMessageMarker)\n // }\n // }\n\n // order items by timestamp\n const historyMessages = _.sortBy(rawMessages, message => new Date(message?.timestamp))\n\n if (!_.isEmpty(historyMessages) && _.first(historyMessages).messageId === NEW_MESSAGES_ID) {\n historyMessages.shift()\n }\n\n setMessages(prev => prev.concat(historyMessages))\n })\n\n // Sub to presence\n const channelPresence = `bad_trader:presence:${channelName.current}`\n const presenceEntered = ably.enterPresenceChannel(channelPresence, user.username, getUserStatus())\n if (!presenceEntered) {\n console.error('Error entering presence channel. User will not display in participants.')\n } else {\n setIsChatLoading(false)\n }\n }\n }\n\n // Get stream URL\n useEffect(() => {\n if (!cognito.loggedIn) {\n console.info('watch - rejecting stream fetch - not logged in')\n return\n }\n\n const getStreamData = () => {\n console.info('watch - fetching stream data')\n cognito\n .getCurrentChannel()\n .then((resp: { channelName: string; channel: ChannelDto }) => {\n setStreamUrl(resp.channel.streamUrl)\n setIsVideoLoading(false)\n\n if (channelName.current !== resp.channelName) {\n channelName.current = resp.channelName\n if (_.isNil(ably.client)) {\n console.info('watch - initializing ably')\n ably.init()\n subscribe(0)\n }\n // TODO: Disconnect from old channel and old channel presence\n }\n\n setTimeout(getStreamData, 60 * 10 * 1000)\n })\n .catch(_err => console.error('error loading stream data'))\n }\n\n getStreamData()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [cognito.loggedIn])\n\n // ComponentDidMount\n useEffect(() => {\n if (!_.isNil(ref.current)) {\n window.addEventListener('resize', handleResize)\n }\n\n const stack = Contentstack.Stack({\n api_key: 'blt7dfbfed3d53813b9',\n delivery_token: 'csb410fca7f78a5bb853c98799',\n environment: 'production'\n })\n\n // Get Channel\n const fetchContentStackData = async () => {\n console.info('watch - fetching content stack data')\n\n const hostsPromise = stack.ContentType('host').Query().toJSON().find()\n\n const channelPromise = stack.ContentType('channel').Entry('blt08d460fb2a77694d').fetch()\n\n const showPromise = stack.ContentType('show').Query().toJSON().find()\n\n await Promise.all([channelPromise, showPromise, hostsPromise])\n\n await channelPromise.then(\n channel => {\n mainChannel.current = channel.toJSON()\n },\n _err => {\n console.error('content stack main channel error')\n }\n )\n\n await showPromise.then(\n showsResp => {\n shows.current = new Map(_.compact(showsResp[0] as Show[]).map(show => [show.uid, show]))\n },\n _err => {\n console.error('content stack hub shows error')\n }\n )\n\n await hostsPromise.then(\n hostsList => {\n hosts.current = new Map(\n _.compact(hostsList[0] as Host[]).map(host => [host.uid, { firstName: host.name.split(' ')[0], ...host }])\n ) as Map<string, Host>\n },\n _err => {\n console.error('content stack hosts error')\n }\n )\n\n mainChannel.current.schedule.forEach(scheduledShow => {\n scheduledShow.start_time = new Date(scheduledShow.start_time)\n if (!_.isNil(scheduledShow.show[0])) {\n scheduledShow.show = shows.current.get(scheduledShow.show[0].uid)\n scheduledShow.show.hosts = scheduledShow.show.hosts.map(host => hosts.current.get(host.uid))\n }\n\n scheduledShow.additional_shows.forEach(additionalShow => {\n additionalShow.show = shows.current.get(additionalShow.show[0]?.uid)\n additionalShow.show.hosts = additionalShow.show.hosts.map(host => hosts.current.get(host.uid))\n })\n })\n\n const entireSortedSchedule = _.sortBy(mainChannel.current.schedule, scheduledShow =>\n scheduledShow.start_time.getTime()\n )\n const index = _.findLastIndex(entireSortedSchedule, scheduledShow =>\n moment(scheduledShow.start_time.getTime()).add(scheduledShow.duration, 'minutes').isBefore(moment())\n )\n\n setLastLiveShow(entireSortedSchedule[index])\n\n const daySchedule = mainChannel.current.schedule.filter(show => moment(show.start_time).isSame(moment(), 'date'))\n sortedDaySchedule.current = _.sortBy(daySchedule, scheduledShow => scheduledShow.start_time)\n\n if (_.isNil(sortedDaySchedule.current)) {\n return\n }\n\n setCurrentLiveShow(\n sortedDaySchedule.current.find(scheduledShow =>\n moment().isBetween(\n moment(scheduledShow.start_time),\n moment(scheduledShow.start_time).add(scheduledShow.duration, 'minutes')\n )\n )\n )\n }\n\n fetchContentStackData()\n\n // componentWillUnmount\n return () => {\n setVisible(false)\n console.info('watch - leaving ably presence')\n\n const channelPresence = `bad_trader:presence:${channelName.current}`\n const presenceLeft = ably.leavePresenceChannel(channelPresence)\n if (!presenceLeft) {\n console.error('Error leaving presence channel. User will not be removed from participants.')\n }\n window.removeEventListener('resize', handleResize)\n\n const channelChatOut = _.isNil(channelName.current) ? null : `bad_trader:chat:${channelName.current}:out`\n const channel = ably.getChannel(channelChatOut)\n const channelStatusOut = 'bad_trader:channel:status:out'\n const channelStatus = ably.getChannel(channelStatusOut)\n if (channel) {\n channel.current.unsubscribe(channelChatEvent)\n }\n if (channelStatus) {\n channelStatus.current.unsubscribe(channelStatusEvent)\n }\n\n ably.reset()\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n useEffect(() => {\n setVisible(_.isEmpty(cookies.refreshToken))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [cookies.refreshToken])\n\n const getHostStyle = (host: Host) => ({\n color: host.colors.neon,\n textShadow: `0px 0px 4px ${host.colors.glow}`,\n boxShadow: `0px 0px 1px 0px #fd0015 inset, 0px 0px 4px 0px ${host.colors.glow}`,\n border: `1px solid ${host.colors.neon}`,\n background: host.colors.dark_neon\n })\n\n return (\n <>\n <div className=\"watch-container\">\n <div className=\"content-watch\">\n <div className=\"content-left\">\n <div className=\"video\" style={{ height: videoHeight }} ref={ref}>\n {/* {_.isEmpty(profile.id) ? 'Login to view the stream!' : ''} */}\n {isVideoLoading ? (\n <Loader />\n ) : (\n // <ReactPlayer\n // url={`https://edge.api.brightcove.com/playback/v1/accounts/6415628185001/videos/${videoIdSplit[1]}/master.m3u8?bcov_auth=${this.key}`}\n // width=\"100%\"\n // height=\"100%\"\n // muted={true}\n // playing={true}\n // controls={true}\n // />\n <iframe src={streamUrl} height=\"100%\" width=\"100%\" title=\"stream\" className=\"video-stream\" />\n )}\n </div>\n <div className=\"h5 watch-header\">\n <div className=\"watch-left\">\n <div className=\"watch-header-left-container\">\n <div className=\"watch-title\">{_.isNil(showData) ? 'Loading' : showData.show.title}</div>\n {!_.isNil(currentLiveShow) && (\n <div className=\"small-600 live\">\n {currentLiveShow.is_playback ? 'Playback' : 'Live'}\n {!currentLiveShow.is_playback && <div className=\"live-dot\" />}\n </div>\n )}\n </div>\n {!_.isNil(showData) && (\n <div className=\"hosts-container-small\">\n <div className=\"small-600 host\" style={getHostStyle(showData.show.hosts[0])}>\n <img src={showData.show.hosts[0].profile_photo_small.url} className=\"host-image\" alt=\"host\" />@\n {showData.show.hosts[0].firstName}\n </div>\n <div className=\"small-600 host\" style={getHostStyle(showData.show.hosts[1])}>\n <img src={showData.show.hosts[1].profile_photo_small.url} className=\"host-image\" alt=\"host\" />@\n {showData.show.hosts[1].firstName}\n </div>\n </div>\n )}\n </div>\n {!_.isNil(showData) && (\n <div className=\"large-500 watch-right\">\n Runtime: {moment(showData.start_time).format('h:mma')} -{' '}\n {moment(showData.start_time).add(showData.duration, 'minutes').format('h:mma')}\n {!moment(showData.start_time).isSame(moment(), 'date') &&\n ` (${moment(showData.start_time).format('dddd')})`}\n </div>\n )}\n </div>\n <div className=\"tab-container\">\n <div\n className={`tab-item tab-title ${tabIndex === 0 && 'tab-title-active tab-item-active'}`}\n onClick={() => setTabIndex(0)}\n >\n Chat\n </div>\n <div\n className={`tab-item tab-title ${tabIndex === 1 && 'tab-title-active tab-item-active'}`}\n onClick={() => setTabIndex(1)}\n >\n Schedule\n </div>\n <div\n className={`tab-item tab-title ${tabIndex === 2 && 'tab-title-active tab-item-active'}`}\n onClick={() => setTabIndex(2)}\n >\n Description\n </div>\n </div>\n {((isSmall && tabIndex === 2) || !isSmall) && (\n <div className=\"show-container\">\n <div className=\"large-600 show-description\">Show description</div>\n {!_.isNil(showData) && <div className=\"show-info\">{showData.show.description}</div>}\n </div>\n )}\n {((isSmall && tabIndex === 1) || !isSmall) && (\n <div className=\"calendar-container\">\n <div className=\"h5 watch-header\">Today's Schedule</div>\n <div className=\"calendar\">\n <div className=\"calendar-column\">\n <div className=\"calendar-item calendar-item-header\" ref={calendarItemRef}>\n <div className=\"calendar-header\"></div>\n </div>\n <div className=\"small-600 calendar-item calendar-big calendar-left\">\n <div className=\"calendar-content\">Bad Trader</div>\n </div>\n </div>\n {_.range(moment().hour(), 24).map((_item, index) => {\n const itemWidth = 100\n let location = 0\n let width = 0\n const timeStart = moment().add(index, 'hour').startOf('hour')\n const timeEnd = moment()\n .add(index + 1, 'hour')\n .startOf('hour')\n\n const showWithinTime: ScheduledShow = sortedDaySchedule.current.find(\n scheduledShow =>\n moment(scheduledShow.start_time).isSameOrAfter(timeStart) &&\n moment(scheduledShow.start_time).isBefore(timeEnd)\n )\n if (showWithinTime) {\n width = itemWidth * (showWithinTime.duration / 60)\n location = (itemWidth * moment(showWithinTime.start_time).minutes()) / 60\n }\n return (\n <div className=\"calendar-column\" key={timeStart.toString()}>\n <div className=\"calendar-item calendar-item-header\" ref={calendarItemRef}>\n <div className=\"calendar-header\">{timeStart.format('h:00 a')}</div>\n </div>\n <div className=\"calendar-item calendar-big empty-show\">\n {showWithinTime && (\n <div className=\"small-600 show show-name\" style={{ width, left: location }}>\n {showWithinTime.show.title}\n <div className=\"show-description\">\n {showWithinTime.show.description.substring(0, 30)}\n {showWithinTime.show.description.length > 30 ? '...' : ''}\n </div>\n </div>\n )}\n <div className=\"calendar-content\">No Scheduled Program</div>\n </div>\n </div>\n )\n })}\n </div>\n </div>\n )}\n </div>\n {((isSmall && tabIndex === 0) || !isSmall) && (\n <div className=\"chat-container\" style={isSmall ? { height: chatHeight } : {}}>\n <div className=\"chat\">\n {_.isNil(ably.client) ||\n isChatLoading ||\n ably.client?.connection.state !== ConnectionState.CONNECTED ? (\n <Loader />\n ) : (\n <>\n {messages.map(item => (\n <div className=\"chat-line\" key={item.messageId}>\n <span className=\"chat-name\">{item.displayName}</span>: {item.message}\n </div>\n ))}\n <div ref={messagesEndRef} />\n </>\n )}\n </div>\n <div className=\"chat-send\">\n <img src={arrowLeft} className=\"arrow-right-watch\" alt=\"arrow\" />\n <div className=\"send\">\n <textarea\n className=\"input-watch\"\n name=\"fname\"\n autoComplete=\"off\"\n value={message}\n onChange={evt => setMessage(evt.target.value)}\n placeholder=\"Send a message\"\n maxLength={500}\n onInput={autoGrow}\n onKeyDown={handleUserKeyPress}\n />\n </div>\n </div>\n </div>\n )}\n </div>\n </div>\n </>\n )\n}\n","import 'styles/host-application.css'\nimport 'styles/text.css'\nimport { useEffect, useMemo, useState } from 'react'\nimport _ from 'lodash'\nimport Button from 'components/button'\nimport yuss from 'assets/yuss.gif'\n\nexport interface ApplicationItem {\n title: string\n subtitle?: string\n placeholder: string\n value: string\n setValue: (val: string) => void\n}\n\nexport default function HostApplication() {\n const [name, setName] = useState('')\n const [nickname, setNickname] = useState('')\n const [school, setSchool] = useState('')\n const [major, setMajor] = useState('')\n const [trading, setTrading] = useState('')\n const [length, setLength] = useState('')\n const [prodStrats, setProdStrats] = useState('')\n const [style, setStyle] = useState('')\n const [expertise, setExpertise] = useState('')\n const [inspiration, setInspiration] = useState('')\n const [rule, setRule] = useState('')\n const [hobbies, setHobbies] = useState('')\n const [facts, setFacts] = useState('')\n const [submitted, setSubmitted] = useState(false)\n const [isError, setError] = useState(false)\n const [message, setMessage] = useState('')\n\n const applicationData: ApplicationItem[] = useMemo(\n () => [\n {\n title: \"What's your name?\",\n subtitle: '',\n placeholder: 'Your name...',\n value: name,\n setValue: setName\n },\n {\n title: 'Do you have a nickname?',\n subtitle: '(Don’t be shy, but also, this totally optional.)',\n placeholder: 'Your nickname...',\n value: nickname,\n setValue: setNickname\n },\n {\n title: 'What school did/do you attend?',\n placeholder: 'School...',\n value: school,\n setValue: setSchool\n },\n {\n title: 'What is/was your major?',\n placeholder: 'Physics of money (how it sometimes just falls up and then back down)',\n value: major,\n setValue: setMajor\n },\n {\n title: 'How did you get into trading?',\n placeholder: 'My brother’s wife’s niece told me about some meme stocks...',\n value: trading,\n setValue: setTrading\n },\n {\n title: 'How long have you been trading for?',\n placeholder: 'Straight out of the womb...',\n value: length,\n setValue: setLength\n },\n {\n title: 'What trading products and strategies do you use?',\n placeholder: 'Bad Trader, obviously...',\n value: prodStrats,\n setValue: setProdStrats\n },\n {\n title: 'What’s your trading style?',\n subtitle: '(e.g., active, speculative, technical analysis, statistical, fuck it)',\n placeholder: 'Trading style...',\n value: style,\n setValue: setStyle\n },\n {\n title: 'What are your top trading expertises?',\n subtitle: '(e.g., statistics, options trading, portfolio management, losing money)',\n placeholder: 'I can count to 10 on all fingers...',\n value: expertise,\n setValue: setExpertise\n },\n {\n title: 'Where do you look for trading inspiration?',\n placeholder: 'The moon, mostly...',\n value: inspiration,\n setValue: setInspiration\n },\n {\n title: 'What’s your #1 rule when it comes to trading?',\n subtitle: '(e.g., No matter what info you stumble across, everyone else probably already knows about it)',\n placeholder: 'Buy high, sell low...',\n value: rule,\n setValue: setRule\n },\n {\n title: 'What are you hobbies or interests?',\n subtitle: '(e.g., traveling, hockey, Minecraft, deathcore)',\n placeholder: 'I watch birds... I’m still onto them...',\n value: hobbies,\n setValue: setHobbies\n },\n {\n title: 'What are some fun facts about yourself?',\n subtitle:\n \"(e.g., Julia spent a lot of time getting lasers shot in her eyes for her Master's degree but still doesn't have laser vision.)\",\n placeholder: 'I like turtles...',\n value: facts,\n setValue: setFacts\n }\n ],\n [expertise, facts, hobbies, inspiration, length, major, name, nickname, prodStrats, rule, school, style, trading]\n )\n\n useEffect(() => {\n setMessage(`${applicationData.map(item => `${item.title}%0D%0A%0D%0A${item.value}%0D%0A%0D%0A`)}`)\n }, [applicationData])\n\n const submit = () => {\n if (!isFull) {\n setError(true)\n return\n }\n\n setError(false)\n setSubmitted(true)\n }\n\n const isFull = applicationData.every(item => !_.isEmpty(item.value) || item.title === 'Do you have a nickname?')\n\n return (\n <div className=\"app-page\">\n <div className=\"h2 app-header-text\">So you think you have the chops to be a host?</div>\n <div className=\"h5 app-subheader-text\">\n The below questionnaire will help us get a better idea of what you’re all about. Be honest - be yourself.\n </div>\n {applicationData.map((item, index) => ApplicationRow(item, index))}\n <div\n className={`h3 app-submit-container ${(isFull || submitted) && 'app-submit-full'} ${\n isError && 'app-submit-error'\n }`}\n >\n {submitted\n ? 'Fantastic. We’ll be in touch shortly!'\n : isFull\n ? 'Greenlight to proceed - Godspeed!'\n : isError\n ? 'One or more questions have not been answered. Please answer to submit.'\n : 'Please fill out the above questionnaire to submit your answers'}\n {submitted ? (\n <img src={yuss} className=\"yuss\" alt=\"yuss\" />\n ) : (\n <a\n href={\n !isFull\n ? null\n : `mailto:support@badtrader.app?subject=${'Host Application'}%20-%20${name}&body=${message}`\n }\n onClick={submit}\n className=\"app-submit-button\"\n >\n <Button\n label=\"Submit my answers\"\n buttonStyle={`button-yellow rounded-button-light rounded-button-label-light app-button ${\n isFull && 'button-green'\n }`}\n />\n </a>\n )}\n </div>\n </div>\n )\n}\n\nfunction ApplicationRow(item: ApplicationItem, index: number) {\n return (\n <div className=\"application-item\">\n <div className={`h5 app-question ${!_.isEmpty(item.value) && 'question-answered'}`}>\n Question <div>{index + 1}</div>\n </div>\n <div className=\"app-container\">\n <div className={`h3 app-title-row ${!_.isEmpty(item.value) && 'app-title-answered'}`}>{item.title}</div>\n <div className={`large-500 app-subtitle ${_.isEmpty(item.subtitle) && 'app-subtitle-inactive'}`}>\n {_.isEmpty(item.subtitle) ? '.' : item.subtitle}\n </div>\n <input\n className=\"app-input\"\n value={item.value}\n onChange={evt => item.setValue(evt.target.value)}\n placeholder={item.placeholder}\n />\n </div>\n </div>\n )\n}\n","import { useEffect } from 'react'\nimport 'styles/contact.css'\nimport 'styles/text.css'\n\nexport default function Download() {\n const getOs = (values: string[]) => {\n return values.find(v => ((global as any).window?.navigator.userAgent.indexOf(v) >= 0));\n }\n\n useEffect(() => {\n window.location.replace('/#download')\n\n if (getOs(['iPhone', 'iPod', 'iPad']) && !(global as any).window?.MSStream) {\n window.location.href = 'https://apps.apple.com/us/app/bad-trader/id1638952698'\n return\n }\n\n if (getOs(['Android'])) {\n window.location.href = 'https://play.google.com/store/apps/details?id=com.tastyworks.mobile.badtrader.android&hl=en_US&gl=US'\n return\n }\n\n }, [])\n\n return null\n}\n","// import React from 'react'\nimport ReactDOM from 'react-dom/client'\nimport './index.css'\nimport reportWebVitals from './reportWebVitals'\nimport { createBrowserRouter, RouterProvider } from 'react-router-dom'\nimport Root from './routes/root'\nimport ErrorPage from './routes/error-page'\nimport Landing from './routes/landing'\nimport Contact from 'routes/contact'\nimport Partners from 'routes/partners'\nimport AboutUs from 'routes/about-us'\nimport Faq from 'routes/faq'\nimport PrivacyPolicy from 'routes/legal/privacy-policy'\nimport Watch from 'routes/watch'\nimport HostApplication from 'routes/host-application'\nimport Download from 'routes/download'\n\nconst router = createBrowserRouter([\n {\n path: '/',\n element: <Root />,\n errorElement: <ErrorPage />,\n // loader: rootLoader,\n children: [\n {\n path: '/',\n element: <Landing />\n },\n {\n path: '/contact',\n element: <Contact />\n },\n {\n path: '/about-us',\n element: <AboutUs />\n },\n {\n path: '/partners',\n element: <Partners />\n },\n {\n path: '/faq',\n element: <Faq />\n },\n {\n path: '/privacy-policy',\n element: <PrivacyPolicy />\n },\n {\n path: '/watch',\n element: <Watch />\n },\n {\n path: '/host-application',\n element: <HostApplication />\n },\n {\n path: '/uid/*',\n element: <Download />\n },\n {\n path: '/post/*',\n element: <Download />\n },\n {\n path: '/download',\n element: <Download />\n },\n ]\n }\n])\n\nconst root = ReactDOM.createRoot(document.getElementById('root'))\nroot.render(\n // <React.StrictMode>\n <RouterProvider router={router} />\n // </React.StrictMode>\n)\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals()\n"],"names":["constants_1","require","RawSha256","state","Int32Array","from","INIT","temp","buffer","Uint8Array","bufferLength","bytesHashed","finished","prototype","update","data","this","Error","position","byteLength","MAX_HASHABLE_LENGTH","BLOCK_SIZE","hashBuffer","digest","bitsHashed","bufferView","DataView","byteOffset","undecoratedLength","setUint8","i","setUint32","Math","floor","out","DIGEST_LENGTH","state0","state1","state2","state3","state4","state5","state6","state7","u","t1_1","t2_1","t1","KEY","t2","exports","Uint32Array","pow","__exportStar","RawSha256_1","util_1","Sha256","secret","hash","outer","inner","input","convertToBuffer","bufferHash","set","bufferFromSecret","toHash","isEmptyData","error","e","digestSync","util_utf8_browser_1","fromUtf8","Buffer","ArrayBuffer","isView","BYTES_PER_ELEMENT","convertToBuffer_1","Object","enumerable","get","isEmptyData_1","numToUint8_1","numToUint8","uint32ArrayFrom_1","uint32ArrayFrom","length","num","a_lookUpTable","Array","return_array","TextEncoder","encode","textEncoderFromUtf8","bytes","len","value","charCodeAt","push","surrogatePair","jsFromUtf8","toUtf8","TextDecoder","decode","textEncoderToUtf8","decoded","byte","String","fromCharCode","nextByte","encoded","map","byteValue","toString","join","decodeURIComponent","jsToUtf8","extendStatics","d","b","setPrototypeOf","__proto__","p","hasOwnProperty","__extends","__","constructor","create","__assign","assign","t","s","n","arguments","call","apply","__rest","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","TypeError","pop","__createBinding","o","m","k","k2","undefined","__values","__read","ar","__spread","concat","__spreadArrays","il","a","j","jl","__await","__asyncGenerator","asyncIterator","q","resume","fulfill","settle","shift","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","raw","__importStar","mod","__esModule","default","__importDefault","__classPrivateFieldGet","receiver","privateMap","has","__classPrivateFieldSet","msSubtleCryptoMethods","window","quacksLikeAnMsWindow","msCrypto","subtle","_a","getRandomValues","subtle_1","methodName","every","method","tslib_1","name","SHA_256_HASH","ie11Sha256_1","webCryptoSha256_1","sha256_js_1","supports_web_crypto_1","ie11_detection_1","util_locate_window_1","supportsWebCrypto","locateWindow","isMsWindow","encoding","reset","_this","operation","onerror","process","toArrayBufferView","catch","oncomplete","finish","keyOperation","importKey","SHA_256_HMAC_ALGO","keyData","sign","typedArray","crypto","EMPTY_DATA_SHA_256","subtleCryptoMethods","supportsSecureRandom","supportsSubtleCrypto","generateKey","_b","encrypt","iv","additionalData","tagLength","a_index","fallbackWindow","self","index_1","AwsCrc32","crc32","Crc32","checksum","data_1","data_1_1","lookupTable","aws_crc32_1","factory","modules","installedModules","__webpack_require__","moduleId","module","l","getter","toStringTag","mode","ns","bind","object","property","__webpack_exports__","__spreadArray","to","pack","slice","__setModuleDefault","kind","global","allToUpperCase","allToLowerCase","encodeBody","decodeBody","Format","promisify","trim","arrChooseN","randomHexString","randomString","cheapRandStr","dataSizeBytes","inspectBody","inspectError","isErrorInfoOrPartialErrorInfo","now","parseQueryString","toQueryString","arrPopRandomElement","defaultPostHeaders","defaultGetHeaders","allSame","arrEvery","arrFilter","arrMap","safeArrForEach","arrForEach","forInOwnNonNullProperties","valuesArray","keysArray","arrWithoutValue","arrDeleteValue","arrIn","arrIndexOf","arrSubtract","arrIntersectOb","arrIntersect","intersect","containsValue","inherits","prototypicalClone","shallowClone","isEmptyArg","isOnlyPropIn","isEmpty","isObject","ensureArray","isArray","copy","mixin","toBase64","matchDerivedChannel","shallowEquals","getGlobalObject","getRetryTime","getJitterCoefficient","getBackoffCoefficient","platform_1","defaults_1","errorinfo_1","enc_base64_1","enc_utf8_1","randomPosn","arrOrStr","random","args","_i","source","arg","ob","ownProperties","F","arr1","arr2","member","arr","val","idx","res","splice","src","obj","prop","ctor","superCtor","Config","super_","element","elem","fromIndex","newArr","ownOnly","fn","forEach","filter","first","item","contentTypes","json","jsonp","xml","html","msgpack","count","min","options","format","accept","protocolVersion","getAgentString","contentType","params","parts","encodeURIComponent","query","match","search","exec","Date","getTime","err","inspect","BufferUtils","isBuffer","stringByteSize","substr","numBytes","uIntArr","base64Encode","charset","base64CharSet","round","hexEncode","hexCharSet","numItems","mutableArr","str","replace","fnName","JSON","parse","stringify","toLowerCase","toUpperCase","initialTimeout","retryAttempt","keys","qualifierParam","channelName","createHmac","LogLevels","globalObject","pad","timeSegment","three","padStart","getHandler","logger","logTimestamps","msg","time","getHours","getMinutes","getSeconds","getMilliseconds","Logger","logLevel","LOG_DEFAULT","initLogHandlers","consoleLogger","errorLogger","Window","WorkerGlobalScope","console","log","warn","Function","getDefaultLoggers","logHandler","logErrorHandler","LOG_NONE","None","LOG_ERROR","LOG_MAJOR","Major","LOG_MINOR","Minor","LOG_MICRO","Micro","LOG_DEBUG","logAction","level","action","message","shouldLog","deprecated","original","replacement","deprecatedWithMsg","funcName","setLog","handler","Platform","PartialErrorInfo","Utils","statusCode","code","cause","href","ErrorInfo","_super","fromValues","values","root","CryptoJS","WordArray","lib","superInit","init","subInit","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Float32Array","Float64Array","typedArrayByteLength","words","cryptoSecureRandomInt","randomBytes","readInt32LE","subtype","C","C_lib","Base","extend","overrides","mixIn","$super","instance","properties","propertyName","clone","sigBytes","encoder","Hex","wordArray","thisWords","thatWords","thisSigBytes","thatSigBytes","clamp","thatByte","ceil","nBytes","C_enc","enc","hexChars","bite","hexStr","hexStrLength","parseInt","Latin1","latin1Chars","latin1Str","latin1StrLength","Utf8","escape","utf8Str","unescape","BufferedBlockAlgorithm","_data","_nDataBytes","_append","_process","doFlush","processedWords","dataWords","dataSigBytes","blockSize","nBlocksReady","nWordsReady","max","_minBufferSize","nBytesReady","offset","_doProcessBlock","C_algo","Hasher","cfg","_doReset","messageUpdate","finalize","_doFinalize","_createHelper","hasher","_createHmacHelper","HMAC","algo","logger_1","callListener","eventThis","listener","stack","removeListener","targetListeners","eventFilter","listeners","index","eventName","targetListenersIndex","EventEmitter","any","events","anyOnce","eventsOnce","on","event_1","listener_1","off","firstArg","secondArg","event","emit","eventsOnceListeners","eventsListeners","once","argCount","event_2","self_1","listenerWrapper_1","innerArgs","whenState","targetState","currentState","listenerArgs","getDefaults","normaliseOptions","objectifyOptions","getHosts","getFallbackHosts","environmentFallbackHosts","getHttpScheme","getPort","getHost","package_json_1","agent","version","Defaults","ENVIRONMENT","REST_HOST","REALTIME_HOST","FALLBACK_HOSTS","PORT","TLS_PORT","TIMEOUTS","disconnectedRetryTimeout","suspendedRetryTimeout","httpRequestTimeout","channelRetryTimeout","fallbackRetryTimeout","connectionStateTtl","realtimeRequestTimeout","recvTimeout","preferenceConnectTimeout","parallelUpgradeDelay","httpMaxRetryCount","maxMessageSize","checkHost","host","ws","restHost","realtimeHost","tls","tlsPort","port","environment","fallbackHosts","token","wsHost","queueEvents","queueMessages","fallbackHostsUseDefault","recover","lastConnectionDetails","cb","closeOnUnload","transports","production","getRealtimeHost","timeouts","getTimeouts","useBinaryProtocol","supportsBinary","preferBinary","clientId","headers","utf8Encode","idempotentRestPublishing","promises","connectivityCheckParams","connectivityCheckUrl","split","uri","qs","agentStr","agents","platformDefaults","getMessageSize","size","extras","Message","toJSON","toBuffer","id","connectionId","connectionKey","timestamp","callback","cipher","channelCipher","algorithm","encodeArray","messages","processed","inputContext","context","channelOptions","plugins","baseEncodedPreviousPayload","normaliseContext","lastPayload","xforms","lastProcessedEncodingIndex","encodingsToProcess","xform","base64Decode","utf8Decode","xformAlgorithm","decrypt","vcdiff","deltaBase","typedArrayToBuffer","fromResponseBody","fromValuesArray","fromEncoded","inputOptions","Crypto","getCipher","cipherParams","normalizeCipherOptions","fromEncodedArray","encodedArray","getMessagesSize","total","serialize","message_1","presencemessage_1","actions","HEARTBEAT","ACK","NACK","CONNECT","CONNECTED","DISCONNECT","DISCONNECTED","CLOSE","CLOSED","ERROR","ATTACH","ATTACHED","DETACH","DETACHED","PRESENCE","MESSAGE","SYNC","AUTH","ACTIVATE","ActionName","flags","HAS_PRESENCE","HAS_BACKLOG","RESUMED","TRANSIENT","ATTACH_RESUME","PUBLISH","SUBSCRIBE","PRESENCE_SUBSCRIBE","flagNames","toStringArray","array","MODE_ALL","simpleAttributes","ProtocolMessage","hasFlag","flag","setFlag","getMode","encodeModesToFlags","modes","decodeModesFromFlags","channelModes","Action","deserialize","serialized","deserialized","fromDeserialized","presence","attribute","attribIndex","auth","accessToken","stringifiedParams_1","parseLoop","base64Str","base64StrLength","reverseMap","bitsCombined","Base64","base64Chars","triplet","charAt","paddingChar","_reverseMap","paddingIndex","protocolmessage_1","transport_1","connectionerrors_1","auth_1","XHRStates_1","protocolMessageFromRawError","isTokenErr","shouldBeErrorAction","CometTransport","connectionManager","onAuthUpdated","tokenDetails","authParams","access_token","stream","sendRequest","recvRequest","pendingCallback","pendingItems","connect","cometScheme","baseUri","connectUri","getAuthParams","disconnect","isDisposed","connectParams","getConnectParams","preconnected","connectRequest","createRequest","REQ_RECV_STREAM","REQ_RECV","onData","onActivity","nextTick","recv","requestClose","_requestCloseOrDisconnect","requestDisconnect","closing","closeOrDisconnectUri","closeUri","disconnectUri","request","REQ_SEND","dispose","abort","disconnected","onConnect","connectionStr","connectionDetails","baseConnectionUri","sendUri","recvUri","send","sendItems","sendAnyPending","items","encodeRequest","isConnected","REQ_RECV_POLL","responseData","decodeResponse","onProtocolMessage","requestItems","HttpMethods_1","withAuthDetails","rest","errCallback","opCallback","http","supportsAuthHeaders","getAuthHeaders","authHeaders","paramString","paramPairs","needle","urlFromPathAndParams","path","Resource","envelope","do","Get","delete","Delete","post","Post","patch","Patch","put","Put","unpacked","logResponseHandler","outerHeaders","outerStatusCode","wrappedStatusCode","response","wrappedHeaders","wrappedErr","unenvelope","doRequest","decodedBody","decodeErr","authorize","toActionValue","actionString","PresenceMessage","Actions","isSynthesized","substring","parseId","msgSerial","stringifyAction","fromData","eventemitter_1","getAblyError","responseBody","isAblyError","noop","idCounter","pendingRequests","isIE","XDomainRequest","needJsonEnvelope","navigator","userAgent","Number","ieVersion","XHRRequest","requestMode","rnd","timedOut","requestComplete","_timeouts","complete","timeout","timer","setTimeout","xhr","XMLHttpRequest","responseType","h","open","withCredentials","setRequestHeader","streaming","successResponse","errorHandler","errorEvent","errorMessage","type","statusText","onabort","ontimeout","streamPos","onEnd","parsedResponse","header","getResponseHeader","getHeader","jsonResponseBody","responseText","headerPairs","getAllResponseHeaders","getHeadersAsObject","onProgress","chunk","bodyEnd","onChunk","onreadystatechange","readyState","status","clearTimeout","isEncodingChunked","streamComplete","multicaster_1","hmac_sha256_1","HttpStatusCodes_1","resource_1","MAX_TOKEN_LENGTH","normaliseAuthcallbackError","hmac","text","inst","c14n","capability","c14nCapability","sort","logAndValidateTokenAuthMethod","authOptions","authCallback","authUrl","useTokenAuth","basicAuthForced","trId","Auth","client","tokenParams","defaultTokenParams","currentTokenRequestId","waitingForTokenRequest","noWayToRenew","_saveTokenOptions","_saveBasicOptions","_authOptions","_forceNewToken","connection","Forbidden","actOnErrorFromAuthorize","authorise","_ensureValidAuthCredentials","queryTime","requestToken","tokenRequestCallback","_callback","providedQsParams","usePost","authMethod","queryIdx","authUrlRequestCallback","doUri","createTokenRequest","tokenRequestCallbackTimeoutExpired","timeoutLength","tokenRequestCallbackTimeout","tokenRequestOrDetails","objectSize","suppressMaxLengthCheck","signedTokenParams","tokenCb","keyName","requestHeaders","tokenRequest","tokenResponse","keyParts","keySecret","authoriseCb","ttl","nonce","signText","mac","getTimestamp","authorization","basicKey","isTimeOffsetSet","getTimestampUsingOffset","serverTimeOffset","_userSetClientId","forceSupersede","_tokenClientIdMismatch","expires","tokenRequestId","callbacks","_uncheckedSetClientId","tokenClientId","revokeTokens","specifiers","optionsOrCallbackArg","callbackArg","resolvedOptions","requestBodyDTO","targets","specifier","requestBody","newBatchResponse","batchResult","HttpMethods","HttpPaginatedResponse","PaginatedResult","getRelParams","linkUrl","urlMatch","PaginatedResource","bodyHandler","useHttpPaginatedResponse","handlePage","useHPR","returnErrOnly","linkHeader","relParams","linkMatch","parseRelLinks","resource","current","hasNext","isLast","success","errorCode","isRetriable","ConnectionErrorCodes","SUSPENDED","FAILED","CLOSING","UNKNOWN_CONNECTION_ERR","UNKNOWN_CHANNEL_ERR","ConnectionErrors","suspended","failed","closed","unknownConnectionErr","unknownChannelErr","includes","XHRStates","Multicaster","members","_hasher","hasherBlockSize","hasherBlockSizeBytes","oKey","_oKey","iKey","_iKey","oKeyWords","iKeyWords","innerHash","HttpStatusCodes","isSuccessCode","Success","BadRequest","closeMessage","disconnectMessage","Transport","forceJsonProtocol","heartbeats","registerProposedTransport","isFinished","maxIdleInterval","idleTimer","lastActivity","close","fail","shortName","onClose","onDisconnect","onChannelMessage","channel","onFatalError","maxPromisedIdle","ping","setIdleTimer","onIdleTimerExpire","sinceLast","timeRemaining","tryConnect","transportCtor","transportParams","transportAttemptTimer","transport","errorCb","MD5","EvpKDF","keySize","iterations","compute","password","salt","block","derivedKey","derivedKeyWords","Cipher","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","xformMode","_xformMode","_key","dataUpdate","ivSize","selectCipherStrategy","PasswordBasedCipher","SerializableCipher","ciphertext","C_mode","StreamCipher","BlockCipherMode","Encryptor","Decryptor","_cipher","_iv","CBC","xorBlock","_prevBlock","processBlock","encryptBlock","thisBlock","decryptBlock","Pkcs7","blockSizeBytes","nPaddingBytes","paddingWord","paddingWords","padding","unpad","CipherParams","BlockCipher","modeCreator","_mode","__creator","finalProcessedBlocks","formatter","OpenSSLFormatter","OpenSSL","openSSLStr","ciphertextWords","encryptor","cipherCfg","_parse","OpenSSLKdf","kdf","execute","derivedParams","Request","comettransport_1","_ablyjs_jsonp","JSONPTransport","isAvailable","jsonpSupported","allowComet","script","document","createElement","async","head","getElementsByTagName","insertBefore","firstChild","parentNode","removeChild","supportedTransports","push_1","paginatedresource_1","channel_1","stats_1","Rest","optionsObj","normalOptions","keyMatch","authority","_currentFallback","Http","channels","Channels","stats","supportsLinkHeaders","statsValues","customHeaders","useBinary","decoder","_method","paginatedResource","resbody","methods","methodsWithBody","batchPublish","specOrSpecs","singleSpecMode","batchResults","batchPresence","channelsParam","logOptions","Callbacks","all","setOptions","release","H","K","isPrime","sqrtN","sqrt","factor","getFractionalBits","nPrime","W","SHA256","_hash","M","gamma0x","gamma0","gamma1x","gamma1","maj","sigma0","nBitsTotal","nBitsLeft","HmacSHA256","presence_1","normaliseChannelOptions","Channel","basePath","history","_history","publish","second","allEmptyIds","msgIdBase_1","_publish","Presence","TransportParams","protocol_1","messagequeue_1","connectionstatechange_1","websockettransport_1","haveWebStorage","WebStorage","localSupported","haveSessionStorage","sessionSupported","transportPreferenceName","sessionRecoveryName","decodeRecoveryKey","recoveryKey","upgrade","recoveryContext","echoMessages","echo","ConnectionManager","realtime","disconnectedRetryCount","initTransports","connectingTimeout","states","initialized","terminal","sendEvents","failState","connecting","retryDelay","connected","synchronizing","forceQueueEvents","errorReason","queuedMessages","defaultTransports","baseTransport","baseTransportOrder","upgradeTransports","transportPreference","httpHosts","activeProtocol","proposedTransports","pendingTransports","lastAutoReconnectAttempt","forceFallbackHost","connectCounter","addEventListener","persistConnection","requestState","disconnectAllTransports","startConnect","Transports","initFn","createTransportParams","getTransportParams","modeCb","recoverFn","lastSessionData","getSession","getSessionRecoverData","shouldRecover","decideMode","tryATransport","candidate","notifyState","setTransportPending","optimalTransport","transportPreferenceOrder","getUpgradePossibilities","scheduleTransportActivation","activateTransport","connectImpl","unpersistConnection","deactivateTransport","currentTransport","getTransport","abandon","oldProtocol","finishUpgrade","sendQueuedMessages","onceIdle","persistTransportPreference","existingState","connectedState","existingActiveProtocol","setConnection","onConnectionDetailsUpdate","connectedErr","_connectionId","messageQueue","pendingTransport","proposedTransport","currentProtocol","wasActive","wasPending","wasProposed","noTransportsScheduledForActivation","queuePendingMessages","getPendingMessages","clearPendingMessages","unpersistTransportPreference","retryImmediately","newConnectionState","startSuspendTimer","startTransitionTimer","hasConnectionError","prevConnId","resetSendAttempted","clearConnection","createRecoveryKey","channelSerials","checkConnectionStateFreshness","setSession","setSessionRecoverData","disconnectedAt","location","removeSession","clearSessionRecoverData","getError","getStateError","activeState","enactStateChange","stateChange","reason","newState","transitionState","transitionTimer","cancelTransitionTimer","suspendTimer","checkSuspendTimer","cancelSuspendTimer","startRetryTimer","interval","retryTimer","cancelRetryTimer","indicated","change","autoReconnect","propogateConnectionInterruption","failQueuedMessages","closeImpl","connectCount","recoverChannels","authCb","upgradeIfNeeded","getTransportPreference","connectPreference","connectBase","preference","preferenceTimeoutExpired","preferenceTimeout","fatal","giveUp","candidateHosts","hostAttemptCb","tryFallbackHosts","checkConnectivity","connectivity","currentSerial","upgradePossibilities","upgradeTransport","upgradeTransportParams","transportParams_1","activeTransport","authMsg","successListener_1","failureListener_1","exceptActive","queueEvent","sendImpl","PendingMessage","queue","pendingMessage","ackRequired","sendAttempted","lastQueued","last","maxSize","dest","proposed","bundleWith","merged","pendingMessages","prepend","numQueued","completeAllMessages","onActiveTransport","onUpgradeTransport","pingStart_1","id_1","onHeartbeat_1","responseId","timer_1","responseTime","completed","onTransportActive","remove","MessageQueue","copyAll","append","unshift","completeMessages","serial","startSerial","endSerial","completeMessages_1","MAX_SAFE_INTEGER","MAX_VALUE","clear","ConnectionStateChange","previous","retryIn","realtimepresence_1","channelstatechange_1","RealtimeChannel","retryCount","untilAttach","attachSerial","from_serial","subscriptions","syncChannelSerial","channelSerial","_requestedFlags","_attachResume","_decodingContext","_lastPayload","messageId","protocolMessageChannelSerial","decodeFailureRecoveryInProgress","_allChannelChanges","invalidStateError","processListenerArgs","currentMode","validateChannelOptions","_shouldReattachToSetOptions","attachImpl","__publish","sendMessage","onEvent","attach","_flags","_attach","forceReattach","attachReason","attachMsg","detach","detachImpl","subscribe","_subscribeFilter","filteredListener","_c","_d","_e","_f","mapping","refTimeserial","ref","timeserial","refType","isRef","entries","find","_addFilteredSubscription","realListener","filteredSubscriptions","Map","realListenerMap","_getAndDeleteFilteredSubscriptions","filterMaps","listenerMaps","reduce","prev","cur","listeners_1","unsubscribe","sync","syncMessage","sendPresence","onMessage","setChannelSerial","isSync","modesFromFlags","resumed","hasPresence","hasBacklog","onAttached","updateOnAttached","checkPendingState","detachErr","presenceMsg","setPresence","firstMessage","lastMessage","delta","_startDecodeFailureRecovery","clearStateTimer","actOnChannelState","cmState","startStateTimerIfNotRunning","timeoutPendingState","stateTimer","getReleaseErr","ChannelStateChange","SHA1","HmacSHA1","utf8Write","view","string","codePoint","utf8Read","end","byte_","getUint8","utf8ByteCount","SH_L_32","SH_R_32","Decoder","bin","buf","ext","getInt8","getUint16","getUint32","getFloat32","getFloat64","getUint64","getInt16","getInt32","getInt64","encodeableKeys","sparse","_encode","length_1","setUint16","length_2","setFloat64","setInt32","setUint64","setInt8","setInt16","setInt64","length_3","sizeof","length_4","length_5","length_6","rest_1","realtime_1","bufferutils_1","crypto_1","http_1","config_1","webstorage_1","defaults_2","msgpack_1","noUpgrade","Realtime","devicedetails_1","pushchannelsubscription_1","Push","admin","Admin","deviceRegistrations","DeviceRegistrations","channelSubscriptions","ChannelSubscriptions","recipient","payload","pushFullWait","fullWait","save","device","deviceIdOrDetails","deviceId","list","removeWhere","subscription","listChannels","parsedBody","DeviceFormFactor","DevicePlatform","DeviceDetails","deviceSecret","platform","formFactor","deviceIdentityToken","toRequestBody","PushChannelSubscription","MessageCount","uncompressedData","refused","MessageCategory","category","ResourceCount","peak","mean","opened","RequestCount","succeeded","ConnectionTypes","plain","MessageTypes","MessageTraffic","webhook","sharedQueue","externalQueue","httpEvent","MessageDirections","inbound","outbound","XchgMessages","producerPaid","consumerPaid","PushStats","notifications","invalid","attempted","successful","directPublishes","ProcessedCount","skipped","ProcessedMessages","Stats","persisted","connections","apiRequests","tokenRequests","xchgProducer","xchgConsumer","pushStats","inProgress","unit","intervalId","connection_1","realtimechannel_1","connectionmanager_1","autoConnect","serials","name_1","name_2","connectionState","fromChannelStates","toChannelState","channelId","getDerived","deriveOptions","releaseErr","Connection","ably","configurable","Protocol","onAck","onNack","WebSocketTransport","useProtocolHeartbeats","WebSocket","createWebSocket","wsUri","paramStr","param","wsConnection","binaryType","onopen","onWsOpen","onclose","ev","onWsClose","onmessage","onWsData","onWsError","wasClean","isAnonymousOrWildcard","realtimePresence","newerThan","existing","itemOrderings","existingOrderings","RealtimePresence","syncComplete","PresenceMap","_myMembers","pendingPresence","enter","_enterOrUpdateClient","enterClient","updateClient","leave","leaveClient","waitForSync","returnMembers","waitAttached","waitSync","presenceSet","syncCursor","myMembers","broadcastMessages","connId","startSync","endSync","_synthesizeLeaves","_ensureMyMembersPresent","pendingPresCount","presenceArray","multicaster","_clearMyMembers","failPendingPresence","reenterCb","memberKey","entry","_args","syncInProgress","residualMembers","getClient","existingItem","setInProgress","enc_hex_1","lib_typedarrays_1","isWordArray","isArrayBuffer","isTypedArray","uint8ViewToBase64","base64","encodings","byteRemainder","mainLength","base64ToArrayBuffer","binary_string","atob","ascii","arrayBuffer","uint8View","toArrayBuffer","toWordArray","hexDecode","bufferCompare","buffer1","buffer2","wordArray1","wordArray2","cmp","words1","words2","crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0__","crypto_js_build_lib_typedarrays__WEBPACK_IMPORTED_MODULE_0___default","crypto_js_build_enc_base64__WEBPACK_IMPORTED_MODULE_1__","crypto_js_build__WEBPACK_IMPORTED_MODULE_2__","crypto_js_build__WEBPACK_IMPORTED_MODULE_2___default","_common_lib_util_logger__WEBPACK_IMPORTED_MODULE_3__","_common_lib_util_logger__WEBPACK_IMPORTED_MODULE_3___default","common_lib_types_errorinfo__WEBPACK_IMPORTED_MODULE_4__","common_lib_types_errorinfo__WEBPACK_IMPORTED_MODULE_4___default","config","bufferUtils","generateRandom","getRandomWordArray","blockRandomArray","nativeArray","pkcs5Padding","keyLength","CBCCipher","blockLengthWords","cjsAlgorithm","getDefaultParams","validateCipherParams","generateRandomKey","plaintext","plaintextLength","paddedLength","getPaddedLength","getIv","cipherOut","encryptCipher","ciphertextBody","decryptCipher","epilogue","randomBlock","swapEndian","word","Utf16","Utf16BE","utf16Chars","utf16Str","utf16StrLength","Utf16LE","SBOX","INV_SBOX","SUB_MIX_0","SUB_MIX_1","SUB_MIX_2","SUB_MIX_3","INV_SUB_MIX_0","INV_SUB_MIX_1","INV_SUB_MIX_2","INV_SUB_MIX_3","x","xi","sx","x2","x4","x8","RCON","AES","_nRounds","_keyPriorReset","keyWords","ksRows","keySchedule","_keySchedule","ksRow","invKeySchedule","_invKeySchedule","invKsRow","_doCryptBlock","nRounds","s0","s1","s2","s3","t0","t3","T","abs","sin","offset_i","M_offset_i","M_offset_0","M_offset_1","M_offset_2","M_offset_3","M_offset_4","M_offset_5","M_offset_6","M_offset_7","M_offset_8","M_offset_9","M_offset_10","M_offset_11","M_offset_12","M_offset_13","M_offset_14","M_offset_15","FF","GG","HH","II","nBitsTotalH","nBitsTotalL","H_i","HmacMD5","xhrrequest_1","jsonptransport_1","fetchrequest_1","shouldFallback","errorInfo","connectionHost","class_1","checksInProgress","_getHosts","connectivityUrlIsDefault","xhrSupported","req","disableConnectivityCheck","upUrl","jsonpInternetUpUrl","fetchSupported","uriFromHost","currentFallback","validUntil","hosts","tryAHost","persistOnSuccess","methodsWithoutBody","utils_1","fetchHeaders","Headers","controller","AbortController","requestInit","isWebworker","credentials","fetch","URLSearchParams","ok","currentUrl","loc","origin","streamingSupported","setImmediate","test","Webstorage","sessionStorage","setItem","removeItem","localStorage","_get","_remove","_set","session","wrappedValue","storageInterface","rawItem","getItem","TransportNames_1","XhrPolling","XhrStreaming","JsonP","TransportNames","jsonptransport","jsonptransport_default","utils","platform_default","comettransport","comettransport_default","xhrrequest","xhrrequest_default","xhrpollingtransport","XHRPollingTransport","xhrstreamingtransport","XHRStreamingTransport","getFirstMatch","getSecondMatch","matchAndReturnConst","getWindowsVersionName","getMacOSVersionName","getAndroidVersionName","getVersionPrecision","compareVersions","reverse","getBrowserAlias","BROWSER_ALIASES_MAP","getBrowserTypeByAlias","BROWSER_MAP","ENGINE_MAP","OS_MAP","PLATFORMS_MAP","Bada","BlackBerry","Chrome","Chromium","Electron","Epiphany","Firefox","Focus","Generic","Googlebot","Maxthon","Opera","PhantomJS","Puffin","QupZilla","QQ","QQLite","Safari","Sailfish","SeaMonkey","Sleipnir","Swing","Tizen","Vivaldi","WeChat","Roku","amazon_silk","android","bada","blackberry","chrome","chromium","electron","epiphany","firefox","focus","generic","googlebot","google_search","ie","k_meleon","maxthon","edge","mz","naver","opera","opera_coast","phantomjs","puffin","qupzilla","qq","qqlite","safari","sailfish","samsung_internet","seamonkey","sleipnir","swing","tizen","uc","vivaldi","webos","wechat","yandex","tablet","mobile","desktop","tv","WindowsPhone","Windows","MacOS","iOS","Android","WebOS","Linux","ChromeOS","PlayStation4","EdgeHTML","Blink","Trident","Presto","Gecko","WebKit","writable","getParser","getResult","_ua","parsedResult","getUA","parseBrowser","browser","some","describe","getBrowser","getBrowserName","getBrowserVersion","getOS","os","parseOS","getOSName","getOSVersion","getPlatform","parsePlatform","getPlatformType","getEngine","engine","parseEngine","getEngineName","satisfies","isOS","isPlatform","isBrowser","compareVersion","isEngine","is","versionName","vendor","model","protocol","urls","content_types","assets","environments","live_preview","enable","itemUid","itemType","styleType","attributes","contentTypeUid","BLOCK","INLINE","LINK","DISPLAY","DOWNLOAD","childNodes","nodeType","textContent","nodeName","forEachEmbeddedItem","DOMParser","parseFromString","querySelectorAll","outerHTML","title","uid","_content_type_uid","system","content_type_uid","url","alt","filename","_embedded_items","$default","renderOption","DOCUMENT","PARAGRAPH","IMAGE","EMBED","HEADING_1","HEADING_2","HEADING_3","HEADING_4","HEADING_5","HEADING_6","ORDER_LIST","UNORDER_LIST","LIST_ITEM","HR","TABLE","TABLE_HEADER","TABLE_BODY","TABLE_FOOTER","TABLE_ROW","TABLE_HEAD","TABLE_DATA","BLOCK_QUOTE","CODE","TEXT","REFERENCE","O","BOLD","ITALIC","UNDERLINE","STRIKE_THROUGH","INLINE_CODE","SUBSCRIPT","SUPERSCRIPT","w","E","A","children","attrs","reference","S","superscript","subscript","inlineCode","strikethrough","underline","italic","bold","D","jsonToHTML","paths","embedded_itemsConnection","edges","node","$","locale","I","Document","GQL","MarkType","Node","NodeType","StyleType","TextNode","addEditableTags","attributeToString","render","renderContent","MutationObserver","WebKitMutationObserver","importScripts","MessageChannel","N","_state","B","_result","createTextNode","observe","characterData","port1","port2","postMessage","runOnLoop","runOnContext","_label","_onerror","R","_subscribers","_instanceConstructor","promise","_remaining","_enumerate","_eachEntry","_settledAt","L","_willSettleAt","finally","race","_setScheduler","_setAsap","_asap","polyfill","cast","Response","globalThis","searchParams","iterable","blob","Blob","formData","getOwnPropertyNames","bodyUsed","onload","FileReader","readAsArrayBuffer","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","_bodyArrayBuffer","readAsText","signal","referrer","cache","redirect","RangeError","DOMException","aborted","responseURL","removeEventListener","providers","policies","IGNORE_CACHE","ONLY_NETWORK","CACHE_ELSE_NETWORK","NETWORK_ELSE_CACHE","CACHE_THEN_NETWORK","getKeys","getStorage","clearByContentType","clearByQuery","clearAll","CachePolicy","Region","EU","US","AZURE_NA","AZURE_EU","requestParams","retryLimit","mergeDeep","debug","option","onRequest","onResponse","error_message","error_code","errors","retryCondition","retryDelayOptions","base","customBackoff","return","transform","_query","BASE","_type","merge","parseQueryFromParams","getHash","generateHash","resultWrapper","spreadResult","environment_uid","queryCachePolicy","cachePolicy","tojson","entry_uid","singleEntry","asset_uid","management_token","schema","content_type","provider","pagination_token","sync_token","total_count","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee3","wrap","_context3","_ref2","_callee2","_context2","include","_ref3","_callee","_context","stop","_x5","abrupt","_x3","_x4","_x","_x2","single","api_key","asset","_x6","_x7","_x8","_x9","_x10","_callee6","_context6","_callee5","_context5","_ref4","_callee4","_context4","_x14","_x11","_x12","_x13","spread","only","fetchOptions","include_fallback","include_metadata","except","include_embedded_items","include_schema","include_reference_content_type_uid","include_branch","include_content_type","include_owner","file_size","$exists","ReferenceError","getPrototypeOf","lessThan","lessThanOrEqualTo","greaterThan","greaterThanOrEqualTo","notEqualTo","containedIn","notContainedIn","exists","notExists","ascending","descending","beforeUid","afterUid","skip","limit","or","and","$in_query","$nin_query","tags","include_count","$regex","$options","typeahead","info","region","delivery_token","branch","only_last_activity","dec","eqIdx","endIdx","lastIndexOf","tryDecode","opt","fieldContentRegExp","maxAge","isNaN","isFinite","domain","__toString","isDate","valueOf","toUTCString","httpOnly","secure","priority","sameSite","FUNC_ERROR_TEXT","HASH_UNDEFINED","PLACEHOLDER","WRAP_CURRY_RIGHT_FLAG","WRAP_PARTIAL_FLAG","WRAP_PARTIAL_RIGHT_FLAG","WRAP_ARY_FLAG","WRAP_REARG_FLAG","INFINITY","NAN","MAX_ARRAY_LENGTH","wrapFlags","argsTag","arrayTag","boolTag","dateTag","errorTag","funcTag","genTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reEmptyStringLeading","reEmptyStringMiddle","reEmptyStringTrailing","reEscapedHtml","reUnescapedHtml","reHasEscapedHtml","RegExp","reHasUnescapedHtml","reEscape","reEvaluate","reInterpolate","reIsDeepProp","reIsPlainProp","rePropName","reRegExpChar","reHasRegExpChar","reTrimStart","reWhitespace","reWrapComment","reWrapDetails","reSplitDetails","reAsciiWord","reForbiddenIdentifierChars","reEscapeChar","reEsTemplate","reFlags","reIsBadHex","reIsBinary","reIsHostCtor","reIsOctal","reIsUint","reLatin","reNoMatch","reUnescapedString","rsAstralRange","rsComboRange","rsComboMarksRange","rsDingbatRange","rsLowerRange","rsUpperRange","rsVarRange","rsBreakRange","rsMathOpRange","rsApos","rsAstral","rsBreak","rsCombo","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsZWJ","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","reOptMod","rsOptVar","rsSeq","rsEmoji","rsSymbol","reApos","reComboMark","reUnicode","reUnicodeWord","reHasUnicode","reHasUnicodeWord","contextProps","templateCounter","typedArrayTags","cloneableTags","stringEscapes","freeParseFloat","parseFloat","freeParseInt","freeGlobal","freeSelf","freeExports","freeModule","moduleExports","freeProcess","nodeUtil","types","binding","nodeIsArrayBuffer","nodeIsDate","nodeIsMap","isMap","nodeIsRegExp","isRegExp","nodeIsSet","isSet","nodeIsTypedArray","func","arrayAggregator","setter","iteratee","accumulator","arrayEach","arrayEachRight","arrayEvery","predicate","arrayFilter","resIndex","arrayIncludes","baseIndexOf","arrayIncludesWith","comparator","arrayMap","arrayPush","arrayReduce","initAccum","arrayReduceRight","arraySome","asciiSize","baseProperty","baseFindKey","collection","eachFunc","baseFindIndex","fromRight","strictIndexOf","baseIsNaN","baseIndexOfWith","baseMean","baseSum","basePropertyOf","baseReduce","baseTimes","baseTrim","trimmedEndIndex","baseUnary","baseValues","props","cacheHas","charsStartIndex","strSymbols","chrSymbols","charsEndIndex","deburrLetter","escapeHtmlChar","escapeStringChar","chr","hasUnicode","mapToArray","overArg","replaceHolders","placeholder","setToArray","setToPairs","stringSize","lastIndex","unicodeSize","stringToArray","unicodeToArray","asciiToArray","unescapeHtmlChar","runInContext","defaults","pick","arrayProto","funcProto","objectProto","coreJsData","funcToString","maskSrcKey","IE_PROTO","nativeObjectToString","objectCtorString","oldDash","reIsNative","allocUnsafe","getPrototype","objectCreate","spreadableSymbol","isConcatSpreadable","symIterator","symToStringTag","getNative","ctxClearTimeout","ctxNow","ctxSetTimeout","nativeCeil","nativeFloor","nativeGetSymbols","nativeIsBuffer","nativeIsFinite","nativeJoin","nativeKeys","nativeMax","nativeMin","nativeNow","nativeParseInt","nativeRandom","nativeReverse","Set","WeakMap","nativeCreate","metaMap","realNames","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","symbolToString","lodash","isObjectLike","LazyWrapper","LodashWrapper","wrapperClone","baseCreate","proto","baseLodash","chainAll","__wrapped__","__actions__","__chain__","__index__","__values__","__dir__","__filtered__","__iteratees__","__takeCount__","__views__","Hash","ListCache","MapCache","SetCache","__data__","add","Stack","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isType","skipIndexes","isIndex","arraySample","baseRandom","arraySampleSize","shuffleSelf","copyArray","baseClamp","arrayShuffle","assignMergeValue","eq","baseAssignValue","assignValue","objValue","assocIndexOf","baseAggregator","baseEach","baseAssign","copyObject","baseAt","number","lower","upper","baseClone","bitmask","customizer","isDeep","isFlat","isFull","initCloneArray","tag","getTag","isFunc","cloneBuffer","initCloneObject","getSymbolsIn","copySymbolsIn","keysIn","baseAssignIn","getSymbols","copySymbols","Ctor","cloneArrayBuffer","dataView","cloneDataView","cloneTypedArray","regexp","cloneRegExp","symbol","initCloneByTag","stacked","subValue","getAllKeysIn","getAllKeys","baseConformsTo","baseDelay","wait","baseDifference","isCommon","valuesLength","computed","valuesIndex","templateSettings","getMapData","pairs","LARGE_ARRAY_SIZE","createBaseEach","baseForOwn","baseEachRight","baseForOwnRight","baseEvery","baseExtremum","isSymbol","baseFilter","baseFlatten","depth","isStrict","isFlattenable","baseFor","createBaseFor","baseForRight","baseFunctions","isFunction","baseGet","castPath","toKey","baseGetAllKeys","keysFunc","symbolsFunc","baseGetTag","isOwn","unmasked","getRawTag","objectToString","baseGt","other","baseHas","baseHasIn","baseIntersection","arrays","othLength","othIndex","caches","maxLength","Infinity","seen","baseInvoke","parent","baseIsArguments","baseIsEqual","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","convert","isPartial","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","othProps","objStacked","othStacked","skipCtor","othValue","compared","objCtor","othCtor","equalObjects","baseIsEqualDeep","baseIsMatch","matchData","noCustomizer","srcValue","COMPARE_PARTIAL_FLAG","baseIsNative","baseIteratee","identity","baseMatchesProperty","baseMatches","baseKeys","isPrototype","baseKeysIn","nativeKeysIn","isProto","baseLt","baseMap","isArrayLike","getMatchData","matchesStrictComparable","isKey","isStrictComparable","hasIn","baseMerge","srcIndex","mergeFunc","safeGet","newValue","isTyped","isArrayLikeObject","isPlainObject","toPlainObject","baseMergeDeep","baseNth","baseOrderBy","iteratees","orders","getIteratee","criteria","comparer","baseSortBy","objCriteria","othCriteria","ordersLength","compareAscending","compareMultiple","basePickBy","baseSet","basePullAll","basePullAt","indexes","baseUnset","baseRepeat","baseRest","start","setToString","overRest","baseSample","baseSampleSize","nested","baseSetData","baseSetToString","constant","baseShuffle","baseSlice","baseSome","baseSortedIndex","retHighest","low","high","mid","baseSortedIndexBy","valIsNaN","valIsNull","valIsSymbol","valIsUndefined","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","setLow","baseSortedUniq","baseToNumber","baseToString","baseUniq","createSet","seenIndex","baseUpdate","updater","baseWhile","isDrop","baseWrapperValue","baseXor","baseZipObject","assignFunc","valsLength","castArrayLikeObject","castFunction","stringToPath","castRest","castSlice","valIsDefined","valIsReflexive","composeArgs","partials","holders","isCurried","argsIndex","argsLength","holdersLength","leftIndex","leftLength","rangeLength","isUncurried","composeArgsRight","holdersIndex","rightIndex","rightLength","isNew","createAggregator","initializer","createAssigner","assigner","sources","guard","isIterateeCall","createCaseFirst","trailing","createCompounder","deburr","createCtor","thisBinding","createFind","findIndexFunc","createFlow","flatRest","funcs","prereq","thru","wrapper","getFuncName","getData","isLaziable","plant","createHybrid","partialsRight","holdersRight","argPos","ary","arity","isAry","isBind","isBindKey","isFlip","getHolder","holdersCount","countHolders","newHolders","createRecurry","arrLength","oldArray","reorder","createInverter","toIteratee","baseInverter","createMathOperation","operator","defaultValue","createOver","arrayFunc","createPadding","chars","charsLength","createRange","toFinite","baseRange","createRelationalOperation","toNumber","wrapFunc","isCurry","newData","setData","setWrapToString","createRound","precision","toInteger","pair","createToPairs","baseToPairs","createWrap","srcBitmask","newBitmask","isCombo","mergeData","createCurry","createPartial","createBind","customDefaultsAssignIn","customDefaultsMerge","customOmitClone","arrStacked","arrValue","flatten","otherFunc","isKeyable","getValue","stubArray","hasPath","hasFunc","isLength","ctorString","isMaskable","stubFalse","otherArgs","shortOut","details","insertWrapDetails","updateWrapDetails","getWrapDetails","lastCalled","stamp","remaining","rand","memoize","memoizeCapped","quote","subString","difference","differenceBy","differenceWith","findIndex","findLastIndex","intersection","mapped","intersectionBy","intersectionWith","pull","pullAll","pullAt","union","unionBy","unionWith","unzip","group","unzipWith","without","xor","xorBy","xorWith","zip","zipWith","chain","interceptor","wrapperAt","countBy","findLast","forEachRight","groupBy","invokeMap","keyBy","partition","sortBy","before","bindKey","WRAP_BIND_FLAG","debounce","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","invokeFunc","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","leadingEdge","cancel","flush","defer","delay","resolver","memoized","Cache","negate","overArgs","transforms","funcsLength","partial","partialRight","rearg","gt","gte","isError","isInteger","isNumber","isString","lt","lte","toArray","iteratorToArray","remainder","toLength","isBinary","assignIn","assignInWith","assignWith","at","propsIndex","propsLength","defaultsDeep","mergeWith","invert","invertBy","invoke","omit","CLONE_DEEP_FLAG","basePick","pickBy","toPairs","toPairsIn","camelCase","capitalize","upperFirst","kebabCase","lowerCase","lowerFirst","snakeCase","startCase","upperCase","pattern","hasUnicodeWord","unicodeWords","asciiWords","attempt","bindAll","methodNames","flow","flowRight","methodOf","over","overEvery","overSome","basePropertyDeep","range","rangeRight","augend","addend","divide","dividend","divisor","multiply","multiplier","multiplicand","subtract","minuend","subtrahend","after","castArray","compact","cond","conforms","baseConforms","curry","curryRight","drop","dropRight","dropRightWhile","dropWhile","fill","baseFill","flatMap","flatMapDeep","flatMapDepth","flattenDeep","flattenDepth","flip","fromPairs","functions","functionsIn","initial","mapKeys","mapValues","matches","matchesProperty","nthArg","omitBy","orderBy","propertyOf","pullAllBy","pullAllWith","sampleSize","setWith","shuffle","sortedUniq","sortedUniqBy","separator","tail","take","takeRight","takeRightWhile","takeWhile","tap","throttle","toPath","isArrLike","unary","uniq","uniqBy","uniqWith","unset","updateWith","valuesIn","zipObject","zipObjectDeep","entriesIn","extendWith","cloneDeep","cloneDeepWith","cloneWith","conformsTo","defaultTo","endsWith","escapeRegExp","findKey","findLastKey","forIn","forInRight","forOwn","forOwnRight","inRange","baseInRange","isBoolean","isElement","isEqual","isEqualWith","isMatch","isMatchWith","isNative","isNil","isNull","isSafeInteger","isUndefined","isWeakMap","isWeakSet","strictLastIndexOf","maxBy","meanBy","minBy","stubObject","stubString","stubTrue","nth","noConflict","strLength","padEnd","radix","floating","reduceRight","repeat","sample","sortedIndex","sortedIndexBy","sortedIndexOf","sortedLastIndex","sortedLastIndexBy","sortedLastIndexOf","startsWith","sum","sumBy","template","settings","isEscaping","isEvaluating","imports","importsKeys","importsValues","interpolate","reDelimiters","evaluate","sourceURL","escapeValue","interpolateValue","esTemplateValue","evaluateValue","variable","times","toLower","toSafeInteger","toUpper","trimEnd","trimStart","truncate","omission","newEnd","uniqueId","prefix","each","eachRight","VERSION","isFilter","takeName","dropName","checkIteratee","isTaker","lodashFunc","retUnwrapped","isLazy","useLazy","isHybrid","isUnwrapped","onlyLazy","chainName","dir","isRight","getView","iterLength","takeCount","iterIndex","commit","wrapped","define","hookCallback","hooks","setHookCallback","hasOwnProp","isObjectEmpty","arrLen","createUTC","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","_pf","isValid","_isValid","parsedParts","isNowValid","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","fun","momentProperties","updateInProgress","copyConfig","momentPropertiesLen","_isAMomentObject","_l","_tzm","_isUTC","_offset","_locale","Moment","updateOffset","isMoment","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","argLen","deprecations","deprecateSimple","_config","_dayOfMonthOrdinalParseLenient","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","mom","output","_calendar","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","ordinal","localeData","removeFormattingTokens","makeFormatFunction","formatMoment","expandFormat","invalidDate","replaceLongDateFormatTokens","longDateFormat","defaultLongDateFormat","LTS","LT","LL","LLL","LLLL","_longDateFormat","formatUpper","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","future","past","ss","mm","hh","dd","ww","MM","yy","relativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","diff","aliases","addUnitAlias","shorthand","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","getPrioritizedUnits","unitsObj","isLeapYear","year","absFloor","toInt","argumentForCoercion","coercedNumber","makeGetSet","keepTime","set$1","month","date","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","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","YEAR","MONTH","DATE","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","toLocaleLowerCase","_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","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","minl","normalizeLocale","chooseLocale","names","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","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekYear","weekdayOverflow","curWeek","createLocal","gg","ISO_8601","RFC_2822","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","hour","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromObject","dayOrDate","minute","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","prototypeMin","prototypeMax","moments","ordering","isDurationValid","unitHasDecimal","orderLen","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","_milliseconds","_days","_bubble","isDuration","absRound","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","utcOffset","offsetFromString","chunkOffset","matcher","cloneWithOffset","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","isAfter","isBefore","createAdder","direction","period","tmp","isAdding","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","propertyLen","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","toISOString","keepOffset","toDate","datetime","suffix","zone","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","localStartOfDate","utcStartOfDate","startOfDate","isoWeekday","unix","toObject","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","for","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","zoneAbbr","zoneName","dates","isDSTShifted","proto$1","get$1","field","listMonthsImpl","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","argWithSuffix","argThresholds","withSuffix","th","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","toFixed","proto$2","toIsoString","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","aa","ca","da","ea","fa","ha","ia","ja","ka","la","ma","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","z","ra","sa","ta","pa","qa","oa","removeAttribute","setAttribute","setAttributeNS","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","prepareStackTrace","construct","displayName","Pa","Qa","$$typeof","_payload","_init","Ra","Sa","Ta","Va","_valueTracker","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","Ya","defaultChecked","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","db","ownerDocument","eb","fb","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","hb","ib","jb","kb","lb","mb","nb","namespaceURI","innerHTML","appendChild","MSApp","execUnsafeLocalFunction","lastChild","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","qb","rb","sb","style","setProperty","tb","menuitem","area","br","col","embed","hr","img","keygen","link","meta","track","wbr","ub","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","onError","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","Wb","memoizedState","dehydrated","Xb","Zb","child","sibling","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","clz32","pc","qc","LN2","rc","sc","tc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","ed","transition","fd","gd","hd","Uc","stopPropagation","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","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","which","Rd","Td","width","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","le","color","email","tel","me","ne","oe","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","nextSibling","Le","contains","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","Ne","contentEditable","Oe","focusedElem","selectionRange","documentElement","selectionStart","selectionEnd","defaultView","getSelection","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","top","scrollTop","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","animation","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","nf","Ub","of","pf","qf","rf","sf","capture","passive","J","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","char","ke","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","Gf","Hf","Jf","queueMicrotask","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","G","Vf","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","elementType","deletions","Cg","pendingProps","treeContext","retryLane","Dg","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","defaultProps","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","dependencies","firstContext","lanes","Ug","Vg","memoizedValue","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","bh","ch","eventTime","lane","dh","eh","fh","gh","ih","jh","Component","refs","kh","nh","isMounted","_reactInternals","enqueueSetState","lh","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","ph","contextType","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","rh","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","sh","_owner","_stringRef","uh","vh","wh","xh","yh","implementation","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","tagName","Jh","Kh","Lh","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","Sh","Th","Uh","Vh","Q","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","di","ei","fi","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","dispatch","gi","hi","ji","ki","getSnapshot","li","mi","ni","lastEffect","stores","oi","pi","qi","ri","destroy","deps","si","ti","ui","vi","wi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","getDerivedStateFromError","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","ReactCurrentOwner","Yi","Zi","$i","aj","bj","compare","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","kj","lj","pendingContext","mj","Aj","Bj","Cj","Dj","nj","oj","pj","fallback","qj","rj","tj","dataset","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","tailMode","yj","Ej","Fj","Gj","wasMultiple","multiple","suppressHydrationWarning","onClick","onclick","createElementNS","autoFocus","Hj","Ij","Jj","Kj","U","Lj","WeakSet","V","Mj","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","_reactRootContainer","Xj","X","Yj","Zj","ak","onCommitFiberUnmount","componentWillUnmount","bk","ck","dk","ek","fk","isHidden","gk","hk","display","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","Wk","mk","nk","pk","Y","Z","qk","rk","sk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","al","isReactComponent","pendingChildren","bl","mutableSourceEagerHydrationData","cl","pendingSuspenseBoundaries","el","fl","gl","hl","zj","$k","ll","reportError","ml","_internalRoot","nl","ol","pl","ql","sl","rl","unmount","unstable_scheduleHydration","form","tl","usingClientEntryPoint","Events","ul","findFiberByHostInstance","bundleType","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","wl","isDisabled","supportsFiber","inject","createPortal","dl","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","__self","__source","Fragment","jsx","jsxs","setState","forceUpdate","_status","Children","Profiler","PureComponent","StrictMode","Suspense","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","memo","startTransition","unstable_act","sortIndex","performance","startTime","expirationTime","priorityLevel","scheduling","isInputPending","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","asyncGeneratorStep","gen","_next","_throw","_typeof","Generator","Context","makeInvokeMethod","tryCatch","GeneratorFunction","GeneratorFunctionPrototype","defineIteratorMethods","_invoke","AsyncIterator","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","_sent","dispatchException","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","isGeneratorFunction","awrap","rval","handle","delegateYield","__webpack_module_cache__","cachedModule","loaded","__webpack_modules__","leafPrototypes","getProto","def","definition","chunkId","miniCssF","dataWebpackPrefix","needAttach","scripts","getAttribute","nc","onScriptComplete","doneFns","nmd","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","chunkLoadingGlobal","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","_arrayWithHoles","_arrayLikeToArray","_unsupportedIterableToArray","minLen","_nonIterableRest","Constructor","_toPropertyKey","hint","prim","toPrimitive","_defineProperties","descriptor","protoProps","staticProps","_setPrototypeOf","subClass","superClass","_isNativeReflectConstruct","sham","Proxy","Boolean","Derived","hasNativeReflectConstruct","Super","NewTarget","_construct","Parent","Class","_wrapNativeSuper","_cache","Wrapper","_iterableToArray","iter","_toArray","_createForOfIteratorHelper","allowArrayLike","it","normalCompletion","didErr","_e2","ResultType","PopStateEventType","invariant","warning","getHistoryState","usr","createLocation","_extends","pathname","parsePath","createPath","_ref$pathname","_ref$search","_ref$hash","parsedPath","hashIndex","searchIndex","getUrlBasedHistory","getLocation","createHref","validateLocation","_options2","_options2$window","_options2$v5Compat","v5Compat","globalHistory","Pop","getIndex","handlePop","nextIndex","createURL","URL","replaceState","listen","encodeLocation","historyState","pushState","Replace","go","immutableRouteKeys","convertRoutesToDataRoutes","routes","mapRouteProperties","parentPath","manifest","route","treePath","_toConsumableArray","isIndexRoute","indexRoute","pathOrLayoutRoute","matchRoutes","locationArg","basename","stripBasename","branches","flattenRoutes","siblings","compareIndexes","routesMeta","childrenIndex","rankRouteBranches","matchRouteBranch","safelyDecodeURI","parentsMeta","flattenRoute","relativePath","caseSensitive","joinPaths","computeScore","_route$path","_step","_iterator","explodeOptionalSegments","exploded","segments","_segments","isOptional","required","restExploded","subpath","paramRe","dynamicSegmentValue","indexRouteValue","emptySegmentValue","staticSegmentValue","splatPenalty","isSplat","initialScore","segment","matchedParams","matchedPathname","remainingPathname","matchPath","pathnameBase","normalizePathname","_compilePath","paramNames","regexpSource","paramName","compilePath","_compilePath2","_slicedToArray","captureGroups","splatValue","safelyDecodeURIComponent","decodeURI","startIndex","nextChar","getInvalidPathError","getPathContributingMatches","resolveTo","toArg","routePathnames","locationPathname","isPathRelative","isEmptyPath","toPathname","routePathnameIndex","toSegments","fromPathname","_ref4$search","_ref4$hash","resolvePathname","normalizeSearch","normalizeHash","resolvePath","hasExplicitTrailingSlash","hasCurrentTrailingSlash","AbortedDeferredError","_Error","_inherits","_createSuper","_classCallCheck","_createClass","ErrorResponse","internal","isRouteErrorResponse","validMutationMethodsArr","validMutationMethods","validRequestMethodsArr","validRequestMethods","redirectStatusCodes","redirectPreserveMethodStatusCodes","IDLE_NAVIGATION","formMethod","formAction","formEncType","IDLE_FETCHER","IDLE_BLOCKER","proceed","ABSOLUTE_URL_REGEX","defaultMapRouteProperties","hasErrorBoundary","createRouter","routerWindow","isServer","detectErrorBoundary","inFlightDataRoutes","dataRoutes","v7_normalizeFormMethod","v7_prependBasename","unlistenHistory","subscribers","savedScrollPositions","getScrollRestorationKey","getScrollPosition","initialScrollRestored","hydrationData","initialMatches","initialErrors","getInternalRouterError","_getShortCircuitMatch","getShortCircuitMatches","_defineProperty","router","pendingNavigationController","loader","historyAction","navigation","restoreScrollPosition","preventScrollReset","revalidation","loaderData","actionData","fetchers","blockers","pendingAction","pendingPreventScrollReset","isUninterruptedRevalidation","isRevalidationRequired","cancelledDeferredRoutes","cancelledFetcherLoads","fetchControllers","incrementingLoadId","pendingNavigationLoadId","fetchReloadIds","fetchRedirectIds","fetchLoadMatches","activeDeferreds","blockerFunctions","ignoreNextHistoryUpdate","updateState","subscriber","completeNavigation","_location$state","_location$state2","isActionReload","isMutationMethod","_isRedirect","mergeLoaderData","getSavedScrollPosition","navigate","_navigate","opts","normalizedPath","_normalizeNavigateOpt2","submission","currentLocation","nextLocation","userReplace","blockerKey","normalizeTo","fromRouteId","relative","normalizeNavigateOptions","shouldBlockNavigation","updateBlocker","startNavigation","pendingError","_startNavigation","routesToUse","loadingNavigation","_error","_getShortCircuitMatch2","notFoundMatches","_route","pendingActionData","actionOutput","_yield$handleLoaders","shortCircuited","startUninterruptedRevalidation","saveScrollPosition","overrideNavigation","cancelActiveDeferreds","isHashChangeOnly","createClientSideRequest","findNearestBoundary","handleAction","pendingActionError","getLoadingNavigation","handleLoaders","fetcherSubmission","_handleAction","actionMatch","boundaryMatch","interruptActiveLoads","getSubmittingNavigation","getTargetMatch","routeId","callLoaderOrAction","isRedirectResult","startRedirectNavigation","isErrorResult","isDeferredResult","_x15","_x16","_x17","_x18","_x19","_x20","_handleLoaders","activeSubmission","_getMatchesToLoad","_getMatchesToLoad2","matchesToLoad","revalidatingFetchers","_updatedFetchers","abortPendingFetchRevalidations","_yield$callLoadersAnd","results","loaderResults","fetcherResults","fetcherKey","_processLoaderData","updatedFetchers","didAbortFetchLoads","shouldUpdateFetchers","getSubmissionFromNavigation","getMatchesToLoad","markFetchRedirectsDone","fetcher","revalidatingFetcher","getLoadingFetcher","abortFetcher","callLoadersAndMaybeResolveData","findRedirect","processLoaderData","deferredData","abortStaleFetchLoads","getFetcher","_handleFetcherAction","requestMatches","_error2","existingFetcher","abortController","fetchRequest","originatingLoadId","actionResult","doneFetcher","loadingFetcher","revalidationRequest","loadId","loadFetcher","_getMatchesToLoad3","_getMatchesToLoad4","_yield$callLoadersAnd2","_processLoaderData2","_doneFetcher","setFetcherError","getSubmittingFetcher","getDoneFetcher","isFetchActionRedirect","staleKey","_handleFetcherLoader","_callee7","_doneFetcher2","_context7","resolveDeferredData","_x33","_x34","_x35","_startRedirectNavigation","_callee8","_temp","_ref7","redirectLocation","isDocumentReload","redirectHistoryAction","_context8","revalidate","_isFetchActionRedirect","reloadDocument","_x36","_x37","_x38","_x39","_x40","_callLoadersAndMaybeResolveData","_callee9","currentMatches","fetchersToLoad","_context9","resolveDeferredResults","_cancelledDeferredRou","deleteFetcher","markFetchersDone","_step2","_iterator2","_step3","doneKeys","_iterator3","landedId","_step4","yeetedKeys","_iterator4","_step4$value","deleteBlocker","newBlocker","blocker","_entries","blockerFunction","cancelledRouteIds","dfd","getScrollKey","createUseMatchesMatch","initialize","enableScrollRestoration","positions","getPosition","getKey","_normalizeNavigateOpt","_x21","_x22","_x23","_x24","_x25","_x26","handleFetcherAction","_x27","_x28","_x29","_x30","_x31","_x32","handleFetcherLoader","getBlocker","_internalFetchControllers","_internalActiveDeferreds","_internalSetRoutes","newRoutes","prependBasename","contextualMatches","activeRouteMatch","_step5","_iterator5","hasNakedIndexQuery","normalizeFormMethod","isFetcher","isSubmissionNavigation","isValidMethod","getInvalidBodyError","rawFormMethod","stripHashFromPath","acc","_ref12","convertFormDataToSearchParams","convertSearchParamsToFormData","getLoaderMatchesUntilBoundary","boundaryId","boundaryMatches","nextUrl","navigationMatches","currentLoaderData","currentMatch","isMissingData","isNewLoader","currentRouteMatch","nextRouteMatch","shouldRevalidateLoader","currentParams","nextParams","defaultShouldRevalidate","isNewRouteInstance","fetcherMatches","fetcherMatch","currentPath","loaderMatch","shouldRevalidate","routeChoice","loadLazyRouteModule","_x60","_x61","_x62","_loadLazyRouteModule","_callee15","lazyRoute","routeToUpdate","routeUpdates","lazyRouteProperty","staticRouteValue","isPropertyStaticallyDefined","_context16","_x63","_x64","_x65","_x66","_x67","_x68","_x69","_x70","_callLoaderOrAction","_callee16","resultType","onReject","runHandler","_url","_url2","isSameBasename","_result$init","_result$init2","_context17","abortPromise","requestContext","isResponse","isStaticRequest","isRouteRequest","isDeferredData","deferred","_step6","_iterator6","_step6$value","_step7","_iterator7","_step7$value","processRouteLoaderData","foundError","loaderHeaders","_processRouteLoaderDa","_revalidatingFetchers","newLoaderData","_step8","mergedLoaderData","_iterator8","eligibleMatches","_temp4","_ref13","resolveData","_x71","_x72","_x73","_x74","_x75","_x76","_resolveDeferredResults","_callee17","signals","_loop","_context19","isRevalidatingLoader","_context18","_x77","_x78","_x79","_resolveDeferredData","_callee18","unwrap","_context20","unwrappedData","getAll","pathMatches","DataRouterContext","React","DataRouterStateContext","AwaitContext","NavigationContext","LocationContext","RouteContext","outlet","isDataRoute","RouteErrorContext","useInRouterContext","useLocation","UNSAFE_invariant","useIsomorphicLayoutEffect","static","useNavigate","useDataRouterContext","DataRouterHook","UseNavigateStable","useCurrentRouteId","DataRouterStateHook","activeRef","useNavigateStable","dataRouterContext","_React$useContext3","routePathnamesJson","UNSAFE_getPathContributingMatches","useNavigateUnstable","OutletContext","useResolvedPath","_temp2","useRoutesImpl","dataRouterState","parentMatches","routeMatch","parentParams","parentPathnameBase","locationFromContext","_parsedLocationArg$pa","parsedLocationArg","renderedMatches","_renderMatches","navigationType","DefaultErrorComponent","useRouteError","lightgrey","preStyles","backgroundColor","fontStyle","defaultErrorElement","RenderErrorBoundary","_React$Component","routeContext","component","RenderedRoute","staticContext","errorElement","ErrorBoundary","_deepestRenderedBoundaryId","_dataRouterState2","_dataRouterState","errorIndex","getChildren","hookName","ctx","useDataRouterState","useRouteContext","thisRoute","_state$errors","UseRouteError","startTransitionImpl","RouterProvider","fallbackElement","_React$useState4","setStateImpl","v7_startTransition","Router","DataRoutes","Outlet","useOutlet","_ref5","_ref5$basename","basenameProp","_ref5$children","locationProp","_ref5$navigationType","_ref5$static","staticProp","navigationContext","_locationProp","_locationProp$pathnam","_locationProp$search","_locationProp$hash","_locationProp$state","_locationProp$key","locationContext","trailingPathname","AwaitRenderStatus","neverSettledPromise","updates","parseHydrationData","_window","__staticRouterHydrationData","deserializeErrors","_entries$_i","__type","__subType","ErrorConstructor","Link","absoluteHref","_objectWithoutPropertiesLoose","_excluded","UNSAFE_NavigationContext","isExternal","targetUrl","_React$useContext","_useResolvedPath","joinedPathname","useHref","internalOnClick","replaceProp","isModifiedEvent","shouldProcessLinkClick","useLinkClickHandler","ScrollRestoration","_temp3","_ref14","storageKey","UseScrollRestoration","_useDataRouterState","UseMatches","useMatches","UseNavigation","scrollRestoration","usePageHide","scrollY","SCROLL_RESTORATION_STORAGE_KEY","sessionPositions","getKeyWithoutBasename","disableScrollRestoration","getElementById","scrollIntoView","scrollTo","useScrollRestoration","UNSAFE_DataRouterContext","UNSAFE_DataRouterStateContext","Button","_ref$onClick","_ref$buttonStyle","buttonStyle","_ref$type","_jsx","className","Header","useDark","_ref$logo","logo","logoRed","_useState2","expanded","setExpanded","_useState4","scrollPosition","setScrollPosition","handleScroll","containerStyle","textStyle","iconStyle","hamburgerStyle","_jsxs","_Fragment","rel","tiktok","youtube","insta","twitter","hamburger","logoHover","Footer","logoGif","Loader","_ref$small","small","_ref$style","USER_BLOCKED_MESSAGE","LoginModal","visible","setVisible","onLogin","cognito","passwordShown","setPasswordShown","setPassword","_useState6","setEmail","_useState8","setCode","_useState10","confirmationCode","setConfirmationCode","_useState12","setErrors","_useState14","setErrorMessage","_useState16","isLoading","setIsLoading","_useState18","isForgotSent","setIsForgotSent","_useState20","isConfirmationSent","setIsConfirmationSent","loginAndNavigate","login","resendCode","confirmEmail","confirm","_err","confirmForgotPassword","pass","hasNumber","hasUpperLower","hasSpecialCharacter","handleUserKeyPress","isSent","closeIcon","onChange","evt","onKeyDown","eyeClosed","eye","marginTop","forgotPassword","ownKeys","_objectSpread2","getOwnPropertyDescriptors","defineProperties","HttpAuthLocation","EndpointURLScheme","AlgorithmId","getHttpHandlerExtensionConfiguration","runtimeConfig","httpHandler","setHttpHandler","updateHttpClientConfig","httpHandlerConfigs","resolveHttpHandlerRuntimeConfig","httpHandlerExtensionConfiguration","FieldPosition","RequestHandlerProtocol","HttpRequest","hostname","username","fragment","cloned","_objectSpread","carry","HttpResponse","resp","hostHeaderMiddlewareOptions","override","getHostHeaderPlugin","applyToStack","clientStack","_ref2$handlerProtocol","isInstance","requestHandler","handlerProtocol","hostHeaderMiddleware","excluded","sourceKeys","sourceSymbolKeys","loggerMiddlewareOptions","getLoggerPlugin","_logger$info","clientName","commandName","_context$dynamoDbDocu","dynamoDbDocumentClientOptions","overrideInputFilterSensitiveLog","overrideOutputFilterSensitiveLog","inputFilterSensitiveLog","outputFilterSensitiveLog","_response$output","$metadata","outputWithoutMetadata","_logger$error","_clientName","_commandName","_logger","_context$dynamoDbDocu2","_overrideInputFilterSensitiveLog","_inputFilterSensitiveLog","_objectWithoutProperties","TRACE_ID_HEADER_NAME","addRecursionDetectionMiddlewareOptions","getRecursionDetectionPlugin","traceId","nonEmptyString","recursionDetectionMiddleware","isExpired","requiresRefresh","resolved","hasResult","isConstant","coalesceProvider","forceRefresh","SHORT_TO_HEX","HEX_TO_SHORT","encodedByte","toHex","Int64","negative","HEADER_VALUE_TYPE","HeaderMarshaller","chunks","_Object$keys","headerName","formatHeaderValue","_i2","_chunks","shortView","intView","longBytes","binView","binBytes","utf8Bytes","strView","strBytes","tsBytes","fromNumber","UUID_PATTERN","uuidBytes","fromHex","nameLength","BOOLEAN_TAG","BYTE_TAG","SHORT_TAG","INT_TAG","LONG_TAG","binaryLength","BINARY_TAG","STRING_TAG","TIMESTAMP_TAG","UUID_TAG","subarray","_OverloadYield","AsyncGenerator","normalizeProvider","promisified","toUint8Array","AMZ_DATE_QUERY_PARAM","SIGNATURE_QUERY_PARAM","TOKEN_QUERY_PARAM","AUTH_HEADER","AMZ_DATE_HEADER","GENERATED_HEADERS","SIGNATURE_HEADER","SHA256_HEADER","TOKEN_HEADER","ALWAYS_UNSIGNABLE_HEADERS","expect","pragma","referer","trailer","PROXY_HEADER_PATTERN","SEC_HEADER_PATTERN","ALGORITHM_IDENTIFIER","EVENT_ALGORITHM_IDENTIFIER","KEY_TYPE_IDENTIFIER","signingKeyCache","cacheQueue","createScope","shortDate","service","getSigningKey","sha256Constructor","credsHash","cacheKey","_arr","signable","secretAccessKey","accessKeyId","sessionToken","getCanonicalHeaders","unsignableHeaders","signableHeaders","canonical","canonicalHeaderName","escapeUri","getPayloadHash","hashConstructor","hashCtor","hasHeader","soughtHeader","cloneRequest","cloneQuery","moveHeadersToQuery","_ref$query","_options$unhoistableH","lname","unhoistableHeaders","prepareRequest","SignatureV4","applyChecksum","sha256","_ref$uriEscapePath","uriEscapePath","headerMarshaller","regionProvider","credentialProvider","_presign","originalRequest","_options$signingDate","signingDate","_options$expiresIn","expiresIn","signingRegion","signingService","_formatDate","longDate","scope","canonicalHeaders","validateResolvedCredentials","formatDate","getCanonicalHeaderList","t4","t5","t6","t7","t8","t9","createCanonicalRequest","getSignature","_sign","toSign","signString","signEvent","signMessage","signRequest","_signEvent","_ref3$signingDate","priorSignature","_formatDate2","hashedPayload","hashedHeaders","stringToSign","_signMessage","signableMessage","_ref4$signingDate","signature","_signString","_ref5$signingDate","_formatDate3","_args5","_signRequest","requestToSign","_ref6","_ref6$signingDate","_formatDate4","payloadHash","_args6","sortedHeaders","getCanonicalPath","getCanonicalQuery","_createStringToSign","credentialScope","canonicalRequest","hashedRequest","normalizedPathSegments","pathSegment","_getSignature","keyPromise","createStringToSign","normalizeCredentialProvider","expiration","selectedPartitionsInfo","partitionsInfo","selectedUserAgentPrefix","partitions","regions","outputs","_Object$entries","_Object$entries$_i","regionData","regionRegex","DEFAULT_PARTITION","setPartitionInfo","useDefaultPartitionInfo","getUserAgentPrefix","debugId","toDebugString","argv","HostAddressType","EndpointError","IP_V4_REGEX","isIpAddress","VALID_HOST_LABEL_REGEX","isValidHostLabel","isVirtualHostableS3Bucket","parseArn","arn","accountId","resourceId","booleanEquals","value1","value2","getAttr","pathList","part","squareBracketIndex","arrayIndex","getAttrPathList","not","SelectorType","DEFAULT_PORTS","_DEFAULT_PORTS","HTTP","HTTPS","parseURL","whatwgURL","_value$protocol","_value$path","_value$query","urlString","scheme","isIp","inputContainsDefaultPort","stringEquals","uriEncode","evaluateTemplate","evaluatedTemplateArr","templateContext","endpointParams","referenceRecord","currentIndex","openingBraceIndex","closingBraceIndex","parameterName","_parameterName$split2","refName","attrName","evaluateExpression","callFunction","getReferenceValue","evaluatedArgs","evaluateCondition","_options$logger","_options$logger$debug","fnArgs","toAssign","evaluateConditions","conditionsReferenceRecord","_options$logger2","condition","_evaluateCondition","getEndpointHeaders","headerKey","headerVal","headerValEntry","processedExpr","getEndpointProperty","propertyEntry","getEndpointProperties","propertyKey","propertyVal","getEndpointUrl","endpointUrl","expression","evaluateEndpointRule","endpointRule","conditions","endpoint","_evaluateConditions","endpointRuleOptions","evaluateErrorRule","errorRule","evaluateTreeRule","treeRule","rules","evaluateRules","rule","endpointOrUndefined","resolveEndpoint","ruleSetObject","_options$endpointPara","_options$logger2$debu","parameters","paramsWithDefault","_endpointParams$param","_step$value","paramKey","paramDefaultValue","requiredParam","Endpoint","givenEndpoint","USER_AGENT","X_AMZ_USER_AGENT","UA_NAME_ESCAPE_REGEX","UA_VALUE_ESCAPE_REGEX","escapeUserAgent","userAgentPair","_userAgentPair$","prefixSeparatorIndex","uaName","getUserAgentMiddlewareOptions","getUserAgentPlugin","_context$userAgent","_options$customUserAg","defaultUserAgent","customUserAgent","sdkUserAgentValue","normalUAValue","defaultUserAgentProvider","section","isFipsRegion","getRealRegion","resolveRegionConfig","useFipsEndpoint","_region2","providedRegion","_useFipsEndpoint2","CONTENT_LENGTH_HEADER","contentLengthMiddlewareOptions","getContentLengthPlugin","bodyLengthChecker","deserializerMiddlewareOption","serializerMiddlewareOption","getSerdePlugin","serializer","deserializer","commandStack","_yield$next","parsed","deserializerMiddleware","_context$endpointV","endpointV2","urlParser","serializerMiddleware","resolveParamsForS3","bucket","Bucket","isArnBucketName","ForcePathStyle","isDnsCompatibleBucketName","DisableMultiRegionAccessPoints","disableMultiRegionAccessPoints","DisableMRAP","DOMAIN_PATTERN","IP_ADDRESS_PATTERN","DOTS_PATTERN","bucketName","_bucketName$split2","account","typeOrId","isArn","isValidArn","createConfigValueProvider","configKey","canonicalEndpointParamKey","configProvider","_config$configKey","configValue","getEndpointFromInstructions","commandInput","instructionsSupplier","clientConfig","resolveParams","endpointProvider","_instructionsSupplier","instructions","instruction","getEndpointParameterInstructions","serviceId","endpointMiddlewareOptions","relation","toMiddleware","getEndpointPlugin","addRelativeTo","_endpoint$properties","_context$authSchemes","authScheme","authSchemes","signingName","endpointMiddleware","RETRY_MODES","parseUrl","querystring","_pair$split2","_pair$split2$","toEndpointV1","resolveEndpointConfig","_input$tls","_input$useDualstackEn","_input$useFipsEndpoin","customEndpointProvider","isCustomEndpoint","useDualstackEndpoint","DEFAULT_RETRY_MODE","STANDARD","THROTTLING_ERROR_CODES","TRANSIENT_ERROR_CODES","TRANSIENT_ERROR_STATUS_CODES","NODEJS_TIMEOUT_ERROR_CODES","isThrottlingError","_error$$metadata","_error$$retryable","httpStatusCode","$retryable","throttling","isTransientError","_error$$metadata2","DefaultRateLimiter","_options$beta","_options$minCapacity","_options$minFillRate","_options$scaleConstan","_options$smooth","currentCapacity","enabled","lastMaxRate","measuredTxRate","requestCount","lastTimestamp","timeWindow","beta","minCapacity","minFillRate","scaleConstant","smooth","currentTimeInSeconds","getCurrentTimeInSeconds","lastThrottleTime","lastTxRateBucket","fillRate","maxCapacity","_getSendToken","acquireTokenBucket","_acquireTokenBucket","amount","refillTokenBucket","fillAmount","calculatedRate","updateMeasuredRate","rateToUse","calculateTimeWindow","cubicThrottle","enableTokenBucket","cubicSuccess","newRate","updateTokenBucketRate","getPrecise","timeBucket","currentRate","createDefaultRetryToken","retryCost","getRetryCount","getRetryDelay","getRetryCost","StandardRetryStrategy","maxAttempts","capacity","retryBackoffStrategy","delayBase","computeNextBackoffDelay","attempts","setDelayBase","getDefaultRetryBackoffStrategy","maxAttemptsProvider","_acquireInitialRetryToken","retryTokenScope","_refreshRetryTokenForRetry","delayFromErrorType","capacityCost","getMaxAttempts","shouldRetry","retryAfterHint","getCapacityCost","_token$getRetryCost","_getMaxAttempts","tokenToRenew","isRetryableError","AdaptiveRetryStrategy","ADAPTIVE","rateLimiter","standardRetryStrategy","getSendToken","acquireInitialRetryToken","updateClientSendingRate","refreshRetryTokenForRetry","recordSuccess","resolveRetryConfig","_input$maxAttempts","retryStrategy","_retryStrategy2","retryMode","rnds8","rng","uuid","REGEX","byteToHex","validate","rnds","asSdkError","isRetryStrategyV2","getRetryErrorInfo","getRetryErrorType","getRetryAfterHint","$response","_error$$metadata3","isServerError","retryMiddlewareOptions","getRetryPlugin","retryToken","lastError","totalRetryDelay","_ret","_retryStrategy","v4","retryErrorInfo","retry","retryMiddleware","retryAfterHeaderName","retryAfter","retryAfterSeconds","NoOpLogger","constructStack","absoluteEntries","relativeEntries","entriesNameSet","cloneTo","toStack","middleware","expandRelativeMiddlewareList","expandedMiddlewareList","getMiddlewareList","normalizedAbsoluteEntries","normalizedRelativeEntries","normalizedEntriesNameMap","normalizedEntry","mainChain","stepWeights","priorityWeights","wholeList","toOverrideIndex","toOverride","use","plugin","toRemove","isRemoved","filterCb","removeByName","removeByReference","removeByTag","identify","mw","build","finalizeRequest","normal","Client","middlewareStack","command","optionsOrCb","resolveMiddleware","alphabetByEncoding","alphabetByValue","bitsPerLetter","bitsPerByte","maxLetterValue","fromBase64","totalByteLength","bits","bitLength","bitClusterCount","transformFromString","Uint8ArrayBlobAdapter","mutate","_Uint8Array","transformToString","buildQueryString","iLen","qsEntry","requestTimeout","timeoutInMs","timeoutError","FetchHttpHandler","_handle","abortSignal","requestTimeoutInMs","abortError","queryString","_request$username","_request$password","requestOptions","raceOfPromises","transformedHeaders","_this$config","streamCollector","_collectBlob","collectBlob","_collectStream","collectStream","readToBase64","reader","isDone","_yield$reader$read","prior","getReader","read","onloadend","_reader$result","commaIndex","dataOffset","readAsDataURL","collectBody","streamBody","fromContext","Command","SENSITIVE_STRING","expectNumber","stackTraceWarning","expectString","strictParseDouble","parseNumber","NUMBER_REGEX","ServiceException","_assertThisInitialized","$fault","decorateServiceException","exception","additions","withBaseException","ExceptionCtor","exceptionCtor","deserializeMetadata","Code","throwDefaultError","_output$headers$xAmz","requestId","extendedRequestId","cfId","loadConfigsForDefaultMode","connectionTimeout","getDefaultExtensionConfiguration","checksumAlgorithms","algorithmId","checksumConstructor","_checksumAlgorithms","addChecksumAlgorithm","getChecksumConfiguration","setRetryStrategy","getRetryConfiguration","resolveDefaultRuntimeConfig","checksumAlgorithm","resolveChecksumRuntimeConfig","retryStrategyConfiguration","resolveRetryRuntimeConfig","StringWrapper","applyInstruction","targetKey","_instructions$targetK","_value","defaultFilterPassed","customFilterPassed","_instruction2","_instruction2$","nonNullish","_instruction2$2","valueFn","_instruction2$3","sourceKey","_json","clientVersion","_parsedUA$os","_parsedUA$os2","_parsedUA$browser$nam","_parsedUA$browser","_parsedUA$browser$ver","_parsedUA$browser2","parsedUA","sections","bowser","invalidProvider","calculateBodyLength","_g","_j","_m","ruleSet","UseDualStack","UseFIPS","_ref8","_ref9","_ref10","defaultEndpointResolver","DEFAULTS_MODE_OPTIONS","resolveDefaultsModeConfig","defaultsMode","isMobileBrowser","_parsedUA$platform","getRuntimeConfig","_config$bodyLengthChe","_config$credentialDef","_config$defaultUserAg","_config$maxAttempts","_config$region","_config$requestHandle","_config$retryMode","_config$sha","_config$streamCollect","_config$useDualstackE","_config$useFipsEndpoi","defaultConfigProvider","clientSharedValues","_config$base64Decoder","_config$base64Encoder","_config$disableHostPr","_config$endpointProvi","_config$extensions","_config$logger","_config$serviceId","_config$urlParser","_config$utf8Decoder","_config$utf8Encoder","apiVersion","base64Decoder","base64Encoder","disableHostPrefix","extensions","utf8Decoder","utf8Encoder","getSharedRuntimeConfig","credentialDefaultProvider","packageInfo","RequestHandler","getAwsRegionExtensionConfiguration","runtimeConfigRegion","setRegion","resolveAwsRegionExtensionConfiguration","awsRegionExtensionConfiguration","CognitoIdentityClient","_Client","_len","configuration","_config_1","_options$useDualstack","_options$useFipsEndpo","defaultSigningName","resolveClientEndpointParameters","__getRuntimeConfig","_config_2","_config_3","_config_6","signer","normalizedCreds","_input$signingEscapeP","signingEscapePath","_input$systemClockOff","systemClockOffset","regionInfoProvider","regionInfo","signerConstructor","SignerCtor","resolveAwsAuthConfig","_config_8","extensionConfiguration","extension","configure","resolveRuntimeExtensions","_getPrototypeOf","__Client","CognitoIdentityServiceException","_ServiceException","__ServiceException","InternalErrorException","_BaseException","__BaseException","InvalidParameterException","_BaseException2","_super2","_this2","LimitExceededException","_BaseException3","_super3","_this3","NotAuthorizedException","_BaseException4","_super4","_this4","ResourceConflictException","_BaseException5","_super5","_this5","TooManyRequestsException","_BaseException6","_super6","_this6","ResourceNotFoundException","_BaseException7","_super7","_this7","ExternalServiceException","_BaseException8","_super8","_this8","InvalidIdentityPoolConfigurationException","_BaseException9","_super9","_this9","se_GetCredentialsForIdentityCommand","sharedHeaders","buildHttpRpcRequest","se_GetIdCommand","de_GetCredentialsForIdentityCommand","_ref34","_callee34","contents","_context34","de_GetCredentialsForIdentityCommandError","parseBody","de_GetCredentialsForIdentityResponse","_ref35","_callee35","parsedOutput","_context35","parseErrorBody","loadRestJsonErrorCode","de_ExternalServiceExceptionRes","de_InternalErrorExceptionRes","de_InvalidIdentityPoolConfigurationExceptionRes","de_InvalidParameterExceptionRes","de_NotAuthorizedExceptionRes","de_ResourceConflictExceptionRes","de_ResourceNotFoundExceptionRes","de_TooManyRequestsExceptionRes","de_GetIdCommand","_ref36","_callee36","_context36","de_GetIdCommandError","_ref37","_callee37","_context37","de_LimitExceededExceptionRes","_ref72","_callee72","_context72","__decorateServiceException","_x143","_x144","_ref73","_callee73","_context73","_x145","_x146","_ref74","_callee74","_context74","_x147","_x148","_ref75","_callee75","_context75","_x149","_x150","_ref76","_callee76","_context76","_x151","_x152","_ref77","_callee77","_context77","_x153","_x154","_ref78","_callee78","_context78","_x155","_x156","_ref79","_callee79","_context79","_x157","_x158","_ref80","_callee80","_context80","_x159","_x160","de_Credentials","AccessKeyId","__expectString","Expiration","__expectNonNull","valueAsDouble","__parseEpochTimestamp","__expectNumber","SecretKey","SessionToken","Credentials","IdentityId","_ref81","_ref82","_callee81","resolvedHostname","_yield$context$endpoi","_yield$context$endpoi2","_context81","__HttpRequest","_x161","_x162","_x163","_x164","_x165","collectBodyString","_ref83","_callee82","errorBody","_value$message","_context82","_x166","_x167","sanitizeErrorCode","rawValue","cleanValue","GetIdCommand","_$Command","handlerExecutionContext","$Command","GetCredentialsForIdentityCommand","CognitoIdentityProviderClient","CognitoIdentityProviderServiceException","UserNotFoundException","InvalidLambdaResponseException","TooManyFailedAttemptsException","_BaseException10","_super10","_this10","UnexpectedLambdaException","_BaseException11","_super11","_this11","UserLambdaValidationException","_BaseException12","_super12","_this12","CodeDeliveryFailureException","_BaseException13","_super13","_this13","InvalidPasswordException","_BaseException14","_super14","_this14","InvalidSmsRoleAccessPolicyException","_BaseException15","_super15","_this15","InvalidSmsRoleTrustRelationshipException","_BaseException16","_super16","_this16","AliasExistsException","_BaseException20","_super20","_this20","InvalidUserPoolConfigurationException","_BaseException21","_super21","_this21","AuthFlowType","PasswordResetRequiredException","_BaseException23","_super23","_this23","UserNotConfirmedException","_BaseException24","_super24","_this24","InvalidEmailRoleAccessPolicyException","_BaseException26","_super26","_this26","CodeMismatchException","_BaseException27","_super27","_this27","ExpiredCodeException","_BaseException28","_super28","_this28","ForbiddenException","_BaseException31","_super31","_this31","AttributeTypeFilterSensitiveLog","Value","AuthenticationResultTypeFilterSensitiveLog","AccessToken","RefreshToken","IdToken","ConfirmForgotPasswordRequestFilterSensitiveLog","ClientId","SecretHash","Username","Password","UserContextData","ConfirmSignUpRequestFilterSensitiveLog","ForgotPasswordRequestFilterSensitiveLog","GetUserRequestFilterSensitiveLog","GetUserResponseFilterSensitiveLog","UserAttributes","InitiateAuthRequestFilterSensitiveLog","AuthParameters","InitiateAuthResponseFilterSensitiveLog","Session","AuthenticationResult","ResendConfirmationCodeRequestFilterSensitiveLog","se_ConfirmForgotPasswordCommand","_ref31","_callee31","_context31","se_ConfirmSignUpCommand","_ref32","_callee32","_context32","se_ForgotPasswordCommand","_ref56","_callee56","_context56","_x111","_x112","se_GetUserCommand","_ref64","_callee64","_context64","_x127","_x128","se_InitiateAuthCommand","_ref68","_callee68","_context68","_x135","_x136","se_ResendConfirmationCodeCommand","de_ConfirmForgotPasswordCommand","_ref164","_callee164","_context164","de_ConfirmForgotPasswordCommandError","_x327","_x328","_ref165","_callee165","_context165","de_CodeMismatchExceptionRes","de_ExpiredCodeExceptionRes","de_ForbiddenExceptionRes","de_InvalidLambdaResponseExceptionRes","de_InvalidPasswordExceptionRes","de_TooManyFailedAttemptsExceptionRes","de_UnexpectedLambdaExceptionRes","de_UserLambdaValidationExceptionRes","de_UserNotConfirmedExceptionRes","de_UserNotFoundExceptionRes","_x329","_x330","de_ConfirmSignUpCommand","_ref166","_callee166","_context166","de_ConfirmSignUpCommandError","_x331","_x332","_ref167","_callee167","_context167","de_AliasExistsExceptionRes","_x333","_x334","de_ForgotPasswordCommand","_ref214","_callee214","_context214","de_ForgotPasswordCommandError","_x427","_x428","_ref215","_callee215","_context215","de_CodeDeliveryFailureExceptionRes","de_InvalidEmailRoleAccessPolicyExceptionRes","de_InvalidSmsRoleAccessPolicyExceptionRes","de_InvalidSmsRoleTrustRelationshipExceptionRes","_x429","_x430","de_GetUserCommand","_ref230","_callee230","_context230","de_GetUserCommandError","_x459","_x460","_ref231","_callee231","_context231","de_PasswordResetRequiredExceptionRes","_x461","_x462","de_InitiateAuthCommand","_ref238","_callee238","_context238","de_InitiateAuthCommandError","_x475","_x476","_ref239","_callee239","_context239","de_InvalidUserPoolConfigurationExceptionRes","_x477","_x478","de_ResendConfirmationCodeCommand","_ref260","_callee260","_context260","de_ResendConfirmationCodeCommandError","_x519","_x520","_ref261","_callee261","_context261","_x521","_x522","_ref310","_callee310","_context310","_x619","_x620","_ref311","_callee311","_context311","_x621","_x622","_ref312","_callee312","_context312","_x623","_x624","_ref316","_callee316","_context316","_x631","_x632","_ref317","_callee317","_context317","_x633","_x634","_ref319","_callee319","_context319","_x637","_x638","_ref320","_callee320","_context320","_x639","_x640","_ref321","_callee321","_context321","_x641","_x642","_ref323","_callee323","_context323","_x645","_x646","_ref324","_callee324","_context324","_x647","_x648","_ref325","_callee325","_context325","_x649","_x650","_ref326","_callee326","_context326","_x651","_x652","_ref327","_callee327","_context327","_x653","_x654","_ref328","_callee328","_context328","_x655","_x656","_ref330","_callee330","_context330","_x659","_x660","_ref331","_callee331","_context331","_x661","_x662","_ref333","_callee333","_context333","_x665","_x666","_ref336","_callee336","_context336","_x671","_x672","_ref337","_callee337","_context337","_x673","_x674","_ref339","_callee339","_context339","_x677","_x678","_ref345","_callee345","_context345","_x689","_x690","_ref347","_callee347","_context347","_x693","_x694","_ref348","_callee348","_context348","_x695","_x696","_ref351","_ref352","_callee351","_context351","_x701","_x702","_x703","_x704","_x705","_ref353","_callee352","_context352","_x706","_x707","InitiateAuthCommand","GetUserCommand","ForgotPasswordCommand","ConfirmForgotPasswordCommand","ConfirmSignUpCommand","ResendConfirmationCodeCommand","DateUtils","clockOffset","getDateWithClockOffset","getClockOffset","getHeaderStringFromDate","getDateFromHeaderString","isClockSkewed","serverDate","isClockSkewError","setClockOffset","getSignedHeaders","HOST_HEADER","SHA256_ALGORITHM_IDENTIFIER","getSigningValues","getFormattedDates","getHashedData","getHashedDataAsHex","getCanonicalUri","getHashedPayload","isSourceData","keyA","valA","keyB","valB","getCanonicalRequest","getStringToSign","dateKey","regionKey","serviceKey","AWS_ENDPOINT_REGEX","Signer","accessInfo","serviceInfo","signedRequest","signingValues","credentialEntry","signedHeadersEntry","signatureEntry","getOptions","Authorization","signUrl","urlOrRequest","urlToSign","presignable","signedUrl","presignedUrl","presignUrl","session_token","sessionTokenRequiredInSigning","access_key","secret_key","parseServiceInfo","urlRegion","urlService","kindOf","thing","kindOfTest","typeOfTest","isFile","isBlob","isFileList","isURLSearchParams","_ref$allOwnKeys","allOwnKeys","_global","isContextDefined","TypedArray","isHTMLForm","reduceDescriptors","reducer","descriptors","reducedDescriptors","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","isAsyncFn","isFormData","isArrayBufferView","isStream","pipe","caseless","stripBOM","content","superConstructor","toFlatObject","sourceObj","destObj","propFilter","searchString","forEachEntry","matchAll","regExp","freezeMethods","toObjectSet","arrayOrString","delimiter","toCamelCase","toFiniteNumber","generateString","alphabet","isSpecCompliantForm","toJSONObject","visit","reducedValue","isThenable","AxiosError","captureStackTrace","description","fileName","lineNumber","columnNumber","customProps","axiosError","isVisitable","removeBrackets","renderKey","dots","predicates","metaTokens","visitor","defaultVisitor","useBlob","convertValue","isFlatArray","exposedHelpers","charMap","AxiosURLSearchParams","_pairs","toFormData","buildURL","serializedParams","serializeFn","hashmarkIndex","InterceptorManager","handlers","synchronous","runWhen","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","classes","isStandardBrowserEnv","product","isStandardBrowserWebWorkerEnv","protocols","buildPath","isNumericKey","arrayToObject","parsePropPath","transitional","transitionalDefaults","adapter","isNode","transformRequest","getContentType","hasJSONContentType","isObjectPayload","formDataToJSON","setContentType","helpers","toURLEncodedForm","formSerializer","_FormData","env","parser","stringifySafely","transformResponse","JSONRequested","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","ignoreDuplicateOf","$internals","normalizeHeader","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","_Symbol$iterator","_Symbol$toStringTag","valueOrRewrite","rewrite","setHeader","_header","_rewrite","lHeader","setHeaders","rawHeaders","line","parseHeaders","tokensRE","parseTokens","deleted","deleteHeader","normalized","formatHeader","_this$constructor","asStrings","_len2","_key2","accessors","defineAccessor","accessorName","arg1","arg2","arg3","buildAccessors","accessor","headerValue","transformData","fns","normalize","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","write","cookie","toGMTString","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","originURL","msie","urlParsingNode","resolveURL","requestURL","samplesCount","firstSampleTS","timestamps","chunkLength","startedAt","bytesCount","passed","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","speedometer","lengthComputable","progressBytes","rate","progress","estimated","knownAdapters","onCanceled","requestData","cancelToken","btoa","fullPath","responseHeaders","ERR_BAD_REQUEST","paramsSerializer","ECONNABORTED","ERR_NETWORK","timeoutErrorMessage","ETIMEDOUT","xsrfValue","isURLSameOrigin","cookies","onDownloadProgress","onUploadProgress","upload","parseProtocol","adapters","nameOrAdapter","throwIfCancellationRequested","throwIfRequested","dispatchRequest","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","decompress","beforeRedirect","httpAgent","httpsAgent","socketPath","responseEncoding","validators","deprecatedWarnings","validator","formatMessage","ERR_DEPRECATED","assertOptions","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","configOrUrl","boolean","function","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","responseInterceptorChain","newConfig","onFulfilled","onRejected","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","Unauthorized","PaymentRequired","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","createInstance","defaultConfig","Cancel","isAxiosError","formToJSON","getAdapter","STREAM_CHANNELS","UserStatus","EMPTY_USER","emailConfirmed","sub","EMPTY_PROFILE","StatusUpdateTimestamp","muteStrikes","pointsBalance","Active","statusReason","bannerId","avatarId","CognitoClient","identityClient","awsCredentials","idToken","loggedIn","refreshToken","identityCredentials","authenticate","currentRefreshToken","_response$Authenticat","_response$Authenticat2","_response$Authenticat3","_response$Authenticat4","getScopedCreds","_this$awsCredentials","_this$awsCredentials2","_this$awsCredentials3","getTokenRequest","getProfile","shouldReauthenticate","AuthFlow","REFRESH_TOKEN","storeLoginResponse","logout","getChannelData","getCurrentChannel","getUser","returnUserFromResponse","user","userAttributes","email_verified","preferred_username","Name","USERNAME","PASSWORD","_login","ConfirmationCode","Logins","getIdCommand","IdentityPoolId","idResponse","getCredsCommand","credentialsResponse","readCookie","cleanupCookieValue","doNotParse","Cookies","defaultSetOptions","changeListeners","HAS_DOCUMENT_COOKIE","previousCookies","_checkChanges","domCookies","parseCookies","newCookies","_emitChange","pollingInterval","setInterval","clearInterval","doNotUpdate","stringValue","finalOptions","cookieStore","_startPolling","_stopPolling","CookiesContext","useCookies","allCookies","setCookies","oldCookies","dependency","shouldUpdate","addChangeListener","removeChangeListener","setCookie","removeCookie","updateCookies","CookiesProvider","ConnectionState","getMessage","messageData","_messageData$data$dat","_messageData$data","AblyClient","userId","channelState","getUserEventsChannel","Ably","_authCallback","_tokenParams","cognitoUsername","ablyAccessToken","enterPresenceChannel","getChannel","leavePresenceChannel","LOGOS_MAP","logoYellow","logoOrange","logoBlue","logoGreen","Root","setLogo","setUser","profile","setProfile","_useCookies2","initializeSocial","_skipUser","cogUser","_profile","validateSession","validUser","isValidSession","tryToRestoreSession","ErrorPage","gif404","_inheritsLoose","_suppressOverwrites","_reverting","_globalTimeline","_win","_coreInitted","_doc","_coreReady","_lastRenderedFrame","_quickTween","_tickerActive","autoSleep","force3D","nullTargetWarn","_defaults","overwrite","_bigNum","_tinyNum","_2PI","PI","_HALF_PI","_gsID","_sqrt","_cos","cos","_sin","_isString","_isFunction","_isNumber","_isUndefined","_isObject","_isNotFalse","_windowExists","_isFuncOrString","_isTypedArray","_isArray","_strictNumExp","_numExp","_numWithUnitExp","_complexStringNumExp","_relExp","_delimitedValueExp","_unitExp","_globals","_installScope","_install","_merge","gsap","_missingPlugin","_warn","suppress","_addGlobal","_emptyFunc","_startAtRevertConfig","suppressEvents","isStart","kill","_revertConfigNoKill","_revertConfig","_reservedProps","_lazyTweens","_lazyLookup","_plugins","_effects","_nextGCFrame","_harnessPlugins","_callbackNames","_harness","harnessPlugin","_gsap","harness","targetTest","GSCache","_getCache","_getProperty","_forEachName","_round","_roundPrecise","_parseRelative","_arrayContainsAny","toSearch","toFind","_lazyRender","tween","_lazy","_lazySafeRender","force","_initted","_startAt","_numericIfPossible","_passThrough","_setDefaults","toMerge","_mergeDeep","_copyExcluding","excluding","_inheritDefaults","vars","excludeDuration","keyframes","inherit","_dp","_addLinkedListItem","firstProp","lastProp","_prev","_removeLinkedListItem","_removeFromParent","onlyIfParentHasAutoRemove","autoRemoveChildren","_act","_uncache","_end","_dur","_start","_dirty","_rewindStartAt","totalTime","revert","immediateRender","autoRevert","_hasNoPausedAncestors","_ts","_elapsedCycleDuration","_repeat","_animationCycle","_tTime","_rDelay","tTime","cycleDuration","whole","_parentToChildTotalTime","parentTime","totalDuration","_tDur","_setEnd","_rts","_alignPlayhead","smoothChildTiming","_time","_postAddChecks","timeline","rawTime","_clamp","_zTime","_addToTimeline","skipChecks","_parsePosition","_delay","timeScale","_sort","_isFromOrFromStart","_recent","_scrollTrigger","trigger","ScrollTrigger","_attemptInitTween","_initTween","_pt","_ticker","frame","_parentPlayheadIsBeforeStart","_lock","_setDuration","skipUncache","leavePlayhead","dur","totalProgress","_onUpdateTotalDuration","Timeline","_zeroPosition","endTime","percentAnimation","isPercent","labels","recent","clippedDuration","_createTweenType","irVars","isLegacy","varsIndex","runBackwards","startAt","Tween","_conditionalReturn","getUnit","_slice","_isArrayLike","nonEmpty","leaveStrings","selector","_wake","_accumulator","_flatten","nativeElement","distribute","ease","_parseEase","isDecimal","ratios","axis","ratioX","ratioY","center","originX","originY","wrapAt","distances","grid","getBoundingClientRect","_invertEase","_roundModifier","snap","snapTo","radius","is2D","increment","dx","dy","closest","roundingIncrement","returnFunction","_wrapArray","_replaceRandom","nums","mapRange","inMin","inMax","outMin","outMax","outRange","_getLabelInDirection","fromTime","backward","distance","executeLazyFirst","prevContext","_ctx","callbackScope","_interrupt","scrollTrigger","_registerPluginQueue","_createPlugin","Plugin","_props","instanceDefaults","_renderPropTweens","_addPropTween","_killPropTweensOf","modifier","_addPluginModifier","rawVars","statics","getSetter","_getSetter","register","PropTween","_255","_colorLookup","aqua","lime","silver","black","maroon","teal","blue","navy","white","olive","yellow","orange","gray","purple","green","red","pink","cyan","transparent","_hue","m1","m2","splitColor","toHSL","forceAlpha","wasHSL","_colorOrderData","_colorExp","_formatColors","orderMatchData","shell","colors","_hslExp","_colorStringFilter","combined","_id","_req","_raf","_self","_delta","_getTime","_lagThreshold","_adjustedLag","_startTime","_lastUpdate","_gap","_nextTime","_tick","overlap","elapsed","manual","tick","deltaRatio","fps","wake","gsapVersions","GreenSockGlobals","requestAnimationFrame","sleep","cancelAnimationFrame","lagSmoothing","adjustedLag","_fps","prioritize","_easeMap","_customEaseExp","_quotesExp","_parseObjectInString","parsedVal","_propagateYoyoEase","isYoyo","_first","yoyoEase","_yoyo","_ease","_yEase","defaultEase","_valueInParentheses","_CE","_configEaseFromString","_insertEase","easeIn","easeOut","easeInOut","lowercaseName","_easeInOutFromOut","_configElastic","amplitude","asin","_configBack","overshoot","power","Linear","easeNone","none","n1","SteppedEase","steps","immediateStart","Animation","repeatDelay","yoyo","_proto","_totalTime","_ptLookup","_pTime","ratio","iteration","_ps","_recacheAncestors","paused","includeRepeats","wrapRepeats","prevIsReverting","globalTime","_sat","seek","restart","includeDelay","play","reversed","pause","atTime","invalidate","isActive","eventCallback","_onUpdate","_then","_prom","_Animation","sortChildren","_proto2","fromTo","fromVars","toVars","delayedCall","staggerTo","stagger","onCompleteAll","onCompleteAllParams","onComplete","onCompleteParams","staggerFrom","staggerFromTo","prevPaused","pauseTween","prevStart","prevIteration","prevTime","tDur","crossingStart","rewinding","doesWrap","repeatRefresh","onRepeat","_hasPause","_forcing","_last","_findNextPauseTween","onUpdate","adjustedTime","addLabel","tweens","timelines","ignoreBeforeTime","getById","animations","removeLabel","killTweensOf","_totalTime2","addPause","removePause","onlyActive","getTweensOf","_overwritingTween","parsedTargets","isGlobalTime","_targets","tweenTo","initted","_vars","_onStart","onStart","onStartParams","tweenFromTo","fromPosition","toPosition","nextLabel","afterTime","previousLabel","beforeTime","currentLabel","shiftChildren","adjustLabels","soft","includeLabels","updateRoot","_forceAllPropTweens","_addComplexStringPropTween","stringFilter","funcParam","startNums","endNum","startNum","hasRandom","pt","_renderComplexString","matchIndex","fp","optional","currentValue","parsedStart","_setterFuncWithParam","_setterFunc","_setterPlain","_renderBoolean","_renderPlain","_checkPlugin","ptLookup","_parseFuncOrString","_processVars","cleanVars","hasPriority","gsData","harnessVars","overwritten","onUpdateParams","prevStartAt","fullTargets","autoOverwrite","_overwrite","_from","_ptCache","_op","_sortPropTweensByPriority","_onInit","_parseKeyframe","allProps","easeEach","_staggerTweenProps","_staggerPropsToSkip","_Animation2","skipInherit","curTarget","staggerFunc","staggerVarsToMerge","_this3$vars","kf","_proto3","isNegative","prevRatio","_renderZeroDurationTween","resetTo","startIsRelative","rootPT","lookup","ptCache","_updatePropTweens","overwrittenProps","curLookup","curOverwriteProps","killingTargets","propTweenLookup","firstPT","a1","a2","_arraysMatch","propertyAliases","_addAliasesToVars","onReverseComplete","onReverseCompleteParams","_setterAttribute","hasNonDependentRemaining","dep","_setterWithModifier","mSet","mt","pt2","pr","renderer","TweenMax","TweenLite","TimelineLite","TimelineMax","_media","_emptyArray","_lastMediaTime","_contextID","_dispatch","_onMediaChange","anyMatch","toggled","queries","matchMedia","onMatch","_r","isReverted","_proto5","prevSelector","ignore","getTweens","MatchMedia","contexts","_proto6","mq","active","addListener","registerPlugin","getProperty","uncache","quickSetter","setters","quickTo","_merge2","isTweening","registerEffect","effect","extendTimeline","pluginName","registerEase","parseEase","exportRoot","includeDelayedCalls","matchMediaRefresh","found","wrapYoyo","unitize","interpolators","master","install","ticker","globalTimeline","core","globals","getCache","reverting","toAdd","suppressOverwrites","_getPluginPropTween","_buildModifierPlugin","modifiers","_addModifiers","Power0","Power1","Power2","Power3","Power4","Quad","Cubic","Quart","Quint","Strong","Elastic","Back","Bounce","Sine","Expo","Circ","_docElement","_pluginInitted","_tempDiv","_recentSetterPlugin","_supports3D","_transformProps","_RAD2DEG","_DEG2RAD","_atan2","atan2","_capsExp","_horizontalExp","_complexExp","_propertyAliases","autoAlpha","scale","alpha","_renderCSSProp","_renderPropWithEnd","_renderCSSPropWithBeginning","_renderRoundedCSSProp","_renderNonTweeningValue","_renderNonTweeningValueOnlyAtEnd","_setterCSSStyle","_setterCSSProp","_setterTransform","_setterScale","scaleX","scaleY","_setterScaleWithRender","renderTransform","_setterTransformWithRender","_transformProp","_transformOriginProp","_saveStyle","isNotCSS","tfm","svg","svgo","_removeIndependentTransforms","translate","removeProperty","_revertStyle","_getStyleSaver","saver","_createElement","_getComputedProperty","skipPrefixFallback","cs","getComputedStyle","getPropertyValue","_checkPropPrefix","_prefixes","preferPrefix","_initCore","cssText","_getBBoxHack","swapIfPossible","bbox","ownerSVGElement","oldParent","oldSibling","oldCSS","getBBox","_gsapBBox","_getAttributeFallbacks","attributesArray","hasAttribute","_getBBox","bounds","_isSVG","getCTM","_removeProperty","_addNonTweeningPT","beginning","onlySetAtEnd","_nonConvertibleUnits","deg","rad","turn","_nonStandardLayouts","_convertToUnit","px","isSVG","curValue","curUnit","horizontal","isRootSVG","measureProperty","toPixels","toPercent","_parseTransform","_firstTwoOnly","zOrigin","_specialProps","_tweenComplexCSSString","startValues","startValue","endValue","endUnit","startUnit","_keywordToPercent","bottom","right","_convertKeywordsToPercentages","_renderClearProps","clearTransforms","clearProps","_identity2DMatrix","_rotationalProperties","_isNullTransform","_getComputedTransformMatrixAsArray","matrixString","_getMatrix","force2D","addedToDOM","matrix","baseVal","consolidate","offsetParent","nextElementSibling","_applySVGOrigin","originIsAbsolute","matrixArray","pluginToAddPropTweensTo","determinant","xOriginOld","xOrigin","yOriginOld","yOrigin","xOffsetOld","xOffset","yOffsetOld","yOffset","tx","ty","originSplit","rotation","rotationX","rotationY","skewX","skewY","perspective","angle","a12","a22","a13","a23","a33","a42","a43","a32","invertedScaleX","rotate","forceCSS","xPercent","offsetWidth","yPercent","offsetHeight","transformPerspective","_renderSVGTransforms","_renderCSSTransforms","_renderNon3DTransforms","_addPxTranslate","_zeroDeg","_zeroPx","_endParenthesis","use3D","a11","a21","tan","_addRotationalPropTween","cap","finalValue","_assign","_addRawTransformPTs","endCache","startCache","side","CSSPlugin","specialProp","isTransformRelated","transformPropTween","inlineProps","styles","visibility","parseTransform","smoothOrigin","autoRound","checkPrefix","getStyleSaver","positionAndScale","others","gsapWithCSS","Background","tintColor","getWindowDimensions","windowDimensions","setWindowDimensions","backgroundRef","innerWidth","innerHeight","handleMouseMove","moveTo","handleResize","BackgroundImage","backgroundImage","lastHash","_document$getElementB","inline","Landing","ScrollToAnchor","arrowRightActive","social","invest","simple","insight","promo","frameBorder","scrolling","mail","gifMap","handshake","suggestion","bug","support","Contact","submitted","setSubmitted","topic","setTopic","firstName","setFirstName","lastName","setLastName","setMessage","gif","submitGif","arrowLeft","Partners","stockExpanded","setStockExpanded","optionsExpanded","setOptionsExpanded","futuresExpanded","setFuturesExpanded","chartGif","chartActive","chart","chevronRight","graphActive","graph","trendActive","trend","hostListOrdered","AboutUs","Contentstack","setCurrentIndex","currentHost","setCurrentHost","hostsList","ContentType","Query","microphone","james","jamesInactive","thomas","thomasInactive","julia","juliaInactive","nwa","nwaInactive","errol","errolInactive","ivan","ivanInactive","gus","gusInactive","chase","chaseInactive","luis","luisInactive","neon","textShadow","glow","hometown","trophy","top_expertises","replaceAll","strategies","background_experience","education","sparkle","personal_description","eyes","Faq","FAQRow","WhatisBadTrader","WhatArePoints","StartingOnBT","BTABroker","SendMail","Fees","confused","PrivacyPolicy","Watch","_ably$client3","shows","sortedDaySchedule","mainChannel","visible_title","schedule","calendarItemRef","videoHeight","setVideoHeight","tabIndex","setTabIndex","chatHeight","setChatHeight","isSmall","setIsSmall","currentLiveShow","setCurrentLiveShow","lastLiveShow","setLastLiveShow","isLive","setIsLive","isChatLoading","setIsChatLoading","isVideoLoading","setIsVideoLoading","_useState22","streamUrl","setStreamUrl","channelStatus","_useState24","showData","setShowData","_useState26","setMessages","messagesEndRef","_messagesEndRef$curre","behavior","channelStatusEvent","channelChatEvent","_ably$client","getUserStatus","_ably$client2","Banned","channelChatOut","resultPage","rawMessages","historyMessages","channelPresence","getStreamData","fetchContentStackData","hostsPromise","channelPromise","showPromise","entireSortedSchedule","daySchedule","Entry","showsResp","show","scheduledShow","start_time","additional_shows","additionalShow","_additionalShow$show$","moment","getHostStyle","boxShadow","border","background","dark_neon","is_playback","profile_photo_small","_item","timeStart","timeEnd","showWithinTime","autoComplete","onInput","scrollHeight","messageToSend","userToken","streamIsLive","HostApplication","setName","nickname","setNickname","school","setSchool","major","setMajor","trading","setTrading","setLength","prodStrats","setProdStrats","setStyle","expertise","setExpertise","inspiration","setInspiration","setRule","hobbies","setHobbies","facts","setFacts","_useState28","_useState30","setError","_useState32","applicationData","subtitle","ApplicationRow","yuss","Download","getOs","_window2","MSStream","_window$location","UNSAFE_mapRouteProperties","createBrowserRouter","ReactDOM","reportWebVitals"],"sourceRoot":""}