{"version":3,"file":"static/js/main.4458b8b6.js","mappings":"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,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAY6nH,mBACe,KAAlC7nH,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAY6nH,oBACsB,UAAlC7nH,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAY6nH,mBAEV7nH,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAY6nH,oBC9BXx4B,ICCA,IAAIliE,IDDUpiC,OAAO+3H,OAAO,KAC5BjtD,GAAe9qE,OAAO+3H,OAAO,CAAC,GEAnB,SAAAzyD,GACtBhgE,EACA9E,EACAO,GAEA,YAAO,IAFPA,IAAAA,EAAiE+pE,IAEzDxlE,EAAM03H,QAAUj8H,EAAai8H,OAAS13H,EAAM03H,OAAUx8H,GAAiBO,EAAai8H,KAC9F,CCPA,IAwIAnyD,GAAe,IAAIzoC,IAxIF,CACf,IACA,OACA,UACA,OACA,UACA,QACA,QACA,IACA,OACA,MACA,MACA,MACA,aACA,OACA,KACA,SACA,SACA,UACA,OACA,OACA,MACA,WACA,OACA,WACA,KACA,MACA,UACA,MACA,SACA,MACA,KACA,KACA,KACA,QACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,KACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,SACA,QACA,SACA,KACA,OACA,OACA,MACA,OACA,OACA,WACA,OACA,QACA,MACA,WACA,SACA,KACA,WACA,SACA,SACA,IACA,QACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,QACA,SACA,OACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,QACA,IACA,KACA,MACA,MACA,QACA,MACA,SACA,WACA,OACA,UACA,gBACA,IACA,QACA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","sources":["../cloudinary/webpack/universalModuleDefinition","../cloudinary/webpack/bootstrap","../cloudinary/src/utf8_encode.js","../cloudinary/src/crc32.js","../cloudinary/src/sdkAnalytics/stringPad.js","../cloudinary/src/sdkAnalytics/base64Map.js","../cloudinary/src/sdkAnalytics/encodeVersion.js","../cloudinary/src/sdkAnalytics/reverseVersion.js","../cloudinary/src/sdkAnalytics/getSDKAnalyticsSignature.js","../cloudinary/src/sdkAnalytics/getAnalyticsOptions.js","../cloudinary/src/util/lazyLoad.js","../cloudinary/src/constants.js","../cloudinary/src/util/baseutil.js","../cloudinary/src/util/lodash.js","../cloudinary/src/util/browser.js","../cloudinary/src/expression.js","../cloudinary/src/condition.js","../cloudinary/src/configuration.js","../cloudinary/src/layer/layer.js","../cloudinary/src/layer/textlayer.js","../cloudinary/src/layer/subtitleslayer.js","../cloudinary/src/layer/fetchlayer.js","../cloudinary/src/parameters.js","../cloudinary/src/transformation.js","../cloudinary/src/tags/htmltag.js","../cloudinary/src/url.js","../cloudinary/src/util/srcsetUtils.js","../cloudinary/src/util/generateBreakpoints.js","../cloudinary/src/tags/imagetag.js","../cloudinary/src/tags/sourcetag.js","../cloudinary/src/tags/picturetag.js","../cloudinary/src/tags/videotag.js","../cloudinary/src/tags/clienthintsmetatag.js","../cloudinary/src/util/features/transparentVideo/mountCloudinaryVideoTag.js","../cloudinary/src/util/transformations/addFlag.js","../cloudinary/src/util/features/transparentVideo/enforceOptionsForTransparentVideo.js","../cloudinary/src/util/xhr/loadScript.js","../cloudinary/src/util/xhr/getBlobFromURL.js","../cloudinary/src/cloudinary.js","../cloudinary/src/util/features/transparentVideo/createHiddenVideoTag.js","../cloudinary/src/util/features/transparentVideo/instantiateSeeThru.js","../cloudinary/src/util/features/transparentVideo/mountSeeThruCanvasTag.js","../cloudinary/src/util/features/transparentVideo/checkSupportForTransparency.js","../cloudinary/src/util/parse/normalizeToArray.js","../cloudinary/src/namespace/cloudinary-core.js","../cloudinary/external {\"commonjs\":\"lodash/assign\",\"commonjs2\":\"lodash/assign\",\"amd\":\"lodash/assign\",\"root\":[\"_\",\"assign\"]}","../cloudinary/external {\"commonjs\":\"lodash/cloneDeep\",\"commonjs2\":\"lodash/cloneDeep\",\"amd\":\"lodash/cloneDeep\",\"root\":[\"_\",\"cloneDeep\"]}","../cloudinary/external {\"commonjs\":\"lodash/compact\",\"commonjs2\":\"lodash/compact\",\"amd\":\"lodash/compact\",\"root\":[\"_\",\"compact\"]}","../cloudinary/external {\"commonjs\":\"lodash/difference\",\"commonjs2\":\"lodash/difference\",\"amd\":\"lodash/difference\",\"root\":[\"_\",\"difference\"]}","../cloudinary/external {\"commonjs\":\"lodash/functions\",\"commonjs2\":\"lodash/functions\",\"amd\":\"lodash/functions\",\"root\":[\"_\",\"functions\"]}","../cloudinary/external {\"commonjs\":\"lodash/identity\",\"commonjs2\":\"lodash/identity\",\"amd\":\"lodash/identity\",\"root\":[\"_\",\"identity\"]}","../cloudinary/external {\"commonjs\":\"lodash/includes\",\"commonjs2\":\"lodash/includes\",\"amd\":\"lodash/includes\",\"root\":[\"_\",\"includes\"]}","../cloudinary/external {\"commonjs\":\"lodash/isArray\",\"commonjs2\":\"lodash/isArray\",\"amd\":\"lodash/isArray\",\"root\":[\"_\",\"isArray\"]}","../cloudinary/external {\"commonjs\":\"lodash/isElement\",\"commonjs2\":\"lodash/isElement\",\"amd\":\"lodash/isElement\",\"root\":[\"_\",\"isElement\"]}","../cloudinary/external {\"commonjs\":\"lodash/isFunction\",\"commonjs2\":\"lodash/isFunction\",\"amd\":\"lodash/isFunction\",\"root\":[\"_\",\"isFunction\"]}","../cloudinary/external {\"commonjs\":\"lodash/isPlainObject\",\"commonjs2\":\"lodash/isPlainObject\",\"amd\":\"lodash/isPlainObject\",\"root\":[\"_\",\"isPlainObject\"]}","../cloudinary/external {\"commonjs\":\"lodash/isString\",\"commonjs2\":\"lodash/isString\",\"amd\":\"lodash/isString\",\"root\":[\"_\",\"isString\"]}","../cloudinary/external {\"commonjs\":\"lodash/merge\",\"commonjs2\":\"lodash/merge\",\"amd\":\"lodash/merge\",\"root\":[\"_\",\"merge\"]}","../cloudinary/external {\"commonjs\":\"lodash/trim\",\"commonjs2\":\"lodash/trim\",\"amd\":\"lodash/trim\",\"root\":[\"_\",\"trim\"]}","../node_modules/enquire.js/src/MediaQuery.js","../node_modules/enquire.js/src/MediaQueryDispatch.js","../node_modules/enquire.js/src/QueryHandler.js","../node_modules/enquire.js/src/Util.js","../node_modules/enquire.js/src/index.js","../node_modules/eve/eve.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/json2mq/index.js","../node_modules/lodash.debounce/index.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_apply.js","../node_modules/lodash/_arrayEach.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_arrayIncludes.js","../node_modules/lodash/_arrayIncludesWith.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_asciiToArray.js","../node_modules/lodash/_assignMergeValue.js","../node_modules/lodash/_assignValue.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_baseAssign.js","../node_modules/lodash/_baseAssignIn.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_baseClone.js","../node_modules/lodash/_baseCreate.js","../node_modules/lodash/_baseDifference.js","../node_modules/lodash/_baseFindIndex.js","../node_modules/lodash/_baseFlatten.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_baseFunctions.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_baseIndexOf.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_baseIsMap.js","../node_modules/lodash/_baseIsNaN.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_baseIsSet.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_baseKeysIn.js","../node_modules/lodash/_baseMerge.js","../node_modules/lodash/_baseMergeDeep.js","../node_modules/lodash/_baseRest.js","../node_modules/lodash/_baseSetToString.js","../node_modules/lodash/_baseSlice.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_baseValues.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_castSlice.js","../node_modules/lodash/_charsEndIndex.js","../node_modules/lodash/_charsStartIndex.js","../node_modules/lodash/_cloneArrayBuffer.js","../node_modules/lodash/_cloneBuffer.js","../node_modules/lodash/_cloneDataView.js","../node_modules/lodash/_cloneRegExp.js","../node_modules/lodash/_cloneSymbol.js","../node_modules/lodash/_cloneTypedArray.js","../node_modules/lodash/_copyArray.js","../node_modules/lodash/_copyObject.js","../node_modules/lodash/_copySymbols.js","../node_modules/lodash/_copySymbolsIn.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_createAssigner.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_getAllKeysIn.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_getPrototype.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_getSymbolsIn.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_hasUnicode.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_initCloneArray.js","../node_modules/lodash/_initCloneByTag.js","../node_modules/lodash/_initCloneObject.js","../node_modules/lodash/_isFlattenable.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_isIterateeCall.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_nativeKeysIn.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_overRest.js","../node_modules/lodash/_root.js","../node_modules/lodash/_safeGet.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_setToString.js","../node_modules/lodash/_shortOut.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_strictIndexOf.js","../node_modules/lodash/_stringToArray.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/_unicodeToArray.js","../node_modules/lodash/assign.js","../node_modules/lodash/cloneDeep.js","../node_modules/lodash/compact.js","../node_modules/lodash/constant.js","../node_modules/lodash/difference.js","../node_modules/lodash/eq.js","../node_modules/lodash/functions.js","../node_modules/lodash/identity.js","../node_modules/lodash/includes.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isArray.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/isArrayLikeObject.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isElement.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/isLength.js","../node_modules/lodash/isMap.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isPlainObject.js","../node_modules/lodash/isSet.js","../node_modules/lodash/isString.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/keys.js","../node_modules/lodash/keysIn.js","../node_modules/lodash/merge.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/toFinite.js","../node_modules/lodash/toInteger.js","../node_modules/lodash/toNumber.js","../node_modules/lodash/toPlainObject.js","../node_modules/lodash/toString.js","../node_modules/lodash/trim.js","../node_modules/lodash/values.js","../node_modules/object-assign/index.js","../node_modules/path-to-regexp/index.js","../node_modules/path-to-regexp/node_modules/isarray/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-burger-menu/lib/BurgerMenu.js","../node_modules/react-burger-menu/lib/components/BurgerIcon.js","../node_modules/react-burger-menu/lib/components/CrossIcon.js","../node_modules/react-burger-menu/lib/helpers/baseStyles.js","../node_modules/react-burger-menu/lib/helpers/dom.js","../node_modules/react-burger-menu/lib/helpers/snapsvgImporter.js","../node_modules/react-burger-menu/lib/helpers/utils.js","../node_modules/react-burger-menu/lib/menuFactory.js","../node_modules/react-burger-menu/lib/menus/bubble.js","../node_modules/react-burger-menu/lib/menus/elastic.js","../node_modules/react-burger-menu/lib/menus/fallDown.js","../node_modules/react-burger-menu/lib/menus/push.js","../node_modules/react-burger-menu/lib/menus/pushRotate.js","../node_modules/react-burger-menu/lib/menus/reveal.js","../node_modules/react-burger-menu/lib/menus/scaleDown.js","../node_modules/react-burger-menu/lib/menus/scaleRotate.js","../node_modules/react-burger-menu/lib/menus/slide.js","../node_modules/react-burger-menu/lib/menus/stack.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-slick/lib/arrows.js","../node_modules/react-slick/lib/default-props.js","../node_modules/react-slick/lib/dots.js","../node_modules/react-slick/lib/index.js","../node_modules/react-slick/lib/initial-state.js","../node_modules/react-slick/lib/inner-slider.js","../node_modules/react-slick/lib/slider.js","../node_modules/react-slick/lib/track.js","../node_modules/react-slick/lib/utils/innerSliderUtils.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/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/shallowequal/index.js","../node_modules/snapsvg-cjs/dist/snap.svg-cjs.js","../node_modules/string-convert/camel2hyphen.js","../node_modules/classnames/index.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/nonce","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../node_modules/history/esm/history.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-router/modules/miniCreateReactContext.js","../node_modules/react-router/modules/createContext.js","../node_modules/react-router/modules/createNamedContext.js","../node_modules/react-router/modules/HistoryContext.js","../node_modules/react-router/modules/RouterContext.js","../node_modules/react-router/modules/Router.js","../node_modules/react-router/modules/MemoryRouter.js","../node_modules/react-router/modules/Lifecycle.js","../node_modules/react-router/modules/matchPath.js","../node_modules/react-router/modules/Route.js","../node_modules/react-router/modules/StaticRouter.js","../node_modules/react-router/modules/Switch.js","../node_modules/react-router/modules/hooks.js","../node_modules/react-router-dom/modules/BrowserRouter.js","../node_modules/react-router-dom/modules/HashRouter.js","../node_modules/react-router-dom/modules/utils/locationUtils.js","../node_modules/react-router-dom/modules/Link.js","../node_modules/react-router-dom/modules/NavLink.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.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/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","components/slider/slider.jsx","components/nav/nav.jsx","components/mobileNav/mobileNav.jsx","components/selectNav/selectNav.jsx","../node_modules/styled-components/node_modules/tslib/tslib.es6.mjs","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Prefixer.js","../node_modules/stylis/src/Middleware.js","../node_modules/stylis/src/Parser.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/styled-components/src/constants.ts","../node_modules/styled-components/src/utils/empties.ts","../node_modules/styled-components/src/utils/checkDynamicCreation.ts","../node_modules/styled-components/src/utils/determineTheme.ts","../node_modules/styled-components/src/utils/domElements.ts","../node_modules/styled-components/src/utils/escape.ts","../node_modules/styled-components/src/utils/generateAlphabeticName.ts","../node_modules/styled-components/src/utils/hash.ts","../node_modules/styled-components/src/utils/generateComponentId.ts","../node_modules/styled-components/src/utils/getComponentName.ts","../node_modules/styled-components/src/utils/isTag.ts","../node_modules/styled-components/src/utils/hoist.ts","../node_modules/styled-components/src/utils/isFunction.ts","../node_modules/styled-components/src/utils/isStyledComponent.ts","../node_modules/styled-components/src/utils/joinStrings.ts","../node_modules/styled-components/src/utils/isPlainObject.ts","../node_modules/styled-components/src/utils/mixinDeep.ts","../node_modules/styled-components/src/utils/setToString.ts","../node_modules/styled-components/src/utils/error.ts","../node_modules/styled-components/src/sheet/GroupedTag.ts","../node_modules/styled-components/src/sheet/GroupIDAllocator.ts","../node_modules/styled-components/src/sheet/Rehydration.ts","../node_modules/styled-components/src/utils/nonce.ts","../node_modules/styled-components/src/sheet/dom.ts","../node_modules/styled-components/src/sheet/Tag.ts","../node_modules/styled-components/src/sheet/Sheet.ts","../node_modules/styled-components/src/utils/stylis.ts","../node_modules/styled-components/src/models/StyleSheetManager.tsx","../node_modules/styled-components/src/models/Keyframes.ts","../node_modules/styled-components/src/utils/hyphenateStyleName.ts","../node_modules/styled-components/src/utils/flatten.ts","../node_modules/styled-components/src/utils/addUnitIfNeeded.ts","../node_modules/styled-components/src/utils/isStatelessFunction.ts","../node_modules/styled-components/src/utils/isStaticRules.ts","../node_modules/styled-components/src/models/ComponentStyle.ts","../node_modules/styled-components/src/models/ThemeProvider.tsx","../node_modules/styled-components/src/models/StyledComponent.ts","../node_modules/styled-components/src/utils/generateDisplayName.ts","../node_modules/styled-components/src/utils/interleave.ts","../node_modules/styled-components/src/constructors/css.ts","../node_modules/styled-components/src/constructors/constructWithOptions.ts","../node_modules/styled-components/src/constructors/styled.tsx","../node_modules/styled-components/src/models/GlobalStyle.ts","../node_modules/styled-components/src/models/ServerStyleSheet.tsx","../node_modules/styled-components/src/base.ts","components/backgroundVideo/BackgroundVideo.jsx","assets/home/wave.svg","sections/home/home.jsx","components/Footer/Footer.jsx","../node_modules/cloudinary-react/dist/cloudinary-react.esm.js","components/slider/event-slider/event-slider.jsx","sections/events/events.jsx","sections/contact/contact.jsx","sections/about/about.jsx","sections/director/director.jsx","sections/accompanist/accompanist.jsx","sections/history/history.jsx","App.js","index.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"lodash/assign\"), require(\"lodash/cloneDeep\"), require(\"lodash/compact\"), require(\"lodash/difference\"), require(\"lodash/functions\"), require(\"lodash/identity\"), require(\"lodash/includes\"), require(\"lodash/isArray\"), require(\"lodash/isElement\"), require(\"lodash/isFunction\"), require(\"lodash/isPlainObject\"), require(\"lodash/isString\"), require(\"lodash/merge\"), require(\"lodash/trim\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"lodash/assign\", \"lodash/cloneDeep\", \"lodash/compact\", \"lodash/difference\", \"lodash/functions\", \"lodash/identity\", \"lodash/includes\", \"lodash/isArray\", \"lodash/isElement\", \"lodash/isFunction\", \"lodash/isPlainObject\", \"lodash/isString\", \"lodash/merge\", \"lodash/trim\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"cloudinary\"] = factory(require(\"lodash/assign\"), require(\"lodash/cloneDeep\"), require(\"lodash/compact\"), require(\"lodash/difference\"), require(\"lodash/functions\"), require(\"lodash/identity\"), require(\"lodash/includes\"), require(\"lodash/isArray\"), require(\"lodash/isElement\"), require(\"lodash/isFunction\"), require(\"lodash/isPlainObject\"), require(\"lodash/isString\"), require(\"lodash/merge\"), require(\"lodash/trim\"));\n\telse\n\t\troot[\"cloudinary\"] = factory(root[\"_\"][\"assign\"], root[\"_\"][\"cloneDeep\"], root[\"_\"][\"compact\"], root[\"_\"][\"difference\"], root[\"_\"][\"functions\"], root[\"_\"][\"identity\"], root[\"_\"][\"includes\"], root[\"_\"][\"isArray\"], root[\"_\"][\"isElement\"], root[\"_\"][\"isFunction\"], root[\"_\"][\"isPlainObject\"], root[\"_\"][\"isString\"], root[\"_\"][\"merge\"], root[\"_\"][\"trim\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_lodash_assign__, __WEBPACK_EXTERNAL_MODULE_lodash_cloneDeep__, __WEBPACK_EXTERNAL_MODULE_lodash_compact__, __WEBPACK_EXTERNAL_MODULE_lodash_difference__, __WEBPACK_EXTERNAL_MODULE_lodash_functions__, __WEBPACK_EXTERNAL_MODULE_lodash_identity__, __WEBPACK_EXTERNAL_MODULE_lodash_includes__, __WEBPACK_EXTERNAL_MODULE_lodash_isArray__, __WEBPACK_EXTERNAL_MODULE_lodash_isElement__, __WEBPACK_EXTERNAL_MODULE_lodash_isFunction__, __WEBPACK_EXTERNAL_MODULE_lodash_isPlainObject__, __WEBPACK_EXTERNAL_MODULE_lodash_isString__, __WEBPACK_EXTERNAL_MODULE_lodash_merge__, __WEBPACK_EXTERNAL_MODULE_lodash_trim__) {\nreturn "," \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 = \"./src/namespace/cloudinary-core.js\");\n","/**\n * UTF8 encoder\n * @private\n */\nvar utf8_encode;\n\nexport default utf8_encode = function(argString) {\n var c1, enc, end, n, start, string, stringl, utftext;\n // http://kevin.vanzonneveld.net\n // + original by: Webtoolkit.info (http://www.webtoolkit.info/)\n // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // + improved by: sowberry\n // + tweaked by: Jack\n // + bugfixed by: Onno Marsman\n // + improved by: Yves Sucaet\n // + bugfixed by: Onno Marsman\n // + bugfixed by: Ulrich\n // + bugfixed by: Rafal Kukawski\n // + improved by: kirilloid\n // * example 1: utf8_encode('Kevin van Zonneveld');\n // * returns 1: 'Kevin van Zonneveld'\n if (argString === null || typeof argString === 'undefined') {\n return '';\n }\n string = argString + '';\n // .replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\");\n utftext = '';\n start = void 0;\n end = void 0;\n stringl = 0;\n start = end = 0;\n stringl = string.length;\n n = 0;\n while (n < stringl) {\n c1 = string.charCodeAt(n);\n enc = null;\n if (c1 < 128) {\n end++;\n } else if (c1 > 127 && c1 < 2048) {\n enc = String.fromCharCode(c1 >> 6 | 192, c1 & 63 | 128);\n } else {\n enc = String.fromCharCode(c1 >> 12 | 224, c1 >> 6 & 63 | 128, c1 & 63 | 128);\n }\n if (enc !== null) {\n if (end > start) {\n utftext += string.slice(start, end);\n }\n utftext += enc;\n start = end = n + 1;\n }\n n++;\n }\n if (end > start) {\n utftext += string.slice(start, stringl);\n }\n return utftext;\n};\n","\n\nimport utf8_encode from './utf8_encode';\n\n/**\n * CRC32 calculator\n * Depends on 'utf8_encode'\n * @private\n * @param {string} str - The string to calculate the CRC32 for.\n * @return {number}\n */\nfunction crc32(str) {\n var crc, i, iTop, table, x, y;\n // http://kevin.vanzonneveld.net\n // + original by: Webtoolkit.info (http://www.webtoolkit.info/)\n // + improved by: T0bsn\n // + improved by: http://stackoverflow.com/questions/2647935/javascript-crc32-function-and-php-crc32-not-matching\n // - depends on: utf8_encode\n // * example 1: crc32('Kevin van Zonneveld');\n // * returns 1: 1249991249\n str = utf8_encode(str);\n table = '00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 0EDB8832 79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 6AB020F2 F3B97148 84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 FD62F97A 8A65C9EC 14015C4F 63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 A2677172 3C03E4D1 4B04D447 D20D85FD A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC 51DE003A C8D75180 BFD06116 21B4F4B5 56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 B10BE924 2F6F7C87 58684C11 C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 06B6B51F 9FBFE4A5 E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 E6635C01 6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE A3BC0074 D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 DA60B8D0 44042D73 33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 5768B525 206F85B3 B966D409 CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 2EB40D81 B7BD5C3B C0BA6CAD EDB88320 9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF 04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E 7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D 806567CB 196C3671 6E6B06E7 FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 60B08ED5 D6D6A3E8 A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA AF0A1B4C 36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 C2D7FFA7 B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 EB0E363F 72076785 05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D 7CDCEFB7 0BDBDF21 86D3D2D4 F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 18B74777 88085AE6 FF0F6A70 66063BCA 11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 D06016F7 4969474D 3E6E77DB AED16A4A D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F 30B5FFE9 BDBDF21C CABAC28A 53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E C4614AB8 5D681B02 2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D';\n crc = 0;\n x = 0;\n y = 0;\n crc = crc ^ -1;\n i = 0;\n iTop = str.length;\n while (i < iTop) {\n y = (crc ^ str.charCodeAt(i)) & 0xFF;\n x = '0x' + table.substr(y * 9, 8);\n crc = crc >>> 8 ^ x;\n i++;\n }\n crc = crc ^ -1;\n //convert to unsigned 32-bit int if needed\n if (crc < 0) {\n crc += 4294967296;\n }\n return crc;\n}\n\nexport default crc32;\n","export default function stringPad(value, targetLength,padString) {\n targetLength = targetLength>>0; //truncate if number or convert non-number to 0;\n padString = String((typeof padString !== 'undefined' ? padString : ' '));\n if (value.length > targetLength) {\n return String(value);\n }\n else {\n targetLength = targetLength-value.length;\n if (targetLength > padString.length) {\n padString += repeatStringNumTimes(padString, targetLength/padString.length);\n }\n return padString.slice(0,targetLength) + String(value);\n }\n}\n\nfunction repeatStringNumTimes(string, times) {\n var repeatedString = \"\";\n while (times > 0) {\n repeatedString += string;\n times--;\n }\n return repeatedString;\n}\n","import stringPad from \"./stringPad\";\nlet chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nlet num = 0;\nlet map = {};\n\n[...chars].forEach((char) => {\n let key = num.toString(2);\n key = stringPad(key, 6, '0');\n map[key] = char;\n num++;\n});\n\n\n/**\n * Map of six-bit binary codes to Base64 characters\n */\nexport default map;\n","import base64Map from \"./base64Map\";\nimport reverseVersion from \"./reverseVersion\";\nimport stringPad from \"./stringPad\";\n\n/**\n * @description Encodes a semVer-like version string\n * @param {string} semVer Input can be either x.y.z or x.y\n * @return {string} A string built from 3 characters of the base64 table that encode the semVer\n */\nexport default function encodeVersion(semVer) {\n let strResult = '';\n\n // support x.y or x.y.z by using 'parts' as a variable\n let parts = semVer.split('.').length;\n let paddedStringLength = parts * 6; // we pad to either 12 or 18 characters\n\n // reverse (but don't mirror) the version. 1.5.15 -> 15.5.1\n // Pad to two spaces, 15.5.1 -> 15.05.01\n let paddedReversedSemver = reverseVersion(semVer);\n\n // turn 15.05.01 to a string '150501' then to a number 150501\n let num = parseInt(paddedReversedSemver.split('.').join(''));\n\n // Represent as binary, add left padding to 12 or 18 characters.\n // 150,501 -> 100100101111100101\n\n let paddedBinary = num.toString(2);\n paddedBinary = stringPad(paddedBinary, paddedStringLength, '0');\n\n // Stop in case an invalid version number was provided\n // paddedBinary must be built from sections of 6 bits\n if (paddedBinary.length % 6 !== 0) {\n throw 'Version must be smaller than 43.21.26)';\n }\n\n // turn every 6 bits into a character using the base64Map\n paddedBinary.match(/.{1,6}/g).forEach((bitString) => {\n // console.log(bitString);\n strResult += base64Map[bitString];\n });\n\n return strResult;\n}\n","import stringPad from \"./stringPad\";\n\n/**\n * @description A semVer like string, x.y.z or x.y is allowed\n * Reverses the version positions, x.y.z turns to z.y.x\n * Pads each segment with '0' so they have length of 2\n * Example: 1.2.3 -> 03.02.01\n * @param {string} semVer Input can be either x.y.z or x.y\n * @return {string} in the form of zz.yy.xx (\n */\nexport default function reverseVersion(semVer) {\n if (semVer.split('.').length < 2) {\n throw new Error('invalid semVer, must have at least two segments');\n }\n\n // Split by '.', reverse, create new array with padded values and concat it together\n return semVer.split('.').reverse().map((segment) => {\n return stringPad(segment,2, '0');\n }).join('.');\n}\n","import encodeVersion from \"./encodeVersion.js\";\n\n/**\n * @description Gets the SDK signature by encoding the SDK version and tech version\n * @param {{\n * [techVersion]:string,\n * [sdkSemver]: string,\n * [sdkCode]: string,\n * [feature]: string\n * }} analyticsOptions\n * @return {string} sdkAnalyticsSignature\n */\nexport default function getSDKAnalyticsSignature(analyticsOptions={}) {\n try {\n let twoPartVersion = removePatchFromSemver(analyticsOptions.techVersion);\n let encodedSDKVersion = encodeVersion(analyticsOptions.sdkSemver);\n let encodedTechVersion = encodeVersion(twoPartVersion);\n let featureCode = analyticsOptions.feature;\n let SDKCode = analyticsOptions.sdkCode;\n let algoVersion = 'A'; // The algo version is determined here, it should not be an argument\n\n return `${algoVersion}${SDKCode}${encodedSDKVersion}${encodedTechVersion}${featureCode}`;\n } catch (e) {\n // Either SDK or Node versions were unparsable\n return 'E';\n }\n}\n\n/**\n * @description Removes patch version from the semver if it exists\n * Turns x.y.z OR x.y into x.y\n * @param {'x.y.z' || 'x.y' || string} semVerStr\n */\nfunction removePatchFromSemver(semVerStr) {\n let parts = semVerStr.split('.');\n\n return `${parts[0]}.${parts[1]}`;\n}\n","/**\n * @description Gets the analyticsOptions from options- should include sdkSemver, techVersion, sdkCode, and feature\n * @param options\n * @returns {{sdkSemver: (string), sdkCode, feature: string, techVersion: (string)} || {}}\n */\nexport default function getAnalyticsOptions(options) {\n let analyticsOptions = {\n sdkSemver: options.sdkSemver,\n techVersion: options.techVersion,\n sdkCode: options.sdkCode,\n feature: '0'\n };\n if (options.urlAnalytics) {\n if (options.accessibility) {\n analyticsOptions.feature = 'D';\n }\n if (options.loading === 'lazy') {\n analyticsOptions.feature = 'C';\n }\n if (options.responsive) {\n analyticsOptions.feature = 'A';\n }\n if (options.placeholder) {\n analyticsOptions.feature = 'B';\n }\n return analyticsOptions;\n } else {\n return {};\n }\n}\n","/*\n * Includes utility methods for lazy loading media\n */\n\n/**\n * Check if IntersectionObserver is supported\n * @return {boolean} true if window.IntersectionObserver is defined\n */\nexport function isIntersectionObserverSupported() {\n // Check that 'IntersectionObserver' property is defined on window\n return typeof window === \"object\" && window.IntersectionObserver;\n}\n\n/**\n * Check if native lazy loading is supported\n * @return {boolean} true if 'loading' property is defined for HTMLImageElement\n */\nexport function isNativeLazyLoadSupported() {\n return typeof HTMLImageElement === \"object\" && HTMLImageElement.prototype.loading;\n}\n\n/**\n * Calls onIntersect() when intersection is detected, or when\n * no native lazy loading or when IntersectionObserver isn't supported.\n * @param {Element} el - the element to observe\n * @param {function} onIntersect - called when the given element is in view\n */\nexport function detectIntersection(el, onIntersect) {\n try {\n if (isNativeLazyLoadSupported() || !isIntersectionObserverSupported()) {\n // Return if there's no need or possibility to detect intersection\n onIntersect();\n return;\n }\n\n // Detect intersection with given element using IntersectionObserver\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n onIntersect();\n observer.unobserve(entry.target);\n }\n });\n }, {threshold: [0, 0.01]});\n observer.observe(el);\n } catch (e) {\n onIntersect();\n }\n}","export var VERSION = \"2.5.0\";\n\nexport var CF_SHARED_CDN = \"d3jpl91pxevbkh.cloudfront.net\";\n\nexport var OLD_AKAMAI_SHARED_CDN = \"cloudinary-a.akamaihd.net\";\n\nexport var AKAMAI_SHARED_CDN = \"res.cloudinary.com\";\n\nexport var SHARED_CDN = AKAMAI_SHARED_CDN;\n\nexport var DEFAULT_TIMEOUT_MS = 10000;\n\nexport var DEFAULT_POSTER_OPTIONS = {\n format: 'jpg',\n resource_type: 'video'\n};\n\nexport var DEFAULT_VIDEO_SOURCE_TYPES = ['webm', 'mp4', 'ogv'];\n\nexport var SEO_TYPES = {\n \"image/upload\": \"images\",\n \"image/private\": \"private_images\",\n \"image/authenticated\": \"authenticated_images\",\n \"raw/upload\": \"files\",\n \"video/upload\": \"videos\"\n};\n\n/**\n* @const {Object} Cloudinary.DEFAULT_IMAGE_PARAMS\n* Defaults values for image parameters.\n*\n* (Previously defined using option_consume() )\n */\nexport var DEFAULT_IMAGE_PARAMS = {\n resource_type: \"image\",\n transformation: [],\n type: 'upload'\n};\n\n/**\n* Defaults values for video parameters.\n* @const {Object} Cloudinary.DEFAULT_VIDEO_PARAMS\n* (Previously defined using option_consume() )\n */\nexport var DEFAULT_VIDEO_PARAMS = {\n fallback_content: '',\n resource_type: \"video\",\n source_transformation: {},\n source_types: DEFAULT_VIDEO_SOURCE_TYPES,\n transformation: [],\n type: 'upload'\n};\n\n/**\n * Recommended sources for video tag\n * @const {Object} Cloudinary.DEFAULT_VIDEO_SOURCES\n */\nexport const DEFAULT_VIDEO_SOURCES = [\n {\n type: \"mp4\",\n codecs: \"hev1\",\n transformations: {video_codec: \"h265\"}\n },\n {\n type: \"webm\",\n codecs: \"vp9\",\n transformations: {video_codec: \"vp9\"}\n },\n {\n type: \"mp4\",\n transformations: {video_codec: \"auto\"}\n },\n {\n type: \"webm\",\n transformations: {video_codec: \"auto\"}\n }\n];\n\nexport const DEFAULT_EXTERNAL_LIBRARIES = {\n seeThru: 'https://unpkg.com/seethru@4/dist/seeThru.min.js'\n}\n\n/**\n * Predefined placeholder transformations\n * @const {Object} Cloudinary.PLACEHOLDER_IMAGE_MODES\n */\nexport const PLACEHOLDER_IMAGE_MODES = {\n 'blur': [{effect: 'blur:2000', quality: 1, fetch_format: 'auto'}], // Default\n 'pixelate': [{effect: 'pixelate', quality: 1, fetch_format: 'auto'}],\n // Generates a pixel size image which color is the predominant color of the original image.\n 'predominant-color-pixel': [\n {width: 'iw_div_2', aspect_ratio: 1, crop: 'pad', background: 'auto'},\n {crop: 'crop', width: 1, height: 1, gravity: 'north_east'},\n {fetch_format: 'auto', quality: 'auto'}\n ],\n // Generates an image which color is the predominant color of the original image.\n 'predominant-color': [\n {variables: [['$currWidth', 'w'], ['$currHeight', 'h']]},\n {width: 'iw_div_2', aspect_ratio: 1, crop: 'pad', background: 'auto'},\n {crop: 'crop', width: 10, height: 10, gravity: 'north_east'},\n {width: '$currWidth', height: '$currHeight', crop: 'fill'},\n {fetch_format: 'auto', quality: 'auto'}\n ],\n 'vectorize': [{effect: 'vectorize:3:0.1', fetch_format: 'svg'}]\n};\n\n/**\n * Predefined accessibility transformations\n * @const {Object} Cloudinary.ACCESSIBILITY_MODES\n */\nexport const ACCESSIBILITY_MODES = {\n darkmode: 'tint:75:black',\n brightmode: 'tint:50:white',\n monochrome: 'grayscale',\n colorblind: 'assist_colorblind'\n};\n\n/**\n * A list of keys used by the url() function.\n * @private\n */\nexport const URL_KEYS = [\n 'accessibility',\n 'api_secret',\n 'auth_token',\n 'cdn_subdomain',\n 'cloud_name',\n 'cname',\n 'format',\n 'placeholder',\n 'private_cdn',\n 'resource_type',\n 'secure',\n 'secure_cdn_subdomain',\n 'secure_distribution',\n 'shorten',\n 'sign_url',\n 'signature',\n 'ssl_detected',\n 'type',\n 'url_suffix',\n 'use_root_path',\n 'version'\n];\n\n\n/**\n * The resource storage type\n * @typedef type\n * @enum {string}\n * @property {string} 'upload' A resource uploaded directly to Cloudinary\n * @property {string} 'fetch' A resource fetched by Cloudinary from a 3rd party storage\n * @property {string} 'private'\n * @property {string} 'authenticated'\n * @property {string} 'sprite'\n * @property {string} 'facebook'\n * @property {string} 'twitter'\n * @property {string} 'youtube'\n * @property {string} 'vimeo'\n *\n */\n\n/**\n * The resource type\n * @typedef resourceType\n * @enum {string}\n * @property {string} 'image' An image file\n * @property {string} 'video' A video file\n * @property {string} 'raw' A raw file\n */\n","/*\n * Includes common utility methods and shims\n */\nimport {contains, isString} from \"../util\";\nimport {URL_KEYS} from '../constants';\n\nexport function omit(obj, keys) {\n obj = obj || {};\n let srcKeys = Object.keys(obj).filter(key => !contains(keys, key));\n let filtered = {};\n srcKeys.forEach(key => filtered[key] = obj[key]);\n return filtered;\n}\n\n/**\n * Return true if all items in list are strings\n * @function Util.allString\n * @param {Array} list - an array of items\n */\nexport var allStrings = function(list) {\n return list.length && list.every(isString);\n};\n\n/**\n* Creates a new array without the given item.\n* @function Util.without\n* @param {Array} array - original array\n* @param {*} item - the item to exclude from the new array\n* @return {Array} a new array made of the original array's items except for `item`\n */\nexport var without = function(array, item) {\n return array.filter(v=>v!==item);\n};\n\n/**\n* Return true is value is a number or a string representation of a number.\n* @function Util.isNumberLike\n* @param {*} value\n* @returns {boolean} true if value is a number\n* @example\n* Util.isNumber(0) // true\n* Util.isNumber(\"1.3\") // true\n* Util.isNumber(\"\") // false\n* Util.isNumber(undefined) // false\n */\nexport var isNumberLike = function(value) {\n return (value != null) && !isNaN(parseFloat(value));\n};\n\n/**\n * Escape all characters matching unsafe in the given string\n * @function Util.smartEscape\n * @param {string} string - source string to escape\n * @param {RegExp} unsafe - characters that must be escaped\n * @return {string} escaped string\n */\nexport var smartEscape = function(string, unsafe = /([^a-zA-Z0-9_.\\-\\/:]+)/g) {\n return string.replace(unsafe, function(match) {\n return match.split(\"\").map(function(c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n }).join(\"\");\n });\n};\n\n/**\n * Assign values from sources if they are not defined in the destination.\n * Once a value is set it does not change\n * @function Util.defaults\n * @param {Object} destination - the object to assign defaults to\n * @param {...Object} source - the source object(s) to assign defaults from\n * @return {Object} destination after it was modified\n */\nexport var defaults = function(destination, ...sources) {\n return sources.reduce(function(dest, source) {\n let key, value;\n for (key in source) {\n value = source[key];\n if (dest[key] === void 0) {\n dest[key] = value;\n }\n }\n return dest;\n }, destination);\n};\n\n/*********** lodash functions */\nexport var objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nexport var objToString = objectProto.toString;\n\n/**\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\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(1);\n * // => false\n */\nexport var isObject = function(value) {\n var type;\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n type = typeof value;\n return !!value && (type === 'object' || type === 'function');\n};\n\nexport var funcTag = '[object Function]';\n\n/**\n* Checks if `value` is classified as a `Function` object.\n* @function Util.isFunction\n* @param {*} value The value to check.\n* @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n* @example\n*\n* function Foo(){};\n* isFunction(Foo);\n* // => true\n*\n* isFunction(/abc/);\n* // => false\n */\nexport var isFunction = function(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in older versions of Chrome and Safari which return 'function' for regexes\n // and Safari 8 which returns 'object' for typed array constructors.\n return isObject(value) && objToString.call(value) === funcTag;\n};\n\n/*********** lodash functions */\n/** Used to match words to create compound words. */\nexport var reWords = (function() {\n var lower, upper;\n upper = '[A-Z]';\n lower = '[a-z]+';\n return RegExp(upper + '+(?=' + upper + lower + ')|' + upper + '?' + lower + '|' + upper + '+|[0-9]+', 'g');\n})();\n\n/**\n* Convert string to camelCase\n* @function Util.camelCase\n* @param {string} source - the string to convert\n* @return {string} in camelCase format\n */\nexport var camelCase = function(source) {\n var words = source.match(reWords);\n words = words.map(word=> word.charAt(0).toLocaleUpperCase() + word.slice(1).toLocaleLowerCase());\n words[0] = words[0].toLocaleLowerCase();\n\n return words.join('');\n};\n\n/**\n * Convert string to snake_case\n * @function Util.snakeCase\n * @param {string} source - the string to convert\n * @return {string} in snake_case format\n */\nexport var snakeCase = function(source) {\n var words = source.match(reWords);\n words = words.map(word=> word.toLocaleLowerCase());\n return words.join('_');\n};\n\n/**\n * Creates a new object from source, with the keys transformed using the converter.\n * @param {object} source\n * @param {function|null} converter\n * @returns {object}\n */\nexport var convertKeys = function(source, converter) {\n var result, value;\n result = {};\n for (let key in source) {\n value = source[key];\n if(converter) {\n key = converter(key);\n }\n if (!isEmpty(key)) {\n result[key] = value;\n }\n }\n return result;\n};\n\n/**\n * Create a copy of the source object with all keys in camelCase\n * @function Util.withCamelCaseKeys\n * @param {Object} value - the object to copy\n * @return {Object} a new object\n */\nexport var withCamelCaseKeys = function(source) {\n return convertKeys(source, camelCase);\n};\n\n/**\n * Create a copy of the source object with all keys in snake_case\n * @function Util.withSnakeCaseKeys\n * @param {Object} value - the object to copy\n * @return {Object} a new object\n */\nexport var withSnakeCaseKeys = function(source) {\n return convertKeys(source, snakeCase);\n};\n\n// Browser\n// Node.js\nexport var base64Encode = typeof btoa !== 'undefined' && isFunction(btoa) ? btoa : typeof Buffer !== 'undefined' && isFunction(Buffer) ? function(input) {\n if (!(input instanceof Buffer)) {\n input = new Buffer.from(String(input), 'binary');\n }\n return input.toString('base64');\n} : function(input) {\n throw new Error(\"No base64 encoding function found\");\n};\n\n/**\n* Returns the Base64-decoded version of url.<br>\n* This method delegates to `btoa` if present. Otherwise it tries `Buffer`.\n* @function Util.base64EncodeURL\n* @param {string} url - the url to encode. the value is URIdecoded and then re-encoded before converting to base64 representation\n* @return {string} the base64 representation of the URL\n */\nexport var base64EncodeURL = function(url) {\n try {\n url = decodeURI(url);\n } finally {\n url = encodeURI(url);\n }\n return base64Encode(url);\n};\n\n/**\n * Create a new object with only URL parameters\n * @param {object} options The source object\n * @return {Object} An object containing only URL parameters\n */\nexport function extractUrlParams(options) {\n return URL_KEYS.reduce((obj, key) => {\n if (options[key] != null) {\n obj[key] = options[key];\n }\n return obj;\n }, {});\n}\n\n\n/**\n * Handle the format parameter for fetch urls\n * @private\n * @param options url and transformation options. This argument may be changed by the function!\n */\nexport function patchFetchFormat(options) {\n if(options == null) {\n options = {};\n }\n if (options.type === \"fetch\") {\n if (options.fetch_format == null) {\n options.fetch_format = optionConsume(options, \"format\");\n }\n }\n}\n\n/**\n * Deletes `option_name` from `options` and return the value if present.\n * If `options` doesn't contain `option_name` the default value is returned.\n * @param {Object} options a collection\n * @param {String} option_name the name (key) of the desired value\n * @param {*} [default_value] the value to return is option_name is missing\n */\nexport function optionConsume(options, option_name, default_value) {\n let result = options[option_name];\n delete options[option_name];\n if (result != null) {\n return result;\n } else {\n return default_value;\n }\n}\n\n/**\n * Returns true if value is empty:\n * <ul>\n * <li>value is null or undefined</li>\n * <li>value is an array or string of length 0</li>\n * <li>value is an object with no keys</li>\n * </ul>\n * @function Util.isEmpty\n * @param value\n * @returns {boolean} true if value is empty\n */\nexport function isEmpty(value) {\n if(value == null) {\n return true;\n }\n if( typeof value.length == \"number\") {\n return value.length === 0;\n }\n if( typeof value.size == \"number\") {\n return value.size === 0;\n }\n if(typeof value == \"object\") {\n for(let key in value) {\n if(value.hasOwnProperty(key)) {\n return false;\n }\n }\n return true;\n }\n return true;\n}\n","var nodeContains;\n\nimport getSDKAnalyticsSignature from \"../sdkAnalytics/getSDKAnalyticsSignature\";\nimport getAnalyticsOptions from \"../sdkAnalytics/getAnalyticsOptions\";\nexport {getSDKAnalyticsSignature , getAnalyticsOptions};\n\nexport {\n default as assign\n} from 'lodash/assign';\n\nexport {\n default as cloneDeep\n} from 'lodash/cloneDeep';\n\nexport {\n default as compact\n} from 'lodash/compact';\n\nexport {\n default as difference\n} from 'lodash/difference';\n\nexport {\n default as functions\n} from 'lodash/functions';\n\nexport {\n default as identity\n} from 'lodash/identity';\n\nexport {\n default as includes\n} from 'lodash/includes';\n\nexport {\n default as isArray\n} from 'lodash/isArray';\n\nexport {\n default as isPlainObject\n} from 'lodash/isPlainObject';\n\nexport {\n default as isString\n} from 'lodash/isString';\n\nexport {\n default as merge\n} from 'lodash/merge';\n\nexport {\n default as contains\n} from 'lodash/includes';\n\nimport isElement from 'lodash/isElement';\nimport isFunction from 'lodash/isFunction';\nimport trim from 'lodash/trim';\n\nexport * from './lazyLoad';\nexport * from './baseutil';\nexport * from './browser';\nexport {\n isElement,\n isFunction,\n trim\n};\n\n/*\n * Includes utility methods and lodash / jQuery shims\n */\n/**\n * Get data from the DOM element.\n *\n * This method will use jQuery's `data()` method if it is available, otherwise it will get the `data-` attribute\n * @param {Element} element - the element to get the data from\n * @param {string} name - the name of the data item\n * @returns the value associated with the `name`\n * @function Util.getData\n */\nexport var getData = function (element, name) {\n switch (false) {\n case !(element == null):\n return void 0;\n case !isFunction(element.getAttribute):\n return element.getAttribute(`data-${name}`);\n case !isFunction(element.getAttr):\n return element.getAttr(`data-${name}`);\n case !isFunction(element.data):\n return element.data(name);\n case !(isFunction(typeof jQuery !== \"undefined\" && jQuery.fn && jQuery.fn.data) && isElement(element)):\n return jQuery(element).data(name);\n }\n};\n\n/**\n * Set data in the DOM element.\n *\n * This method will use jQuery's `data()` method if it is available, otherwise it will set the `data-` attribute\n * @function Util.setData\n * @param {Element} element - the element to set the data in\n * @param {string} name - the name of the data item\n * @param {*} value - the value to be set\n *\n */\nexport var setData = function (element, name, value) {\n switch (false) {\n case !(element == null):\n return void 0;\n case !isFunction(element.setAttribute):\n return element.setAttribute(`data-${name}`, value);\n case !isFunction(element.setAttr):\n return element.setAttr(`data-${name}`, value);\n case !isFunction(element.data):\n return element.data(name, value);\n case !(isFunction(typeof jQuery !== \"undefined\" && jQuery.fn && jQuery.fn.data) && isElement(element)):\n return jQuery(element).data(name, value);\n }\n};\n\n/**\n * Get attribute from the DOM element.\n *\n * @function Util.getAttribute\n * @param {Element} element - the element to set the attribute for\n * @param {string} name - the name of the attribute\n * @returns {*} the value of the attribute\n *\n */\nexport var getAttribute = function (element, name) {\n switch (false) {\n case !(element == null):\n return void 0;\n case !isFunction(element.getAttribute):\n return element.getAttribute(name);\n case !isFunction(element.attr):\n return element.attr(name);\n case !isFunction(element.getAttr):\n return element.getAttr(name);\n }\n};\n\n/**\n * Set attribute in the DOM element.\n *\n * @function Util.setAttribute\n * @param {Element} element - the element to set the attribute for\n * @param {string} name - the name of the attribute\n * @param {*} value - the value to be set\n */\nexport var setAttribute = function (element, name, value) {\n switch (false) {\n case !(element == null):\n return void 0;\n case !isFunction(element.setAttribute):\n return element.setAttribute(name, value);\n case !isFunction(element.attr):\n return element.attr(name, value);\n case !isFunction(element.setAttr):\n return element.setAttr(name, value);\n }\n};\n\n/**\n * Remove an attribute in the DOM element.\n *\n * @function Util.removeAttribute\n * @param {Element} element - the element to set the attribute for\n * @param {string} name - the name of the attribute\n */\nexport var removeAttribute = function (element, name) {\n switch (false) {\n case !(element == null):\n return void 0;\n case !isFunction(element.removeAttribute):\n return element.removeAttribute(name);\n default:\n return setAttribute(element, void 0);\n }\n};\n\n/**\n * Set a group of attributes to the element\n * @function Util.setAttributes\n * @param {Element} element - the element to set the attributes for\n * @param {Object} attributes - a hash of attribute names and values\n */\nexport var setAttributes = function (element, attributes) {\n var name, results, value;\n results = [];\n for (name in attributes) {\n value = attributes[name];\n if (value != null) {\n results.push(setAttribute(element, name, value));\n } else {\n results.push(removeAttribute(element, name));\n }\n }\n return results;\n};\n\n/**\n * Checks if element has a css class\n * @function Util.hasClass\n * @param {Element} element - the element to check\n * @param {string} name - the class name\n @returns {boolean} true if the element has the class\n */\nexport var hasClass = function (element, name) {\n if (isElement(element)) {\n return element.className.match(new RegExp(`\\\\b${name}\\\\b`));\n }\n};\n\n/**\n * Add class to the element\n * @function Util.addClass\n * @param {Element} element - the element\n * @param {string} name - the class name to add\n */\nexport var addClass = function (element, name) {\n if (!element.className.match(new RegExp(`\\\\b${name}\\\\b`))) {\n return element.className = trim(`${element.className} ${name}`);\n }\n};\n\n// The following code is taken from jQuery\nexport var getStyles = function (elem) {\n // Support: IE<=11+, Firefox<=30+ (#15098, #14150)\n // IE throws on elements created in popups\n // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n if (elem.ownerDocument.defaultView.opener) {\n return elem.ownerDocument.defaultView.getComputedStyle(elem, null);\n }\n return window.getComputedStyle(elem, null);\n};\n\nexport var cssExpand = [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n\nnodeContains = function (a, b) {\n var adown, bup;\n adown = (a.nodeType === 9 ? a.documentElement : a);\n bup = b && b.parentNode;\n return a === bup || !!(bup && bup.nodeType === 1 && adown.contains(bup));\n};\n\n// Truncated version of jQuery.style(elem, name)\nexport var domStyle = function (elem, name) {\n if (!(!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style)) {\n return elem.style[name];\n }\n};\n\nexport var curCSS = function (elem, name, computed) {\n var maxWidth, minWidth, ret, rmargin, style, width;\n rmargin = /^margin/;\n width = void 0;\n minWidth = void 0;\n maxWidth = void 0;\n ret = void 0;\n style = elem.style;\n computed = computed || getStyles(elem);\n if (computed) {\n // Support: IE9\n // getPropertyValue is only needed for .css('filter') (#12537)\n ret = computed.getPropertyValue(name) || computed[name];\n }\n if (computed) {\n if (ret === \"\" && !nodeContains(elem.ownerDocument, elem)) {\n ret = domStyle(elem, name);\n }\n // Support: iOS < 6\n // A tribute to the \"awesome hack by Dean Edwards\"\n // iOS < 6 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels\n // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values\n if (rnumnonpx.test(ret) && rmargin.test(name)) {\n // Remember the original values\n width = style.width;\n minWidth = style.minWidth;\n maxWidth = style.maxWidth;\n // Put in the new values to get a computed value out\n style.minWidth = style.maxWidth = style.width = ret;\n ret = computed.width;\n // Revert the changed values\n style.width = width;\n style.minWidth = minWidth;\n style.maxWidth = maxWidth;\n }\n }\n // Support: IE\n // IE returns zIndex value as an integer.\n if (ret !== undefined) {\n return ret + \"\";\n } else {\n return ret;\n }\n};\n\nexport var cssValue = function (elem, name, convert, styles) {\n var val;\n val = curCSS(elem, name, styles);\n if (convert) {\n return parseFloat(val);\n } else {\n return val;\n }\n};\n\nexport var augmentWidthOrHeight = function (elem, name, extra, isBorderBox, styles) {\n var i, len, side, sides, val;\n // If we already have the right measurement, avoid augmentation\n // Otherwise initialize for horizontal or vertical properties\n if (extra === (isBorderBox ? \"border\" : \"content\")) {\n return 0;\n } else {\n sides = name === \"width\" ? [\"Right\", \"Left\"] : [\"Top\", \"Bottom\"];\n val = 0;\n for (i = 0, len = sides.length; i < len; i++) {\n side = sides[i];\n if (extra === \"margin\") {\n // Both box models exclude margin, so add it if we want it\n val += cssValue(elem, extra + side, true, styles);\n }\n if (isBorderBox) {\n if (extra === \"content\") {\n // border-box includes padding, so remove it if we want content\n val -= cssValue(elem, `padding${side}`, true, styles);\n }\n if (extra !== \"margin\") {\n // At this point, extra isn't border nor margin, so remove border\n val -= cssValue(elem, `border${side}Width`, true, styles);\n }\n } else {\n // At this point, extra isn't content, so add padding\n val += cssValue(elem, `padding${side}`, true, styles);\n if (extra !== \"padding\") {\n // At this point, extra isn't content nor padding, so add border\n val += cssValue(elem, `border${side}Width`, true, styles);\n }\n }\n }\n return val;\n }\n};\n\nvar pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n\nvar rnumnonpx = new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\n\nexport var getWidthOrHeight = function (elem, name, extra) {\n var isBorderBox, styles, val, valueIsBorderBox;\n // Start with offset property, which is equivalent to the border-box value\n valueIsBorderBox = true;\n val = (name === \"width\" ? elem.offsetWidth : elem.offsetHeight);\n styles = getStyles(elem);\n isBorderBox = cssValue(elem, \"boxSizing\", false, styles) === \"border-box\";\n // Some non-html elements return undefined for offsetWidth, so check for null/undefined\n // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285\n // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668\n if (val <= 0 || (val == null)) {\n // Fall back to computed then uncomputed css if necessary\n val = curCSS(elem, name, styles);\n if (val < 0 || (val == null)) {\n val = elem.style[name];\n }\n if (rnumnonpx.test(val)) {\n // Computed unit is not pixels. Stop here and return.\n return val;\n }\n // Check for style in case a browser which returns unreliable values\n // for getComputedStyle silently falls back to the reliable elem.style\n // valueIsBorderBox = isBorderBox and (support.boxSizingReliable() or val is elem.style[name])\n valueIsBorderBox = isBorderBox && (val === elem.style[name]);\n // Normalize \"\", auto, and prepare for extra\n val = parseFloat(val) || 0;\n }\n // Use the active box-sizing model to add/subtract irrelevant styles\n return val + augmentWidthOrHeight(elem, name, extra || (isBorderBox ? \"border\" : \"content\"), valueIsBorderBox, styles);\n};\n\nexport var width = function (element) {\n return getWidthOrHeight(element, \"width\", \"content\");\n};\n\n\n/**\n * @class Util\n */\n/**\n * Returns true if item is a string\n * @function Util.isString\n * @param item\n * @returns {boolean} true if item is a string\n */\n/**\n * Returns true if item is empty:\n * <ul>\n * <li>item is null or undefined</li>\n * <li>item is an array or string of length 0</li>\n * <li>item is an object with no keys</li>\n * </ul>\n * @function Util.isEmpty\n * @param item\n * @returns {boolean} true if item is empty\n */\n/**\n * Assign source properties to destination.\n * If the property is an object it is assigned as a whole, overriding the destination object.\n * @function Util.assign\n * @param {Object} destination - the object to assign to\n */\n/**\n * Recursively assign source properties to destination\n * @function Util.merge\n * @param {Object} destination - the object to assign to\n * @param {...Object} [sources] The source objects.\n */\n/**\n * Create a new copy of the given object, including all internal objects.\n * @function Util.cloneDeep\n * @param {Object} value - the object to clone\n * @return {Object} a new deep copy of the object\n */\n/**\n * Creates a new array from the parameter with \"falsey\" values removed\n * @function Util.compact\n * @param {Array} array - the array to remove values from\n * @return {Array} a new array without falsey values\n */\n/**\n * Check if a given item is included in the given array\n * @function Util.contains\n * @param {Array} array - the array to search in\n * @param {*} item - the item to search for\n * @return {boolean} true if the item is included in the array\n */\n/**\n * Returns values in the given array that are not included in the other array\n * @function Util.difference\n * @param {Array} arr - the array to select from\n * @param {Array} values - values to filter from arr\n * @return {Array} the filtered values\n */\n/**\n * Returns a list of all the function names in obj\n * @function Util.functions\n * @param {Object} object - the object to inspect\n * @return {Array} a list of functions of object\n */\n/**\n * Returns the provided value. This functions is used as a default predicate function.\n * @function Util.identity\n * @param {*} value\n * @return {*} the provided value\n */\n/**\n * Remove leading or trailing spaces from text\n * @function Util.trim\n * @param {string} text\n * @return {string} the `text` without leading or trailing spaces\n */\n","/**\n * Based on video.js implementation:\n * https://github.com/videojs/video.js/blob/4238f5c1d88890547153e7e1de7bd0d1d8e0b236/src/js/utils/browser.js\n */\n\n/**\n* Retrieve from the navigator the user agent property.\n* @returns user agent property.\n*/\nfunction getUserAgent(){\n return navigator && navigator.userAgent || '';\n}\n\n/**\n * Detect if current browser is any Android\n * @returns true if current browser is Android, false otherwise.\n */\nexport function isAndroid(){\n const userAgent = getUserAgent();\n return (/Android/i).test(userAgent);\n}\n\n/**\n * Detect if current browser is any Edge\n * @returns true if current browser is Edge, false otherwise.\n */\nexport function isEdge(){\n const userAgent = getUserAgent();\n return (/Edg/i).test(userAgent);\n}\n\n/**\n * Detect if current browser is chrome.\n * @returns true if current browser is Chrome, false otherwise.\n */\nexport function isChrome(){\n const userAgent = getUserAgent();\n return !isEdge() && ((/Chrome/i).test(userAgent) || (/CriOS/i).test(userAgent));\n}\n\n/**\n * Detect if current browser is Safari.\n * @returns true if current browser is Safari, false otherwise.\n */\nexport function isSafari(){\n // User agents for other browsers might include \"Safari\" so we must exclude them.\n // For example - this is the chrome user agent on windows 10:\n // Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36\n const userAgent = getUserAgent();\n return (/Safari/i).test(userAgent) && !isChrome() && !isAndroid() && !isEdge();\n}\n","/**\n * Represents a transformation expression.\n * @param {string} expressionStr - An expression in string format.\n * @class Expression\n * Normally this class is not instantiated directly\n */\nclass Expression {\n constructor(expressionStr) {\n /**\n * @protected\n * @inner Expression-expressions\n */\n this.expressions = [];\n if (expressionStr != null) {\n this.expressions.push(Expression.normalize(expressionStr));\n }\n }\n\n /**\n * Convenience constructor method\n * @function Expression.new\n */\n static new(expressionStr) {\n return new this(expressionStr);\n }\n\n /**\n * Normalize a string expression\n * @function Cloudinary#normalize\n * @param {string} expression a expression, e.g. \"w gt 100\", \"width_gt_100\", \"width > 100\"\n * @return {string} the normalized form of the value expression, e.g. \"w_gt_100\"\n */\n static normalize(expression) {\n if (expression == null) {\n return expression;\n }\n expression = String(expression);\n const operators = \"\\\\|\\\\||>=|<=|&&|!=|>|=|<|/|-|\\\\+|\\\\*|\\\\^\";\n\n // operators\n const operatorsPattern = \"((\" + operators + \")(?=[ _]))\";\n const operatorsReplaceRE = new RegExp(operatorsPattern, \"g\");\n expression = expression.replace(operatorsReplaceRE, match => Expression.OPERATORS[match]);\n\n // predefined variables\n // The :${v} part is to prevent normalization of vars with a preceding colon (such as :duration),\n // It won't be found in PREDEFINED_VARS and so won't be normalized.\n // It is done like this because ie11 does not support regex lookbehind\n const predefinedVarsPattern = \"(\" + Object.keys(Expression.PREDEFINED_VARS).map(v=>`:${v}|${v}`).join(\"|\") + \")\";\n const userVariablePattern = '(\\\\$_*[^_ ]+)';\n\n const variablesReplaceRE = new RegExp(`${userVariablePattern}|${predefinedVarsPattern}`, \"g\");\n expression = expression.replace(variablesReplaceRE, (match) => (Expression.PREDEFINED_VARS[match] || match));\n\n return expression.replace(/[ _]+/g, '_');\n }\n\n /**\n * Serialize the expression\n * @return {string} the expression as a string\n */\n serialize() {\n return Expression.normalize(this.expressions.join(\"_\"));\n }\n\n toString() {\n return this.serialize();\n }\n\n /**\n * Get the parent transformation of this expression\n * @return Transformation\n */\n getParent() {\n return this.parent;\n }\n\n /**\n * Set the parent transformation of this expression\n * @param {Transformation} the parent transformation\n * @return {Expression} this expression\n */\n setParent(parent) {\n this.parent = parent;\n return this;\n }\n\n /**\n * Add a expression\n * @function Expression#predicate\n * @internal\n */\n predicate(name, operator, value) {\n if (Expression.OPERATORS[operator] != null) {\n operator = Expression.OPERATORS[operator];\n }\n this.expressions.push(`${name}_${operator}_${value}`);\n return this;\n }\n\n /**\n * @function Expression#and\n */\n and() {\n this.expressions.push(\"and\");\n return this;\n }\n\n /**\n * @function Expression#or\n */\n or() {\n this.expressions.push(\"or\");\n return this;\n }\n\n /**\n * Conclude expression\n * @function Expression#then\n * @return {Transformation} the transformation this expression is defined for\n */\n then() {\n return this.getParent().if(this.toString());\n }\n\n /**\n * @function Expression#height\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Expression} this expression\n */\n height(operator, value) {\n return this.predicate(\"h\", operator, value);\n }\n\n /**\n * @function Expression#width\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Expression} this expression\n */\n width(operator, value) {\n return this.predicate(\"w\", operator, value);\n }\n\n /**\n * @function Expression#aspectRatio\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Expression} this expression\n */\n aspectRatio(operator, value) {\n return this.predicate(\"ar\", operator, value);\n }\n\n /**\n * @function Expression#pages\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Expression} this expression\n */\n pageCount(operator, value) {\n return this.predicate(\"pc\", operator, value);\n }\n\n /**\n * @function Expression#faces\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Expression} this expression\n */\n faceCount(operator, value) {\n return this.predicate(\"fc\", operator, value);\n }\n\n value(value) {\n this.expressions.push(value);\n return this;\n }\n\n /**\n */\n static variable(name, value) {\n return new this(name).value(value);\n }\n\n /**\n * @returns Expression a new expression with the predefined variable \"width\"\n * @function Expression.width\n */\n static width() {\n return new this(\"width\");\n }\n\n /**\n * @returns Expression a new expression with the predefined variable \"height\"\n * @function Expression.height\n */\n static height() {\n return new this(\"height\");\n }\n\n /**\n * @returns Expression a new expression with the predefined variable \"initialWidth\"\n * @function Expression.initialWidth\n */\n static initialWidth() {\n return new this(\"initialWidth\");\n }\n\n /**\n * @returns Expression a new expression with the predefined variable \"initialHeight\"\n * @function Expression.initialHeight\n */\n static initialHeight() {\n return new this(\"initialHeight\");\n }\n\n /**\n * @returns Expression a new expression with the predefined variable \"aspectRatio\"\n * @function Expression.aspectRatio\n */\n static aspectRatio() {\n return new this(\"aspectRatio\");\n }\n\n /**\n * @returns Expression a new expression with the predefined variable \"initialAspectRatio\"\n * @function Expression.initialAspectRatio\n */\n static initialAspectRatio() {\n return new this(\"initialAspectRatio\");\n }\n\n /**\n * @returns Expression a new expression with the predefined variable \"pageCount\"\n * @function Expression.pageCount\n */\n static pageCount() {\n return new this(\"pageCount\");\n }\n\n /**\n * @returns Expression new expression with the predefined variable \"faceCount\"\n * @function Expression.faceCount\n */\n static faceCount() {\n return new this(\"faceCount\");\n }\n\n /**\n * @returns Expression a new expression with the predefined variable \"currentPage\"\n * @function Expression.currentPage\n */\n static currentPage() {\n return new this(\"currentPage\");\n }\n\n /**\n * @returns Expression a new expression with the predefined variable \"tags\"\n * @function Expression.tags\n */\n static tags() {\n return new this(\"tags\");\n }\n\n /**\n * @returns Expression a new expression with the predefined variable \"pageX\"\n * @function Expression.pageX\n */\n static pageX() {\n return new this(\"pageX\");\n }\n\n /**\n * @returns Expression a new expression with the predefined variable \"pageY\"\n * @function Expression.pageY\n */\n static pageY() {\n return new this(\"pageY\");\n }\n\n}\n\n/**\n * @internal\n */\nExpression.OPERATORS = {\n \"=\": 'eq',\n \"!=\": 'ne',\n \"<\": 'lt',\n \">\": 'gt',\n \"<=\": 'lte',\n \">=\": 'gte',\n \"&&\": 'and',\n \"||\": 'or',\n \"*\": \"mul\",\n \"/\": \"div\",\n \"+\": \"add\",\n \"-\": \"sub\",\n \"^\": \"pow\",\n};\n\n/**\n * @internal\n */\nExpression.PREDEFINED_VARS = {\n \"aspect_ratio\": \"ar\",\n \"aspectRatio\": \"ar\",\n \"current_page\": \"cp\",\n \"currentPage\": \"cp\",\n \"duration\": \"du\",\n \"face_count\": \"fc\",\n \"faceCount\": \"fc\",\n \"height\": \"h\",\n \"initial_aspect_ratio\": \"iar\",\n \"initial_duration\": \"idu\",\n \"initial_height\": \"ih\",\n \"initial_width\": \"iw\",\n \"initialAspectRatio\": \"iar\",\n \"initialDuration\": \"idu\",\n \"initialHeight\": \"ih\",\n \"initialWidth\": \"iw\",\n \"page_count\": \"pc\",\n \"page_x\": \"px\",\n \"page_y\": \"py\",\n \"pageCount\": \"pc\",\n \"pageX\": \"px\",\n \"pageY\": \"py\",\n \"tags\": \"tags\",\n \"width\": \"w\"\n};\n\n/**\n * @internal\n */\nExpression.BOUNDRY = \"[ _]+\";\n\nexport default Expression;\n","import Expression from './expression';\n\n/**\n * Represents a transformation condition.\n * @param {string} conditionStr - a condition in string format\n * @class Condition\n * @example\n * // normally this class is not instantiated directly\n * var tr = cloudinary.Transformation.new()\n * .if().width( \">\", 1000).and().aspectRatio(\"<\", \"3:4\").then()\n * .width(1000)\n * .crop(\"scale\")\n * .else()\n * .width(500)\n * .crop(\"scale\")\n *\n * var tr = cloudinary.Transformation.new()\n * .if(\"w > 1000 and aspectRatio < 3:4\")\n * .width(1000)\n * .crop(\"scale\")\n * .else()\n * .width(500)\n * .crop(\"scale\")\n *\n */\nclass Condition extends Expression {\n constructor(conditionStr) {\n super(conditionStr);\n }\n\n /**\n * @function Condition#height\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Condition} this condition\n */\n height(operator, value) {\n return this.predicate(\"h\", operator, value);\n }\n\n /**\n * @function Condition#width\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Condition} this condition\n */\n width(operator, value) {\n return this.predicate(\"w\", operator, value);\n }\n\n /**\n * @function Condition#aspectRatio\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Condition} this condition\n */\n aspectRatio(operator, value) {\n return this.predicate(\"ar\", operator, value);\n }\n\n /**\n * @function Condition#pages\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Condition} this condition\n */\n pageCount(operator, value) {\n return this.predicate(\"pc\", operator, value);\n }\n\n /**\n * @function Condition#faces\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Condition} this condition\n */\n faceCount(operator, value) {\n return this.predicate(\"fc\", operator, value);\n }\n\n /**\n * @function Condition#duration\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Condition} this condition\n */\n duration(operator, value) {\n return this.predicate(\"du\", operator, value);\n }\n\n /**\n * @function Condition#initialDuration\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Condition} this condition\n */\n initialDuration(operator, value) {\n return this.predicate(\"idu\", operator, value);\n }\n}\n\nexport default Condition;\n","/**\n * Class for defining account configuration options.\n * Depends on 'utils'\n */\n\nimport {\n defaults,\n assign,\n isString,\n isPlainObject,\n cloneDeep\n} from './util';\n\n/**\n * Class for defining account configuration options.\n * @constructor Configuration\n * @param {Object} options - The account configuration parameters to set.\n * @see <a href=\"https://cloudinary.com/documentation/solution_overview#configuration_parameters\"\n * target=\"_new\">Available configuration options</a>\n */\nclass Configuration {\n constructor(options) {\n this.configuration = options == null ? {} : cloneDeep(options);\n defaults(this.configuration, DEFAULT_CONFIGURATION_PARAMS);\n }\n\n /**\n * Initializes the configuration. This method is a convenience method that invokes both\n * {@link Configuration#fromEnvironment|fromEnvironment()} (Node.js environment only)\n * and {@link Configuration#fromDocument|fromDocument()}.\n * It first tries to retrieve the configuration from the environment variable.\n * If not available, it tries from the document meta tags.\n * @function Configuration#init\n * @return {Configuration} returns `this` for chaining\n * @see fromDocument\n * @see fromEnvironment\n */\n init() {\n this.fromEnvironment();\n this.fromDocument();\n return this;\n }\n\n /**\n * Set a new configuration item\n * @function Configuration#set\n * @param {string} name - the name of the item to set\n * @param {*} value - the value to be set\n * @return {Configuration}\n *\n */\n set(name, value) {\n this.configuration[name] = value;\n return this;\n }\n\n /**\n * Get the value of a configuration item\n * @function Configuration#get\n * @param {string} name - the name of the item to set\n * @return {*} the configuration item\n */\n get(name) {\n return this.configuration[name];\n }\n\n merge(config) {\n assign(this.configuration, cloneDeep(config));\n return this;\n }\n\n /**\n * Initialize Cloudinary from HTML meta tags.\n * @function Configuration#fromDocument\n * @return {Configuration}\n * @example <meta name=\"cloudinary_cloud_name\" content=\"mycloud\">\n *\n */\n fromDocument() {\n var el, i, len, meta_elements;\n meta_elements = typeof document !== \"undefined\" && document !== null ? document.querySelectorAll('meta[name^=\"cloudinary_\"]') : void 0;\n if (meta_elements) {\n for (i = 0, len = meta_elements.length; i < len; i++) {\n el = meta_elements[i];\n this.configuration[el.getAttribute('name').replace('cloudinary_', '')] = el.getAttribute('content');\n }\n }\n return this;\n }\n\n /**\n * Initialize Cloudinary from the `CLOUDINARY_URL` environment variable.\n *\n * This function will only run under Node.js environment.\n * @function Configuration#fromEnvironment\n * @requires Node.js\n */\n fromEnvironment() {\n var cloudinary_url, query, uri, uriRegex;\n if(typeof process !== \"undefined\" && process !== null && process.env && process.env.CLOUDINARY_URL ){\n cloudinary_url = process.env.CLOUDINARY_URL;\n uriRegex = /cloudinary:\\/\\/(?:(\\w+)(?:\\:([\\w-]+))?@)?([\\w\\.-]+)(?:\\/([^?]*))?(?:\\?(.+))?/;\n uri = uriRegex.exec(cloudinary_url);\n if (uri) {\n if (uri[3] != null) {\n this.configuration['cloud_name'] = uri[3];\n }\n if (uri[1] != null) {\n this.configuration['api_key'] = uri[1];\n }\n if (uri[2] != null) {\n this.configuration['api_secret'] = uri[2];\n }\n if (uri[4] != null) {\n this.configuration['private_cdn'] = uri[4] != null;\n }\n if (uri[4] != null) {\n this.configuration['secure_distribution'] = uri[4];\n }\n query = uri[5];\n if (query != null) {\n query.split('&').forEach(value=>{\n let [k, v] = value.split('=');\n if (v == null) {\n v = true;\n }\n this.configuration[k] = v;\n });\n }\n }\n }\n return this;\n }\n\n /**\n * Create or modify the Cloudinary client configuration\n *\n * Warning: `config()` returns the actual internal configuration object. modifying it will change the configuration.\n *\n * This is a backward compatibility method. For new code, use get(), merge() etc.\n * @function Configuration#config\n * @param {hash|string|boolean} new_config\n * @param {string} new_value\n * @returns {*} configuration, or value\n *\n * @see {@link fromEnvironment} for initialization using environment variables\n * @see {@link fromDocument} for initialization using HTML meta tags\n */\n config(new_config, new_value) {\n switch (false) {\n case new_value === void 0:\n this.set(new_config, new_value);\n return this.configuration;\n case !isString(new_config):\n return this.get(new_config);\n case !isPlainObject(new_config):\n this.merge(new_config);\n return this.configuration;\n default:\n // Backward compatibility - return the internal object\n return this.configuration;\n }\n }\n\n /**\n * Returns a copy of the configuration parameters\n * @function Configuration#toOptions\n * @returns {Object} a key:value collection of the configuration parameters\n */\n toOptions() {\n return cloneDeep(this.configuration);\n }\n\n}\n\nconst DEFAULT_CONFIGURATION_PARAMS = {\n responsive_class: 'cld-responsive',\n responsive_use_breakpoints: true,\n round_dpr: true,\n secure: (typeof window !== \"undefined\" && window !== null ? window.location ? window.location.protocol : void 0 : void 0) === 'https:'\n};\n\nConfiguration.CONFIG_PARAMS = [\n \"api_key\",\n \"api_secret\",\n \"callback\",\n \"cdn_subdomain\",\n \"cloud_name\",\n \"cname\",\n \"private_cdn\",\n \"protocol\",\n \"resource_type\",\n \"responsive\",\n \"responsive_class\",\n \"responsive_use_breakpoints\",\n \"responsive_width\",\n \"round_dpr\",\n \"secure\",\n \"secure_cdn_subdomain\",\n \"secure_distribution\",\n \"shorten\",\n \"type\",\n \"upload_preset\",\n \"url_suffix\",\n \"use_root_path\",\n \"version\",\n \"externalLibraries\",\n \"max_timeout_ms\"\n];\n\nexport default Configuration;\n","import {\n snakeCase,\n compact\n} from '../util';\n\nclass Layer {\n /**\n * Layer\n * @constructor Layer\n * @param {Object} options - layer parameters\n */\n constructor(options) {\n this.options = {};\n if (options != null) {\n [\"resourceType\", \"type\", \"publicId\", \"format\"].forEach((key) => {\n var ref;\n return this.options[key] = (ref = options[key]) != null ? ref : options[snakeCase(key)];\n });\n }\n }\n\n resourceType(value) {\n this.options.resourceType = value;\n return this;\n }\n\n type(value) {\n this.options.type = value;\n return this;\n }\n\n publicId(value) {\n this.options.publicId = value;\n return this;\n }\n\n /**\n * Get the public ID, formatted for layer parameter\n * @function Layer#getPublicId\n * @return {String} public ID\n */\n getPublicId() {\n var ref;\n return (ref = this.options.publicId) != null ? ref.replace(/\\//g, \":\") : void 0;\n }\n\n /**\n * Get the public ID, with format if present\n * @function Layer#getFullPublicId\n * @return {String} public ID\n */\n getFullPublicId() {\n if (this.options.format != null) {\n return this.getPublicId() + \".\" + this.options.format;\n } else {\n return this.getPublicId();\n }\n }\n\n format(value) {\n this.options.format = value;\n return this;\n }\n\n /**\n * generate the string representation of the layer\n * @function Layer#toString\n */\n toString() {\n var components;\n components = [];\n if (this.options.publicId == null) {\n throw \"Must supply publicId\";\n }\n if (!(this.options.resourceType === \"image\")) {\n components.push(this.options.resourceType);\n }\n if (!(this.options.type === \"upload\")) {\n components.push(this.options.type);\n }\n components.push(this.getFullPublicId());\n return compact(components).join(\":\");\n }\n\n clone() {\n return new this.constructor(this.options);\n }\n\n}\n\nexport default Layer;\n","import Layer from './layer';\n\nimport {\n compact,\n isEmpty,\n isNumberLike,\n smartEscape,\n snakeCase\n} from '../util';\n\nclass TextLayer extends Layer {\n /**\n * @constructor TextLayer\n * @param {Object} options - layer parameters\n */\n constructor(options) {\n var keys;\n super(options);\n keys = [\"resourceType\", \"resourceType\", \"fontFamily\", \"fontSize\", \"fontWeight\", \"fontStyle\", \"textDecoration\", \"textAlign\", \"stroke\", \"letterSpacing\", \"lineSpacing\", \"fontHinting\", \"fontAntialiasing\", \"text\", \"textStyle\"];\n if (options != null) {\n keys.forEach((key) => {\n var ref;\n return this.options[key] = (ref = options[key]) != null ? ref : options[snakeCase(key)];\n });\n }\n this.options.resourceType = \"text\";\n }\n\n resourceType(resourceType) {\n throw \"Cannot modify resourceType for text layers\";\n }\n\n type(type) {\n throw \"Cannot modify type for text layers\";\n }\n\n format(format) {\n throw \"Cannot modify format for text layers\";\n }\n\n fontFamily(fontFamily) {\n this.options.fontFamily = fontFamily;\n return this;\n }\n\n fontSize(fontSize) {\n this.options.fontSize = fontSize;\n return this;\n }\n\n fontWeight(fontWeight) {\n this.options.fontWeight = fontWeight;\n return this;\n }\n\n fontStyle(fontStyle) {\n this.options.fontStyle = fontStyle;\n return this;\n }\n\n textDecoration(textDecoration) {\n this.options.textDecoration = textDecoration;\n return this;\n }\n\n textAlign(textAlign) {\n this.options.textAlign = textAlign;\n return this;\n }\n\n stroke(stroke) {\n this.options.stroke = stroke;\n return this;\n }\n\n letterSpacing(letterSpacing) {\n this.options.letterSpacing = letterSpacing;\n return this;\n }\n\n lineSpacing(lineSpacing) {\n this.options.lineSpacing = lineSpacing;\n return this;\n }\n\n fontHinting (fontHinting){\n this.options.fontHinting = fontHinting;\n return this;\n }\n\n fontAntialiasing (fontAntialiasing){\n this.options.fontAntialiasing = fontAntialiasing;\n return this;\n }\n\n text(text) {\n this.options.text = text;\n return this;\n }\n\n textStyle(textStyle) {\n this.options.textStyle = textStyle;\n return this;\n }\n\n /**\n * generate the string representation of the layer\n * @function TextLayer#toString\n * @return {String}\n */\n toString() {\n var components, hasPublicId, hasStyle, publicId, re, res, start, style, text, textSource;\n style = this.textStyleIdentifier();\n if (this.options.publicId != null) {\n publicId = this.getFullPublicId();\n }\n if (this.options.text != null) {\n hasPublicId = !isEmpty(publicId);\n hasStyle = !isEmpty(style);\n if (hasPublicId && hasStyle || !hasPublicId && !hasStyle) {\n throw \"Must supply either style parameters or a public_id when providing text parameter in a text overlay/underlay, but not both!\";\n }\n re = /\\$\\([a-zA-Z]\\w*\\)/g;\n start = 0;\n // textSource = text.replace(new RegExp(\"[,/]\", 'g'), (c)-> \"%#{c.charCodeAt(0).toString(16).toUpperCase()}\")\n textSource = smartEscape(this.options.text, /[,\\/]/g);\n text = \"\";\n while (res = re.exec(textSource)) {\n text += smartEscape(textSource.slice(start, res.index));\n text += res[0];\n start = res.index + res[0].length;\n }\n text += smartEscape(textSource.slice(start));\n }\n components = [this.options.resourceType, style, publicId, text];\n return compact(components).join(\":\");\n }\n\n textStyleIdentifier() {\n // Note: if a text-style argument is provided as a whole, it overrides everything else, no mix and match.\n if (!isEmpty(this.options.textStyle)) {\n return this.options.textStyle;\n }\n var components;\n components = [];\n if (this.options.fontWeight !== \"normal\") {\n components.push(this.options.fontWeight);\n }\n if (this.options.fontStyle !== \"normal\") {\n components.push(this.options.fontStyle);\n }\n if (this.options.textDecoration !== \"none\") {\n components.push(this.options.textDecoration);\n }\n components.push(this.options.textAlign);\n if (this.options.stroke !== \"none\") {\n components.push(this.options.stroke);\n }\n if (!(isEmpty(this.options.letterSpacing) && !isNumberLike(this.options.letterSpacing))) {\n components.push(\"letter_spacing_\" + this.options.letterSpacing);\n }\n if (!(isEmpty(this.options.lineSpacing) && !isNumberLike(this.options.lineSpacing))) {\n components.push(\"line_spacing_\" + this.options.lineSpacing);\n }\n if (!(isEmpty(this.options.fontAntialiasing))) {\n components.push(\"antialias_\"+this.options.fontAntialiasing);\n }\n if (!(isEmpty(this.options.fontHinting))) {\n components.push(\"hinting_\"+this.options.fontHinting );\n }\n if (!isEmpty(compact(components))) {\n if (isEmpty(this.options.fontFamily)) {\n throw `Must supply fontFamily. ${components}`;\n }\n if (isEmpty(this.options.fontSize) && !isNumberLike(this.options.fontSize)) {\n throw \"Must supply fontSize.\";\n }\n }\n components.unshift(this.options.fontFamily, this.options.fontSize);\n components = compact(components).join(\"_\");\n return components;\n }\n\n};\n\nexport default TextLayer;\n","import TextLayer from './textlayer';\n\nclass SubtitlesLayer extends TextLayer {\n /**\n * Represent a subtitles layer\n * @constructor SubtitlesLayer\n * @param {Object} options - layer parameters\n */\n constructor(options) {\n super(options);\n this.options.resourceType = \"subtitles\";\n }\n\n}\nexport default SubtitlesLayer;\n","import Layer from './layer';\n\nimport {\n base64EncodeURL,\n isString\n} from '../util';\n\nclass FetchLayer extends Layer {\n /**\n * @class FetchLayer\n * @classdesc Creates an image layer using a remote URL.\n * @param {Object|string} options - layer parameters or a url\n * @param {string} options.url the url of the image to fetch\n */\n constructor(options) {\n super(options);\n if (isString(options)) {\n this.options.url = options;\n } else if (options != null ? options.url : void 0) {\n this.options.url = options.url;\n }\n }\n\n url(url) {\n this.options.url = url;\n return this;\n }\n\n /**\n * generate the string representation of the layer\n * @function FetchLayer#toString\n * @return {String}\n */\n toString() {\n return `fetch:${base64EncodeURL(this.options.url)}`;\n }\n\n}\n\nexport default FetchLayer;\n","import Expression from './expression';\nimport Transformation from \"./transformation\";\n\nimport {\n allStrings,\n identity,\n isArray,\n isEmpty,\n isFunction,\n isPlainObject,\n isString,\n withCamelCaseKeys\n} from './util';\n\nimport Layer from './layer/layer';\nimport TextLayer from './layer/textlayer';\nimport SubtitlesLayer from './layer/subtitleslayer';\nimport FetchLayer from './layer/fetchlayer';\n\n/**\n * Transformation parameters\n * Depends on 'util', 'transformation'\n */\nclass Param {\n /**\n * Represents a single parameter.\n * @class Param\n * @param {string} name - The name of the parameter in snake_case\n * @param {string} shortName - The name of the serialized form of the parameter.\n * If a value is not provided, the parameter will not be serialized.\n * @param {function} [process=Util.identity ] - Manipulate origValue when value is called\n * @ignore\n */\n constructor(name, shortName, process = identity) {\n /**\n * The name of the parameter in snake_case\n * @member {string} Param#name\n */\n this.name = name;\n /**\n * The name of the serialized form of the parameter\n * @member {string} Param#shortName\n */\n this.shortName = shortName;\n /**\n * Manipulate origValue when value is called\n * @member {function} Param#process\n */\n this.process = process;\n }\n\n /**\n * Set a (unprocessed) value for this parameter\n * @function Param#set\n * @param {*} origValue - the value of the parameter\n * @return {Param} self for chaining\n */\n set(origValue) {\n this.origValue = origValue;\n return this;\n }\n\n /**\n * Generate the serialized form of the parameter\n * @function Param#serialize\n * @return {string} the serialized form of the parameter\n */\n serialize() {\n var val, valid;\n val = this.value();\n valid = isArray(val) || isPlainObject(val) || isString(val) ? !isEmpty(val) : val != null;\n if ((this.shortName != null) && valid) {\n return `${this.shortName}_${val}`;\n } else {\n return '';\n }\n }\n\n /**\n * Return the processed value of the parameter\n * @function Param#value\n */\n value() {\n return this.process(this.origValue);\n }\n\n static norm_color(value) {\n return value != null ? value.replace(/^#/, 'rgb:') : void 0;\n }\n\n static build_array(arg) {\n if(arg == null) {\n return [];\n } else if (isArray(arg)) {\n return arg;\n } else {\n return [arg];\n }\n }\n\n /**\n * Covert value to video codec string.\n *\n * If the parameter is an object,\n * @param {(string|Object)} param - the video codec as either a String or a Hash\n * @return {string} the video codec string in the format codec:profile:level:b_frames\n * @example\n * vc_[ :profile : [level : [b_frames]]]\n * or\n { codec: 'h264', profile: 'basic', level: '3.1', b_frames: false }\n * @ignore\n */\n static process_video_params(param) {\n var video;\n switch (param.constructor) {\n case Object:\n video = \"\";\n if ('codec' in param) {\n video = param.codec;\n if ('profile' in param) {\n video += \":\" + param.profile;\n if ('level' in param) {\n video += \":\" + param.level;\n if ('b_frames' in param && param.b_frames === false) {\n video += \":bframes_no\";\n }\n }\n }\n }\n return video;\n case String:\n return param;\n default:\n return null;\n }\n }\n}\n\nclass ArrayParam extends Param {\n /**\n * A parameter that represents an array.\n * @param {string} name - The name of the parameter in snake_case.\n * @param {string} shortName - The name of the serialized form of the parameter\n * If a value is not provided, the parameter will not be serialized.\n * @param {string} [sep='.'] - The separator to use when joining the array elements together\n * @param {function} [process=Util.identity ] - Manipulate origValue when value is called\n * @class ArrayParam\n * @extends Param\n * @ignore\n */\n constructor(name, shortName, sep = '.', process = undefined) {\n super(name, shortName, process);\n this.sep = sep;\n }\n\n serialize() {\n if (this.shortName != null) {\n let arrayValue = this.value();\n if (isEmpty(arrayValue)) {\n return '';\n } else if (isString(arrayValue)) {\n return `${this.shortName}_${arrayValue}`;\n } else {\n let flat = arrayValue.map(t=>isFunction(t.serialize) ? t.serialize() : t).join(this.sep);\n return `${this.shortName}_${flat}`;\n }\n } else {\n return '';\n }\n }\n\n value() {\n if (isArray(this.origValue)) {\n return this.origValue.map(v=>this.process(v));\n } else {\n return this.process(this.origValue);\n }\n }\n\n set(origValue) {\n if ((origValue == null) || isArray(origValue)) {\n return super.set(origValue);\n } else {\n return super.set([origValue]);\n }\n }\n}\n\nclass TransformationParam extends Param {\n /**\n * A parameter that represents a transformation\n * @param {string} name - The name of the parameter in snake_case\n * @param {string} [shortName='t'] - The name of the serialized form of the parameter\n * @param {string} [sep='.'] - The separator to use when joining the array elements together\n * @param {function} [process=Util.identity ] - Manipulate origValue when value is called\n * @class TransformationParam\n * @extends Param\n * @ignore\n */\n constructor(name, shortName = \"t\", sep = '.', process = undefined) {\n super(name, shortName, process);\n this.sep = sep;\n }\n\n /**\n * Generate string representations of the transformation.\n * @returns {*} Returns either the transformation as a string, or an array of string representations.\n */\n serialize() {\n let result = '';\n const val = this.value();\n\n if (isEmpty(val)) {\n return result;\n }\n\n // val is an array of strings so join them\n if (allStrings(val)) {\n const joined = val.join(this.sep); // creates t1.t2.t3 in case multiple named transformations were configured\n if (!isEmpty(joined)) {\n // in case options.transformation was not set with an empty string (val != ['']);\n result = `${this.shortName}_${joined}`;\n }\n } else { // Convert val to an array of strings\n result = val.map(t => {\n if (isString(t) && !isEmpty(t)) {\n return `${this.shortName}_${t}`;\n }\n if (isFunction(t.serialize)) {\n return t.serialize();\n }\n if (isPlainObject(t) && !isEmpty(t)) {\n return new Transformation(t).serialize();\n }\n return undefined;\n }).filter(t=>t);\n }\n return result;\n }\n\n set(origValue1) {\n this.origValue = origValue1;\n if (isArray(this.origValue)) {\n return super.set(this.origValue);\n } else {\n return super.set([this.origValue]);\n }\n }\n}\n\nconst number_pattern = \"([0-9]*)\\\\.([0-9]+)|([0-9]+)\";\nconst offset_any_pattern = \"(\" + number_pattern + \")([%pP])?\";\n\nclass RangeParam extends Param {\n\n /**\n * A parameter that represents a range\n * @param {string} name - The name of the parameter in snake_case\n * @param {string} shortName - The name of the serialized form of the parameter\n * If a value is not provided, the parameter will not be serialized.\n * @param {function} [process=norm_range_value ] - Manipulate origValue when value is called\n * @class RangeParam\n * @extends Param\n * @ignore\n */\n constructor(name, shortName, process = RangeParam.norm_range_value) {\n super(name, shortName, process);\n }\n static norm_range_value(value) {\n\n let offset = String(value).match(new RegExp('^' + offset_any_pattern + '$'));\n if (offset) {\n let modifier = offset[5] != null ? 'p' : '';\n value = (offset[1] || offset[4]) + modifier;\n }\n return Expression.normalize(value);\n }\n}\n\nclass RawParam extends Param {\n constructor(name, shortName, process = identity) {\n super(name, shortName, process);\n }\n\n serialize() {\n return this.value();\n }\n\n}\n\nclass LayerParam extends Param {\n // Parse layer options\n // @return [string] layer transformation string\n // @private\n value() {\n if (this.origValue == null) {\n return '';\n }\n let result;\n if (this.origValue instanceof Layer) {\n result = this.origValue;\n } else if (isPlainObject(this.origValue)) {\n let layerOptions = withCamelCaseKeys(this.origValue);\n if (layerOptions.resourceType === \"text\" || (layerOptions.text != null)) {\n result = new TextLayer(layerOptions);\n } else if (layerOptions.resourceType === \"subtitles\") {\n result = new SubtitlesLayer(layerOptions);\n } else if (layerOptions.resourceType === \"fetch\" || (layerOptions.url != null)) {\n result = new FetchLayer(layerOptions);\n } else {\n result = new Layer(layerOptions);\n }\n } else if (isString(this.origValue)) {\n if (/^fetch:.+/.test(this.origValue)) {\n result = new FetchLayer(this.origValue.substr(6));\n } else {\n result = this.origValue;\n }\n } else {\n result = '';\n }\n return result.toString();\n }\n\n static textStyle(layer) {\n return (new TextLayer(layer)).textStyleIdentifier();\n }\n}\n\nclass ExpressionParam extends Param {\n serialize() {\n return Expression.normalize(super.serialize());\n }\n}\n\nexport {\n Param,\n ArrayParam,\n TransformationParam,\n RangeParam,\n RawParam,\n LayerParam,\n ExpressionParam\n};\n","import Expression from './expression';\nimport Condition from './condition';\nimport Configuration from './configuration';\nimport {URL_KEYS} from './constants';\n\nimport {\n assign,\n camelCase,\n cloneDeep,\n compact,\n contains,\n difference,\n identity,\n isArray,\n isEmpty,\n isFunction,\n isPlainObject,\n isString,\n snakeCase\n} from './util';\n\nimport {\n Param,\n ArrayParam,\n LayerParam,\n RangeParam,\n RawParam,\n TransformationParam\n} from \"./parameters\";\n\n/**\n * Assign key, value to target, when value is not null.<br>\n * This function mutates the target!\n * @param {object} target the object to assign the values to\n * @param {object} sources one or more objects to get values from\n * @returns {object} the target after the assignment\n */\nfunction assignNotNull(target, ...sources) {\n sources.forEach(source => {\n Object.keys(source).forEach(key => {\n if (source[key] != null) {\n target[key] = source[key];\n }\n });\n });\n return target;\n}\n\n/**\n * TransformationBase\n * Depends on 'configuration', 'parameters','util'\n * @internal\n */\n\nclass TransformationBase {\n /**\n * The base class for transformations.\n * Members of this class are documented as belonging to the {@link Transformation} class for convenience.\n * @class TransformationBase\n */\n constructor(options) {\n /** @private */\n /** @private */\n var parent, trans;\n parent = void 0;\n trans = {};\n /**\n * Return an options object that can be used to create an identical Transformation\n * @function Transformation#toOptions\n * @return {Object} Returns a plain object representing this transformation\n */\n this.toOptions = function (withChain) {\n let opt = {};\n if(withChain == null) {\n withChain = true;\n }\n Object.keys(trans).forEach(key => opt[key] = trans[key].origValue);\n assignNotNull(opt, this.otherOptions);\n if (withChain && !isEmpty(this.chained)) {\n let list = this.chained.map(tr => tr.toOptions());\n list.push(opt);\n opt = {};\n assignNotNull(opt, this.otherOptions);\n opt.transformation = list;\n }\n return opt;\n };\n /**\n * Set a parent for this object for chaining purposes.\n *\n * @function Transformation#setParent\n * @param {Object} object - the parent to be assigned to\n * @returns {Transformation} Returns this instance for chaining purposes.\n */\n this.setParent = function (object) {\n parent = object;\n if (object != null) {\n this.fromOptions(typeof object.toOptions === \"function\" ? object.toOptions() : void 0);\n }\n return this;\n };\n /**\n * Returns the parent of this object in the chain\n * @function Transformation#getParent\n * @protected\n * @return {Object} Returns the parent of this object if there is any\n */\n this.getParent = function () {\n return parent;\n };\n\n // Helper methods to create parameter methods\n // These methods are defined here because they access `trans` which is\n // a private member of `TransformationBase`\n\n /** @protected */\n this.param = function (value, name, abbr, defaultValue, process) {\n if (process == null) {\n if (isFunction(defaultValue)) {\n process = defaultValue;\n } else {\n process = identity;\n }\n }\n trans[name] = new Param(name, abbr, process).set(value);\n return this;\n };\n /** @protected */\n this.rawParam = function (value, name, abbr, defaultValue, process) {\n process = lastArgCallback(arguments);\n trans[name] = new RawParam(name, abbr, process).set(value);\n return this;\n };\n /** @protected */\n this.rangeParam = function (value, name, abbr, defaultValue, process) {\n process = lastArgCallback(arguments);\n trans[name] = new RangeParam(name, abbr, process).set(value);\n return this;\n };\n /** @protected */\n this.arrayParam = function (value, name, abbr, sep = \":\", defaultValue = [], process = undefined) {\n process = lastArgCallback(arguments);\n trans[name] = new ArrayParam(name, abbr, sep, process).set(value);\n return this;\n };\n /** @protected */\n this.transformationParam = function (value, name, abbr, sep = \".\", defaultValue = undefined, process = undefined) {\n process = lastArgCallback(arguments);\n trans[name] = new TransformationParam(name, abbr, sep, process).set(value);\n return this;\n };\n this.layerParam = function (value, name, abbr) {\n trans[name] = new LayerParam(name, abbr).set(value);\n return this;\n };\n\n // End Helper methods\n\n /**\n * Get the value associated with the given name.\n * @function Transformation#getValue\n * @param {string} name - the name of the parameter\n * @return {*} the processed value associated with the given name\n * @description Use {@link get}.origValue for the value originally provided for the parameter\n */\n this.getValue = function (name) {\n let value = trans[name] && trans[name].value();\n return value != null ? value : this.otherOptions[name];\n };\n /**\n * Get the parameter object for the given parameter name\n * @function Transformation#get\n * @param {string} name the name of the transformation parameter\n * @returns {Param} the param object for the given name, or undefined\n */\n this.get = function (name) {\n return trans[name];\n };\n /**\n * Remove a transformation option from the transformation.\n * @function Transformation#remove\n * @param {string} name - the name of the option to remove\n * @return {*} Returns the option that was removed or null if no option by that name was found. The type of the\n * returned value depends on the value.\n */\n this.remove = function (name) {\n var temp;\n switch (false) {\n case trans[name] == null:\n temp = trans[name];\n delete trans[name];\n return temp.origValue;\n case this.otherOptions[name] == null:\n temp = this.otherOptions[name];\n delete this.otherOptions[name];\n return temp;\n default:\n return null;\n }\n };\n /**\n * Return an array of all the keys (option names) in the transformation.\n * @return {Array<string>} the keys in snakeCase format\n */\n this.keys = function () {\n var key;\n return ((function () {\n var results;\n results = [];\n for (key in trans) {\n if (key != null) {\n results.push(key.match(VAR_NAME_RE) ? key : snakeCase(key));\n }\n }\n return results;\n })()).sort();\n };\n /**\n * Returns a plain object representation of the transformation. Values are processed.\n * @function Transformation#toPlainObject\n * @return {Object} the transformation options as plain object\n */\n this.toPlainObject = function () {\n var hash, key, list;\n hash = {};\n for (key in trans) {\n hash[key] = trans[key].value();\n if (isPlainObject(hash[key])) {\n hash[key] = cloneDeep(hash[key]);\n }\n }\n if (!isEmpty(this.chained)) {\n list = this.chained.map(tr => tr.toPlainObject());\n list.push(hash);\n hash = {\n transformation: list\n };\n }\n return hash;\n };\n /**\n * Complete the current transformation and chain to a new one.\n * In the URL, transformations are chained together by slashes.\n * @function Transformation#chain\n * @return {Transformation} Returns this transformation for chaining\n * @example\n * var tr = cloudinary.Transformation.new();\n * tr.width(10).crop('fit').chain().angle(15).serialize()\n * // produces \"c_fit,w_10/a_15\"\n */\n this.chain = function () {\n var names, tr;\n names = Object.getOwnPropertyNames(trans);\n if (names.length !== 0) {\n tr = new this.constructor(this.toOptions(false));\n this.resetTransformations();\n this.chained.push(tr);\n }\n return this;\n };\n this.resetTransformations = function () {\n trans = {};\n return this;\n };\n this.otherOptions = {};\n this.chained = [];\n this.fromOptions(options);\n }\n\n /**\n * Merge the provided options with own's options\n * @param {Object} [options={}] key-value list of options\n * @returns {Transformation} Returns this instance for chaining\n */\n fromOptions(options = {}) {\n if (options instanceof TransformationBase) {\n this.fromTransformation(options);\n } else {\n if (isString(options) || isArray(options)) {\n options = {\n transformation: options\n };\n }\n options = cloneDeep(options, function (value) {\n if (value instanceof TransformationBase || value instanceof Layer) {\n return new value.clone();\n }\n });\n // Handling of \"if\" statements precedes other options as it creates a chained transformation\n if (options[\"if\"]) {\n this.set(\"if\", options[\"if\"]);\n delete options[\"if\"];\n }\n for (let key in options) {\n let opt = options[key];\n if(opt != null) {\n if (key.match(VAR_NAME_RE)) {\n if (key !== '$attr') {\n this.set('variable', key, opt);\n }\n } else {\n this.set(key, opt);\n }\n }\n }\n }\n return this;\n }\n\n fromTransformation(other) {\n if (other instanceof TransformationBase) {\n other.keys().forEach(key =>\n this.set(key, other.get(key).origValue)\n );\n }\n return this;\n }\n\n /**\n * Set a parameter.\n * The parameter name `key` is converted to\n * @param {string} key - the name of the parameter\n * @param {*} values - the value of the parameter\n * @returns {Transformation} Returns this instance for chaining\n */\n set(key, ...values) {\n var camelKey;\n camelKey = camelCase(key);\n if (contains(Transformation.methods, camelKey)) {\n this[camelKey].apply(this, values);\n } else {\n this.otherOptions[key] = values[0];\n }\n return this;\n }\n\n hasLayer() {\n return this.getValue(\"overlay\") || this.getValue(\"underlay\");\n }\n\n /**\n * Generate a string representation of the transformation.\n * @function Transformation#serialize\n * @return {string} Returns the transformation as a string\n */\n serialize() {\n var ifParam, j, len, paramList, ref, ref1, ref2, ref3, ref4, resultArray, t, transformationList,\n transformationString, transformations, value, variables, vars;\n resultArray = this.chained.map(tr => tr.serialize());\n paramList = this.keys();\n transformations = (ref = this.get(\"transformation\")) != null ? ref.serialize() : void 0;\n ifParam = (ref1 = this.get(\"if\")) != null ? ref1.serialize() : void 0;\n variables = processVar((ref2 = this.get(\"variables\")) != null ? ref2.value() : void 0);\n paramList = difference(paramList, [\"transformation\", \"if\", \"variables\"]);\n vars = [];\n transformationList = [];\n for (j = 0, len = paramList.length; j < len; j++) {\n t = paramList[j];\n if (t.match(VAR_NAME_RE)) {\n vars.push(t + \"_\" + Expression.normalize((ref3 = this.get(t)) != null ? ref3.value() : void 0));\n } else {\n transformationList.push((ref4 = this.get(t)) != null ? ref4.serialize() : void 0);\n }\n }\n switch (false) {\n case !isString(transformations):\n transformationList.push(transformations);\n break;\n case !isArray(transformations):\n resultArray = resultArray.concat(transformations);\n }\n transformationList = (function () {\n var k, len1, results;\n results = [];\n for (k = 0, len1 = transformationList.length; k < len1; k++) {\n value = transformationList[k];\n if (isArray(value) && !isEmpty(value) || !isArray(value) && value) {\n results.push(value);\n }\n }\n return results;\n })();\n transformationList = vars.sort().concat(variables).concat(transformationList.sort());\n if (ifParam === \"if_end\") {\n transformationList.push(ifParam);\n } else if (!isEmpty(ifParam)) {\n transformationList.unshift(ifParam);\n }\n transformationString = compact(transformationList).join(this.param_separator);\n if (!isEmpty(transformationString)) {\n resultArray.push(transformationString);\n }\n return compact(resultArray).join(this.trans_separator);\n }\n\n /**\n * Provide a list of all the valid transformation option names\n * @function Transformation#listNames\n * @private\n * @return {Array<string>} a array of all the valid option names\n */\n static listNames() {\n return Transformation.methods;\n }\n\n /**\n * Returns the attributes for an HTML tag.\n * @function Cloudinary.toHtmlAttributes\n * @return PlainObject\n */\n toHtmlAttributes() {\n let attrName, height, options, ref2, ref3, value, width;\n options = {};\n let snakeCaseKey;\n Object.keys(this.otherOptions).forEach(key=>{\n value = this.otherOptions[key];\n snakeCaseKey = snakeCase(key);\n if (!contains(Transformation.PARAM_NAMES, snakeCaseKey) && !contains(URL_KEYS, snakeCaseKey)) {\n attrName = /^html_/.test(key) ? key.slice(5) : key;\n options[attrName] = value;\n }\n });\n // convert all \"html_key\" to \"key\" with the same value\n this.keys().forEach(key => {\n if (/^html_/.test(key)) {\n options[camelCase(key.slice(5))] = this.getValue(key);\n }\n });\n if (!(this.hasLayer() || this.getValue(\"angle\") || contains([\"fit\", \"limit\", \"lfill\"], this.getValue(\"crop\")))) {\n width = (ref2 = this.get(\"width\")) != null ? ref2.origValue : void 0;\n height = (ref3 = this.get(\"height\")) != null ? ref3.origValue : void 0;\n if (parseFloat(width) >= 1.0) {\n if (options.width == null) {\n options.width = width;\n }\n }\n if (parseFloat(height) >= 1.0) {\n if (options.height == null) {\n options.height = height;\n }\n }\n }\n return options;\n }\n\n static isValidParamName(name) {\n return Transformation.methods.indexOf(camelCase(name)) >= 0;\n }\n\n /**\n * Delegate to the parent (up the call chain) to produce HTML\n * @function Transformation#toHtml\n * @return {string} HTML representation of the parent if possible.\n * @example\n * tag = cloudinary.ImageTag.new(\"sample\", {cloud_name: \"demo\"})\n * // ImageTag {name: \"img\", publicId: \"sample\"}\n * tag.toHtml()\n * // <img src=\"http://res.cloudinary.com/demo/image/upload/sample\">\n * tag.transformation().crop(\"fit\").width(300).toHtml()\n * // <img src=\"http://res.cloudinary.com/demo/image/upload/c_fit,w_300/sample\">\n */\n toHtml() {\n var ref;\n return (ref = this.getParent()) != null ? typeof ref.toHtml === \"function\" ? ref.toHtml() : void 0 : void 0;\n }\n\n toString() {\n return this.serialize();\n }\n\n clone() {\n return new this.constructor(this.toOptions(true));\n }\n}\n\nconst VAR_NAME_RE = /^\\$[a-zA-Z0-9]+$/;\n\nTransformationBase.prototype.trans_separator = '/';\n\nTransformationBase.prototype.param_separator = ',';\n\n\nfunction lastArgCallback(args) {\n var callback;\n callback = args != null ? args[args.length - 1] : void 0;\n if (isFunction(callback)) {\n return callback;\n } else {\n return void 0;\n }\n}\n\nfunction processVar(varArray) {\n var j, len, name, results, v;\n if (isArray(varArray)) {\n results = [];\n for (j = 0, len = varArray.length; j < len; j++) {\n [name, v] = varArray[j];\n results.push(`${name}_${Expression.normalize(v)}`);\n }\n return results;\n } else {\n return varArray;\n }\n}\n\nfunction processCustomFunction({function_type, source}) {\n if (function_type === 'remote') {\n return [function_type, btoa(source)].join(\":\");\n } else if (function_type === 'wasm') {\n return [function_type, source].join(\":\");\n }\n}\n\n/**\n * Transformation Class methods.\n * This is a list of the parameters defined in Transformation.\n * Values are camelCased.\n * @const Transformation.methods\n * @private\n * @ignore\n * @type {Array<string>}\n */\n/**\n * Parameters that are filtered out before passing the options to an HTML tag.\n *\n * The list of parameters is a combination of `Transformation::methods` and `Configuration::CONFIG_PARAMS`\n * @const {Array<string>} Transformation.PARAM_NAMES\n * @private\n * @ignore\n * @see toHtmlAttributes\n */\nclass Transformation extends TransformationBase {\n /**\n * Represents a single transformation.\n * @class Transformation\n * @example\n * t = new cloudinary.Transformation();\n * t.angle(20).crop(\"scale\").width(\"auto\");\n *\n * // or\n *\n * t = new cloudinary.Transformation( {angle: 20, crop: \"scale\", width: \"auto\"});\n * @see <a href=\"https://cloudinary.com/documentation/image_transformation_reference\"\n * target=\"_blank\">Available image transformations</a>\n * @see <a href=\"https://cloudinary.com/documentation/video_transformation_reference\"\n * target=\"_blank\">Available video transformations</a>\n */\n constructor(options) {\n super(options);\n }\n\n /**\n * Convenience constructor\n * @param {Object} options\n * @return {Transformation}\n * @example cl = cloudinary.Transformation.new( {angle: 20, crop: \"scale\", width: \"auto\"})\n */\n static new(options) {\n return new Transformation(options);\n }\n\n /*\n Transformation Parameters\n */\n angle(value) {\n return this.arrayParam(value, \"angle\", \"a\", \".\", Expression.normalize);\n }\n\n audioCodec(value) {\n return this.param(value, \"audio_codec\", \"ac\");\n }\n\n audioFrequency(value) {\n return this.param(value, \"audio_frequency\", \"af\");\n }\n\n aspectRatio(value) {\n return this.param(value, \"aspect_ratio\", \"ar\", Expression.normalize);\n }\n\n background(value) {\n return this.param(value, \"background\", \"b\", Param.norm_color);\n }\n\n bitRate(value) {\n return this.param(value, \"bit_rate\", \"br\");\n }\n\n border(value) {\n return this.param(value, \"border\", \"bo\", function (border) {\n if (isPlainObject(border)) {\n border = assign({}, {\n color: \"black\",\n width: 2\n }, border);\n return `${border.width}px_solid_${Param.norm_color(border.color)}`;\n } else {\n return border;\n }\n });\n }\n\n color(value) {\n return this.param(value, \"color\", \"co\", Param.norm_color);\n }\n\n colorSpace(value) {\n return this.param(value, \"color_space\", \"cs\");\n }\n\n crop(value) {\n return this.param(value, \"crop\", \"c\");\n }\n\n customFunction(value) {\n return this.param(value, \"custom_function\", \"fn\", () => {\n return processCustomFunction(value);\n });\n }\n\n customPreFunction(value) {\n if (this.get('custom_function')) {\n return;\n }\n return this.rawParam(value, \"custom_function\", \"\", () => {\n value = processCustomFunction(value);\n return value ? `fn_pre:${value}` : value;\n });\n }\n\n defaultImage(value) {\n return this.param(value, \"default_image\", \"d\");\n }\n\n delay(value) {\n return this.param(value, \"delay\", \"dl\");\n }\n\n density(value) {\n return this.param(value, \"density\", \"dn\");\n }\n\n duration(value) {\n return this.rangeParam(value, \"duration\", \"du\");\n }\n\n dpr(value) {\n return this.param(value, \"dpr\", \"dpr\", (dpr) => {\n dpr = dpr.toString();\n if (dpr != null ? dpr.match(/^\\d+$/) : void 0) {\n return dpr + \".0\";\n } else {\n return Expression.normalize(dpr);\n }\n });\n }\n\n effect(value) {\n return this.arrayParam(value, \"effect\", \"e\", \":\", Expression.normalize);\n }\n\n else() {\n return this.if('else');\n }\n\n endIf() {\n return this.if('end');\n }\n\n endOffset(value) {\n return this.rangeParam(value, \"end_offset\", \"eo\");\n }\n\n fallbackContent(value) {\n return this.param(value, \"fallback_content\");\n }\n\n fetchFormat(value) {\n return this.param(value, \"fetch_format\", \"f\");\n }\n\n format(value) {\n return this.param(value, \"format\");\n }\n\n flags(value) {\n return this.arrayParam(value, \"flags\", \"fl\", \".\");\n }\n\n gravity(value) {\n return this.param(value, \"gravity\", \"g\");\n }\n\n fps(value) {\n return this.param(value, \"fps\", \"fps\", (fps) => {\n if (isString(fps)) {\n return fps;\n } else if (isArray(fps)) {\n return fps.join(\"-\");\n } else {\n return fps;\n }\n });\n }\n\n height(value) {\n return this.param(value, \"height\", \"h\", () => {\n if (this.getValue(\"crop\") || this.getValue(\"overlay\") || this.getValue(\"underlay\")) {\n return Expression.normalize(value);\n } else {\n return null;\n }\n });\n }\n\n htmlHeight(value) {\n return this.param(value, \"html_height\");\n }\n\n htmlWidth(value) {\n return this.param(value, \"html_width\");\n }\n\n if(value = \"\") {\n var i, ifVal, j, ref, trIf, trRest;\n switch (value) {\n case \"else\":\n this.chain();\n return this.param(value, \"if\", \"if\");\n case \"end\":\n this.chain();\n for (i = j = ref = this.chained.length - 1; j >= 0; i = j += -1) {\n ifVal = this.chained[i].getValue(\"if\");\n if (ifVal === \"end\") {\n break;\n } else if (ifVal != null) {\n trIf = Transformation.new().if(ifVal);\n this.chained[i].remove(\"if\");\n trRest = this.chained[i];\n this.chained[i] = Transformation.new().transformation([trIf, trRest]);\n if (ifVal !== \"else\") {\n break;\n }\n }\n }\n return this.param(value, \"if\", \"if\");\n case \"\":\n return Condition.new().setParent(this);\n default:\n return this.param(value, \"if\", \"if\", function (value) {\n return Condition.new(value).toString();\n });\n }\n }\n\n keyframeInterval(value) {\n return this.param(value, \"keyframe_interval\", \"ki\");\n }\n\n ocr(value) {\n return this.param(value, \"ocr\", \"ocr\");\n }\n\n offset(value) {\n var end_o, start_o;\n [start_o, end_o] = (isFunction(value != null ? value.split : void 0)) ? value.split('..') : isArray(value) ? value : [null, null];\n if (start_o != null) {\n this.startOffset(start_o);\n }\n if (end_o != null) {\n return this.endOffset(end_o);\n }\n }\n\n opacity(value) {\n return this.param(value, \"opacity\", \"o\", Expression.normalize);\n }\n\n overlay(value) {\n return this.layerParam(value, \"overlay\", \"l\");\n }\n\n page(value) {\n return this.param(value, \"page\", \"pg\");\n }\n\n poster(value) {\n return this.param(value, \"poster\");\n }\n\n prefix(value) {\n return this.param(value, \"prefix\", \"p\");\n }\n\n quality(value) {\n return this.param(value, \"quality\", \"q\", Expression.normalize);\n }\n\n radius(value) {\n return this.arrayParam(value, \"radius\", \"r\", \":\", Expression.normalize);\n }\n\n rawTransformation(value) {\n return this.rawParam(value, \"raw_transformation\");\n }\n\n size(value) {\n var height, width;\n if (isFunction(value != null ? value.split : void 0)) {\n [width, height] = value.split('x');\n this.width(width);\n return this.height(height);\n }\n }\n\n sourceTypes(value) {\n return this.param(value, \"source_types\");\n }\n\n sourceTransformation(value) {\n return this.param(value, \"source_transformation\");\n }\n\n startOffset(value) {\n return this.rangeParam(value, \"start_offset\", \"so\");\n }\n\n streamingProfile(value) {\n return this.param(value, \"streaming_profile\", \"sp\");\n }\n\n transformation(value) {\n return this.transformationParam(value, \"transformation\", \"t\");\n }\n\n underlay(value) {\n return this.layerParam(value, \"underlay\", \"u\");\n }\n\n variable(name, value) {\n return this.param(value, name, name);\n }\n\n variables(values) {\n return this.arrayParam(values, \"variables\");\n }\n\n videoCodec(value) {\n return this.param(value, \"video_codec\", \"vc\", Param.process_video_params);\n }\n\n videoSampling(value) {\n return this.param(value, \"video_sampling\", \"vs\");\n }\n\n width(value) {\n return this.param(value, \"width\", \"w\", () => {\n if (this.getValue(\"crop\") || this.getValue(\"overlay\") || this.getValue(\"underlay\")) {\n return Expression.normalize(value);\n } else {\n return null;\n }\n });\n }\n\n x(value) {\n return this.param(value, \"x\", \"x\", Expression.normalize);\n }\n\n y(value) {\n return this.param(value, \"y\", \"y\", Expression.normalize);\n }\n\n zoom(value) {\n return this.param(value, \"zoom\", \"z\", Expression.normalize);\n }\n\n}\n\n/**\n * Transformation Class methods.\n * This is a list of the parameters defined in Transformation.\n * Values are camelCased.\n */\nTransformation.methods = [\n \"angle\",\n \"audioCodec\",\n \"audioFrequency\",\n \"aspectRatio\",\n \"background\",\n \"bitRate\",\n \"border\",\n \"color\",\n \"colorSpace\",\n \"crop\",\n \"customFunction\",\n \"customPreFunction\",\n \"defaultImage\",\n \"delay\",\n \"density\",\n \"duration\",\n \"dpr\",\n \"effect\",\n \"else\",\n \"endIf\",\n \"endOffset\",\n \"fallbackContent\",\n \"fetchFormat\",\n \"format\",\n \"flags\",\n \"gravity\",\n \"fps\",\n \"height\",\n \"htmlHeight\",\n \"htmlWidth\",\n \"if\",\n \"keyframeInterval\",\n \"ocr\",\n \"offset\",\n \"opacity\",\n \"overlay\",\n \"page\",\n \"poster\",\n \"prefix\",\n \"quality\",\n \"radius\",\n \"rawTransformation\",\n \"size\",\n \"sourceTypes\",\n \"sourceTransformation\",\n \"startOffset\",\n \"streamingProfile\",\n \"transformation\",\n \"underlay\",\n \"variable\",\n \"variables\",\n \"videoCodec\",\n \"videoSampling\",\n \"width\",\n \"x\",\n \"y\",\n \"zoom\"\n];\n\n/**\n * Parameters that are filtered out before passing the options to an HTML tag.\n *\n * The list of parameters is a combination of `Transformation::methods` and `Configuration::CONFIG_PARAMS`\n */\nTransformation.PARAM_NAMES = Transformation.methods.map(snakeCase).concat(Configuration.CONFIG_PARAMS);\n\nexport default Transformation;\n","/**\n * Generic HTML tag\n * Depends on 'transformation', 'util'\n */\n\nimport {\n isPlainObject,\n isFunction,\n getData,\n hasClass,\n merge,\n isString\n} from '../util';\n\nimport Transformation from '../transformation';\n\n/**\n * Represents an HTML (DOM) tag\n * @constructor HtmlTag\n * @param {string} name - the name of the tag\n * @param {string} [publicId]\n * @param {Object} options\n * @example tag = new HtmlTag( 'div', { 'width': 10})\n */\nclass HtmlTag {\n constructor(name, publicId, options) {\n var transformation;\n this.name = name;\n this.publicId = publicId;\n if (options == null) {\n if (isPlainObject(publicId)) {\n options = publicId;\n this.publicId = void 0;\n } else {\n options = {};\n }\n }\n transformation = new Transformation(options);\n transformation.setParent(this);\n this.transformation = function () {\n return transformation;\n };\n }\n\n /**\n * Convenience constructor\n * Creates a new instance of an HTML (DOM) tag\n * @function HtmlTag.new\n * @param {string} name - the name of the tag\n * @param {string} [publicId]\n * @param {Object} options\n * @return {HtmlTag}\n * @example tag = HtmlTag.new( 'div', { 'width': 10})\n */\n static new(name, publicId, options) {\n return new this(name, publicId, options);\n }\n\n /**\n * combine key and value from the `attr` to generate an HTML tag attributes string.\n * `Transformation::toHtmlTagOptions` is used to filter out transformation and configuration keys.\n * @protected\n * @param {Object} attrs\n * @return {string} the attributes in the format `'key1=\"value1\" key2=\"value2\"'`\n * @ignore\n */\n htmlAttrs(attrs) {\n var key, pairs, value;\n return pairs = ((function () {\n var results;\n results = [];\n for (key in attrs) {\n value = escapeQuotes(attrs[key]);\n if (value) {\n results.push(toAttribute(key, value));\n }\n }\n return results;\n })()).sort().join(' ');\n }\n\n /**\n * Get all options related to this tag.\n * @function HtmlTag#getOptions\n * @returns {Object} the options\n *\n */\n getOptions() {\n return this.transformation().toOptions();\n }\n\n /**\n * Get the value of option `name`\n * @function HtmlTag#getOption\n * @param {string} name - the name of the option\n * @returns {*} Returns the value of the option\n *\n */\n getOption(name) {\n return this.transformation().getValue(name);\n }\n\n /**\n * Get the attributes of the tag.\n * @function HtmlTag#attributes\n * @returns {Object} attributes\n */\n attributes() {\n // The attributes are be computed from the options every time this method is invoked.\n let htmlAttributes = this.transformation().toHtmlAttributes();\n Object.keys(htmlAttributes ).forEach(key => {\n if(isPlainObject(htmlAttributes[key])){\n delete htmlAttributes[key];\n }\n });\n if( htmlAttributes.attributes) {\n // Currently HTML attributes are defined both at the top level and under 'attributes'\n merge(htmlAttributes, htmlAttributes.attributes);\n delete htmlAttributes.attributes;\n }\n\n return htmlAttributes;\n }\n\n /**\n * Set a tag attribute named `name` to `value`\n * @function HtmlTag#setAttr\n * @param {string} name - the name of the attribute\n * @param {string} value - the value of the attribute\n */\n setAttr(name, value) {\n this.transformation().set(`html_${name}`, value);\n return this;\n }\n\n /**\n * Get the value of the tag attribute `name`\n * @function HtmlTag#getAttr\n * @param {string} name - the name of the attribute\n * @returns {*}\n */\n getAttr(name) {\n return this.attributes()[`html_${name}`] || this.attributes()[name];\n }\n\n /**\n * Remove the tag attributed named `name`\n * @function HtmlTag#removeAttr\n * @param {string} name - the name of the attribute\n * @returns {*}\n */\n removeAttr(name) {\n var ref;\n return (ref = this.transformation().remove(`html_${name}`)) != null ? ref : this.transformation().remove(name);\n }\n\n /**\n * @function HtmlTag#content\n * @protected\n * @ignore\n */\n content() {\n return \"\";\n }\n\n /**\n * @function HtmlTag#openTag\n * @protected\n * @ignore\n */\n openTag() {\n let tag = \"<\" + this.name;\n let htmlAttrs = this.htmlAttrs(this.attributes());\n if(htmlAttrs && htmlAttrs.length > 0) {\n tag += \" \" + htmlAttrs\n }\n return tag + \">\";\n }\n\n /**\n * @function HtmlTag#closeTag\n * @protected\n * @ignore\n */\n closeTag() {\n return `</${this.name}>`;\n }\n\n /**\n * Generates an HTML representation of the tag.\n * @function HtmlTag#toHtml\n * @returns {string} Returns HTML in string format\n */\n toHtml() {\n return this.openTag() + this.content() + this.closeTag();\n }\n\n /**\n * Creates a DOM object representing the tag.\n * @function HtmlTag#toDOM\n * @returns {Element}\n */\n toDOM() {\n var element, name, ref, value;\n if (!isFunction(typeof document !== \"undefined\" && document !== null ? document.createElement : void 0)) {\n throw \"Can't create DOM if document is not present!\";\n }\n element = document.createElement(this.name);\n ref = this.attributes();\n for (name in ref) {\n value = ref[name];\n element.setAttribute(name, value);\n }\n return element;\n }\n\n static isResponsive(tag, responsiveClass) {\n var dataSrc;\n dataSrc = getData(tag, 'src-cache') || getData(tag, 'src');\n return hasClass(tag, responsiveClass) && /\\bw_auto\\b/.exec(dataSrc);\n }\n\n};\n\n/**\n * Represent the given key and value as an HTML attribute.\n * @function toAttribute\n * @protected\n * @param {string} key - attribute name\n * @param {*|boolean} value - the value of the attribute. If the value is boolean `true`, return the key only.\n * @returns {string} the attribute\n *\n */\nfunction toAttribute(key, value) {\n if (!value) {\n return void 0;\n } else if (value === true) {\n return key;\n } else {\n return `${key}=\"${value}\"`;\n }\n}\n\n/**\n * If given value is a string, replaces quotes with character entities (", ')\n * @param value - value to change\n * @returns {*} changed value\n */\nfunction escapeQuotes(value) {\n return isString(value) ? value.replace('\"', '"').replace(\"'\", ''') : value;\n}\n\nexport default HtmlTag;\n","import Transformation from './transformation';\n\nimport {\n ACCESSIBILITY_MODES,\n DEFAULT_IMAGE_PARAMS,\n OLD_AKAMAI_SHARED_CDN,\n PLACEHOLDER_IMAGE_MODES,\n SHARED_CDN,\n SEO_TYPES\n} from './constants';\n\nimport {\n defaults,\n compact,\n isPlainObject\n} from './util';\n\nimport crc32 from './crc32';\nimport getSDKAnalyticsSignature from \"./sdkAnalytics/getSDKAnalyticsSignature\";\nimport getAnalyticsOptions from \"./sdkAnalytics/getAnalyticsOptions\";\n\n\n/**\n * Adds protocol, host, pathname prefixes to given string\n * @param str\n * @returns {string}\n */\nfunction makeUrl(str) {\n let prefix = document.location.protocol + '//' + document.location.host;\n if (str[0] === '?') {\n prefix += document.location.pathname;\n } else if (str[0] !== '/') {\n prefix += document.location.pathname.replace(/\\/[^\\/]*$/, '/');\n }\n return prefix + str;\n}\n\n/**\n * Check is given string is a url\n * @param str\n * @returns {boolean}\n */\nfunction isUrl(str){\n return str ? !!str.match(/^https?:\\//) : false;\n}\n\n// Produce a number between 1 and 5 to be used for cdn sub domains designation\nfunction cdnSubdomainNumber(publicId) {\n return crc32(publicId) % 5 + 1;\n}\n\n/**\n * Removes signature from options and returns the signature\n * Makes sure signature is empty or of this format: s--signature--\n * @param {object} options\n * @returns {string} the formatted signature\n */\nfunction handleSignature(options) {\n const {signature} = options;\n const isFormatted = !signature || (signature.indexOf('s--') === 0 && signature.substr(-2) === '--');\n delete options.signature;\n\n return isFormatted ? signature : `s--${signature}--`;\n}\n\n/**\n * Create the URL prefix for Cloudinary resources.\n * @param {string} publicId the resource public ID\n * @param {object} options additional options\n * @param {string} options.cloud_name - the cloud name.\n * @param {boolean} [options.cdn_subdomain=false] - Whether to automatically build URLs with\n * multiple CDN sub-domains.\n * @param {string} [options.private_cdn] - Boolean (default: false). Should be set to true for Advanced plan's users\n * that have a private CDN distribution.\n * @param {string} [options.protocol=\"http://\"] - the URI protocol to use. If options.secure is true,\n * the value is overridden to \"https://\"\n * @param {string} [options.secure_distribution] - The domain name of the CDN distribution to use for building HTTPS URLs.\n * Relevant only for Advanced plan's users that have a private CDN distribution.\n * @param {string} [options.cname] - Custom domain name to use for building HTTP URLs.\n * Relevant only for Advanced plan's users that have a private CDN distribution and a custom CNAME.\n * @param {boolean} [options.secure_cdn_subdomain=true] - When options.secure is true and this parameter is false,\n * the subdomain is set to \"res\".\n * @param {boolean} [options.secure=false] - Force HTTPS URLs of images even if embedded in non-secure HTTP pages.\n * When this value is true, options.secure_distribution will be used as host if provided, and options.protocol is set\n * to \"https://\".\n * @returns {string} the URL prefix for the resource.\n * @private\n */\nfunction handlePrefix(publicId, options) {\n if (options.cloud_name && options.cloud_name[0] === '/') {\n return '/res' + options.cloud_name;\n }\n // defaults\n let protocol = \"http://\";\n let cdnPart = \"\";\n let subdomain = \"res\";\n let host = \".cloudinary.com\";\n let path = \"/\" + options.cloud_name;\n // modifications\n if (options.protocol) {\n protocol = options.protocol + '//';\n }\n if (options.private_cdn) {\n cdnPart = options.cloud_name + \"-\";\n path = \"\";\n }\n if (options.cdn_subdomain) {\n subdomain = \"res-\" + cdnSubdomainNumber(publicId);\n }\n if (options.secure) {\n protocol = \"https://\";\n if (options.secure_cdn_subdomain === false) {\n subdomain = \"res\";\n }\n if ((options.secure_distribution != null) && options.secure_distribution !== OLD_AKAMAI_SHARED_CDN && options.secure_distribution !== SHARED_CDN) {\n cdnPart = \"\";\n subdomain = \"\";\n host = options.secure_distribution;\n }\n } else if (options.cname) {\n protocol = \"http://\";\n cdnPart = \"\";\n subdomain = options.cdn_subdomain ? 'a' + ((crc32(publicId) % 5) + 1) + '.' : '';\n host = options.cname;\n }\n return [protocol, cdnPart, subdomain, host, path].join(\"\");\n}\n\n/**\n * Return the resource type and action type based on the given configuration\n * @function Cloudinary#handleResourceType\n * @param {Object|string} resource_type\n * @param {string} [type='upload']\n * @param {string} [url_suffix]\n * @param {boolean} [use_root_path]\n * @param {boolean} [shorten]\n * @returns {string} resource_type/type\n * @ignore\n */\nfunction handleResourceType({resource_type = \"image\", type = \"upload\", url_suffix, use_root_path, shorten}) {\n let options, resourceType = resource_type;\n\n if (isPlainObject(resourceType)) {\n options = resourceType;\n resourceType = options.resource_type;\n type = options.type;\n shorten = options.shorten;\n }\n if (type == null) {\n type = 'upload';\n }\n if (url_suffix != null) {\n resourceType = SEO_TYPES[`${resourceType}/${type}`];\n type = null;\n if (resourceType == null) {\n throw new Error(`URL Suffix only supported for ${Object.keys(SEO_TYPES).join(', ')}`);\n }\n }\n if (use_root_path) {\n if (resourceType === 'image' && type === 'upload' || resourceType === \"images\") {\n resourceType = null;\n type = null;\n } else {\n throw new Error(\"Root path only supported for image/upload\");\n }\n }\n if (shorten && resourceType === 'image' && type === 'upload') {\n resourceType = 'iu';\n type = null;\n }\n return [resourceType, type].join(\"/\");\n}\n\n/**\n * Encode publicId\n * @param publicId\n * @returns {string} encoded publicId\n */\nfunction encodePublicId(publicId) {\n return encodeURIComponent(publicId).replace(/%3A/g, ':').replace(/%2F/g, '/');\n}\n\n/**\n * Encode and format publicId\n * @param publicId\n * @param options\n * @returns {string} publicId\n */\nfunction formatPublicId(publicId, options) {\n if (isUrl(publicId)){\n publicId = encodePublicId(publicId);\n } else {\n try {\n // Make sure publicId is URI encoded.\n publicId = decodeURIComponent(publicId);\n } catch (error) {}\n\n publicId = encodePublicId(publicId);\n\n if (options.url_suffix) {\n publicId = publicId + '/' + options.url_suffix;\n }\n if (options.format) {\n if (!options.trust_public_id) {\n publicId = publicId.replace(/\\.(jpg|png|gif|webp)$/, '');\n }\n publicId = publicId + '.' + options.format;\n }\n }\n return publicId;\n}\n\n/**\n * Get any error with url options\n * @param options\n * @returns {string} if error, otherwise return undefined\n */\nfunction validate(options) {\n const {cloud_name, url_suffix} = options;\n\n if (!cloud_name) {\n return 'Unknown cloud_name';\n }\n\n if (url_suffix && url_suffix.match(/[\\.\\/]/)) {\n return 'url_suffix should not include . or /';\n }\n}\n\n/**\n * Get version part of the url\n * @param publicId\n * @param options\n * @returns {string}\n */\nfunction handleVersion(publicId, options) {\n // force_version param means to make sure there is a version in the url (Default is true)\n const isForceVersion = (options.force_version || typeof options.force_version === 'undefined');\n\n // Is version included in publicId or in options, or publicId is a url (doesn't need version)\n const isVersionExist = (publicId.indexOf('/') < 0 || publicId.match(/^v[0-9]+/) || isUrl(publicId)) || options.version;\n\n if (isForceVersion && !isVersionExist) {\n options.version = 1;\n }\n\n return options.version ? `v${options.version}` : '';\n}\n\n/**\n * Get final transformation component for url string\n * @param options\n * @returns {string}\n */\nfunction handleTransformation(options) {\n let {placeholder, accessibility, ...otherOptions} = options || {};\n const result = new Transformation(otherOptions);\n\n // Append accessibility transformations\n if (accessibility && ACCESSIBILITY_MODES[accessibility]) {\n result.chain().effect(ACCESSIBILITY_MODES[accessibility]);\n }\n\n // Append placeholder transformations\n if (placeholder) {\n if (placeholder === \"predominant-color\" && result.getValue('width') && result.getValue('height')) {\n placeholder += '-pixel';\n }\n const placeholderTransformations = PLACEHOLDER_IMAGE_MODES[placeholder] || PLACEHOLDER_IMAGE_MODES.blur;\n placeholderTransformations.forEach(t => result.chain().transformation(t));\n }\n\n return result.serialize();\n}\n\n/**\n * If type is 'fetch', update publicId to be a url\n * @param publicId\n * @param type\n * @returns {string}\n */\nfunction preparePublicId(publicId, {type}){\n return (!isUrl(publicId) && type === 'fetch') ? makeUrl(publicId) : publicId;\n}\n\n/**\n * Generate url string\n * @param publicId\n * @param options\n * @returns {string} final url\n */\nfunction urlString(publicId, options) {\n if (isUrl(publicId) && (options.type === 'upload' || options.type === 'asset')) {\n return publicId;\n }\n\n const version = handleVersion(publicId, options);\n const transformationString = handleTransformation(options);\n const prefix = handlePrefix(publicId, options);\n const signature = handleSignature(options);\n const resourceType = handleResourceType(options);\n\n publicId = formatPublicId(publicId, options);\n\n return compact([prefix, resourceType, signature, transformationString, version, publicId])\n .join('/')\n .replace(/([^:])\\/+/g, '$1/') // replace '///' with '//'\n .replace(' ', '%20');\n}\n\n/**\n * Merge options and config with defaults\n * update options fetch_format according to 'type' param\n * @param options\n * @param config\n * @returns {*} updated options\n */\nfunction prepareOptions(options, config) {\n if (options instanceof Transformation) {\n options = options.toOptions();\n }\n\n options = defaults({}, options, config, DEFAULT_IMAGE_PARAMS);\n\n if (options.type === 'fetch') {\n options.fetch_format = options.fetch_format || options.format;\n }\n\n return options;\n}\n\n/**\n * Generates a URL for any asset in your Media library.\n * @function url\n * @ignore\n * @param {string} publicId - The public ID of the media asset.\n * @param {Object} [options={}] - The {@link Transformation} parameters to include in the URL.\n * @param {object} [config={}] - URL configuration parameters\n * @param {type} [options.type='upload'] - The asset's storage type.\n * For details on all fetch types, see\n * <a href=\"https://cloudinary.com/documentation/image_transformations#fetching_images_from_remote_locations\"\n * target=\"_blank\">Fetch types</a>.\n * @param {Object} [options.resource_type='image'] - The type of asset. <p>Possible values:<br/>\n * - `image`<br/>\n * - `video`<br/>\n * - `raw`\n * @param {signature} [options.signature='s--12345678--'] - The signature component of a\n * signed delivery URL of the format: /s--SIGNATURE--/.\n * For details on signatures, see\n * <a href=\"https://cloudinary.com/documentation/signatures\" target=\"_blank\">Signatures</a>.\n * @return {string} The media asset URL.\n * @see <a href=\"https://cloudinary.com/documentation/image_transformation_reference\" target=\"_blank\">\n * Available image transformations</a>\n * @see <a href=\"https://cloudinary.com/documentation/video_transformation_reference\" target=\"_blank\">\n * Available video transformations</a>\n */\nexport default function url(publicId, options = {}, config = {}) {\n if (!publicId) {\n return publicId;\n }\n options = prepareOptions(options, config);\n publicId = preparePublicId(publicId, options);\n\n const error = validate(options);\n\n if (error) {\n throw error;\n }\n let resultUrl = urlString(publicId, options);\n if(options.urlAnalytics) {\n let analyticsOptions = getAnalyticsOptions(options);\n let sdkAnalyticsSignature = getSDKAnalyticsSignature(analyticsOptions);\n // url might already have a '?' query param\n let appender = '?';\n if (resultUrl.indexOf('?') >= 0) {\n appender = '&';\n }\n resultUrl = `${resultUrl}${appender}_a=${sdkAnalyticsSignature}`;\n }\n if (options.auth_token) {\n let appender = resultUrl.indexOf('?') >= 0 ? '&' : '?';\n resultUrl = `${resultUrl}${appender}__cld_token__=${options.auth_token}`;\n }\n return resultUrl;\n};\n","import * as utils from '../util';\n\nconst isEmpty = utils.isEmpty;\nimport generateBreakpoints from './generateBreakpoints';\nimport Transformation from '../transformation';\nimport url from '../url';\n\n/**\n * Options used to generate the srcset attribute.\n * @typedef {object} srcset\n * @property {(number[]|string[])} [breakpoints] An array of breakpoints.\n * @property {number} [min_width] Minimal width of the srcset images.\n * @property {number} [max_width] Maximal width of the srcset images.\n * @property {number} [max_images] Number of srcset images to generate.\n * @property {object|string} [transformation] The transformation to use in the srcset urls.\n * @property {boolean} [sizes] Whether to calculate and add the sizes attribute.\n */\n\n/**\n * Helper function. Generates a single srcset item url\n *\n * @private\n * @param {string} public_id Public ID of the resource.\n * @param {number} width Width in pixels of the srcset item.\n * @param {object|string} transformation\n * @param {object} options Additional options.\n *\n * @return {string} Resulting URL of the item\n */\nexport function scaledUrl(public_id, width, transformation, options = {}) {\n let configParams = utils.extractUrlParams(options);\n transformation = transformation || options;\n configParams.raw_transformation = new Transformation([utils.merge({}, transformation), {\n crop: 'scale',\n width: width\n }]).toString();\n\n return url(public_id, configParams);\n}\n\n/**\n * If cache is enabled, get the breakpoints from the cache. If the values were not found in the cache,\n * or cache is not enabled, generate the values.\n * @param {srcset} srcset The srcset configuration parameters\n * @param {string} public_id\n * @param {object} options\n * @return {*|Array}\n */\nexport function getOrGenerateBreakpoints(public_id, srcset = {}, options = {}) {\n return generateBreakpoints(srcset);\n}\n\n/**\n * Helper function. Generates srcset attribute value of the HTML img tag\n * @private\n *\n * @param {string} public_id Public ID of the resource\n * @param {number[]} breakpoints An array of breakpoints (in pixels)\n * @param {object} transformation The transformation\n * @param {object} options Includes html tag options, transformation options\n * @return {string} Resulting srcset attribute value\n */\nexport function generateSrcsetAttribute(public_id, breakpoints, transformation, options) {\n options = utils.cloneDeep(options);\n utils.patchFetchFormat(options);\n return breakpoints.map(width => `${scaledUrl(public_id, width, transformation, options)} ${width}w`).join(', ');\n}\n\n/**\n * Helper function. Generates sizes attribute value of the HTML img tag\n * @private\n * @param {number[]} breakpoints An array of breakpoints.\n * @return {string} Resulting sizes attribute value\n */\nexport function generateSizesAttribute(breakpoints) {\n if (breakpoints == null) {\n return '';\n }\n return breakpoints.map(width => `(max-width: ${width}px) ${width}px`).join(', ');\n}\n\n/**\n * Helper function. Generates srcset and sizes attributes of the image tag\n *\n * Generated attributes are added to attributes argument\n *\n * @private\n * @param {string} publicId The public ID of the resource\n * @param {object} attributes Existing HTML attributes.\n * @param {srcset} srcsetData\n * @param {object} options Additional options.\n *\n * @return array The responsive attributes\n */\nexport function generateImageResponsiveAttributes(publicId, attributes = {}, srcsetData = {}, options = {}) {\n // Create both srcset and sizes here to avoid fetching breakpoints twice\n\n let responsiveAttributes = {};\n if (isEmpty(srcsetData)) {\n return responsiveAttributes;\n }\n\n const generateSizes = (!attributes.sizes && srcsetData.sizes === true);\n\n const generateSrcset = !attributes.srcset;\n if (generateSrcset || generateSizes) {\n let breakpoints = getOrGenerateBreakpoints(publicId, srcsetData, options);\n\n if (generateSrcset) {\n let transformation = srcsetData.transformation;\n let srcsetAttr = generateSrcsetAttribute(publicId, breakpoints, transformation, options);\n if (!isEmpty(srcsetAttr)) {\n responsiveAttributes.srcset = srcsetAttr;\n }\n }\n\n if (generateSizes) {\n let sizesAttr = generateSizesAttribute(breakpoints);\n if (!isEmpty(sizesAttr)) {\n responsiveAttributes.sizes = sizesAttr;\n }\n }\n }\n return responsiveAttributes;\n}\n\n/**\n * Generate a media query\n *\n * @private\n * @param {object} options configuration options\n * @param {number|string} options.min_width\n * @param {number|string} options.max_width\n * @return {string} a media query string\n */\nexport function generateMediaAttr(options) {\n let mediaQuery = [];\n if (options != null) {\n if (options.min_width != null) {\n mediaQuery.push(`(min-width: ${options.min_width}px)`);\n }\n if (options.max_width != null) {\n mediaQuery.push(`(max-width: ${options.max_width}px)`);\n }\n }\n return mediaQuery.join(' and ');\n}\n\nexport const srcsetUrl = scaledUrl;\n","\n/**\n * Helper function. Gets or populates srcset breakpoints using provided parameters\n * Either the breakpoints or min_width, max_width, max_images must be provided.\n *\n * @private\n * @param {srcset} srcset Options with either `breakpoints` or `min_width`, `max_width`, and `max_images`\n *\n * @return {number[]} Array of breakpoints\n *\n */\nexport default function generateBreakpoints(srcset) {\n let breakpoints = srcset.breakpoints || [];\n if (breakpoints.length) {\n return breakpoints;\n }\n let [min_width, max_width, max_images] = [srcset.min_width, srcset.max_width, srcset.max_images].map(Number);\n if ([min_width, max_width, max_images].some(isNaN)) {\n throw 'Either (min_width, max_width, max_images) ' +\n 'or breakpoints must be provided to the image srcset attribute';\n }\n\n if (min_width > max_width) {\n throw 'min_width must be less than max_width'\n }\n\n if (max_images <= 0) {\n throw 'max_images must be a positive integer';\n } else if (max_images === 1) {\n min_width = max_width;\n }\n\n let stepSize = Math.ceil((max_width - min_width) / Math.max(max_images - 1, 1));\n for (let current = min_width; current < max_width; current += stepSize) {\n breakpoints.push(current);\n }\n breakpoints.push(max_width);\n return breakpoints;\n}\n","/**\n * Image Tag\n * Depends on 'tags/htmltag', 'cloudinary'\n */\n\nimport HtmlTag from './htmltag';\n\nimport url from '../url';\nimport {isEmpty, isString, merge} from \"../util\";\nimport {generateImageResponsiveAttributes} from \"../util/srcsetUtils\";\n\n/**\n * Creates an HTML (DOM) Image tag using Cloudinary as the source.\n * @constructor ImageTag\n * @extends HtmlTag\n * @param {string} [publicId]\n * @param {Object} [options]\n */\nclass ImageTag extends HtmlTag {\n constructor(publicId, options = {}) {\n super(\"img\", publicId, options);\n }\n\n /** @override */\n closeTag() {\n return \"\";\n }\n\n /** @override */\n attributes() {\n var attr, options, srcAttribute;\n attr = super.attributes() || {};\n options = this.getOptions();\n let attributes = this.getOption('attributes') || {};\n let srcsetParam = this.getOption('srcset')|| attributes.srcset;\n\n let responsiveAttributes = {};\n if (isString(srcsetParam)) {\n responsiveAttributes.srcset = srcsetParam\n } else {\n responsiveAttributes = generateImageResponsiveAttributes(this.publicId, attributes, srcsetParam, options);\n }\n if(!isEmpty(responsiveAttributes)) {\n delete attr.width;\n delete attr.height;\n }\n\n merge(attr, responsiveAttributes);\n srcAttribute = options.responsive && !options.client_hints ? 'data-src' : 'src';\n if (attr[srcAttribute] == null) {\n attr[srcAttribute] = url(this.publicId, this.getOptions());\n }\n return attr;\n }\n\n};\n\nexport default ImageTag;\n","/**\n * Image Tag\n * Depends on 'tags/htmltag', 'cloudinary'\n */\nimport {generateImageResponsiveAttributes, generateMediaAttr} from \"../util/srcsetUtils\";\nimport {merge} from '../util';\nimport url from '../url';\nimport HtmlTag from './htmltag';\n\n/**\n * Creates an HTML (DOM) Image tag using Cloudinary as the source.\n * @constructor SourceTag\n * @extends HtmlTag\n * @param {string} [publicId]\n * @param {Object} [options]\n */\nclass SourceTag extends HtmlTag {\n constructor(publicId, options = {}) {\n super(\"source\", publicId, options);\n }\n\n /** @override */\n closeTag() {\n return \"\";\n }\n\n /** @override */\n attributes() {\n let srcsetParam = this.getOption('srcset');\n let attr = super.attributes() || {};\n let options = this.getOptions();\n merge(attr, generateImageResponsiveAttributes(this.publicId, attr, srcsetParam, options));\n if(!attr.srcset){\n attr.srcset = url(this.publicId, options);\n }\n if(!attr.media && options.media){\n attr.media = generateMediaAttr(options.media);\n }\n\n return attr;\n }\n\n};\n\nexport default SourceTag;\n","import HtmlTag from './htmltag';\nimport ImageTag from './imagetag';\nimport Transformation from '../transformation';\nimport SourceTag from './sourcetag';\nimport {extractUrlParams} from \"../util\";\n\nclass PictureTag extends HtmlTag {\n constructor(publicId, options = {}, sources = []) {\n super('picture', publicId, options);\n this.widthList = sources;\n }\n\n /** @override */\n content() {\n return this.widthList.map(({min_width, max_width, transformation}) => {\n let options = this.getOptions();\n let sourceTransformation = new Transformation(options);\n sourceTransformation.chain().fromOptions(typeof transformation === 'string' ? {\n raw_transformation: transformation\n } : transformation);\n options = extractUrlParams(options);\n options.media = {min_width, max_width};\n options.transformation = sourceTransformation;\n return new SourceTag(this.publicId, options).toHtml();\n }).join('') +\n new ImageTag(this.publicId, this.getOptions()).toHtml();\n }\n\n /** @override */\n attributes() {\n\n let attr = super.attributes();\n delete attr.width;\n delete attr.height;\n return attr;\n }\n\n /** @override */\n closeTag() {\n return \"</\" + this.name + \">\";\n }\n\n};\n\nexport default PictureTag;\n","/**\n * Video Tag\n * Depends on 'tags/htmltag', 'util', 'cloudinary'\n */\n\nimport {\n DEFAULT_VIDEO_PARAMS,\n DEFAULT_IMAGE_PARAMS\n} from '../constants';\n\nimport url from '../url';\n\nimport {\n defaults,\n isPlainObject,\n isArray,\n isEmpty,\n omit\n} from '../util';\n\nimport HtmlTag from './htmltag';\n\n\nconst VIDEO_TAG_PARAMS = ['source_types', 'source_transformation', 'fallback_content', 'poster', 'sources'];\n\nconst DEFAULT_VIDEO_SOURCE_TYPES = ['webm', 'mp4', 'ogv'];\n\nconst DEFAULT_POSTER_OPTIONS = {\n format: 'jpg',\n resource_type: 'video'\n};\n\n/**\n * Creates an HTML (DOM) Video tag using Cloudinary as the source.\n * @constructor VideoTag\n * @extends HtmlTag\n * @param {string} [publicId]\n * @param {Object} [options]\n */\nclass VideoTag extends HtmlTag {\n constructor(publicId, options = {}) {\n options = defaults({}, options, DEFAULT_VIDEO_PARAMS);\n super(\"video\", publicId.replace(/\\.(mp4|ogv|webm)$/, ''), options);\n }\n\n /**\n * Set the transformation to apply on each source\n * @function VideoTag#setSourceTransformation\n * @param {Object} an object with pairs of source type and source transformation\n * @returns {VideoTag} Returns this instance for chaining purposes.\n */\n setSourceTransformation(value) {\n this.transformation().sourceTransformation(value);\n return this;\n }\n\n /**\n * Set the source types to include in the video tag\n * @function VideoTag#setSourceTypes\n * @param {Array<string>} an array of source types\n * @returns {VideoTag} Returns this instance for chaining purposes.\n */\n setSourceTypes(value) {\n this.transformation().sourceTypes(value);\n return this;\n }\n\n /**\n * Set the poster to be used in the video tag\n * @function VideoTag#setPoster\n * @param {string|Object} value\n * - string: a URL to use for the poster\n * - Object: transformation parameters to apply to the poster. May optionally include a public_id to use instead of the video public_id.\n * @returns {VideoTag} Returns this instance for chaining purposes.\n */\n setPoster(value) {\n this.transformation().poster(value);\n return this;\n }\n\n /**\n * Set the content to use as fallback in the video tag\n * @function VideoTag#setFallbackContent\n * @param {string} value - the content to use, in HTML format\n * @returns {VideoTag} Returns this instance for chaining purposes.\n */\n setFallbackContent(value) {\n this.transformation().fallbackContent(value);\n return this;\n }\n\n content() {\n let sourceTypes = this.transformation().getValue('source_types');\n const sourceTransformation = this.transformation().getValue('source_transformation');\n const fallback = this.transformation().getValue('fallback_content');\n let sources = this.getOption('sources');\n let innerTags = [];\n if (isArray(sources) && !isEmpty(sources)) {\n innerTags = sources.map(source => {\n let src = url(this.publicId, defaults(\n {},\n source.transformations || {},\n {resource_type: 'video', format: source.type}\n ), this.getOptions());\n return this.createSourceTag(src, source.type, source.codecs);\n });\n } else {\n if (isEmpty(sourceTypes)) {\n sourceTypes = DEFAULT_VIDEO_SOURCE_TYPES;\n }\n if (isArray(sourceTypes)) {\n innerTags = sourceTypes.map(srcType => {\n let src = url(this.publicId, defaults(\n {},\n sourceTransformation[srcType] || {},\n {resource_type: 'video', format: srcType}\n ), this.getOptions());\n return this.createSourceTag(src, srcType);\n });\n }\n }\n return innerTags.join('') + fallback;\n }\n\n attributes() {\n let sourceTypes = this.getOption('source_types');\n let poster = this.getOption('poster');\n if (poster === undefined) {\n poster = {};\n }\n if (isPlainObject(poster)) {\n let defaultOptions = poster.public_id != null ? DEFAULT_IMAGE_PARAMS : DEFAULT_POSTER_OPTIONS;\n poster = url(poster.public_id || this.publicId, defaults({}, poster, defaultOptions, this.getOptions()));\n }\n let attr = super.attributes() || {};\n attr = omit(attr, VIDEO_TAG_PARAMS);\n const sources = this.getOption('sources');\n // In case of empty sourceTypes - fallback to default source types is used.\n const hasSourceTags = !isEmpty(sources) || isEmpty(sourceTypes) || isArray(sourceTypes);\n if (!hasSourceTags) {\n attr[\"src\"] = url(this.publicId, this.getOptions(), {\n resource_type: 'video',\n format: sourceTypes\n });\n }\n if (poster != null) {\n attr[\"poster\"] = poster;\n }\n return attr;\n }\n\n createSourceTag(src, sourceType, codecs = null) {\n let mimeType = null;\n if (!isEmpty(sourceType)) {\n let videoType = sourceType === 'ogv' ? 'ogg' : sourceType;\n mimeType = 'video/' + videoType;\n if (!isEmpty(codecs)) {\n let codecsStr = isArray(codecs) ? codecs.join(', ') : codecs;\n mimeType += '; codecs=' + codecsStr;\n }\n }\n return \"<source \" + (this.htmlAttrs({\n src: src,\n type: mimeType\n })) + \">\";\n }\n\n\n}\n\nexport default VideoTag;\n","/**\n * Image Tag\n * Depends on 'tags/htmltag', 'cloudinary'\n */\n\nimport HtmlTag from './htmltag';\n\nimport {\n assign\n} from '../util';\n\n/**\n * Creates an HTML (DOM) Meta tag that enables Client-Hints for the HTML page. <br/>\n * See\n * <a href=\"https://cloudinary.com/documentation/responsive_images#automating_responsive_images_with_client_hints\"\n * target=\"_new\">Automating responsive images with Client Hints</a> for more details.\n * @constructor ClientHintsMetaTag\n * @extends HtmlTag\n * @param {object} options\n * @example\n * tag = new ClientHintsMetaTag()\n * //returns: <meta http-equiv=\"Accept-CH\" content=\"DPR, Viewport-Width, Width\">\n */\nclass ClientHintsMetaTag extends HtmlTag {\n constructor(options) {\n super('meta', void 0, assign({\n \"http-equiv\": \"Accept-CH\",\n content: \"DPR, Viewport-Width, Width\"\n }, options));\n }\n\n /** @override */\n closeTag() {\n return \"\";\n }\n\n};\n\nexport default ClientHintsMetaTag;\n","/**\n * @param {HTMLElement} htmlElContainer\n * @param {object} clInstance cloudinary instance\n * @param {string} publicId\n * @param {object} options - TransformationOptions\n * @returns Promise<HTMLElement>\n */\nfunction mountCloudinaryVideoTag(htmlElContainer, clInstance, publicId, options) {\n return new Promise((resolve, reject) => {\n htmlElContainer.innerHTML = clInstance.videoTag(publicId, options).toHtml();\n\n // All videos under the html container must have a width of 100%, or they might overflow from the container\n let cloudinaryVideoElement = htmlElContainer.querySelector('.cld-transparent-video');\n cloudinaryVideoElement.style.width = '100%';\n resolve(htmlElContainer);\n });\n}\n\nexport default mountCloudinaryVideoTag;\n","/**\n * @description - Function will push a flag to incoming options\n * @param {{transformation} | {...transformation}} options - These options are the same options provided to all our SDK methods\n * We expect options to either be the transformation itself, or an object containing\n * an array of transformations\n *\n * @param {string} flag\n * @returns the mutated options object\n */\n\nfunction addFlagToOptions(options, flag) {\n // Do we have transformation\n if (options.transformation) {\n options.transformation.push({\n flags: [flag]\n });\n } else {\n // no transformation\n // ensure the flags are extended\n if (!options.flags) {\n options.flags = [];\n }\n\n if (typeof options.flags === 'string') {\n options.flags = [options.flags];\n }\n\n options.flags.push(flag);\n }\n}\n\nexport default addFlagToOptions;\n","import addFlagToOptions from \"../../transformations/addFlag\";\nimport {DEFAULT_EXTERNAL_LIBRARIES, DEFAULT_TIMEOUT_MS} from \"../../../constants\";\n\n/**\n * @description - Enforce option structure, sets defaults and ensures alpha flag exists\n * @param options {TransformationOptions}\n */\nfunction enforceOptionsForTransparentVideo(options) {\n options.autoplay = true;\n options.muted = true;\n options.controls = false;\n options.max_timeout_ms = options.max_timeout_ms || DEFAULT_TIMEOUT_MS;\n options.class = options.class || '';\n options.class += ' cld-transparent-video';\n options.externalLibraries = options.externalLibraries || {};\n\n if (!options.externalLibraries.seeThru) {\n options.externalLibraries.seeThru = DEFAULT_EXTERNAL_LIBRARIES.seeThru;\n }\n\n // ensure there's an alpha transformation present\n // this is a non documented internal flag\n addFlagToOptions(options, 'alpha');\n}\n\nexport default enforceOptionsForTransparentVideo;\n","/**\n * @description - Given a string URL, this function will load the script and resolve the promise.\n * The function doesn't resolve any value,\n * this is not a UMD loader where you can get your library name back.\n * @param scriptURL {string}\n * @param {number} max_timeout_ms - Time to elapse before promise is rejected\n * @param isAlreadyLoaded {boolean} if true, the loadScript resolves immediately\n * this is used for multiple invocations - prevents the script from being loaded multiple times\n * @return {Promise<any | {status:string, message:string}>}\n */\nfunction loadScript(scriptURL, max_timeout_ms, isAlreadyLoaded) {\n return new Promise((resolve, reject) => {\n if (isAlreadyLoaded) {\n resolve();\n } else {\n let scriptTag = document.createElement('script');\n scriptTag.src = scriptURL;\n\n let timerID = setTimeout(() => {\n reject({\n status: 'error',\n message: `Timeout loading script ${scriptURL}`\n });\n }, max_timeout_ms); // 10 seconds for timeout\n\n scriptTag.onerror = () => {\n clearTimeout(timerID); // clear timeout reject error\n reject({\n status: 'error',\n message: `Error loading ${scriptURL}`\n });\n };\n\n scriptTag.onload = () => {\n clearTimeout(timerID); // clear timeout reject error\n resolve();\n };\n document.head.appendChild(scriptTag);\n }\n });\n}\n\nexport default loadScript;\n","/**\n * Reject on timeout\n * @param maxTimeoutMS\n * @param reject\n * @returns {number} timerID\n */\nfunction rejectOnTimeout(maxTimeoutMS, reject) {\n return setTimeout(() => {\n reject({\n status: 'error',\n message: 'Timeout loading Blob URL'\n });\n }, maxTimeoutMS);\n}\n\n/**\n * @description Converts a URL to a BLOB URL\n * @param {string} urlToLoad\n * @param {number} max_timeout_ms - Time to elapse before promise is rejected\n * @return {Promise<{\n * status: 'success' | 'error'\n * message?: string,\n * payload: {\n * url: string\n * }\n * }>}\n */\nfunction getBlobFromURL(urlToLoad, maxTimeoutMS) {\n return new Promise((resolve, reject) => {\n const timerID = rejectOnTimeout(maxTimeoutMS, reject);\n\n // If fetch exists, use it to fetch blob, otherwise use XHR.\n // XHR causes issues on safari 14.1 so we prefer fetch\n const fetchBlob = (typeof fetch !== 'undefined' && fetch) ? loadUrlUsingFetch : loadUrlUsingXhr;\n\n fetchBlob(urlToLoad).then((blob) => {\n resolve({\n status: 'success',\n payload: {\n blobURL: URL.createObjectURL(blob)\n }\n });\n }).catch(() => {\n reject({\n status: 'error',\n message: 'Error loading Blob URL'\n });\n }).finally(() => {\n // Clear the timeout timer on fail or success.\n clearTimeout(timerID);\n });\n });\n}\n\n/**\n * Use fetch function to fetch file\n * @param urlToLoad\n * @returns {Promise<unknown>}\n */\nfunction loadUrlUsingFetch(urlToLoad) {\n return new Promise((resolve, reject) => {\n fetch(urlToLoad).then((response) => {\n response.blob().then((blob) => {\n resolve(blob);\n });\n }).catch(() => {\n reject('error');\n });\n });\n}\n\n/**\n * Use XHR to fetch file\n * @param urlToLoad\n * @returns {Promise<unknown>}\n */\nfunction loadUrlUsingXhr(urlToLoad) {\n return new Promise((resolve, reject) => {\n const xhr = new XMLHttpRequest();\n xhr.responseType = 'blob';\n xhr.onload = function (response) {\n resolve(xhr.response);\n };\n\n xhr.onerror = function () {\n reject('error');\n };\n\n xhr.open('GET', urlToLoad, true);\n xhr.send();\n });\n}\n\nexport default getBlobFromURL;\n","import {normalizeToArray} from \"./util/parse/normalizeToArray\";\n\nvar applyBreakpoints, closestAbove, defaultBreakpoints, findContainerWidth, maxWidth, updateDpr;\n\nimport Configuration from './configuration';\nimport HtmlTag from './tags/htmltag';\nimport ImageTag from './tags/imagetag';\nimport PictureTag from './tags/picturetag';\nimport SourceTag from './tags/sourcetag';\nimport Transformation from './transformation';\nimport url from './url';\nimport VideoTag from './tags/videotag';\nimport * as constants from './constants';\n\nimport {\n addClass,\n assign,\n defaults,\n getData,\n isEmpty,\n isFunction,\n isString,\n merge,\n removeAttribute,\n setAttribute,\n setData,\n width\n} from './util';\n//\n\nimport mountCloudinaryVideoTag from \"./util/features/transparentVideo/mountCloudinaryVideoTag\";\nimport enforceOptionsForTransparentVideo from \"./util/features/transparentVideo/enforceOptionsForTransparentVideo\";\nimport mountSeeThruCanvasTag from \"./util/features/transparentVideo/mountSeeThruCanvasTag\";\nimport checkSupportForTransparency from \"./util/features/transparentVideo/checkSupportForTransparency\";\n\ndefaultBreakpoints = function(width, steps = 100) {\n return steps * Math.ceil(width / steps);\n};\n\nclosestAbove = function(list, value) {\n var i;\n i = list.length - 2;\n while (i >= 0 && list[i] >= value) {\n i--;\n }\n return list[i + 1];\n};\n\napplyBreakpoints = function(tag, width, steps, options) {\n var ref, ref1, ref2, responsive_use_breakpoints;\n responsive_use_breakpoints = (ref = (ref1 = (ref2 = options['responsive_use_breakpoints']) != null ? ref2 : options['responsive_use_stoppoints']) != null ? ref1 : this.config('responsive_use_breakpoints')) != null ? ref : this.config('responsive_use_stoppoints');\n if ((!responsive_use_breakpoints) || (responsive_use_breakpoints === 'resize' && !options.resizing)) {\n return width;\n } else {\n return this.calc_breakpoint(tag, width, steps);\n }\n};\n\nfindContainerWidth = function(element) {\n var containerWidth, style;\n containerWidth = 0;\n while (((element = element != null ? element.parentNode : void 0) instanceof Element) && !containerWidth) {\n style = window.getComputedStyle(element);\n if (!/^inline/.test(style.display)) {\n containerWidth = width(element);\n }\n }\n return containerWidth;\n};\n\nupdateDpr = function(dataSrc, roundDpr) {\n return dataSrc.replace(/\\bdpr_(1\\.0|auto)\\b/g, 'dpr_' + this.device_pixel_ratio(roundDpr));\n};\n\nmaxWidth = function(requiredWidth, tag) {\n var imageWidth;\n imageWidth = getData(tag, 'width') || 0;\n if (requiredWidth > imageWidth) {\n imageWidth = requiredWidth;\n setData(tag, 'width', requiredWidth);\n }\n return imageWidth;\n};\n\nclass Cloudinary {\n /**\n * Creates a new Cloudinary instance.\n * @class Cloudinary\n * @classdesc Main class for accessing Cloudinary functionality.\n * @param {Object} options - A {@link Configuration} object for globally configuring Cloudinary account settings.\n * @example<br/>\n * var cl = new cloudinary.Cloudinary( { cloud_name: \"mycloud\"});<br/>\n * var imgTag = cl.image(\"myPicID\");\n * @see <a href=\"https://cloudinary.com/documentation/solution_overview#configuration_parameters\" target=\"_blank\">\n * Available configuration options</a>\n */\n constructor(options) {\n var configuration;\n this.devicePixelRatioCache = {};\n this.responsiveConfig = {};\n this.responsiveResizeInitialized = false;\n configuration = new Configuration(options);\n // Provided for backward compatibility\n this.config = function(newConfig, newValue) {\n return configuration.config(newConfig, newValue);\n };\n /**\n * Use \\<meta\\> tags in the document to configure this `cloudinary` instance.\n * @return This {Cloudinary} instance for chaining.\n */\n this.fromDocument = function() {\n configuration.fromDocument();\n return this;\n };\n /**\n * Use environment variables to configure this `cloudinary` instance.\n * @return This {Cloudinary} instance for chaining.\n */\n this.fromEnvironment = function() {\n configuration.fromEnvironment();\n return this;\n };\n /**\n * Initializes the configuration of this `cloudinary` instance.\n * This is a convenience method that invokes both {@link Configuration#fromEnvironment|fromEnvironment()}\n * (Node.js environment only) and {@link Configuration#fromDocument|fromDocument()}.\n * It first tries to retrieve the configuration from the environment variable.\n * If not available, it tries from the document meta tags.\n * @function Cloudinary#init\n * @see Configuration#init\n * @return This {Cloudinary} instance for chaining.\n */\n this.init = function() {\n configuration.init();\n return this;\n };\n }\n\n /**\n * Convenience constructor\n * @param {Object} options\n * @return {Cloudinary}\n * @example cl = cloudinary.Cloudinary.new( { cloud_name: \"mycloud\"})\n */\n static new(options) {\n return new this(options);\n }\n\n /**\n * Generates a URL for any asset in your Media library.\n * @function Cloudinary#url\n * @param {string} publicId - The public ID of the media asset.\n * @param {Object} [options] - The {@link Transformation} parameters to include in the URL.\n * @param {type} [options.type='upload'] - The asset's storage type.\n * For details on all fetch types, see\n * <a href=\"https://cloudinary.com/documentation/image_transformations#fetching_images_from_remote_locations\"\n * target=\"_blank\">Fetch types</a>.\n * @param {resourceType} [options.resource_type='image'] - The type of asset. Possible values:<br/>\n * - `image`<br/>\n * - `video`<br/>\n * - `raw`\n * @return {string} The media asset URL.\n * @see <a href=\"https://cloudinary.com/documentation/image_transformation_reference\" target=\"_blank\">\n * Available image transformations</a>\n * @see <a href=\"https://cloudinary.com/documentation/video_transformation_reference\" target=\"_blank\">\n * Available video transformations</a>\n */\n url(publicId, options = {}) {\n return url(publicId, options, this.config());\n }\n\n /**\n * Generates a video asset URL.\n * @function Cloudinary#video_url\n * @param {string} publicId - The public ID of the video.\n * @param {Object} [options] - The {@link Transformation} parameters to include in the URL.\n * @param {type} [options.type='upload'] - The asset's storage type.\n * For details on all fetch types, see\n * <a href=\"https://cloudinary.com/documentation/image_transformations#fetching_images_from_remote_locations\"\n * target=\"_blank\">Fetch types</a>.\n * @return {string} The video URL.\n * @see <a href=\"https://cloudinary.com/documentation/video_transformation_reference\"\n * target=\"_blank\">Available video transformations</a>\n */\n video_url(publicId, options) {\n options = assign({\n resource_type: 'video'\n }, options);\n return this.url(publicId, options);\n }\n\n /**\n * Generates a URL for an image intended to be used as a thumbnail for the specified video.\n * Identical to {@link Cloudinary#url|url}, except that the `resource_type` is `video`\n * and the default `format` is `jpg`.\n * @function Cloudinary#video_thumbnail_url\n * @param {string} publicId - The unique identifier of the video from which you want to generate a thumbnail image.\n * @param {Object} [options] - The image {@link Transformation} parameters to apply to the thumbnail.\n * In addition to standard image transformations, you can also use the `start_offset` transformation parameter\n * to instruct Cloudinary to generate the thumbnail from a frame other than the middle frame of the video.\n * For details, see\n * <a href=\"https://cloudinary.com/documentation/video_manipulation_and_delivery#generating_video_thumbnails\"\n * target=\"_blank\">Generating video thumbnails</a> in the Cloudinary documentation.\n * @param {type} [options.type='upload'] - The asset's storage type.\n * @return {string} The URL of the video thumbnail image.\n * @see <a href=\"https://cloudinary.com/documentation/image_transformation_reference\" target=\"_blank\">\n * Available image transformations</a>\n */\n video_thumbnail_url(publicId, options) {\n options = assign({}, constants.DEFAULT_POSTER_OPTIONS, options);\n return this.url(publicId, options);\n }\n\n /**\n * Generates a string representation of the specified transformation options.\n * @function Cloudinary#transformation_string\n * @param {Object} options - The {@link Transformation} options.\n * @returns {string} The transformation string.\n * @see <a href=\"https://cloudinary.com/documentation/image_transformation_reference\" target=\"_blank\">\n * Available image transformations</a>\n * @see <a href=\"https://cloudinary.com/documentation/video_transformation_reference\" target=\"_blank\">\n * Available video transformations</a>\n */\n transformation_string(options) {\n return new Transformation(options).serialize();\n }\n\n /**\n * Generates an image tag.\n * @function Cloudinary#image\n * @param {string} publicId - The public ID of the image.\n * @param {Object} options - The {@link Transformation} parameters, {@link Configuration} parameters,\n * and standard HTML <img> tag attributes to apply to the image tag.\n * @return {HTMLImageElement} An image tag DOM element.\n * @see <a href=\"https://cloudinary.com/documentation/image_transformation_reference\" target=\"_blank\">\n * Available image transformations</a>\n * @see <a href=\"https://cloudinary.com/documentation/solution_overview#configuration_parameters\"\n * target=\"_blank\">Available configuration options</a>\n */\n image(publicId, options = {}) {\n var client_hints, img, ref;\n img = this.imageTag(publicId, options);\n client_hints = (ref = options.client_hints != null ? options.client_hints : this.config('client_hints')) != null ? ref : false;\n if (options.src == null && !client_hints) {\n // src must be removed before creating the DOM element to avoid loading the image\n img.setAttr(\"src\", '');\n }\n img = img.toDOM();\n if (!client_hints) {\n // cache the image src\n setData(img, 'src-cache', this.url(publicId, options));\n // set image src taking responsiveness in account\n this.cloudinary_update(img, options);\n }\n return img;\n }\n\n /**\n * Creates a new ImageTag instance using the configuration defined for this `cloudinary` instance.\n * @function Cloudinary#imageTag\n * @param {string} publicId - The public ID of the image.\n * @param {Object} [options] - The {@link Transformation} parameters, {@link Configuration} parameters,\n * and standard HTML <img> tag attributes to apply to the image tag.\n * @return {ImageTag} An ImageTag instance that is attached (chained) to this Cloudinary instance.\n * @see <a href=\"https://cloudinary.com/documentation/image_transformation_reference\" target=\"_blank\">\n * Available image transformations</a>\n * @see <a href=\"https://cloudinary.com/documentation/solution_overview#configuration_parameters\"\n * target=\"_blank\">Available configuration options</a>\n */\n imageTag(publicId, options) {\n var tag;\n tag = new ImageTag(publicId, this.config());\n tag.transformation().fromOptions(options);\n return tag;\n }\n\n /**\n * Creates a new PictureTag instance, configured using this `cloudinary` instance.\n * @function Cloudinary#PictureTag\n * @param {string} publicId - the public ID of the resource\n * @param {Object} options - additional options to pass to the new ImageTag instance\n * @param {Array<Object>} sources - the sources definitions\n * @return {PictureTag} A PictureTag that is attached (chained) to this Cloudinary instance\n */\n pictureTag(publicId, options, sources) {\n var tag;\n tag = new PictureTag(publicId, this.config(), sources);\n tag.transformation().fromOptions(options);\n return tag;\n }\n\n /**\n * Creates a new SourceTag instance, configured using this `cloudinary` instance.\n * @function Cloudinary#SourceTag\n * @param {string} publicId - the public ID of the resource.\n * @param {Object} options - additional options to pass to the new instance.\n * @return {SourceTag} A SourceTag that is attached (chained) to this Cloudinary instance\n */\n sourceTag(publicId, options) {\n var tag;\n tag = new SourceTag(publicId, this.config());\n tag.transformation().fromOptions(options);\n return tag;\n }\n\n /**\n * Generates a video thumbnail URL from the specified remote video and includes it in an image tag.\n * @function Cloudinary#video_thumbnail\n * @param {string} publicId - The unique identifier of the video from the relevant video site.\n * Additionally, either append the image extension type to the identifier value or set\n * the image delivery format in the 'options' parameter using the 'format' transformation option.\n * For example, a YouTube video might have the identifier: 'o-urnlaJpOA.jpg'.\n * @param {Object} [options] - The {@link Transformation} parameters to apply.\n * @return {HTMLImageElement} An HTML image tag element\n * @see <a href=\"https://cloudinary.com/documentation/video_transformation_reference\" target=\"_blank\">\n * Available video transformations</a>\n * @see <a href=\"https://cloudinary.com/documentation/solution_overview#configuration_parameters\"\n * target=\"_blank\">Available configuration options</a>\n */\n video_thumbnail(publicId, options) {\n return this.image(publicId, merge({}, constants.DEFAULT_POSTER_OPTIONS, options));\n }\n\n /**\n * Fetches a facebook profile image and delivers it in an image tag element.\n * @function Cloudinary#facebook_profile_image\n * @param {string} publicId - The Facebook numeric ID. Additionally, either append the image extension type\n * to the ID or set the image delivery format in the 'options' parameter using the 'format' transformation option.\n * @param {Object} [options] - The {@link Transformation} parameters, {@link Configuration} parameters,\n * and standard HTML <img> tag attributes to apply to the image tag.\n * @return {HTMLImageElement} An image tag element.\n * @see <a href=\"https://cloudinary.com/documentation/image_transformation_reference\" target=\"_blank\">\n * Available image transformations</a>\n * @see <a href=\"https://cloudinary.com/documentation/solution_overview#configuration_parameters\"\n * target=\"_blank\">Available configuration options</a>\n */\n facebook_profile_image(publicId, options) {\n return this.image(publicId, assign({\n type: 'facebook'\n }, options));\n }\n\n /**\n * Fetches a Twitter profile image by ID and delivers it in an image tag element.\n * @function Cloudinary#twitter_profile_image\n * @param {string} publicId - The Twitter numeric ID. Additionally, either append the image extension type\n * to the ID or set the image delivery format in the 'options' parameter using the 'format' transformation option.\n * @param {Object} [options] - The {@link Transformation} parameters, {@link Configuration} parameters,\n * and standard HTML <img> tag attributes to apply to the image tag.\n * @return {HTMLImageElement} An image tag element.\n * @see <a href=\"https://cloudinary.com/documentation/image_transformation_reference\" target=\"_blank\">\n * Available image transformations</a>\n * @see <a href=\"https://cloudinary.com/documentation/solution_overview#configuration_parameters\"\n * target=\"_blank\">Available configuration options</a>\n */\n twitter_profile_image(publicId, options) {\n return this.image(publicId, assign({\n type: 'twitter'\n }, options));\n }\n\n /**\n * Fetches a Twitter profile image by name and delivers it in an image tag element.\n * @function Cloudinary#twitter_name_profile_image\n * @param {string} publicId - The Twitter screen name. Additionally, either append the image extension type\n * to the screen name or set the image delivery format in the 'options' parameter using the 'format' transformation option.\n * @param {Object} [options] - The {@link Transformation} parameters, {@link Configuration} parameters,\n * and standard HTML <img> tag attributes to apply to the image tag.\n * @return {HTMLImageElement} An image tag element.\n * @see <a href=\"https://cloudinary.com/documentation/image_transformation_reference\" target=\"_blank\">\n * Available image transformations</a>\n * @see <a href=\"https://cloudinary.com/documentation/solution_overview#configuration_parameters\"\n * target=\"_blank\">Available configuration options</a>\n */\n twitter_name_profile_image(publicId, options) {\n return this.image(publicId, assign({\n type: 'twitter_name'\n }, options));\n }\n\n /**\n * Fetches a Gravatar profile image and delivers it in an image tag element.\n * @function Cloudinary#gravatar_image\n * @param {string} publicId - The calculated hash for the Gravatar email address.\n * Additionally, either append the image extension type to the screen name or set the image delivery format\n * in the 'options' parameter using the 'format' transformation option.\n * @param {Object} [options] - The {@link Transformation} parameters, {@link Configuration} parameters,\n * and standard HTML <img> tag attributes to apply to the image tag.\n * @return {HTMLImageElement} An image tag element.\n * @see <a href=\"https://cloudinary.com/documentation/image_transformation_reference\" target=\"_blank\">\n * Available image transformations</a>\n * @see <a href=\"https://cloudinary.com/documentation/solution_overview#configuration_parameters\"\n * target=\"_blank\">Available configuration options</a>\n */\n gravatar_image(publicId, options) {\n return this.image(publicId, assign({\n type: 'gravatar'\n }, options));\n }\n\n /**\n * Fetches an image from a remote URL and delivers it in an image tag element.\n * @function Cloudinary#fetch_image\n * @param {string} publicId - The full URL of the image to fetch, including the extension.\n * @param {Object} [options] - The {@link Transformation} parameters, {@link Configuration} parameters,\n * and standard HTML <img> tag attributes to apply to the image tag.\n * @return {HTMLImageElement} An image tag element.\n * @see <a href=\"https://cloudinary.com/documentation/image_transformation_reference\" target=\"_blank\">\n * Available image transformations</a>\n * @see <a href=\"https://cloudinary.com/documentation/solution_overview#configuration_parameters\"\n * target=\"_blank\">Available configuration options</a>\n */\n fetch_image(publicId, options) {\n return this.image(publicId, assign({\n type: 'fetch'\n }, options));\n }\n\n /**\n * Generates a video tag.\n * @function Cloudinary#video\n * @param {string} publicId - The public ID of the video.\n * @param {Object} [options] - The {@link Transformation} parameters, {@link Configuration} parameters,\n * and standard HTML <img> tag attributes to apply to the image tag.\n * @return {HTMLVideoElement} A video tag DOM element.\n * @see <a href=\"https://cloudinary.com/documentation/video_transformation_reference\" target=\"_blank\">\n * Available video transformations</a>\n * @see <a href=\"https://cloudinary.com/documentation/solution_overview#configuration_parameters\"\n * target=\"_blank\">Available configuration options</a>\n */\n video(publicId, options = {}) {\n return this.videoTag(publicId, options).toHtml();\n }\n\n /**\n * Creates a new VideoTag instance using the configuration defined for this `cloudinary` instance.\n * @function Cloudinary#videoTag\n * @param {string} publicId - The public ID of the video.\n * @param {Object} options - The {@link Transformation} parameters, {@link Configuration} parameters,\n * and standard HTML <img> tag attributes to apply to the image tag.\n * @return {VideoTag} A VideoTag that is attached (chained) to this `cloudinary` instance.\n * @see <a href=\"https://cloudinary.com/documentation/video_transformation_reference\" target=\"_blank\">\n * Available video transformations</a>\n * @see <a href=\"https://cloudinary.com/documentation/solution_overview#configuration_parameters\"\n * target=\"_blank\">Available configuration options</a>\n */\n videoTag(publicId, options) {\n options = defaults({}, options, this.config());\n return new VideoTag(publicId, options);\n }\n\n /**\n * Generates a sprite PNG image that contains all images with the specified tag and the corresponding css file.\n * @function Cloudinary#sprite_css\n * @param {string} publicId - The tag on which to base the sprite image.\n * @param {Object} [options] - The {@link Transformation} parameters to include in the URL.\n * @return {string} The URL of the generated CSS file. The sprite image has the same URL, but with a PNG extension.\n * @see <a href=\"https://cloudinary.com/documentation/sprite_generation\" target=\"_blank\">\n * Sprite generation</a>\n * @see <a href=\"https://cloudinary.com/documentation/image_transformation_reference\" target=\"_blank\">\n * Available image transformations</a>\n */\n sprite_css(publicId, options) {\n options = assign({\n type: 'sprite'\n }, options);\n if (!publicId.match(/.css$/)) {\n options.format = 'css';\n }\n return this.url(publicId, options);\n }\n\n /**\n * Initializes responsive image behavior for all image tags with the 'cld-responsive'\n * (or other defined {@link Cloudinary#responsive|responsive} class).<br/>\n * This method should be invoked after the page has loaded.<br/>\n * <b>Note</b>: Calls {@link Cloudinary#cloudinary_update|cloudinary_update} to modify image tags.\n * @function Cloudinary#responsive\n * @param {Object} options\n * @param {String} [options.responsive_class='cld-responsive'] - An alternative class\n * to locate the relevant <img> tags.\n * @param {number} [options.responsive_debounce=100] - The debounce interval in milliseconds.\n * @param {boolean} [bootstrap=true] If true, processes the <img> tags by calling\n * {@link Cloudinary#cloudinary_update|cloudinary_update}. When false, the tags are processed\n * only after a resize event.\n * @see {@link Cloudinary#cloudinary_update|cloudinary_update} for additional configuration parameters\n * @see <a href=\"https://cloudinary.com/documentation/responsive_images#automating_responsive_images_with_javascript\"\n * target=\"_blank\">Automating responsive images with JavaScript</a>\n * @return {function} that when called, removes the resize EventListener added by this function\n */\n responsive(options, bootstrap = true) {\n var ref, ref1, ref2, responsiveClass, responsiveResize, timeout;\n this.responsiveConfig = merge(this.responsiveConfig || {}, options);\n responsiveClass = (ref = this.responsiveConfig.responsive_class) != null ? ref : this.config('responsive_class');\n if (bootstrap) {\n this.cloudinary_update(`img.${responsiveClass}, img.cld-hidpi`, this.responsiveConfig);\n }\n responsiveResize = (ref1 = (ref2 = this.responsiveConfig.responsive_resize) != null ? ref2 : this.config('responsive_resize')) != null ? ref1 : true;\n if (responsiveResize && !this.responsiveResizeInitialized) {\n this.responsiveConfig.resizing = this.responsiveResizeInitialized = true;\n timeout = null;\n const makeResponsive = () => {\n var debounce, ref3, ref4, reset, run, wait, waitFunc;\n debounce = (ref3 = (ref4 = this.responsiveConfig.responsive_debounce) != null ? ref4 : this.config('responsive_debounce')) != null ? ref3 : 100;\n reset = function() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n };\n run = () => {\n return this.cloudinary_update(`img.${responsiveClass}`, this.responsiveConfig);\n };\n waitFunc = function() {\n reset();\n return run();\n };\n wait = function() {\n reset();\n timeout = setTimeout(waitFunc, debounce);\n };\n if (debounce) {\n return wait();\n } else {\n return run();\n }\n };\n window.addEventListener('resize', makeResponsive);\n return ()=>window.removeEventListener('resize', makeResponsive);\n }\n }\n\n /**\n * @function Cloudinary#calc_breakpoint\n * @private\n * @ignore\n */\n calc_breakpoint(element, width, steps) {\n let breakpoints = getData(element, 'breakpoints') || getData(element, 'stoppoints') || this.config('breakpoints') || this.config('stoppoints') || defaultBreakpoints;\n if (isFunction(breakpoints)) {\n return breakpoints(width, steps);\n } else {\n if (isString(breakpoints)) {\n breakpoints = breakpoints.split(',').map(point=>parseInt(point)).sort((a, b) => a - b);\n }\n return closestAbove(breakpoints, width);\n }\n }\n\n /**\n * @function Cloudinary#calc_stoppoint\n * @deprecated Use {@link calc_breakpoint} instead.\n * @private\n * @ignore\n */\n calc_stoppoint(element, width, steps) {\n return this.calc_breakpoint(element, width, steps);\n }\n\n /**\n * @function Cloudinary#device_pixel_ratio\n * @private\n */\n device_pixel_ratio(roundDpr) {\n roundDpr = roundDpr == null ? true : roundDpr;\n let dpr = (typeof window !== \"undefined\" && window !== null ? window.devicePixelRatio : void 0) || 1;\n if (roundDpr) {\n dpr = Math.ceil(dpr);\n }\n if (dpr <= 0 || dpr === (0/0)) {\n dpr = 1;\n }\n let dprString = dpr.toString();\n if (dprString.match(/^\\d+$/)) {\n dprString += '.0';\n }\n return dprString;\n }\n\n /**\n * Applies responsiveness to all <code><img></code> tags under each relevant node\n * (regardless of whether the tag contains the {@link Cloudinary#responsive|responsive} class).\n * @param {Element[]} nodes The parent nodes where you want to search for <img> tags.\n * @param {Object} [options] The {@link Cloudinary#cloudinary_update|cloudinary_update} options to apply.\n * @see <a href=\"https://cloudinary.com/documentation/image_transformation_reference\"\n * target=\"_blank\">Available image transformations</a>\n * @function Cloudinary#processImageTags\n */\n processImageTags(nodes, options) {\n if (isEmpty(nodes)) {\n // similar to `$.fn.cloudinary`\n return this;\n }\n\n options = defaults({}, options || {}, this.config());\n let images = nodes\n .filter(node=>/^img$/i.test(node.tagName))\n .map(function(node){\n let imgOptions = assign({\n width: node.getAttribute('width'),\n height: node.getAttribute('height'),\n src: node.getAttribute('src')\n }, options);\n let publicId = imgOptions['source'] || imgOptions['src'];\n delete imgOptions['source'];\n delete imgOptions['src'];\n let attr = new Transformation(imgOptions).toHtmlAttributes();\n setData(node, 'src-cache', url(publicId, imgOptions));\n node.setAttribute('width', attr.width);\n node.setAttribute('height', attr.height);\n return node;\n });\n this.cloudinary_update(images, options);\n return this;\n }\n\n /**\n * Updates the dpr (for `dpr_auto`) and responsive (for `w_auto`) fields according to\n * the current container size and the device pixel ratio.<br/>\n * <b>Note</b>:`w_auto` is updated only for images marked with the `cld-responsive`\n * (or other defined {@link Cloudinary#responsive|responsive}) class.\n * @function Cloudinary#cloudinary_update\n * @param {(Array|string|NodeList)} elements - The HTML image elements to modify.\n * @param {Object} options\n * @param {boolean|string} [options.responsive_use_breakpoints=true]\n * Possible values:<br/>\n * - `true`: Always use breakpoints for width.<br/>\n * - `resize`: Use exact width on first render and breakpoints on resize.<br/>\n * - `false`: Always use exact width.\n * @param {boolean} [options.responsive] - If `true`, enable responsive on all specified elements.\n * Alternatively, you can define specific HTML elements to modify by adding the `cld-responsive`\n * (or other custom-defined {@link Cloudinary#responsive|responsive_class}) class to those elements.\n * @param {boolean} [options.responsive_preserve_height] - If `true`, original css height is preserved.\n * Should be used only if the transformation supports different aspect ratios.\n */\n cloudinary_update(elements, options) {\n var containerWidth, dataSrc, match, ref4, requiredWidth;\n if (elements === null) {\n return this;\n }\n if(options == null) {\n options = {};\n }\n const responsive = options.responsive != null ? options.responsive : this.config('responsive');\n\n elements = normalizeToArray(elements);\n\n let responsiveClass;\n if (this.responsiveConfig && this.responsiveConfig.responsive_class != null) {\n responsiveClass = this.responsiveConfig.responsive_class;\n } else if (options.responsive_class != null) {\n responsiveClass = options.responsive_class;\n } else {\n responsiveClass = this.config('responsive_class');\n }\n\n let roundDpr = options.round_dpr != null ? options.round_dpr : this.config('round_dpr');\n elements.forEach(tag => {\n if (/img/i.test(tag.tagName)) {\n let setUrl = true;\n if (responsive) {\n addClass(tag, responsiveClass);\n }\n dataSrc = getData(tag, 'src-cache') || getData(tag, 'src');\n if (!isEmpty(dataSrc)) {\n // Update dpr according to the device's devicePixelRatio\n dataSrc = updateDpr.call(this, dataSrc, roundDpr);\n if (HtmlTag.isResponsive(tag, responsiveClass)) {\n containerWidth = findContainerWidth(tag);\n if (containerWidth !== 0) {\n if (/w_auto:breakpoints/.test(dataSrc)) {\n requiredWidth = maxWidth(containerWidth, tag);\n if (requiredWidth) {\n dataSrc = dataSrc.replace(/w_auto:breakpoints([_0-9]*)(:[0-9]+)?/, `w_auto:breakpoints$1:${requiredWidth}`);\n } else {\n setUrl = false;\n }\n } else {\n match = /w_auto(:(\\d+))?/.exec(dataSrc);\n if (match) {\n requiredWidth = applyBreakpoints.call(this, tag, containerWidth, match[2], options);\n requiredWidth = maxWidth(requiredWidth, tag)\n if (requiredWidth) {\n dataSrc = dataSrc.replace(/w_auto[^,\\/]*/g, `w_${requiredWidth}`);\n } else {\n setUrl = false;\n }\n }\n }\n removeAttribute(tag, 'width');\n if (!options.responsive_preserve_height) {\n removeAttribute(tag, 'height');\n }\n } else {\n // Container doesn't know the size yet - usually because the image is hidden or outside the DOM.\n setUrl = false;\n }\n }\n const isLazyLoading = (options.loading === 'lazy' && !this.isNativeLazyLoadSupported() && this.isLazyLoadSupported() && !elements[0].getAttribute('src'));\n if (setUrl || isLazyLoading){\n // If data-width exists, set width to be data-width\n this.setAttributeIfExists(elements[0], 'width', 'data-width');\n }\n\n if (setUrl && !isLazyLoading) {\n setAttribute(tag, 'src', dataSrc);\n }\n }\n }\n });\n return this;\n }\n\n /**\n * Sets element[toAttribute] = element[fromAttribute] if element[fromAttribute] is set\n * @param element\n * @param toAttribute\n * @param fromAttribute\n */\n setAttributeIfExists(element, toAttribute, fromAttribute){\n const attributeValue = element.getAttribute(fromAttribute);\n if (attributeValue != null) {\n setAttribute(element, toAttribute, attributeValue);\n }\n }\n\n /**\n * Returns true if Intersection Observer API is supported\n * @returns {boolean}\n */\n isLazyLoadSupported() {\n return window && 'IntersectionObserver' in window;\n }\n\n /**\n * Returns true if using Chrome\n * @returns {boolean}\n */\n isNativeLazyLoadSupported() {\n return 'loading' in HTMLImageElement.prototype;\n }\n\n /**\n * Returns a {@link Transformation} object, initialized with the specified options, for chaining purposes.\n * @function Cloudinary#transformation\n * @param {Object} options The {@link Transformation} options to apply.\n * @return {Transformation}\n * @see Transformation\n * @see <a href=\"https://cloudinary.com/documentation/image_transformation_reference\" target=\"_blank\">\n * Available image transformations</a>\n * @see <a href=\"https://cloudinary.com/documentation/video_transformation_reference\" target=\"_blank\">\n * Available video transformations</a>\n */\n transformation(options) {\n return Transformation.new(this.config()).fromOptions(options).setParent(this);\n }\n\n\n /**\n * @description This function will append a TransparentVideo element to the htmlElContainer passed to it.\n * TransparentVideo can either be an HTML Video tag, or an HTML Canvas Tag.\n * @param {HTMLElement} htmlElContainer\n * @param {string} publicId\n * @param {object} options The {@link TransparentVideoOptions} options to apply - Extends TransformationOptions\n * options.playsinline - HTML Video Tag's native playsinline - passed to video element.\n * options.poster - HTML Video Tag's native poster - passed to video element.\n * options.loop - HTML Video Tag's native loop - passed to video element.\n * options?.externalLibraries = { [key: string]: string} - map of external libraries to be loaded\n * @return {Promise<HTMLElement | {status:string, message:string}>}\n */\n injectTransparentVideoElement(htmlElContainer, publicId, options = {}) {\n return new Promise((resolve, reject) => {\n if (!htmlElContainer) {\n reject({status: 'error', message: 'Expecting htmlElContainer to be HTMLElement'});\n }\n\n enforceOptionsForTransparentVideo(options);\n\n let videoURL = this.video_url(publicId, options);\n\n checkSupportForTransparency().then((isNativelyTransparent) => {\n let mountPromise;\n\n if (isNativelyTransparent) {\n mountPromise = mountCloudinaryVideoTag(htmlElContainer, this, publicId, options);\n resolve(htmlElContainer);\n } else {\n mountPromise = mountSeeThruCanvasTag(htmlElContainer, videoURL, options);\n }\n\n mountPromise\n .then(() => {\n resolve(htmlElContainer);\n }).catch(({status, message}) => { reject({status, message});});\n\n // catch for checkSupportForTransparency()\n }).catch(({status, message}) => { reject({status, message});});\n });\n }\n}\n\nassign(Cloudinary, constants);\nexport default Cloudinary;\n","/**\n * @description Creates a hidden HTMLVideoElement with the specified videoOptions\n * @param {{autoplay, playsinline, loop, muted, poster, blobURL, videoURL }} videoOptions\n * @param {boolean} videoOptions.autoplay - autoplays the video if true\n * @param {string} videoOptions.blobURL - the blobURL to set as video.src\n * @param {string} videoOptions.videoURL - the original videoURL the user created (with transformations)\n * @return {HTMLVideoElement}\n */\nfunction createHiddenVideoTag(videoOptions) {\n let { autoplay, playsinline, loop, muted, poster, blobURL, videoURL} = videoOptions;\n\n let el = document.createElement('video');\n el.style.visibility = 'hidden';\n el.position = 'absolute';\n el.x = 0;\n el.y = 0;\n el.src = blobURL;\n el.setAttribute('data-video-url', videoURL); // for debugging/testing\n\n autoplay && el.setAttribute('autoplay', autoplay);\n playsinline && el.setAttribute('playsinline', playsinline);\n loop && el.setAttribute('loop', loop);\n muted && el.setAttribute('muted', muted);\n muted && (el.muted = muted); // this is also needed for autoplay, on top of setAttribute\n poster && el.setAttribute('poster', poster);\n\n // Free memory at the end of the file loading.\n el.onload = () => {\n URL.revokeObjectURL(blobURL);\n };\n\n return el;\n}\n\nexport default createHiddenVideoTag;\n","/**\n * @description This function creates a new instanc eof seeThru (seeThru.create()) and returns a promise of the seeThru instance\n * @param {HTMLVideoElement} videoElement\n * @param {number} max_timeout_ms - Time to elapse before promise is rejected\n * @param {string} customClass - A classname to be added to the canvas element created by seeThru\n * @param {boolean} autoPlay\n * @return {Promise<any>} SeeThru instance or rejection error\n */\nfunction instantiateSeeThru(videoElement, max_timeout_ms, customClass, autoPlay) {\n let {seeThru, setTimeout, clearTimeout} = window;\n\n return new Promise((resolve, reject) => {\n let timerID = setTimeout(() => {\n reject({status: 'error', message: 'Timeout instantiating seeThru instance'});\n }, max_timeout_ms);\n\n if (seeThru) {\n let seeThruInstance = seeThru.create(videoElement).ready(() => {\n // clear timeout reject error\n clearTimeout(timerID);\n\n // force container width, else the canvas can overflow out\n let canvasElement = seeThruInstance.getCanvas();\n canvasElement.style.width = '100%';\n canvasElement.className += ' ' + customClass;\n\n // start the video if autoplay is set\n if (autoPlay) {\n seeThruInstance.play();\n }\n\n resolve(seeThruInstance);\n });\n } else {\n reject({status: 'error', message: 'Error instantiating seeThru instance'});\n }\n });\n}\n\nexport default instantiateSeeThru;\n","import loadScript from \"../../xhr/loadScript\";\nimport getBlobFromURL from \"../../xhr/getBlobFromURL\";\nimport createHiddenVideoTag from \"./createHiddenVideoTag\";\nimport instantiateSeeThru from \"./instantiateSeeThru\";\n\n/**\n *\n * @param {HTMLElement} htmlElContainer\n * @param {string} videoURL\n * @param {TransformationOptions} options\n * @return {Promise<any>}\n */\nfunction mountSeeThruCanvasTag(htmlElContainer, videoURL, options) {\n let {poster, autoplay, playsinline, loop, muted} = options;\n videoURL = videoURL + '.mp4'; // seeThru always uses mp4\n return new Promise((resolve, reject) => {\n loadScript(options.externalLibraries.seeThru, options.max_timeout_ms, window.seeThru).then(() => {\n getBlobFromURL(videoURL, options.max_timeout_ms).then(({payload}) => {\n let videoElement = createHiddenVideoTag({\n blobURL: payload.blobURL,\n videoURL: videoURL, // for debugging/testing\n poster,\n autoplay,\n playsinline,\n loop,\n muted\n });\n\n htmlElContainer.appendChild(videoElement);\n\n instantiateSeeThru(videoElement, options.max_timeout_ms, options.class, options.autoplay)\n .then(() => {\n resolve(htmlElContainer);\n })\n .catch((err) => {\n reject(err);\n });\n\n // catch for getBlobFromURL()\n }).catch(({status, message}) => {\n reject({status, message});\n });\n // catch for loadScript()\n }).catch(({status, message}) => {\n reject({status, message});\n });\n });\n}\n\n\nexport default mountSeeThruCanvasTag;\n","/**\n * @return {Promise<boolean>} - Whether the browser supports transparent videos or not\n */\nimport {isSafari} from \"./util\";\n\nfunction checkSupportForTransparency() {\n return new Promise((resolve, reject) => {\n // Resolve early for safari.\n // Currently (29 December 2021) Safari can play webm/vp9,\n // but it does not support transparent video in the format we're outputting\n if (isSafari()){\n resolve(false);\n }\n\n const video = document.createElement('video');\n const canPlay = video.canPlayType && video.canPlayType('video/webm; codecs=\"vp9\"');\n resolve(canPlay === 'maybe' || canPlay === 'probably');\n });\n}\n\nexport default checkSupportForTransparency;\n","import {isArray, isString} from \"./util\";\n\n\n/**\n * @desc normalize elements, support a single element, array or nodelist, always outputs array\n * @param elements<HTMLElement[]>\n * @returns {[]}\n */\nexport function normalizeToArray(elements) {\n if (isArray(elements)) {\n return elements;\n } else if (elements.constructor.name === \"NodeList\") {\n return [...elements]; // ensure an array is always returned, even if nodelist\n } else if (isString(elements)) {\n return Array.prototype.slice.call(document.querySelectorAll(elements), 0);\n } else {\n return [elements];\n }\n}\n\n","/**\n * Creates the namespace for Cloudinary\n */\nimport utf8_encode from '../utf8_encode';\nimport crc32 from '../crc32';\nimport * as Util from '../util';\nimport Transformation from '../transformation';\nimport Condition from '../condition';\nimport Configuration from '../configuration';\nimport Expression from \"../expression\";\nimport HtmlTag from '../tags/htmltag';\nimport ImageTag from '../tags/imagetag';\nimport PictureTag from '../tags/picturetag';\nimport VideoTag from '../tags/videotag';\nimport ClientHintsMetaTag from '../tags/clienthintsmetatag';\nimport Layer from '../layer/layer';\nimport FetchLayer from '../layer/fetchlayer';\nimport TextLayer from '../layer/textlayer';\nimport SubtitlesLayer from '../layer/subtitleslayer';\nimport Cloudinary from '../cloudinary';\n\nexport default {\n ClientHintsMetaTag,\n Cloudinary,\n Condition,\n Configuration,\n crc32,\n Expression,\n FetchLayer,\n HtmlTag,\n ImageTag,\n Layer,\n PictureTag,\n SubtitlesLayer,\n TextLayer,\n Transformation,\n utf8_encode,\n Util,\n VideoTag\n};\n\nexport {\n ClientHintsMetaTag,\n Cloudinary,\n Condition,\n Configuration,\n crc32,\n Expression,\n FetchLayer,\n HtmlTag,\n ImageTag,\n Layer,\n PictureTag,\n SubtitlesLayer,\n TextLayer,\n Transformation,\n utf8_encode,\n Util,\n VideoTag\n};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_lodash_assign__;","module.exports = __WEBPACK_EXTERNAL_MODULE_lodash_cloneDeep__;","module.exports = __WEBPACK_EXTERNAL_MODULE_lodash_compact__;","module.exports = __WEBPACK_EXTERNAL_MODULE_lodash_difference__;","module.exports = __WEBPACK_EXTERNAL_MODULE_lodash_functions__;","module.exports = __WEBPACK_EXTERNAL_MODULE_lodash_identity__;","module.exports = __WEBPACK_EXTERNAL_MODULE_lodash_includes__;","module.exports = __WEBPACK_EXTERNAL_MODULE_lodash_isArray__;","module.exports = __WEBPACK_EXTERNAL_MODULE_lodash_isElement__;","module.exports = __WEBPACK_EXTERNAL_MODULE_lodash_isFunction__;","module.exports = __WEBPACK_EXTERNAL_MODULE_lodash_isPlainObject__;","module.exports = __WEBPACK_EXTERNAL_MODULE_lodash_isString__;","module.exports = __WEBPACK_EXTERNAL_MODULE_lodash_merge__;","module.exports = __WEBPACK_EXTERNAL_MODULE_lodash_trim__;","var QueryHandler = require('./QueryHandler');\nvar each = require('./Util').each;\n\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n\n var self = this;\n this.listener = function(mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n\n constuctor : MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler : function(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler : function(handler) {\n var handlers = this.handlers;\n each(handlers, function(h, i) {\n if(h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i,1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches : function() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear : function() {\n each(this.handlers, function(handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess : function() {\n var action = this.matches() ? 'on' : 'off';\n\n each(this.handlers, function(handler) {\n handler[action]();\n });\n }\n};\n\nmodule.exports = MediaQuery;\n","var MediaQuery = require('./MediaQuery');\nvar Util = require('./Util');\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\nfunction MediaQueryDispatch () {\n if(!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n\n constructor : MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register : function(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if(!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n }\n\n //normalise to object in an array\n if(isFunction(options)) {\n options = { match : options };\n }\n if(!isArray(options)) {\n options = [options];\n }\n each(options, function(handler) {\n if (isFunction(handler)) {\n handler = { match : handler };\n }\n queries[q].addHandler(handler);\n });\n\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister : function(q, handler) {\n var query = this.queries[q];\n\n if(query) {\n if(handler) {\n query.removeHandler(handler);\n }\n else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\n\nmodule.exports = MediaQueryDispatch;\n","/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n\n constructor : QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup : function() {\n if(this.options.setup) {\n this.options.setup();\n }\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on : function() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off : function() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy : function() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals : function(target) {\n return this.options === target || this.options.match === target;\n }\n\n};\n\nmodule.exports = QueryHandler;\n","/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n","var MediaQueryDispatch = require('./MediaQueryDispatch');\nmodule.exports = new MediaQueryDispatch();\n","// Copyright (c) 2017 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ┌────────────────────────────────────────────────────────────┠\\\\\n// │ Eve 0.5.4 - JavaScript Events Library │ \\\\\n// ├────────────────────────────────────────────────────────────┤ \\\\\n// │ Author Dmitry Baranovskiy (http://dmitry.baranovskiy.com/) │ \\\\\n// └────────────────────────────────────────────────────────────┘ \\\\\n\n(function (glob) {\n var version = \"0.5.4\",\n has = \"hasOwnProperty\",\n separator = /[\\.\\/]/,\n comaseparator = /\\s*,\\s*/,\n wildcard = \"*\",\n numsort = function (a, b) {\n return a - b;\n },\n current_event,\n stop,\n events = {n: {}},\n firstDefined = function () {\n for (var i = 0, ii = this.length; i < ii; i++) {\n if (typeof this[i] != \"undefined\") {\n return this[i];\n }\n }\n },\n lastDefined = function () {\n var i = this.length;\n while (--i) {\n if (typeof this[i] != \"undefined\") {\n return this[i];\n }\n }\n },\n objtos = Object.prototype.toString,\n Str = String,\n isArray = Array.isArray || function (ar) {\n return ar instanceof Array || objtos.call(ar) == \"[object Array]\";\n },\n /*\\\n * eve\n [ method ]\n\n * Fires event with given `name`, given scope and other parameters.\n\n - name (string) name of the *event*, dot (`.`) or slash (`/`) separated\n - scope (object) context for the event handlers\n - varargs (...) the rest of arguments will be sent to event handlers\n\n = (object) array of returned values from the listeners. Array has two methods `.firstDefined()` and `.lastDefined()` to get first or last not `undefined` value.\n \\*/\n eve = function (name, scope) {\n var oldstop = stop,\n args = Array.prototype.slice.call(arguments, 2),\n listeners = eve.listeners(name),\n z = 0,\n l,\n indexed = [],\n queue = {},\n out = [],\n ce = current_event;\n out.firstDefined = firstDefined;\n out.lastDefined = lastDefined;\n current_event = name;\n stop = 0;\n for (var i = 0, ii = listeners.length; i < ii; i++) if (\"zIndex\" in listeners[i]) {\n indexed.push(listeners[i].zIndex);\n if (listeners[i].zIndex < 0) {\n queue[listeners[i].zIndex] = listeners[i];\n }\n }\n indexed.sort(numsort);\n while (indexed[z] < 0) {\n l = queue[indexed[z++]];\n out.push(l.apply(scope, args));\n if (stop) {\n stop = oldstop;\n return out;\n }\n }\n for (i = 0; i < ii; i++) {\n l = listeners[i];\n if (\"zIndex\" in l) {\n if (l.zIndex == indexed[z]) {\n out.push(l.apply(scope, args));\n if (stop) {\n break;\n }\n do {\n z++;\n l = queue[indexed[z]];\n l && out.push(l.apply(scope, args));\n if (stop) {\n break;\n }\n } while (l)\n } else {\n queue[l.zIndex] = l;\n }\n } else {\n out.push(l.apply(scope, args));\n if (stop) {\n break;\n }\n }\n }\n stop = oldstop;\n current_event = ce;\n return out;\n };\n // Undocumented. Debug only.\n eve._events = events;\n /*\\\n * eve.listeners\n [ method ]\n\n * Internal method which gives you array of all event handlers that will be triggered by the given `name`.\n\n - name (string) name of the event, dot (`.`) or slash (`/`) separated\n\n = (array) array of event handlers\n \\*/\n eve.listeners = function (name) {\n var names = isArray(name) ? name : name.split(separator),\n e = events,\n item,\n items,\n k,\n i,\n ii,\n j,\n jj,\n nes,\n es = [e],\n out = [];\n for (i = 0, ii = names.length; i < ii; i++) {\n nes = [];\n for (j = 0, jj = es.length; j < jj; j++) {\n e = es[j].n;\n items = [e[names[i]], e[wildcard]];\n k = 2;\n while (k--) {\n item = items[k];\n if (item) {\n nes.push(item);\n out = out.concat(item.f || []);\n }\n }\n }\n es = nes;\n }\n return out;\n };\n /*\\\n * eve.separator\n [ method ]\n\n * If for some reasons you don’t like default separators (`.` or `/`) you can specify yours\n * here. Be aware that if you pass a string longer than one character it will be treated as\n * a list of characters.\n\n - separator (string) new separator. Empty string resets to default: `.` or `/`.\n \\*/\n eve.separator = function (sep) {\n if (sep) {\n sep = Str(sep).replace(/(?=[\\.\\^\\]\\[\\-])/g, \"\\\\\");\n sep = \"[\" + sep + \"]\";\n separator = new RegExp(sep);\n } else {\n separator = /[\\.\\/]/;\n }\n };\n /*\\\n * eve.on\n [ method ]\n **\n * Binds given event handler with a given name. You can use wildcards “`*`†for the names:\n | eve.on(\"*.under.*\", f);\n | eve(\"mouse.under.floor\"); // triggers f\n * Use @eve to trigger the listener.\n **\n - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards\n - f (function) event handler function\n **\n - name (array) if you don’t want to use separators, you can use array of strings\n - f (function) event handler function\n **\n = (function) returned function accepts a single numeric parameter that represents z-index of the handler. It is an optional feature and only used when you need to ensure that some subset of handlers will be invoked in a given order, despite of the order of assignment.\n > Example:\n | eve.on(\"mouse\", eatIt)(2);\n | eve.on(\"mouse\", scream);\n | eve.on(\"mouse\", catchIt)(1);\n * This will ensure that `catchIt` function will be called before `eatIt`.\n *\n * If you want to put your handler before non-indexed handlers, specify a negative value.\n * Note: I assume most of the time you don’t need to worry about z-index, but it’s nice to have this feature “just in caseâ€.\n \\*/\n eve.on = function (name, f) {\n if (typeof f != \"function\") {\n return function () {};\n }\n var names = isArray(name) ? isArray(name[0]) ? name : [name] : Str(name).split(comaseparator);\n for (var i = 0, ii = names.length; i < ii; i++) {\n (function (name) {\n var names = isArray(name) ? name : Str(name).split(separator),\n e = events,\n exist;\n for (var i = 0, ii = names.length; i < ii; i++) {\n e = e.n;\n e = e.hasOwnProperty(names[i]) && e[names[i]] || (e[names[i]] = {n: {}});\n }\n e.f = e.f || [];\n for (i = 0, ii = e.f.length; i < ii; i++) if (e.f[i] == f) {\n exist = true;\n break;\n }\n !exist && e.f.push(f);\n }(names[i]));\n }\n return function (zIndex) {\n if (+zIndex == +zIndex) {\n f.zIndex = +zIndex;\n }\n };\n };\n /*\\\n * eve.f\n [ method ]\n **\n * Returns function that will fire given event with optional arguments.\n * Arguments that will be passed to the result function will be also\n * concated to the list of final arguments.\n | el.onclick = eve.f(\"click\", 1, 2);\n | eve.on(\"click\", function (a, b, c) {\n | console.log(a, b, c); // 1, 2, [event object]\n | });\n - event (string) event name\n - varargs (…) and any other arguments\n = (function) possible event handler function\n \\*/\n eve.f = function (event) {\n var attrs = [].slice.call(arguments, 1);\n return function () {\n eve.apply(null, [event, null].concat(attrs).concat([].slice.call(arguments, 0)));\n };\n };\n /*\\\n * eve.stop\n [ method ]\n **\n * Is used inside an event handler to stop the event, preventing any subsequent listeners from firing.\n \\*/\n eve.stop = function () {\n stop = 1;\n };\n /*\\\n * eve.nt\n [ method ]\n **\n * Could be used inside event handler to figure out actual name of the event.\n **\n - subname (string) #optional subname of the event\n **\n = (string) name of the event, if `subname` is not specified\n * or\n = (boolean) `true`, if current event’s name contains `subname`\n \\*/\n eve.nt = function (subname) {\n var cur = isArray(current_event) ? current_event.join(\".\") : current_event;\n if (subname) {\n return new RegExp(\"(?:\\\\.|\\\\/|^)\" + subname + \"(?:\\\\.|\\\\/|$)\").test(cur);\n }\n return cur;\n };\n /*\\\n * eve.nts\n [ method ]\n **\n * Could be used inside event handler to figure out actual name of the event.\n **\n **\n = (array) names of the event\n \\*/\n eve.nts = function () {\n return isArray(current_event) ? current_event : current_event.split(separator);\n };\n /*\\\n * eve.off\n [ method ]\n **\n * Removes given function from the list of event listeners assigned to given name.\n * If no arguments specified all the events will be cleared.\n **\n - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards\n - f (function) event handler function\n \\*/\n /*\\\n * eve.unbind\n [ method ]\n **\n * See @eve.off\n \\*/\n eve.off = eve.unbind = function (name, f) {\n if (!name) {\n eve._events = events = {n: {}};\n return;\n }\n var names = isArray(name) ? isArray(name[0]) ? name : [name] : Str(name).split(comaseparator);\n if (names.length > 1) {\n for (var i = 0, ii = names.length; i < ii; i++) {\n eve.off(names[i], f);\n }\n return;\n }\n names = isArray(name) ? name : Str(name).split(separator);\n var e,\n key,\n splice,\n i, ii, j, jj,\n cur = [events],\n inodes = [];\n for (i = 0, ii = names.length; i < ii; i++) {\n for (j = 0; j < cur.length; j += splice.length - 2) {\n splice = [j, 1];\n e = cur[j].n;\n if (names[i] != wildcard) {\n if (e[names[i]]) {\n splice.push(e[names[i]]);\n inodes.unshift({\n n: e,\n name: names[i]\n });\n }\n } else {\n for (key in e) if (e[has](key)) {\n splice.push(e[key]);\n inodes.unshift({\n n: e,\n name: key\n });\n }\n }\n cur.splice.apply(cur, splice);\n }\n }\n for (i = 0, ii = cur.length; i < ii; i++) {\n e = cur[i];\n while (e.n) {\n if (f) {\n if (e.f) {\n for (j = 0, jj = e.f.length; j < jj; j++) if (e.f[j] == f) {\n e.f.splice(j, 1);\n break;\n }\n !e.f.length && delete e.f;\n }\n for (key in e.n) if (e.n[has](key) && e.n[key].f) {\n var funcs = e.n[key].f;\n for (j = 0, jj = funcs.length; j < jj; j++) if (funcs[j] == f) {\n funcs.splice(j, 1);\n break;\n }\n !funcs.length && delete e.n[key].f;\n }\n } else {\n delete e.f;\n for (key in e.n) if (e.n[has](key) && e.n[key].f) {\n delete e.n[key].f;\n }\n }\n e = e.n;\n }\n }\n // prune inner nodes in path\n prune: for (i = 0, ii = inodes.length; i < ii; i++) {\n e = inodes[i];\n for (key in e.n[e.name].f) {\n // not empty (has listeners)\n continue prune;\n }\n for (key in e.n[e.name].n) {\n // not empty (has children)\n continue prune;\n }\n // is empty\n delete e.n[e.name];\n }\n };\n /*\\\n * eve.once\n [ method ]\n **\n * Binds given event handler with a given name to only run once then unbind itself.\n | eve.once(\"login\", f);\n | eve(\"login\"); // triggers f\n | eve(\"login\"); // no listeners\n * Use @eve to trigger the listener.\n **\n - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards\n - f (function) event handler function\n **\n = (function) same return function as @eve.on\n \\*/\n eve.once = function (name, f) {\n var f2 = function () {\n eve.off(name, f2);\n return f.apply(this, arguments);\n };\n return eve.on(name, f2);\n };\n /*\\\n * eve.version\n [ property (string) ]\n **\n * Current version of the library.\n \\*/\n eve.version = version;\n eve.toString = function () {\n return \"You are running Eve \" + version;\n };\n glob.eve = eve;\n typeof module != \"undefined\" && module.exports ? module.exports = eve : typeof define === \"function\" && define.amd ? define(\"eve\", [], function () { return eve; }) : glob.eve = eve;\n})(typeof window != \"undefined\" ? window : this);\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","var camel2hyphen = require('string-convert/camel2hyphen');\n\nvar isDimension = function (feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function (obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature);\n // Add px to dimension features\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n if (index < features.length-1) {\n mq += ' and '\n }\n });\n return mq;\n};\n\nvar json2mq = function (query) {\n var mq = '';\n if (typeof query === 'string') {\n return query;\n }\n // Handling array of media queries\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n if (index < query.length-1) {\n mq += ', '\n }\n });\n return mq;\n }\n // Handling single media query\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.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\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\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 */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\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 */\nvar now = function() {\n return root.Date.now();\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 */\nfunction 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 result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\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 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 * 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 */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (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 */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\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 */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\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 */\nfunction 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 = value.replace(reTrim, '');\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\nmodule.exports = debounce;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction 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// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction 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// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\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 */\nfunction 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// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\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 */\nfunction 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// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\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 */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\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 */\nfunction 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\nmodule.exports = apply;\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 */\nfunction 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\nmodule.exports = arrayEach;\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 */\nfunction 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\nmodule.exports = arrayFilter;\n","var baseIndexOf = require('./_baseIndexOf');\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 */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\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 */\nfunction 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\nmodule.exports = arrayIncludesWith;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\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 */\nfunction 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\nmodule.exports = arrayLikeKeys;\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 */\nfunction 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\nmodule.exports = arrayMap;\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 */\nfunction 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\nmodule.exports = arrayPush;\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 */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\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 */\nfunction 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\nmodule.exports = assignMergeValue;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\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 */\nfunction 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\nmodule.exports = assignValue;\n","var eq = require('./eq');\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 */\nfunction 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\nmodule.exports = assocIndexOf;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\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 */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\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 */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var defineProperty = require('./_defineProperty');\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 */\nfunction 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\nmodule.exports = baseAssignValue;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar 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 identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\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 */\nfunction 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\nmodule.exports = baseClone;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\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 */\nvar 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\nmodule.exports = baseCreate;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\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 */\nfunction 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\nmodule.exports = baseDifference;\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 */\nfunction 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\nmodule.exports = baseFindIndex;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\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 */\nfunction 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\nmodule.exports = baseFlatten;\n","var createBaseFor = require('./_createBaseFor');\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 */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var arrayFilter = require('./_arrayFilter'),\n isFunction = require('./isFunction');\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 */\nfunction baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n}\n\nmodule.exports = baseFunctions;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\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 */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\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 */\nfunction 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\nmodule.exports = baseGetTag;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\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 */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\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 */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\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 */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\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 */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\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 */\nfunction 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\nmodule.exports = baseIsNative;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\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 */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar 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 identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\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 */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\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 */\nfunction 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\nmodule.exports = baseKeys;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\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 */\nfunction 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\nmodule.exports = baseKeysIn;\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\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 */\nfunction 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\nmodule.exports = baseMerge;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\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 */\nfunction 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\nmodule.exports = baseMergeDeep;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\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 */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\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 */\nvar 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\nmodule.exports = baseSetToString;\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 */\nfunction 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\nmodule.exports = baseSlice;\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 */\nfunction 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\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\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 */\nfunction 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\nmodule.exports = baseToString;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\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 */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\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 */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var arrayMap = require('./_arrayMap');\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 */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nmodule.exports = baseValues;\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 */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var baseSlice = require('./_baseSlice');\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 */\nfunction 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\nmodule.exports = castSlice;\n","var baseIndexOf = require('./_baseIndexOf');\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 */\nfunction charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n}\n\nmodule.exports = charsEndIndex;\n","var baseIndexOf = require('./_baseIndexOf');\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 */\nfunction 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\nmodule.exports = charsStartIndex;\n","var Uint8Array = require('./_Uint8Array');\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 */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\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 */\nfunction 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\nmodule.exports = cloneBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\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 */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\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 */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\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 */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\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 */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\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 */\nfunction 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\nmodule.exports = copyArray;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\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 */\nfunction 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\nmodule.exports = copyObject;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\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 */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\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 */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\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 */\nfunction 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\nmodule.exports = createAssigner;\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 */\nfunction 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\nmodule.exports = createBaseFor;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\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 */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\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 */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var isKeyable = require('./_isKeyable');\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 */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\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 */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\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 */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\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 */\nfunction 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\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\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 */\nvar 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\nmodule.exports = getSymbols;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\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 */\nvar 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\nmodule.exports = getSymbolsIn;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\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 */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((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\nmodule.exports = getTag;\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 */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\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/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\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 */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\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 */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\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 */\nfunction 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\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\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 */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\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 */\nfunction 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\nmodule.exports = hashSet;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\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 */\nfunction 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\nmodule.exports = initCloneArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar 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/**\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 */\nfunction 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\nmodule.exports = initCloneByTag;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\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 */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\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 */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\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 */\nfunction 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\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\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 */\nfunction 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\nmodule.exports = isIterateeCall;\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 */\nfunction 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\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\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 */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\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 */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\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 */\nfunction 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\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\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 */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\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 */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\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 */\nfunction 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\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\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 */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\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 */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\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 */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\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 */\nfunction 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\nmodule.exports = mapCacheSet;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\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 */\nfunction 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\nmodule.exports = nativeKeysIn;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar 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\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\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 */\nvar nativeObjectToString = objectProto.toString;\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 */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\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 */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\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 */\nfunction 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\nmodule.exports = overRest;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\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 */\nfunction 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\nmodule.exports = safeGet;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\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 */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\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 */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\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 */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\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 */\nfunction 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\nmodule.exports = shortOut;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\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 */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\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 */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\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 */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\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 */\nfunction 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\nmodule.exports = stackSet;\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 */\nfunction 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\nmodule.exports = strictIndexOf;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\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 */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\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 */\nfunction 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\nmodule.exports = toSource;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\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 */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\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 rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\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 */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","var assignValue = require('./_assignValue'),\n copyObject = require('./_copyObject'),\n createAssigner = require('./_createAssigner'),\n isArrayLike = require('./isArrayLike'),\n isPrototype = require('./_isPrototype'),\n keys = require('./keys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\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 */\nvar 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\nmodule.exports = assign;\n","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\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 */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\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 */\nfunction 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\nmodule.exports = compact;\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 */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var baseDifference = require('./_baseDifference'),\n baseFlatten = require('./_baseFlatten'),\n baseRest = require('./_baseRest'),\n isArrayLikeObject = require('./isArrayLikeObject');\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 */\nvar difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n});\n\nmodule.exports = difference;\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 */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseFunctions = require('./_baseFunctions'),\n keys = require('./keys');\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 */\nfunction functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n}\n\nmodule.exports = functions;\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 */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIndexOf = require('./_baseIndexOf'),\n isArrayLike = require('./isArrayLike'),\n isString = require('./isString'),\n toInteger = require('./toInteger'),\n values = require('./values');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\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 */\nfunction 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\nmodule.exports = includes;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\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 */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\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 */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\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 */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\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 */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\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 */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var isObjectLike = require('./isObjectLike'),\n isPlainObject = require('./isPlainObject');\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 */\nfunction isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n}\n\nmodule.exports = isElement;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\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 */\nfunction 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\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\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 */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\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 */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\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 */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\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 */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\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 */\nfunction 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\nmodule.exports = isPlainObject;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\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 */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\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 */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\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 */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\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 */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\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 */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\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 */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\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 */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\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 */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\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 */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\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 */\nfunction 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\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\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 */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\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 */\nfunction 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\nmodule.exports = toNumber;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\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 */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var baseToString = require('./_baseToString');\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 */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var baseToString = require('./_baseToString'),\n baseTrim = require('./_baseTrim'),\n castSlice = require('./_castSlice'),\n charsEndIndex = require('./_charsEndIndex'),\n charsStartIndex = require('./_charsStartIndex'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\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 */\nfunction 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\nmodule.exports = trim;\n","var baseValues = require('./_baseValues'),\n keys = require('./keys');\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 */\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nmodule.exports = values;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = prefix || defaultDelimiter\n var pattern = capture || group\n var prevText = prefix || (typeof tokens[tokens.length - 1] === 'string' ? tokens[tokens.length - 1] : '')\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : restrictBacktrack(delimiter, prevText))\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\nfunction restrictBacktrack(delimiter, prevText) {\n if (!prevText || prevText.indexOf(delimiter) > -1) {\n return '[^' + escapeString(delimiter) + ']+?'\n }\n\n return escapeString(prevText) + '|(?:(?!' + escapeString(prevText) + ')[^' + escapeString(delimiter) + '])+?'\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports['default'] = {\n slide: require('./menus/slide'),\n stack: require('./menus/stack'),\n elastic: require('./menus/elastic'),\n bubble: require('./menus/bubble'),\n push: require('./menus/push'),\n pushRotate: require('./menus/pushRotate'),\n scaleDown: require('./menus/scaleDown'),\n scaleRotate: require('./menus/scaleRotate'),\n fallDown: require('./menus/fallDown'),\n reveal: require('./menus/reveal')\n};\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _extends = Object.assign || 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; };\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar BurgerIcon = (function (_Component) {\n _inherits(BurgerIcon, _Component);\n\n function BurgerIcon(props) {\n _classCallCheck(this, BurgerIcon);\n\n _get(Object.getPrototypeOf(BurgerIcon.prototype), 'constructor', this).call(this, props);\n this.state = {\n hover: false\n };\n }\n\n _createClass(BurgerIcon, [{\n key: 'getLineStyle',\n value: function getLineStyle(index) {\n return _extends({\n position: 'absolute',\n height: '20%',\n left: 0,\n right: 0,\n top: 20 * (index * 2) + '%',\n opacity: this.state.hover ? 0.6 : 1\n }, this.state.hover && this.props.styles.bmBurgerBarsHover);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this = this;\n\n var icon = undefined;\n var buttonStyle = {\n position: 'absolute',\n left: 0,\n top: 0,\n zIndex: 1,\n width: '100%',\n height: '100%',\n margin: 0,\n padding: 0,\n border: 'none',\n fontSize: 0,\n background: 'transparent',\n cursor: 'pointer'\n };\n\n if (this.props.customIcon) {\n var extraProps = {\n className: ('bm-icon ' + (this.props.customIcon.props.className || '')).trim(),\n style: _extends({ width: '100%', height: '100%' }, this.props.styles.bmIcon)\n };\n icon = _react2['default'].cloneElement(this.props.customIcon, extraProps);\n } else {\n icon = _react2['default'].createElement(\n 'span',\n null,\n [0, 1, 2].map(function (bar) {\n return _react2['default'].createElement('span', {\n key: bar,\n className: ('bm-burger-bars ' + _this.props.barClassName + ' ' + (_this.state.hover ? 'bm-burger-bars-hover' : '')).trim(),\n style: _extends({}, _this.getLineStyle(bar), _this.props.styles.bmBurgerBars)\n });\n })\n );\n }\n\n return _react2['default'].createElement(\n 'div',\n {\n className: ('bm-burger-button ' + this.props.className).trim(),\n style: _extends({ zIndex: 1000 }, this.props.styles.bmBurgerButton)\n },\n _react2['default'].createElement(\n 'button',\n {\n type: 'button',\n id: 'react-burger-menu-btn',\n onClick: this.props.onClick,\n onMouseOver: function () {\n _this.setState({ hover: true });\n if (_this.props.onIconHoverChange) {\n _this.props.onIconHoverChange({ isMouseIn: true });\n }\n },\n onMouseOut: function () {\n _this.setState({ hover: false });\n if (_this.props.onIconHoverChange) {\n _this.props.onIconHoverChange({ isMouseIn: false });\n }\n },\n style: buttonStyle\n },\n 'Open Menu'\n ),\n icon\n );\n }\n }]);\n\n return BurgerIcon;\n})(_react.Component);\n\nexports['default'] = BurgerIcon;\n\nBurgerIcon.propTypes = {\n barClassName: _propTypes2['default'].string,\n customIcon: _propTypes2['default'].element,\n styles: _propTypes2['default'].object\n};\n\nBurgerIcon.defaultProps = {\n barClassName: '',\n className: '',\n styles: {}\n};\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _extends = Object.assign || 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; };\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar CrossIcon = (function (_Component) {\n _inherits(CrossIcon, _Component);\n\n function CrossIcon() {\n _classCallCheck(this, CrossIcon);\n\n _get(Object.getPrototypeOf(CrossIcon.prototype), 'constructor', this).apply(this, arguments);\n }\n\n _createClass(CrossIcon, [{\n key: 'getCrossStyle',\n value: function getCrossStyle(type) {\n return {\n position: 'absolute',\n width: 3,\n height: 14,\n transform: type === 'before' ? 'rotate(45deg)' : 'rotate(-45deg)'\n };\n }\n }, {\n key: 'render',\n value: function render() {\n var _this = this;\n\n var icon;\n var buttonWrapperStyle = {\n position: 'absolute',\n width: 24,\n height: 24,\n right: 8,\n top: 8\n };\n var buttonStyle = {\n position: 'absolute',\n left: 0,\n top: 0,\n zIndex: 1,\n width: '100%',\n height: '100%',\n margin: 0,\n padding: 0,\n border: 'none',\n fontSize: 0,\n background: 'transparent',\n cursor: 'pointer'\n };\n\n if (this.props.customIcon) {\n var extraProps = {\n className: ('bm-cross ' + (this.props.customIcon.props.className || '')).trim(),\n style: _extends({ width: '100%', height: '100%' }, this.props.styles.bmCross)\n };\n icon = _react2['default'].cloneElement(this.props.customIcon, extraProps);\n } else {\n icon = _react2['default'].createElement(\n 'span',\n { style: { position: 'absolute', top: '6px', right: '14px' } },\n ['before', 'after'].map(function (type, i) {\n return _react2['default'].createElement('span', {\n key: i,\n className: ('bm-cross ' + _this.props.crossClassName).trim(),\n style: _extends({}, _this.getCrossStyle(type), _this.props.styles.bmCross)\n });\n })\n );\n }\n\n return _react2['default'].createElement(\n 'div',\n {\n className: ('bm-cross-button ' + this.props.className).trim(),\n style: _extends({}, buttonWrapperStyle, this.props.styles.bmCrossButton)\n },\n _react2['default'].createElement(\n 'button',\n _extends({\n type: 'button',\n id: 'react-burger-cross-btn',\n onClick: this.props.onClick,\n style: buttonStyle\n }, !this.props.isOpen && { tabIndex: -1 }),\n 'Close Menu'\n ),\n icon\n );\n }\n }]);\n\n return CrossIcon;\n})(_react.Component);\n\nexports['default'] = CrossIcon;\n\nCrossIcon.propTypes = {\n crossClassName: _propTypes2['default'].string,\n customIcon: _propTypes2['default'].element,\n isOpen: _propTypes2['default'].bool,\n styles: _propTypes2['default'].object\n};\n\nCrossIcon.defaultProps = {\n crossClassName: '',\n className: '',\n styles: {},\n isOpen: false\n};\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nvar styles = {\n overlay: function overlay(isOpen) {\n return {\n position: 'fixed',\n zIndex: 1000,\n width: '100%',\n height: '100%',\n background: 'rgba(0, 0, 0, 0.3)',\n opacity: isOpen ? 1 : 0,\n MozTransform: isOpen ? '' : 'translate3d(100%, 0, 0)',\n MsTransform: isOpen ? '' : 'translate3d(100%, 0, 0)',\n OTransform: isOpen ? '' : 'translate3d(100%, 0, 0)',\n WebkitTransform: isOpen ? '' : 'translate3d(100%, 0, 0)',\n transform: isOpen ? '' : 'translate3d(100%, 0, 0)',\n transition: isOpen ? 'opacity 0.3s' : 'opacity 0.3s, transform 0s 0.3s'\n };\n },\n\n menuWrap: function menuWrap(isOpen, width, right) {\n return {\n position: 'fixed',\n right: right ? 0 : 'inherit',\n zIndex: 1100,\n width: width,\n height: '100%',\n MozTransform: isOpen ? '' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n MsTransform: isOpen ? '' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n OTransform: isOpen ? '' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n transform: isOpen ? '' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n transition: 'all 0.5s'\n };\n },\n\n menu: function menu() {\n return {\n height: '100%',\n boxSizing: 'border-box',\n overflow: 'auto'\n };\n },\n\n itemList: function itemList() {\n return {\n height: '100%'\n };\n },\n\n item: function item() {\n return {\n display: 'block'\n };\n }\n};\n\nexports['default'] = styles;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports.focusOnFirstMenuItem = focusOnFirstMenuItem;\nexports.focusOnLastMenuItem = focusOnLastMenuItem;\nexports.focusOnCrossButton = focusOnCrossButton;\nexports.focusOnMenuButton = focusOnMenuButton;\nexports.focusOnMenuItem = focusOnMenuItem;\nexports.focusOnNextMenuItem = focusOnNextMenuItem;\nexports.focusOnPreviousMenuItem = focusOnPreviousMenuItem;\n\nfunction focusOnFirstMenuItem() {\n var firstItem = Array.from(document.getElementsByClassName('bm-item')).shift();\n if (firstItem) {\n firstItem.focus();\n }\n}\n\nfunction focusOnLastMenuItem() {\n var lastItem = Array.from(document.getElementsByClassName('bm-item')).pop();\n if (lastItem) {\n lastItem.focus();\n }\n}\n\nfunction focusOnCrossButton() {\n var crossButton = document.getElementById('react-burger-cross-btn');\n if (crossButton) {\n crossButton.focus();\n }\n}\n\nfunction focusOnMenuButton() {\n var menuButton = document.getElementById('react-burger-menu-btn');\n if (menuButton) {\n menuButton.focus();\n }\n}\n\nfunction focusOnMenuItem(siblingType) {\n if (document.activeElement.className.includes('bm-item')) {\n var sibling = document.activeElement[siblingType];\n if (sibling) {\n sibling.focus();\n } else {\n focusOnCrossButton();\n }\n } else {\n if (siblingType === 'previousElementSibling') {\n focusOnLastMenuItem();\n } else {\n focusOnFirstMenuItem();\n }\n }\n}\n\nfunction focusOnNextMenuItem() {\n focusOnMenuItem('nextElementSibling');\n}\n\nfunction focusOnPreviousMenuItem() {\n focusOnMenuItem('previousElementSibling');\n}","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nexports['default'] = function () {\n var Snap = undefined;\n try {\n Snap = require('snapsvg-cjs');\n } finally {\n return Snap;\n }\n};\n\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar pxToNum = function pxToNum(val) {\n return parseInt(val.slice(0, -2), 10);\n};\nexports.pxToNum = pxToNum;","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();\n\nvar _extends = Object.assign || 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; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _helpersBaseStyles = require('./helpers/baseStyles');\n\nvar _helpersBaseStyles2 = _interopRequireDefault(_helpersBaseStyles);\n\nvar _helpersDom = require('./helpers/dom');\n\nvar _componentsBurgerIcon = require('./components/BurgerIcon');\n\nvar _componentsBurgerIcon2 = _interopRequireDefault(_componentsBurgerIcon);\n\nvar _componentsCrossIcon = require('./components/CrossIcon');\n\nvar _componentsCrossIcon2 = _interopRequireDefault(_componentsCrossIcon);\n\nexports['default'] = function (styles) {\n if (!styles) {\n throw new Error('No styles supplied');\n }\n\n var ARROW_DOWN = 'ArrowDown';\n var ARROW_UP = 'ArrowUp';\n var ESCAPE = 'Escape';\n var SPACE = ' ';\n var HOME = 'Home';\n var END = 'End';\n\n function usePrevious(value) {\n var ref = _react2['default'].useRef(value);\n _react2['default'].useEffect(function () {\n ref.current = value;\n });\n return ref.current;\n }\n\n var Menu = function Menu(props) {\n var defaultProps = {\n bodyClassName: '',\n burgerBarClassName: '',\n burgerButtonClassName: '',\n className: '',\n crossButtonClassName: '',\n crossClassName: '',\n disableAutoFocus: false,\n disableCloseOnEsc: false,\n htmlClassName: '',\n id: '',\n itemClassName: '',\n itemListClassName: '',\n menuClassName: '',\n morphShapeClassName: '',\n noOverlay: false,\n noTransition: false,\n onStateChange: function onStateChange() {},\n outerContainerId: '',\n overlayClassName: '',\n pageWrapId: '',\n styles: {},\n width: 300,\n onIconHoverChange: function onIconHoverChange() {},\n itemListElement: 'nav'\n };\n props = _extends({}, defaultProps, props);\n\n var _React$useState = _react2['default'].useState(false);\n\n var _React$useState2 = _slicedToArray(_React$useState, 2);\n\n var isOpen = _React$useState2[0];\n var setIsOpen = _React$useState2[1];\n\n var timeoutId = _react2['default'].useRef();\n var toggleOptions = _react2['default'].useRef({});\n var prevIsOpenProp = usePrevious(props.isOpen);\n\n _react2['default'].useEffect(function () {\n if (props.isOpen) {\n toggleMenu({ isOpen: true, noStateChange: true });\n }\n\n return function cleanup() {\n applyWrapperStyles(false);\n clearCurrentTimeout();\n };\n }, []);\n\n _react2['default'].useEffect(function () {\n var wasToggled = typeof props.isOpen !== 'undefined' && props.isOpen !== isOpen && props.isOpen !== prevIsOpenProp;\n\n if (wasToggled) {\n toggleMenu();\n // Toggling changes SVG animation requirements, so defer these until next update\n return;\n }\n\n if (styles.svg) {\n (function () {\n var morphShape = document.getElementById('bm-morph-shape');\n var path = styles.svg.lib(morphShape).select('path');\n\n if (isOpen) {\n // Animate SVG path\n styles.svg.animate(path);\n } else {\n // Reset path (timeout ensures animation happens off screen)\n setTimeout(function () {\n path.attr('d', styles.svg.pathInitial);\n }, 300);\n }\n })();\n }\n });\n\n _react2['default'].useEffect(function () {\n var _toggleOptions$current = toggleOptions.current;\n var noStateChange = _toggleOptions$current.noStateChange;\n var focusOnLastItem = _toggleOptions$current.focusOnLastItem;\n\n if (!noStateChange) {\n props.onStateChange({ isOpen: isOpen });\n }\n\n if (!props.disableAutoFocus) {\n // For accessibility reasons, ensures that when we toggle open,\n // we focus the first or last menu item according to given parameter\n if (isOpen) {\n focusOnLastItem ? (0, _helpersDom.focusOnLastMenuItem)() : (0, _helpersDom.focusOnFirstMenuItem)();\n } else {\n if (document.activeElement) {\n document.activeElement.blur();\n } else {\n document.body.blur(); // Needed for IE\n }\n }\n }\n\n // Timeout ensures wrappers are cleared after animation finishes\n clearCurrentTimeout();\n timeoutId.current = setTimeout(function () {\n timeoutId.current = null;\n if (!isOpen) {\n applyWrapperStyles(false);\n }\n }, 500);\n\n // Bind keydown handlers (or custom function if supplied)\n var defaultOnKeyDown = isOpen ? onKeyDownOpen : onKeyDownClosed;\n var onKeyDown = props.customOnKeyDown || defaultOnKeyDown;\n window.addEventListener('keydown', onKeyDown);\n\n return function cleanup() {\n window.removeEventListener('keydown', onKeyDown);\n };\n }, [isOpen]);\n\n function toggleMenu() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n toggleOptions.current = options;\n\n applyWrapperStyles();\n\n // Ensures wrapper styles are applied before the menu is toggled\n setTimeout(function () {\n setIsOpen(function (open) {\n return typeof options.isOpen !== 'undefined' ? options.isOpen : !open;\n });\n });\n }\n\n function open() {\n if (typeof props.onOpen === 'function') {\n props.onOpen();\n } else {\n toggleMenu();\n }\n }\n\n function close() {\n if (typeof props.onClose === 'function') {\n props.onClose();\n } else {\n toggleMenu();\n }\n }\n\n function getStyle(style, index) {\n var _props = props;\n var width = _props.width;\n var right = _props.right;\n\n var formattedWidth = typeof width !== 'string' ? width + 'px' : width;\n return style(isOpen, formattedWidth, right, index);\n }\n\n // Builds styles incrementally for a given element\n function getStyles(el, index, inline) {\n var propName = 'bm' + el.replace(el.charAt(0), el.charAt(0).toUpperCase());\n\n // Set base styles\n var output = _helpersBaseStyles2['default'][el] ? getStyle(_helpersBaseStyles2['default'][el]) : {};\n\n // Add animation-specific styles\n if (styles[el]) {\n output = _extends({}, output, getStyle(styles[el], index + 1));\n }\n\n // Add custom styles\n if (props.styles[propName]) {\n output = _extends({}, output, props.styles[propName]);\n }\n\n // Add element inline styles\n if (inline) {\n output = _extends({}, output, inline);\n }\n\n // Remove transition if required\n // (useful if rendering open initially)\n if (props.noTransition) {\n delete output.transition;\n }\n\n return output;\n }\n\n // Sets or unsets styles on DOM elements outside the menu component\n // This is necessary for correct page interaction with some of the menus\n // Throws and returns if the required external elements don't exist,\n // which means any external page animations won't be applied\n function handleExternalWrapper(id, wrapperStyles, set) {\n var wrapper = document.getElementById(id);\n\n if (!wrapper) {\n console.error(\"Element with ID '\" + id + \"' not found\");\n return;\n }\n\n var builtStyles = getStyle(wrapperStyles);\n\n for (var prop in builtStyles) {\n if (builtStyles.hasOwnProperty(prop)) {\n wrapper.style[prop] = set ? builtStyles[prop] : '';\n }\n }\n\n // Prevent any horizontal scroll\n // Only set overflow-x as an inline style if htmlClassName or\n // bodyClassName is not passed in. Otherwise, it is up to the caller to\n // decide if they want to set the overflow style in CSS using the custom\n // class names\n var applyOverflow = function applyOverflow(el) {\n return el.style['overflow-x'] = set ? 'hidden' : '';\n };\n if (!props.htmlClassName) {\n applyOverflow(document.querySelector('html'));\n }\n if (!props.bodyClassName) {\n applyOverflow(document.querySelector('body'));\n }\n }\n\n // Applies component-specific styles to external wrapper elements\n function applyWrapperStyles() {\n var set = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0];\n\n var applyClass = function applyClass(el, className) {\n return el.classList[set ? 'add' : 'remove'](className);\n };\n\n if (props.htmlClassName) {\n applyClass(document.querySelector('html'), props.htmlClassName);\n }\n if (props.bodyClassName) {\n applyClass(document.querySelector('body'), props.bodyClassName);\n }\n\n if (styles.pageWrap && props.pageWrapId) {\n handleExternalWrapper(props.pageWrapId, styles.pageWrap, set);\n }\n\n if (styles.outerContainer && props.outerContainerId) {\n handleExternalWrapper(props.outerContainerId, styles.outerContainer, set);\n }\n\n var menuWrap = document.querySelector('.bm-menu-wrap');\n if (menuWrap) {\n if (set) {\n menuWrap.removeAttribute('hidden');\n } else {\n menuWrap.setAttribute('hidden', true);\n }\n }\n }\n\n // Avoids potentially attempting to update an unmounted component\n function clearCurrentTimeout() {\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n }\n\n function onKeyDownOpen(e) {\n e = e || window.event;\n switch (e.key) {\n case ESCAPE:\n // Close on ESC, unless disabled\n if (!props.disableCloseOnEsc) {\n close();\n (0, _helpersDom.focusOnMenuButton)();\n }\n break;\n case ARROW_DOWN:\n (0, _helpersDom.focusOnNextMenuItem)();\n break;\n case ARROW_UP:\n (0, _helpersDom.focusOnPreviousMenuItem)();\n break;\n case HOME:\n (0, _helpersDom.focusOnFirstMenuItem)();\n break;\n case END:\n (0, _helpersDom.focusOnLastMenuItem)();\n break;\n }\n }\n\n function onKeyDownClosed(e) {\n e = e || window.event;\n // Key downs came from menu button\n if (e.target === document.getElementById('react-burger-menu-btn')) {\n switch (e.key) {\n case ARROW_DOWN:\n case SPACE:\n // If down arrow, space or enter, open menu and focus on first menuitem\n toggleMenu();\n break;\n case ARROW_UP:\n // If arrow up, open menu and focus on last menuitem\n toggleMenu({ focusOnLastItem: true });\n break;\n }\n }\n }\n\n function handleOverlayClick() {\n if (props.disableOverlayClick === true || typeof props.disableOverlayClick === 'function' && props.disableOverlayClick()) {\n return;\n } else {\n close();\n }\n }\n\n return _react2['default'].createElement(\n 'div',\n null,\n !props.noOverlay && _react2['default'].createElement('div', {\n className: ('bm-overlay ' + props.overlayClassName).trim(),\n onClick: handleOverlayClick,\n style: getStyles('overlay')\n }),\n props.customBurgerIcon !== false && _react2['default'].createElement(\n 'div',\n { style: getStyles('burgerIcon') },\n _react2['default'].createElement(_componentsBurgerIcon2['default'], {\n onClick: open,\n styles: props.styles,\n customIcon: props.customBurgerIcon,\n className: props.burgerButtonClassName,\n barClassName: props.burgerBarClassName,\n onIconStateChange: props.onIconStateChange\n })\n ),\n _react2['default'].createElement(\n 'div',\n {\n id: props.id,\n className: ('bm-menu-wrap ' + props.className).trim(),\n style: getStyles('menuWrap'),\n 'aria-hidden': !isOpen\n },\n styles.svg && _react2['default'].createElement(\n 'div',\n {\n id: 'bm-morph-shape',\n className: ('bm-morph-shape ' + props.morphShapeClassName).trim(),\n style: getStyles('morphShape')\n },\n _react2['default'].createElement(\n 'svg',\n {\n width: '100%',\n height: '100%',\n viewBox: '0 0 100 800',\n preserveAspectRatio: 'none'\n },\n _react2['default'].createElement('path', { d: styles.svg.pathInitial })\n )\n ),\n _react2['default'].createElement(\n 'div',\n {\n className: ('bm-menu ' + props.menuClassName).trim(),\n style: getStyles('menu')\n },\n _react2['default'].createElement(props.itemListElement, {\n className: ('bm-item-list ' + props.itemListClassName).trim(),\n style: getStyles('itemList')\n }, _react2['default'].Children.map(props.children, function (item, index) {\n if (item) {\n var classList = ['bm-item', props.itemClassName, item.props.className].filter(function (className) {\n return !!className;\n }).join(' ');\n var extraProps = _extends({\n key: index,\n className: classList,\n style: getStyles('item', index, item.props.style)\n }, !isOpen && { tabIndex: -1 });\n return _react2['default'].cloneElement(item, extraProps);\n }\n }))\n ),\n props.customCrossIcon !== false && _react2['default'].createElement(\n 'div',\n { style: getStyles('closeButton') },\n _react2['default'].createElement(_componentsCrossIcon2['default'], {\n onClick: close,\n styles: props.styles,\n customIcon: props.customCrossIcon,\n className: props.crossButtonClassName,\n crossClassName: props.crossClassName,\n isOpen: isOpen\n })\n )\n )\n );\n };\n\n Menu.propTypes = {\n bodyClassName: _propTypes2['default'].string,\n burgerBarClassName: _propTypes2['default'].string,\n burgerButtonClassName: _propTypes2['default'].string,\n className: _propTypes2['default'].string,\n crossButtonClassName: _propTypes2['default'].string,\n crossClassName: _propTypes2['default'].string,\n customBurgerIcon: _propTypes2['default'].oneOfType([_propTypes2['default'].element, _propTypes2['default'].oneOf([false])]),\n customCrossIcon: _propTypes2['default'].oneOfType([_propTypes2['default'].element, _propTypes2['default'].oneOf([false])]),\n customOnKeyDown: _propTypes2['default'].func,\n disableAutoFocus: _propTypes2['default'].bool,\n disableCloseOnEsc: _propTypes2['default'].bool,\n disableOverlayClick: _propTypes2['default'].oneOfType([_propTypes2['default'].bool, _propTypes2['default'].func]),\n htmlClassName: _propTypes2['default'].string,\n id: _propTypes2['default'].string,\n isOpen: _propTypes2['default'].bool,\n itemClassName: _propTypes2['default'].string,\n itemListClassName: _propTypes2['default'].string,\n itemListElement: _propTypes2['default'].oneOf(['div', 'nav']),\n menuClassName: _propTypes2['default'].string,\n morphShapeClassName: _propTypes2['default'].string,\n noOverlay: _propTypes2['default'].bool,\n noTransition: _propTypes2['default'].bool,\n onClose: _propTypes2['default'].func,\n onIconHoverChange: _propTypes2['default'].func,\n onOpen: _propTypes2['default'].func,\n onStateChange: _propTypes2['default'].func,\n outerContainerId: styles && styles.outerContainer ? _propTypes2['default'].string.isRequired : _propTypes2['default'].string,\n overlayClassName: _propTypes2['default'].string,\n pageWrapId: styles && styles.pageWrap ? _propTypes2['default'].string.isRequired : _propTypes2['default'].string,\n right: _propTypes2['default'].bool,\n styles: _propTypes2['default'].object,\n width: _propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].string])\n };\n\n return Menu;\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _helpersSnapsvgImporter = require('../helpers/snapsvgImporter');\n\nvar _helpersSnapsvgImporter2 = _interopRequireDefault(_helpersSnapsvgImporter);\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar _helpersUtils = require('../helpers/utils');\n\nvar BUBBLE_WIDTH = 140;\n\nvar styles = {\n svg: {\n lib: _helpersSnapsvgImporter2['default'],\n pathInitial: 'M-7.312,0H0c0,0,0,113.839,0,400c0,264.506,0,400,0,400h-7.312V0z',\n pathOpen: 'M-7.312,0H15c0,0,66,113.339,66,399.5C81,664.006,15,800,15,800H-7.312V0z;M-7.312,0H100c0,0,0,113.839,0,400c0,264.506,0,400,0,400H-7.312V0z',\n animate: function animate(path) {\n var pos = 0;\n var steps = this.pathOpen.split(';');\n var stepsTotal = steps.length;\n var mina = window.mina;\n\n var nextStep = function nextStep() {\n if (pos > stepsTotal - 1) return;\n\n path.animate({ path: steps[pos] }, pos === 0 ? 400 : 500, pos === 0 ? mina.easein : mina.elastic, function () {\n nextStep();\n });\n\n pos++;\n };\n\n nextStep();\n }\n },\n\n morphShape: function morphShape(isOpen, width, right) {\n return {\n position: 'absolute',\n width: '100%',\n height: '100%',\n right: right ? 'inherit' : 0,\n left: right ? 0 : 'inherit',\n MozTransform: right ? 'rotateY(180deg)' : 'rotateY(0deg)',\n MsTransform: right ? 'rotateY(180deg)' : 'rotateY(0deg)',\n OTransform: right ? 'rotateY(180deg)' : 'rotateY(0deg)',\n WebkitTransform: right ? 'rotateY(180deg)' : 'rotateY(0deg)',\n transform: right ? 'rotateY(180deg)' : 'rotateY(0deg)'\n };\n },\n\n menuWrap: function menuWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n MsTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n OTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n WebkitTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n transform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n transition: isOpen ? 'transform 0.4s 0s' : 'transform 0.4s'\n };\n },\n\n menu: function menu(isOpen, width, right) {\n var finalWidth = (0, _helpersUtils.pxToNum)(width) - BUBBLE_WIDTH;\n return {\n position: 'fixed',\n MozTransform: isOpen ? '' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n MsTransform: isOpen ? '' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n OTransform: isOpen ? '' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n transform: isOpen ? '' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n transition: isOpen ? 'opacity 0.1s 0.4s cubic-bezier(.17, .67, .1, 1.27), transform 0.1s 0.4s cubic-bezier(.17, .67, .1, 1.27)' : 'opacity 0s 0.3s cubic-bezier(.17, .67, .1, 1.27), transform 0s 0.3s cubic-bezier(.17, .67, .1, 1.27)',\n opacity: isOpen ? 1 : 0\n };\n },\n\n item: function item(isOpen, width, right, nthChild) {\n var finalWidth = (0, _helpersUtils.pxToNum)(width) - BUBBLE_WIDTH;\n return {\n MozTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n MsTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n OTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n WebkitTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n transform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n transition: isOpen ? 'opacity 0.3s 0.4s, transform 0.3s 0.4s' : 'opacity 0s 0.3s cubic-bezier(.17, .67, .1, 1.27), transform 0s 0.3s cubic-bezier(.17, .67, .1, 1.27)',\n opacity: isOpen ? 1 : 0\n };\n },\n\n closeButton: function closeButton(isOpen, width, right) {\n var finalWidth = (0, _helpersUtils.pxToNum)(width) - BUBBLE_WIDTH;\n return {\n MozTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n MsTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n OTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n WebkitTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n transform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n transition: isOpen ? 'opacity 0.3s 0.4s cubic-bezier(.17, .67, .1, 1.27), transform 0.3s 0.4s cubic-bezier(.17, .67, .1, 1.27)' : 'opacity 0s 0.3s cubic-bezier(.17, .67, .1, 1.27), transform 0s 0.3s cubic-bezier(.17, .67, .1, 1.27)',\n opacity: isOpen ? 1 : 0\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _helpersSnapsvgImporter = require('../helpers/snapsvgImporter');\n\nvar _helpersSnapsvgImporter2 = _interopRequireDefault(_helpersSnapsvgImporter);\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar _helpersUtils = require('../helpers/utils');\n\nvar MORPH_SHAPE_WIDTH = 120;\n\nvar styles = {\n svg: {\n lib: _helpersSnapsvgImporter2['default'],\n pathInitial: 'M-1,0h101c0,0-97.833,153.603-97.833,396.167C2.167,627.579,100,800,100,800H-1V0z',\n pathOpen: 'M-1,0h101c0,0,0-1,0,395c0,404,0,405,0,405H-1V0z',\n animate: function animate(path) {\n path.animate({ path: this.pathOpen }, 400, window.mina.easeinout);\n }\n },\n\n morphShape: function morphShape(isOpen, width, right) {\n return {\n position: 'absolute',\n width: MORPH_SHAPE_WIDTH,\n height: '100%',\n right: right ? 'inherit' : 0,\n left: right ? 0 : 'inherit',\n MozTransform: right ? 'rotateY(180deg)' : '',\n MsTransform: right ? 'rotateY(180deg)' : '',\n OTransform: right ? 'rotateY(180deg)' : '',\n WebkitTransform: right ? 'rotateY(180deg)' : '',\n transform: right ? 'rotateY(180deg)' : ''\n };\n },\n\n menuWrap: function menuWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n MsTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n OTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n WebkitTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n transform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n transition: 'all 0.3s'\n };\n },\n\n menu: function menu(isOpen, width, right) {\n return {\n position: 'fixed',\n right: right ? 0 : 'inherit',\n width: (0, _helpersUtils.pxToNum)(width) - MORPH_SHAPE_WIDTH,\n whiteSpace: 'nowrap',\n boxSizing: 'border-box',\n overflow: 'visible'\n };\n },\n\n itemList: function itemList(isOpen, width, right) {\n if (right) {\n return {\n position: 'relative',\n left: '-110px',\n width: '170%',\n overflow: 'auto'\n };\n }\n },\n\n pageWrap: function pageWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, 0)' : 'translate3d(100px, 0, 0)',\n MsTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, 0)' : 'translate3d(100px, 0, 0)',\n OTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, 0)' : 'translate3d(100px, 0, 0)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, 0)' : 'translate3d(100px, 0, 0)',\n transform: isOpen ? '' : right ? 'translate3d(-100px, 0, 0)' : 'translate3d(100px, 0, 0)',\n transition: isOpen ? 'all 0.3s' : 'all 0.3s 0.1s'\n };\n },\n\n outerContainer: function outerContainer(isOpen) {\n return {\n overflow: isOpen ? '' : 'hidden'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {\n menuWrap: function menuWrap(isOpen) {\n return {\n MozTransform: isOpen ? '' : 'translate3d(0, -100%, 0)',\n MsTransform: isOpen ? '' : 'translate3d(0, -100%, 0)',\n OTransform: isOpen ? '' : 'translate3d(0, -100%, 0)',\n WebkitTransform: isOpen ? '' : 'translate3d(0, -100%, 0)',\n transform: isOpen ? '' : 'translate3d(0, -100%, 0)',\n transition: 'all 0.5s ease-in-out'\n };\n },\n\n pageWrap: function pageWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n MsTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n OTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n transform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n transition: 'all 0.5s'\n };\n },\n\n outerContainer: function outerContainer(isOpen) {\n return {\n perspective: '1500px',\n perspectiveOrigin: '0% 50%',\n overflow: isOpen ? '' : 'hidden'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {\n pageWrap: function pageWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n MsTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n OTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n transform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n transition: 'all 0.5s'\n };\n },\n\n outerContainer: function outerContainer(isOpen) {\n return {\n overflow: isOpen ? '' : 'hidden'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {\n pageWrap: function pageWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0) rotateY(15deg)' : 'translate3d(' + width + ', 0, 0) rotateY(-15deg)',\n MsTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0) rotateY(15deg)' : 'translate3d(' + width + ', 0, 0) rotateY(-15deg)',\n OTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0) rotateY(15deg)' : 'translate3d(' + width + ', 0, 0) rotateY(-15deg)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0) rotateY(15deg)' : 'translate3d(' + width + ', 0, 0) rotateY(-15deg)',\n transform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0) rotateY(15deg)' : 'translate3d(' + width + ', 0, 0) rotateY(-15deg)',\n transformOrigin: right ? '100% 50%' : '0% 50%',\n transformStyle: 'preserve-3d',\n transition: 'all 0.5s'\n };\n },\n\n outerContainer: function outerContainer(isOpen) {\n return {\n perspective: '1500px',\n overflow: isOpen ? '' : 'hidden'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {\n menuWrap: function menuWrap(isOpen, width, right) {\n return {\n MozTransform: 'translate3d(0, 0, 0)',\n MsTransform: 'translate3d(0, 0, 0)',\n OTransform: 'translate3d(0, 0, 0)',\n WebkitTransform: 'translate3d(0, 0, 0)',\n transform: 'translate3d(0, 0, 0)',\n zIndex: isOpen ? 1000 : -1\n };\n },\n\n overlay: function overlay(isOpen, width, right) {\n return {\n zIndex: 1400,\n MozTransform: isOpen ? right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n MsTransform: isOpen ? right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n OTransform: isOpen ? right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n WebkitTransform: isOpen ? right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n transform: isOpen ? right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n transition: 'all 0.5s',\n visibility: isOpen ? 'visible' : 'hidden'\n };\n },\n\n pageWrap: function pageWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n MsTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n OTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n transform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n transition: 'all 0.5s',\n zIndex: 1200,\n position: 'relative'\n };\n },\n\n burgerIcon: function burgerIcon(isOpen, width, right) {\n return {\n MozTransform: isOpen ? right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n MsTransform: isOpen ? right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n OTransform: isOpen ? right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n WebkitTransform: isOpen ? right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n transform: isOpen ? right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n transition: 'all 0.1s',\n position: 'relative',\n zIndex: 1300\n };\n },\n\n outerContainer: function outerContainer(isOpen) {\n return {\n overflow: isOpen ? '' : 'hidden'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {\n pageWrap: function pageWrap(isOpen, width) {\n return {\n MozTransform: isOpen ? '' : 'translate3d(0, 0, -' + width + ')',\n MsTransform: isOpen ? '' : 'translate3d(0, 0, -' + width + ')',\n OTransform: isOpen ? '' : 'translate3d(0, 0, -' + width + ')',\n WebkitTransform: isOpen ? '' : 'translate3d(0, 0, -' + width + ')',\n transform: isOpen ? '' : 'translate3d(0, 0, -' + width + ')',\n transformOrigin: '100%',\n transformStyle: 'preserve-3d',\n transition: 'all 0.5s'\n };\n },\n\n outerContainer: function outerContainer() {\n return {\n perspective: '1500px'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {\n pageWrap: function pageWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, -600px) rotateY(20deg)' : 'translate3d(100px, 0, -600px) rotateY(-20deg)',\n MsTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, -600px) rotateY(20deg)' : 'translate3d(100px, 0, -600px) rotateY(-20deg)',\n OTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, -600px) rotateY(20deg)' : 'translate3d(100px, 0, -600px) rotateY(-20deg)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, -600px) rotateY(20deg)' : 'translate3d(100px, 0, -600px) rotateY(-20deg)',\n transform: isOpen ? '' : right ? 'translate3d(-100px, 0, -600px) rotateY(20deg)' : 'translate3d(100px, 0, -600px) rotateY(-20deg)',\n transformStyle: 'preserve-3d',\n transition: 'all 0.5s',\n overflow: isOpen ? '' : 'hidden'\n };\n },\n\n outerContainer: function outerContainer(isOpen) {\n return {\n perspective: '1500px',\n overflow: isOpen ? '' : 'hidden'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {\n menuWrap: function menuWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n MsTransform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n OTransform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n transform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n transition: isOpen ? 'transform 0.8s cubic-bezier(0.7, 0, 0.3, 1)' : 'transform 0.4s cubic-bezier(0.7, 0, 0.3, 1)'\n };\n },\n\n item: function item(isOpen, width, right, nthChild) {\n return {\n MozTransform: isOpen ? '' : 'translate3d(0, ' + nthChild * 500 + 'px, 0)',\n MsTransform: isOpen ? '' : 'translate3d(0, ' + nthChild * 500 + 'px, 0)',\n OTransform: isOpen ? '' : 'translate3d(0, ' + nthChild * 500 + 'px, 0)',\n WebkitTransform: isOpen ? '' : 'translate3d(0, ' + nthChild * 500 + 'px, 0)',\n transform: isOpen ? '' : 'translate3d(0, ' + nthChild * 500 + 'px, 0)',\n transition: isOpen ? 'transform 0.8s cubic-bezier(0.7, 0, 0.3, 1)' : 'transform 0s 0.2s cubic-bezier(0.7, 0, 0.3, 1)'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","/** @license React v17.0.2\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\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(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.\"}if(!aa)throw Error(y(227));var ba=new Set,ca={};function da(a,b){ea(a,b);ea(a+\"Capture\",b)}\nfunction ea(a,b){ca[a]=b;for(a=0;a<b.length;a++)ba.add(b[a])}\nvar fa=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ha=/^[: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]*$/,ia=Object.prototype.hasOwnProperty,\nja={},ka={};function la(a){if(ia.call(ka,a))return!0;if(ia.call(ja,a))return!1;if(ha.test(a))return ka[a]=!0;ja[a]=!0;return!1}function ma(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 na(a,b,c,d){if(null===b||\"undefined\"===typeof b||ma(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 B(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 D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(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){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(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(oa,\npa);D[b]=new B(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(oa,pa);D[b]=new B(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(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1]?!1:!0;f||(na(b,c,e,d)&&(c=null),d||null===e?la(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 ra=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,sa=60103,ta=60106,ua=60107,wa=60108,xa=60114,ya=60109,za=60110,Aa=60112,Ba=60113,Ca=60120,Da=60115,Ea=60116,Fa=60121,Ga=60128,Ha=60129,Ia=60130,Ja=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var E=Symbol.for;sa=E(\"react.element\");ta=E(\"react.portal\");ua=E(\"react.fragment\");wa=E(\"react.strict_mode\");xa=E(\"react.profiler\");ya=E(\"react.provider\");za=E(\"react.context\");Aa=E(\"react.forward_ref\");Ba=E(\"react.suspense\");Ca=E(\"react.suspense_list\");Da=E(\"react.memo\");Ea=E(\"react.lazy\");Fa=E(\"react.block\");E(\"react.scope\");Ga=E(\"react.opaque.id\");Ha=E(\"react.debug_trace_mode\");Ia=E(\"react.offscreen\");Ja=E(\"react.legacy_hidden\")}\nvar Ka=\"function\"===typeof Symbol&&Symbol.iterator;function La(a){if(null===a||\"object\"!==typeof a)return null;a=Ka&&a[Ka]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var Ma;function Na(a){if(void 0===Ma)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);Ma=b&&b[1]||\"\"}return\"\\n\"+Ma+a}var Oa=!1;\nfunction Pa(a,b){if(!a||Oa)return\"\";Oa=!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(k){var d=k}Reflect.construct(a,[],b)}else{try{b.call()}catch(k){d=k}a.call(b.prototype)}else{try{throw Error();}catch(k){d=k}a()}}catch(k){if(k&&d&&\"string\"===typeof k.stack){for(var e=k.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])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(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 ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function 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 m({},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 $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(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\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(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 bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\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(y(91));return m({},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(y(92));if(Array.isArray(c)){if(!(1>=c.length))throw Error(y(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)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(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\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=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(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!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,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({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 vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(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}}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(y(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(a,b,c,d,e){return a(b,c,d,e)}function Ib(){}var Jb=Gb,Kb=!1,Lb=!1;function Mb(){if(null!==zb||null!==Ab)Ib(),Fb()}\nfunction Nb(a,b,c){if(Lb)return a(b,c);Lb=!0;try{return Jb(a,b,c)}finally{Lb=!1,Mb()}}\nfunction Ob(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(y(231,b,typeof c));return c}var Pb=!1;if(fa)try{var Qb={};Object.defineProperty(Qb,\"passive\",{get:function(){Pb=!0}});window.addEventListener(\"test\",Qb,Qb);window.removeEventListener(\"test\",Qb,Qb)}catch(a){Pb=!1}function Rb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(n){this.onError(n)}}var Sb=!1,Tb=null,Ub=!1,Vb=null,Wb={onError:function(a){Sb=!0;Tb=a}};function Xb(a,b,c,d,e,f,g,h,k){Sb=!1;Tb=null;Rb.apply(Wb,arguments)}\nfunction Yb(a,b,c,d,e,f,g,h,k){Xb.apply(this,arguments);if(Sb){if(Sb){var l=Tb;Sb=!1;Tb=null}else throw Error(y(198));Ub||(Ub=!0,Vb=l)}}function Zb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function $b(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 ac(a){if(Zb(a)!==a)throw Error(y(188));}\nfunction bc(a){var b=a.alternate;if(!b){b=Zb(a);if(null===b)throw Error(y(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 ac(e),a;if(f===d)return ac(e),b;f=f.sibling}throw Error(y(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(y(189));}}if(c.alternate!==d)throw Error(y(190));}if(3!==c.tag)throw Error(y(188));return c.stateNode.current===c?a:b}function cc(a){a=bc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction dc(a,b){for(var c=a.alternate;null!==b;){if(b===a||b===c)return!0;b=b.return}return!1}var ec,fc,gc,hc,ic=!1,jc=[],kc=null,lc=null,mc=null,nc=new Map,oc=new Map,pc=[],qc=\"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 rc(a,b,c,d,e){return{blockedOn:a,domEventName:b,eventSystemFlags:c|16,nativeEvent:e,targetContainers:[d]}}function sc(a,b){switch(a){case \"focusin\":case \"focusout\":kc=null;break;case \"dragenter\":case \"dragleave\":lc=null;break;case \"mouseover\":case \"mouseout\":mc=null;break;case \"pointerover\":case \"pointerout\":nc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":oc.delete(b.pointerId)}}\nfunction tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a=rc(b,c,d,e,f),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 kc=tc(kc,a,b,c,d,e),!0;case \"dragenter\":return lc=tc(lc,a,b,c,d,e),!0;case \"mouseover\":return mc=tc(mc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;nc.set(f,tc(nc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,oc.set(f,tc(oc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction vc(a){var b=wc(a.target);if(null!==b){var c=Zb(b);if(null!==c)if(b=c.tag,13===b){if(b=$b(c),null!==b){a.blockedOn=b;hc(a.lanePriority,function(){r.unstable_runWithPriority(a.priority,function(){gc(c)})});return}}else if(3===b&&c.stateNode.hydrate){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)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)}\nfunction Ac(){for(ic=!1;0<jc.length;){var a=jc[0];if(null!==a.blockedOn){a=Cb(a.blockedOn);null!==a&&ec(a);break}for(var b=a.targetContainers;0<b.length;){var c=yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null!==c){a.blockedOn=c;break}b.shift()}null===a.blockedOn&&jc.shift()}null!==kc&&xc(kc)&&(kc=null);null!==lc&&xc(lc)&&(lc=null);null!==mc&&xc(mc)&&(mc=null);nc.forEach(zc);oc.forEach(zc)}\nfunction Bc(a,b){a.blockedOn===b&&(a.blockedOn=null,ic||(ic=!0,r.unstable_scheduleCallback(r.unstable_NormalPriority,Ac)))}\nfunction Cc(a){function b(b){return Bc(b,a)}if(0<jc.length){Bc(jc[0],a);for(var c=1;c<jc.length;c++){var d=jc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==kc&&Bc(kc,a);null!==lc&&Bc(lc,a);null!==mc&&Bc(mc,a);nc.forEach(b);oc.forEach(b);for(c=0;c<pc.length;c++)d=pc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<pc.length&&(c=pc[0],null===c.blockedOn);)vc(c),null===c.blockedOn&&pc.shift()}\nfunction Dc(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Ec={animationend:Dc(\"Animation\",\"AnimationEnd\"),animationiteration:Dc(\"Animation\",\"AnimationIteration\"),animationstart:Dc(\"Animation\",\"AnimationStart\"),transitionend:Dc(\"Transition\",\"TransitionEnd\")},Fc={},Gc={};\nfa&&(Gc=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Ec.animationend.animation,delete Ec.animationiteration.animation,delete Ec.animationstart.animation),\"TransitionEvent\"in window||delete Ec.transitionend.transition);function Hc(a){if(Fc[a])return Fc[a];if(!Ec[a])return a;var b=Ec[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Gc)return Fc[a]=b[c];return a}\nvar Ic=Hc(\"animationend\"),Jc=Hc(\"animationiteration\"),Kc=Hc(\"animationstart\"),Lc=Hc(\"transitionend\"),Mc=new Map,Nc=new Map,Oc=[\"abort\",\"abort\",Ic,\"animationEnd\",Jc,\"animationIteration\",Kc,\"animationStart\",\"canplay\",\"canPlay\",\"canplaythrough\",\"canPlayThrough\",\"durationchange\",\"durationChange\",\"emptied\",\"emptied\",\"encrypted\",\"encrypted\",\"ended\",\"ended\",\"error\",\"error\",\"gotpointercapture\",\"gotPointerCapture\",\"load\",\"load\",\"loadeddata\",\"loadedData\",\"loadedmetadata\",\"loadedMetadata\",\"loadstart\",\"loadStart\",\n\"lostpointercapture\",\"lostPointerCapture\",\"playing\",\"playing\",\"progress\",\"progress\",\"seeking\",\"seeking\",\"stalled\",\"stalled\",\"suspend\",\"suspend\",\"timeupdate\",\"timeUpdate\",Lc,\"transitionEnd\",\"waiting\",\"waiting\"];function Pc(a,b){for(var c=0;c<a.length;c+=2){var d=a[c],e=a[c+1];e=\"on\"+(e[0].toUpperCase()+e.slice(1));Nc.set(d,b);Mc.set(d,e);da(e,[d])}}var Qc=r.unstable_now;Qc();var F=8;\nfunction Rc(a){if(0!==(1&a))return F=15,1;if(0!==(2&a))return F=14,2;if(0!==(4&a))return F=13,4;var b=24&a;if(0!==b)return F=12,b;if(0!==(a&32))return F=11,32;b=192&a;if(0!==b)return F=10,b;if(0!==(a&256))return F=9,256;b=3584&a;if(0!==b)return F=8,b;if(0!==(a&4096))return F=7,4096;b=4186112&a;if(0!==b)return F=6,b;b=62914560&a;if(0!==b)return F=5,b;if(a&67108864)return F=4,67108864;if(0!==(a&134217728))return F=3,134217728;b=805306368&a;if(0!==b)return F=2,b;if(0!==(1073741824&a))return F=1,1073741824;\nF=8;return a}function Sc(a){switch(a){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}function Tc(a){switch(a){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(y(358,a));}}\nfunction Uc(a,b){var c=a.pendingLanes;if(0===c)return F=0;var d=0,e=0,f=a.expiredLanes,g=a.suspendedLanes,h=a.pingedLanes;if(0!==f)d=f,e=F=15;else if(f=c&134217727,0!==f){var k=f&~g;0!==k?(d=Rc(k),e=F):(h&=f,0!==h&&(d=Rc(h),e=F))}else f=c&~g,0!==f?(d=Rc(f),e=F):0!==h&&(d=Rc(h),e=F);if(0===d)return 0;d=31-Vc(d);d=c&((0>d?0:1<<d)<<1)-1;if(0!==b&&b!==d&&0===(b&g)){Rc(b);if(e<=F)return b;F=e}b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-Vc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction Wc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function Xc(a,b){switch(a){case 15:return 1;case 14:return 2;case 12:return a=Yc(24&~b),0===a?Xc(10,b):a;case 10:return a=Yc(192&~b),0===a?Xc(8,b):a;case 8:return a=Yc(3584&~b),0===a&&(a=Yc(4186112&~b),0===a&&(a=512)),a;case 2:return b=Yc(805306368&~b),0===b&&(b=268435456),b}throw Error(y(358,a));}function Yc(a){return a&-a}function Zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0<jc.length&&-1<qc.indexOf(a))a=rc(null,a,b,c,d),jc.push(a);else{var f=yc(a,b,c,d);if(null===f)e&&sc(a,d);else{if(e){if(-1<qc.indexOf(a)){a=rc(f,a,b,c,d);jc.push(a);return}if(uc(f,a,b,c,d))return;sc(a,d)}jd(a,b,d,null,c)}}}}\nfunction yc(a,b,c,d){var e=xb(d);e=wc(e);if(null!==e){var f=Zb(e);if(null===f)e=null;else{var g=f.tag;if(13===g){e=$b(f);if(null!==e)return e;e=null}else if(3===g){if(f.stateNode.hydrate)return 3===f.tag?f.stateNode.containerInfo:null;e=null}else f!==e&&(e=null)}}jd(a,b,d,e,c);return null}var kd=null,ld=null,md=null;\nfunction 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)}function 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}m(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=m({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=m({},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=m({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=m({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=m({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=m({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=m({},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=m({},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=m({},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=m({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=m({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=m({},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=fa&&\"CompositionEvent\"in window,be=null;fa&&\"documentMode\"in document&&(be=document.documentMode);var ce=fa&&\"TextEvent\"in window&&!be,de=fa&&(!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(fa){var xe;if(fa){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));a=re;if(Kb)a(b);else{Kb=!0;try{Gb(a,b)}finally{Kb=!1,Mb()}}}}\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,Ie=Object.prototype.hasOwnProperty;\nfunction Je(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++)if(!Ie.call(b,c[d])||!He(a[c[d]],b[c[d]]))return!1;return!0}function Ke(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Le(a,b){var c=Ke(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=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){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 Oe(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)}\nvar Pe=fa&&\"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&&Oe(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&&Je(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)))}\nPc(\"cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange\".split(\" \"),\n0);Pc(\"drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel\".split(\" \"),1);Pc(Oc,2);for(var Ve=\"change selectionchange textInput compositionstart compositionend compositionupdate\".split(\" \"),We=0;We<Ve.length;We++)Nc.set(Ve[We],0);ea(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);\nea(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ea(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);ea(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);da(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));da(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));da(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);da(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));\nda(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));da(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var Xe=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),Ye=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(Xe));\nfunction Ze(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Yb(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;Ze(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;Ze(e,h,l);f=k}}}if(Ub)throw a=Vb,Ub=!1,Vb=null,a;}\nfunction G(a,b){var c=$e(b),d=a+\"__bubble\";c.has(d)||(af(b,a,2,!1),c.add(d))}var bf=\"_reactListening\"+Math.random().toString(36).slice(2);function cf(a){a[bf]||(a[bf]=!0,ba.forEach(function(b){Ye.has(b)||df(b,!1,a,null);df(b,!0,a,null)}))}\nfunction df(a,b,c,d){var e=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,f=c;\"selectionchange\"===a&&9!==c.nodeType&&(f=c.ownerDocument);if(null!==d&&!b&&Ye.has(a)){if(\"scroll\"!==a)return;e|=2;f=d}var g=$e(f),h=a+\"__\"+(b?\"capture\":\"bubble\");g.has(h)||(b&&(e|=4),af(f,a,e,b),g.add(h))}\nfunction af(a,b,c,d){var e=Nc.get(b);switch(void 0===e?2:e){case 0:e=gd;break;case 1:e=id;break;default:e=hd}c=e.bind(null,b,c,a);e=void 0;!Pb||\"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 jd(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}Nb(function(){var d=f,e=xb(c),g=[];\na:{var h=Mc.get(a);if(void 0!==h){var k=td,x=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":x=\"focus\";k=Fd;break;case \"focusout\":x=\"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 Ic:case Jc:case Kc:k=Hd;break;case Lc: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 w=0!==(b&4),z=!w&&\"scroll\"===a,u=w?null!==h?h+\"Capture\":null:h;w=[];for(var t=d,q;null!==\nt;){q=t;var v=q.stateNode;5===q.tag&&null!==v&&(q=v,null!==u&&(v=Ob(t,u),null!=v&&w.push(ef(t,v,q))));if(z)break;t=t.return}0<w.length&&(h=new k(h,x,null,c,e),g.push({event:h,listeners:w}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&0===(b&16)&&(x=c.relatedTarget||c.fromElement)&&(wc(x)||x[ff]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(x=c.relatedTarget||c.toElement,k=d,x=x?wc(x):null,null!==\nx&&(z=Zb(x),x!==z||5!==x.tag&&6!==x.tag))x=null}else k=null,x=d;if(k!==x){w=Bd;v=\"onMouseLeave\";u=\"onMouseEnter\";t=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)w=Td,v=\"onPointerLeave\",u=\"onPointerEnter\",t=\"pointer\";z=null==k?h:ue(k);q=null==x?h:ue(x);h=new w(v,t+\"leave\",k,c,e);h.target=z;h.relatedTarget=q;v=null;wc(e)===d&&(w=new w(u,t+\"enter\",x,c,e),w.target=q,w.relatedTarget=z,v=w);z=v;if(k&&x)b:{w=k;u=x;t=0;for(q=w;q;q=gf(q))t++;q=0;for(v=u;v;v=gf(v))q++;for(;0<t-q;)w=gf(w),t--;for(;0<q-t;)u=\ngf(u),q--;for(;t--;){if(w===u||null!==u&&w===u.alternate)break b;w=gf(w);u=gf(u)}w=null}else w=null;null!==k&&hf(g,h,k,w,!1);null!==x&&null!==z&&hf(g,z,x,w,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var J=ve;else if(me(h))if(we)J=Fe;else{J=De;var K=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(J=Ee);if(J&&(J=J(a,d))){ne(g,J,c,e);break a}K&&K(a,h,d);\"focusout\"===a&&(K=h._wrapperState)&&\nK.controlled&&\"number\"===h.type&&bb(h,\"number\",h.value)}K=d?ue(d):window;switch(a){case \"focusin\":if(me(K)||\"true\"===K.contentEditable)Qe=K,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 Q;if(ae)b:{switch(a){case \"compositionstart\":var L=\"onCompositionStart\";break b;case \"compositionend\":L=\"onCompositionEnd\";break b;\ncase \"compositionupdate\":L=\"onCompositionUpdate\";break b}L=void 0}else ie?ge(a,c)&&(L=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(L=\"onCompositionStart\");L&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==L?\"onCompositionEnd\"===L&&ie&&(Q=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),K=oe(d,L),0<K.length&&(L=new Ld(L,a,null,c,e),g.push({event:L,listeners:K}),Q?L.data=Q:(Q=he(c),null!==Q&&(L.data=Q))));if(Q=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),0<d.length&&(e=new Ld(\"onBeforeInput\",\n\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=Q)}se(g,b)})}function ef(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=Ob(a,c),null!=f&&d.unshift(ef(a,f,e)),f=Ob(a,b),null!=f&&d.push(ef(a,f,e)));a=a.return}return d}function gf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction hf(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=Ob(c,f),null!=k&&g.unshift(ef(c,k,h))):e||(k=Ob(c,f),null!=k&&g.push(ef(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}function jf(){}var kf=null,lf=null;function mf(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction nf(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var of=\"function\"===typeof setTimeout?setTimeout:void 0,pf=\"function\"===typeof clearTimeout?clearTimeout:void 0;function qf(a){1===a.nodeType?a.textContent=\"\":9===a.nodeType&&(a=a.body,null!=a&&(a.textContent=\"\"))}\nfunction rf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}function sf(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 tf=0;function uf(a){return{$$typeof:Ga,toString:a,valueOf:a}}var vf=Math.random().toString(36).slice(2),wf=\"__reactFiber$\"+vf,xf=\"__reactProps$\"+vf,ff=\"__reactContainer$\"+vf,yf=\"__reactEvents$\"+vf;\nfunction wc(a){var b=a[wf];if(b)return b;for(var c=a.parentNode;c;){if(b=c[ff]||c[wf]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=sf(a);null!==a;){if(c=a[wf])return c;a=sf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[wf]||a[ff];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(y(33));}function Db(a){return a[xf]||null}\nfunction $e(a){var b=a[yf];void 0===b&&(b=a[yf]=new Set);return b}var zf=[],Af=-1;function Bf(a){return{current:a}}function H(a){0>Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;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}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;a<b.length;a++){var c=b[a];do c=c(!0);while(null!==c)}});ag=null}catch(c){throw null!==ag&&(ag=ag.slice(a+1)),Of(Uf,ig),c;}finally{cg=!1}}}var kg=ra.ReactCurrentBatchConfig;function lg(a,b){if(a&&a.defaultProps){b=m({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}var mg=Bf(null),ng=null,og=null,pg=null;function qg(){pg=og=ng=null}\nfunction rg(a){var b=mg.current;H(mg);a.type._context._currentValue=b}function sg(a,b){for(;null!==a;){var c=a.alternate;if((a.childLanes&b)===b)if(null===c||(c.childLanes&b)===b)break;else c.childLanes|=b;else a.childLanes|=b,null!==c&&(c.childLanes|=b);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,b){if(pg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)pg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===og){if(null===ng)throw Error(y(308));og=b;ng.dependencies={lanes:0,firstContext:b,responders:null}}else og=og.next=b}return a._currentValue}var wg=!1;function xg(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}\nfunction yg(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 zg(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}function Ag(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction Bg(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 Cg(a,b,c,d){var e=a.updateQueue;wg=!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 n=a.alternate;if(null!==n){n=n.updateQueue;var A=n.lastBaseUpdate;A!==g&&(null===A?n.firstBaseUpdate=l:A.next=l,n.lastBaseUpdate=k)}}if(null!==f){A=e.baseState;g=0;n=l=k=null;do{h=f.lane;var p=f.eventTime;if((d&h)===h){null!==n&&(n=n.next={eventTime:p,lane:0,tag:f.tag,payload:f.payload,callback:f.callback,\nnext:null});a:{var C=a,x=f;h=b;p=c;switch(x.tag){case 1:C=x.payload;if(\"function\"===typeof C){A=C.call(p,A,h);break a}A=C;break a;case 3:C.flags=C.flags&-4097|64;case 0:C=x.payload;h=\"function\"===typeof C?C.call(p,A,h):C;if(null===h||void 0===h)break a;A=m({},A,h);break a;case 2:wg=!0}}null!==f.callback&&(a.flags|=32,h=e.effects,null===h?e.effects=[f]:h.push(f))}else p={eventTime:p,lane:h,tag:f.tag,payload:f.payload,callback:f.callback,next:null},null===n?(l=n=p,k=A):n=n.next=p,g|=h;f=f.next;if(null===\nf)if(h=e.shared.pending,null===h)break;else f=h.next,h.next=null,e.lastBaseUpdate=h,e.shared.pending=null}while(1);null===n&&(k=A);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=n;Dg|=g;a.lanes=g;a.memoizedState=A}}function Eg(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(y(191,e));e.call(d)}}}var Fg=(new aa.Component).refs;\nfunction Gg(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:m({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar Kg={isMounted:function(a){return(a=a._reactInternals)?Zb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=Hg(),e=Ig(a),f=zg(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);Ag(a,f);Jg(a,e,d)},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=Hg(),e=Ig(a),f=zg(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);Ag(a,f);Jg(a,e,d)},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=Hg(),d=Ig(a),e=zg(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=\nb);Ag(a,e);Jg(a,d,c)}};function Lg(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?!Je(c,d)||!Je(e,f):!0}\nfunction Mg(a,b,c){var d=!1,e=Cf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=vg(f):(e=Ff(b)?Df:M.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Ef(a,e):Cf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Kg;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Ng(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&&Kg.enqueueReplaceState(b,b.state,null)}\nfunction Og(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=Fg;xg(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=vg(f):(f=Ff(b)?Df:M.current,e.context=Ef(a,f));Cg(a,c,e,d);e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Gg(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||\n(b=e.state,\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Kg.enqueueReplaceState(e,e.state,null),Cg(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4)}var Pg=Array.isArray;\nfunction Qg(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(y(309));var d=c.stateNode}if(!d)throw Error(y(147,a));var e=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===e)return b.ref;b=function(a){var b=d.refs;b===Fg&&(b=d.refs={});null===a?delete b[e]:b[e]=a};b._stringRef=e;return b}if(\"string\"!==typeof a)throw Error(y(284));if(!c._owner)throw Error(y(290,a));}return a}\nfunction Rg(a,b){if(\"textarea\"!==a.type)throw Error(y(31,\"[object Object]\"===Object.prototype.toString.call(b)?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":b));}\nfunction Sg(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.flags=8}}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=Tg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags=2,\nc):d;b.flags=2;return c}function g(b){a&&null===b.alternate&&(b.flags=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Ug(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){if(null!==b&&b.elementType===c.type)return d=e(b,c.props),d.ref=Qg(a,b,c),d.return=a,d;d=Vg(c.type,c.key,c.props,null,a.mode,d);d.ref=Qg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=\nWg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function n(a,b,c,d,f){if(null===b||7!==b.tag)return b=Xg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function A(a,b,c){if(\"string\"===typeof b||\"number\"===typeof b)return b=Ug(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case sa:return c=Vg(b.type,b.key,b.props,null,a.mode,c),c.ref=Qg(a,null,b),c.return=a,c;case ta:return b=Wg(b,a.mode,c),b.return=a,b}if(Pg(b)||La(b))return b=Xg(b,\na.mode,c,null),b.return=a,b;Rg(a,b)}return null}function p(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case sa:return c.key===e?c.type===ua?n(a,b,c.props.children,d,e):k(a,b,c,d):null;case ta:return c.key===e?l(a,b,c,d):null}if(Pg(c)||La(c))return null!==e?null:n(a,b,c,d,null);Rg(a,c)}return null}function C(a,b,c,d,e){if(\"string\"===typeof d||\"number\"===typeof d)return a=a.get(c)||\nnull,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case sa:return a=a.get(null===d.key?c:d.key)||null,d.type===ua?n(b,a,d.props.children,e,d.key):k(b,a,d,e);case ta:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e)}if(Pg(d)||La(d))return a=a.get(c)||null,n(b,a,d,e,null);Rg(b,d)}return null}function x(e,g,h,k){for(var l=null,t=null,u=g,z=g=0,q=null;null!==u&&z<h.length;z++){u.index>z?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;z<h.length;z++)u=A(e,h[z],k),null!==u&&(g=f(u,g,z),null===t?l=u:t.sibling=u,t=u);return l}for(u=d(e,u);z<h.length;z++)q=C(u,e,z,h[z],k),null!==q&&(a&&null!==q.alternate&&u.delete(null===q.key?z:q.key),g=f(q,g,z),null===t?l=q:t.sibling=q,t=q);a&&u.forEach(function(a){return b(e,a)});return l}function w(e,g,h,k){var l=La(h);if(\"function\"!==typeof l)throw Error(y(150));h=l.call(h);if(null==\nh)throw Error(y(151));for(var t=l=null,u=g,z=g=0,q=null,n=h.next();null!==u&&!n.done;z++,n=h.next()){u.index>z?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)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=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(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&64))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 jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(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,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;a<th.length;a++)th[a]._workInProgressVersionPrimary=null;th.length=0}var vh=ra.ReactCurrentDispatcher,wh=ra.ReactCurrentBatchConfig,xh=0,R=null,S=null,T=null,yh=!1,zh=!1;function Ah(){throw Error(y(321));}function Bh(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 Ch(a,b,c,d,e,f){xh=f;R=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;vh.current=null===a||null===a.memoizedState?Dh:Eh;a=c(d,e);if(zh){f=0;do{zh=!1;if(!(25>f))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,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){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(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]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0<h;){var k=31-Vc(h),v=1<<k;d[k]|=a;h&=~v}}},[c,b,d]);h.useEffect(function(){return d(b._source,function(){var a=p.getSnapshot,c=p.setSnapshot;try{c(a(b._source));var d=Ig(w);e.mutableReadLanes|=d&e.pendingLanes}catch(q){c(function(){throw q;})}})},[b,d]);He(C,c)&&He(x,b)&&He(A,d)||(a={pending:null,dispatch:null,lastRenderedReducer:Jh,lastRenderedState:n},a.dispatch=l=Oh.bind(null,R,a),k.queue=a,k.baseQueue=null,n=Mh(e,b,c),k.memoizedState=k.baseState=n);return n}\nfunction Ph(a,b,c){var d=Ih();return Nh(d,a,b,c)}function Qh(a){var b=Hh();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:Jh,lastRenderedState:a};a=a.dispatch=Oh.bind(null,R,a);return[b.memoizedState,a]}\nfunction Rh(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=R.updateQueue;null===b?(b={lastEffect:null},R.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 Sh(a){var b=Hh();a={current:a};return b.memoizedState=a}function Th(){return Ih().memoizedState}function Uh(a,b,c,d){var e=Hh();R.flags|=a;e.memoizedState=Rh(1|b,c,void 0,void 0===d?null:d)}\nfunction Vh(a,b,c,d){var e=Ih();d=void 0===d?null:d;var f=void 0;if(null!==S){var g=S.memoizedState;f=g.destroy;if(null!==d&&Bh(d,g.deps)){Rh(b,c,f,d);return}}R.flags|=a;e.memoizedState=Rh(1|b,c,f,d)}function Wh(a,b){return Uh(516,4,a,b)}function Xh(a,b){return Vh(516,4,a,b)}function Yh(a,b){return Vh(4,2,a,b)}function Zh(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}}\nfunction $h(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Vh(4,2,Zh.bind(null,b,a),c)}function ai(){}function bi(a,b){var c=Ih();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Bh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}function ci(a,b){var c=Ih();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Bh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}\nfunction di(a,b){var c=eg();gg(98>c?98:c,function(){a(!0)});gg(97<c?97:c,function(){var c=wh.transition;wh.transition=1;try{a(!1),b()}finally{wh.transition=c}})}\nfunction Oh(a,b,c){var d=Hg(),e=Ig(a),f={lane:e,action:c,eagerReducer:null,eagerState:null,next:null},g=b.pending;null===g?f.next=f:(f.next=g.next,g.next=f);b.pending=f;g=a.alternate;if(a===R||null!==g&&g===R)zh=yh=!0;else{if(0===a.lanes&&(null===g||0===g.lanes)&&(g=b.lastRenderedReducer,null!==g))try{var h=b.lastRenderedState,k=g(h,c);f.eagerReducer=g;f.eagerState=k;if(He(k,h))return}catch(l){}finally{}Jg(a,e,d)}}\nvar Gh={readContext:vg,useCallback:Ah,useContext:Ah,useEffect:Ah,useImperativeHandle:Ah,useLayoutEffect:Ah,useMemo:Ah,useReducer:Ah,useRef:Ah,useState:Ah,useDebugValue:Ah,useDeferredValue:Ah,useTransition:Ah,useMutableSource:Ah,useOpaqueIdentifier:Ah,unstable_isNewReconciler:!1},Dh={readContext:vg,useCallback:function(a,b){Hh().memoizedState=[a,void 0===b?null:b];return a},useContext:vg,useEffect:Wh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Uh(4,2,Zh.bind(null,\nb,a),c)},useLayoutEffect:function(a,b){return Uh(4,2,a,b)},useMemo:function(a,b){var c=Hh();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Hh();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={pending:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=Oh.bind(null,R,a);return[d.memoizedState,a]},useRef:Sh,useState:Qh,useDebugValue:ai,useDeferredValue:function(a){var b=Qh(a),c=b[0],d=b[1];Wh(function(){var b=wh.transition;\nwh.transition=1;try{d(a)}finally{wh.transition=b}},[a]);return c},useTransition:function(){var a=Qh(!1),b=a[0];a=di.bind(null,a[1]);Sh(a);return[a,b]},useMutableSource:function(a,b,c){var d=Hh();d.memoizedState={refs:{getSnapshot:b,setSnapshot:null},source:a,subscribe:c};return Nh(d,a,b,c)},useOpaqueIdentifier:function(){if(lh){var a=!1,b=uf(function(){a||(a=!0,c(\"r:\"+(tf++).toString(36)));throw Error(y(355));}),c=Qh(b)[1];0===(R.mode&2)&&(R.flags|=516,Rh(5,function(){c(\"r:\"+(tf++).toString(36))},\nvoid 0,null));return b}b=\"r:\"+(tf++).toString(36);Qh(b);return b},unstable_isNewReconciler:!1},Eh={readContext:vg,useCallback:bi,useContext:vg,useEffect:Xh,useImperativeHandle:$h,useLayoutEffect:Yh,useMemo:ci,useReducer:Kh,useRef:Th,useState:function(){return Kh(Jh)},useDebugValue:ai,useDeferredValue:function(a){var b=Kh(Jh),c=b[0],d=b[1];Xh(function(){var b=wh.transition;wh.transition=1;try{d(a)}finally{wh.transition=b}},[a]);return c},useTransition:function(){var a=Kh(Jh)[0];return[Th().current,\na]},useMutableSource:Ph,useOpaqueIdentifier:function(){return Kh(Jh)[0]},unstable_isNewReconciler:!1},Fh={readContext:vg,useCallback:bi,useContext:vg,useEffect:Xh,useImperativeHandle:$h,useLayoutEffect:Yh,useMemo:ci,useReducer:Lh,useRef:Th,useState:function(){return Lh(Jh)},useDebugValue:ai,useDeferredValue:function(a){var b=Lh(Jh),c=b[0],d=b[1];Xh(function(){var b=wh.transition;wh.transition=1;try{d(a)}finally{wh.transition=b}},[a]);return c},useTransition:function(){var a=Lh(Jh)[0];return[Th().current,\na]},useMutableSource:Ph,useOpaqueIdentifier:function(){return Lh(Jh)[0]},unstable_isNewReconciler:!1},ei=ra.ReactCurrentOwner,ug=!1;function fi(a,b,c,d){b.child=null===a?Zg(b,null,c,d):Yg(b,a.child,c,d)}function gi(a,b,c,d,e){c=c.render;var f=b.ref;tg(b,e);d=Ch(a,b,c,d,f,e);if(null!==a&&!ug)return b.updateQueue=a.updateQueue,b.flags&=-517,a.lanes&=~e,hi(a,b,e);b.flags|=1;fi(a,b,d,e);return b.child}\nfunction ii(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!ji(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,ki(a,b,g,d,e,f);a=Vg(c.type,null,d,b,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(0===(e&f)&&(e=g.memoizedProps,c=c.compare,c=null!==c?c:Je,c(e,d)&&a.ref===b.ref))return hi(a,b,f);b.flags|=1;a=Tg(g,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction ki(a,b,c,d,e,f){if(null!==a&&Je(a.memoizedProps,d)&&a.ref===b.ref)if(ug=!1,0!==(f&e))0!==(a.flags&16384)&&(ug=!0);else return b.lanes=a.lanes,hi(a,b,f);return li(a,b,c,d,f)}\nfunction mi(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode||\"unstable-defer-without-hiding\"===d.mode)if(0===(b.mode&4))b.memoizedState={baseLanes:0},ni(b,c);else if(0!==(c&1073741824))b.memoizedState={baseLanes:0},ni(b,null!==f?f.baseLanes:c);else return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a},ni(b,a),null;else null!==f?(d=f.baseLanes|c,b.memoizedState=null):d=c,ni(b,d);fi(a,b,e,c);return b.child}\nfunction oi(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=128}function li(a,b,c,d,e){var f=Ff(c)?Df:M.current;f=Ef(b,f);tg(b,e);c=Ch(a,b,c,d,f,e);if(null!==a&&!ug)return b.updateQueue=a.updateQueue,b.flags&=-517,a.lanes&=~e,hi(a,b,e);b.flags|=1;fi(a,b,c,e);return b.child}\nfunction pi(a,b,c,d,e){if(Ff(c)){var f=!0;Jf(b)}else f=!1;tg(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),Mg(b,c,d),Og(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=Ff(c)?Df:M.current,l=Ef(b,l));var n=c.getDerivedStateFromProps,A=\"function\"===typeof n||\"function\"===typeof g.getSnapshotBeforeUpdate;A||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\n\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Ng(b,g,d,l);wg=!1;var p=b.memoizedState;g.state=p;Cg(b,d,g,e);k=b.memoizedState;h!==d||p!==k||N.current||wg?(\"function\"===typeof n&&(Gg(b,c,n,d),k=b.memoizedState),(h=wg||Lg(b,c,h,d,p,k,l))?(A||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===\ntypeof g.componentDidMount&&(b.flags|=4)):(\"function\"===typeof g.componentDidMount&&(b.flags|=4),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4),d=!1)}else{g=b.stateNode;yg(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:lg(b.type,h);g.props=l;A=b.pendingProps;p=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=vg(k):(k=Ff(c)?Df:M.current,k=Ef(b,k));var C=c.getDerivedStateFromProps;(n=\"function\"===typeof C||\n\"function\"===typeof g.getSnapshotBeforeUpdate)||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==A||p!==k)&&Ng(b,g,d,k);wg=!1;p=b.memoizedState;g.state=p;Cg(b,d,g,e);var x=b.memoizedState;h!==A||p!==x||N.current||wg?(\"function\"===typeof C&&(Gg(b,c,C,d),x=b.memoizedState),(l=wg||Lg(b,c,l,d,p,x,k))?(n||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,\nx,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,x,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=256)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=256),b.memoizedProps=d,b.memoizedState=x),g.props=d,g.state=x,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||\nh===a.memoizedProps&&p===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=256),d=!1)}return qi(a,b,c,d,f,e)}\nfunction qi(a,b,c,d,e,f){oi(a,b);var g=0!==(b.flags&64);if(!d&&!g)return e&&Kf(b,c,!1),hi(a,b,f);d=b.stateNode;ei.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Yg(b,a.child,null,f),b.child=Yg(b,null,h,f)):fi(a,b,h,f);b.memoizedState=d.state;e&&Kf(b,c,!0);return b.child}function ri(a){var b=a.stateNode;b.pendingContext?Hf(a,b.pendingContext,b.pendingContext!==b.context):b.context&&Hf(a,b.context,!1);eh(a,b.containerInfo)}\nvar si={dehydrated:null,retryLane:0};\nfunction ti(a,b,c){var d=b.pendingProps,e=P.current,f=!1,g;(g=0!==(b.flags&64))||(g=null!==a&&null===a.memoizedState?!1:0!==(e&2));g?(f=!0,b.flags&=-65):null!==a&&null===a.memoizedState||void 0===d.fallback||!0===d.unstable_avoidThisFallback||(e|=1);I(P,e&1);if(null===a){void 0!==d.fallback&&ph(b);a=d.children;e=d.fallback;if(f)return a=ui(b,a,e,c),b.child.memoizedState={baseLanes:c},b.memoizedState=si,a;if(\"number\"===typeof d.unstable_expectedLoadTime)return a=ui(b,a,e,c),b.child.memoizedState={baseLanes:c},\nb.memoizedState=si,b.lanes=33554432,a;c=vi({mode:\"visible\",children:a},b.mode,c,null);c.return=b;return b.child=c}if(null!==a.memoizedState){if(f)return d=wi(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?{baseLanes:c}:{baseLanes:e.baseLanes|c},f.childLanes=a.childLanes&~c,b.memoizedState=si,d;c=xi(a,b,d.children,c);b.memoizedState=null;return c}if(f)return d=wi(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?{baseLanes:c}:\n{baseLanes:e.baseLanes|c},f.childLanes=a.childLanes&~c,b.memoizedState=si,d;c=xi(a,b,d.children,c);b.memoizedState=null;return c}function ui(a,b,c,d){var e=a.mode,f=a.child;b={mode:\"hidden\",children:b};0===(e&2)&&null!==f?(f.childLanes=0,f.pendingProps=b):f=vi(b,e,0,null);c=Xg(c,e,d,null);f.return=a;c.return=a;f.sibling=c;a.child=f;return c}\nfunction xi(a,b,c,d){var e=a.child;a=e.sibling;c=Tg(e,{mode:\"visible\",children:c});0===(b.mode&2)&&(c.lanes=d);c.return=b;c.sibling=null;null!==a&&(a.nextEffect=null,a.flags=8,b.firstEffect=b.lastEffect=a);return b.child=c}\nfunction wi(a,b,c,d,e){var f=b.mode,g=a.child;a=g.sibling;var h={mode:\"hidden\",children:c};0===(f&2)&&b.child!==g?(c=b.child,c.childLanes=0,c.pendingProps=h,g=c.lastEffect,null!==g?(b.firstEffect=c.firstEffect,b.lastEffect=g,g.nextEffect=null):b.firstEffect=b.lastEffect=null):c=Tg(g,h);null!==a?d=Tg(a,d):(d=Xg(d,f,e,null),d.flags|=2);d.return=b;c.return=b;c.sibling=d;b.child=c;return d}function yi(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);sg(a.return,b)}\nfunction zi(a,b,c,d,e,f){var g=a.memoizedState;null===g?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e,lastEffect:f}:(g.isBackwards=b,g.rendering=null,g.renderingStartTime=0,g.last=d,g.tail=c,g.tailMode=e,g.lastEffect=f)}\nfunction Ai(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;fi(a,b,d.children,c);d=P.current;if(0!==(d&2))d=d&1|2,b.flags|=64;else{if(null!==a&&0!==(a.flags&64))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&yi(a,c);else if(19===a.tag)yi(a,c);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}I(P,d);if(0===(b.mode&2))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===ih(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);zi(b,!1,e,c,f,b.lastEffect);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===ih(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}zi(b,!0,c,null,f,b.lastEffect);break;case \"together\":zi(b,!1,null,null,void 0,b.lastEffect);break;default:b.memoizedState=null}return b.child}\nfunction hi(a,b,c){null!==a&&(b.dependencies=a.dependencies);Dg|=b.lanes;if(0!==(c&b.childLanes)){if(null!==a&&b.child!==a.child)throw Error(y(153));if(null!==b.child){a=b.child;c=Tg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Tg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}return null}var Bi,Ci,Di,Ei;\nBi=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}};Ci=function(){};\nDi=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;dh(ah.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"option\":e=eb(a,e);d=eb(a,d);f=[];break;case \"select\":e=m({},e,{value:void 0});d=m({},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=jf)}vb(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===\nl){var h=e[l];for(g in h)h.hasOwnProperty(g)&&(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ca.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||\n(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,c)),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&&(ca.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&G(\"scroll\",a),f||h===k||(f=[])):\"object\"===typeof k&&null!==k&&k.$$typeof===Ga?k.toString():(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",\nc);var l=f;if(b.updateQueue=l)b.flags|=4}};Ei=function(a,b,c,d){c!==d&&(b.flags|=4)};function Fi(a,b){if(!lh)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 Gi(a,b,c){var d=b.pendingProps;switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:return Ff(b.type)&&Gf(),null;case 3:fh();H(N);H(M);uh();d=b.stateNode;d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)rh(b)?b.flags|=4:d.hydrate||(b.flags|=256);Ci(b);return null;case 5:hh(b);var e=dh(ch.current);c=b.type;if(null!==a&&null!=b.stateNode)Di(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=128);else{if(!d){if(null===\nb.stateNode)throw Error(y(166));return null}a=dh(ah.current);if(rh(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[wf]=b;d[xf]=f;switch(c){case \"dialog\":G(\"cancel\",d);G(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",d);break;case \"video\":case \"audio\":for(a=0;a<Xe.length;a++)G(Xe[a],d);break;case \"source\":G(\"error\",d);break;case \"img\":case \"image\":case \"link\":G(\"error\",d);G(\"load\",d);break;case \"details\":G(\"toggle\",d);break;case \"input\":Za(d,f);G(\"invalid\",d);break;case \"select\":d._wrapperState=\n{wasMultiple:!!f.multiple};G(\"invalid\",d);break;case \"textarea\":hb(d,f),G(\"invalid\",d)}vb(c,f);a=null;for(var g in f)f.hasOwnProperty(g)&&(e=f[g],\"children\"===g?\"string\"===typeof e?d.textContent!==e&&(a=[\"children\",e]):\"number\"===typeof e&&d.textContent!==\"\"+e&&(a=[\"children\",\"\"+e]):ca.hasOwnProperty(g)&&null!=e&&\"onScroll\"===g&&G(\"scroll\",d));switch(c){case \"input\":Va(d);cb(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=\njf)}d=a;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;a===kb.html&&(a=lb(c));a===kb.html?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\"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[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<Xe.length;e++)G(Xe[e],a);e=d;break;case \"source\":G(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":G(\"error\",a);G(\"load\",a);e=d;break;case \"details\":G(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);G(\"invalid\",a);break;case \"option\":e=eb(a,d);break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=m({},d,{value:void 0});G(\"invalid\",a);break;case \"textarea\":hb(a,d);e=\ngb(a,d);G(\"invalid\",a);break;default:e=d}vb(c,e);var h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?tb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&ob(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==c||\"\"!==k)&&pb(a,k):\"number\"===typeof k&&pb(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ca.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&G(\"scroll\",a):null!=k&&qa(a,f,k,g))}switch(c){case \"input\":Va(a);cb(a,d,!1);\nbreak;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,!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=jf)}mf(c,d)&&(b.flags|=4)}null!==b.ref&&(b.flags|=128)}return null;case 6:if(a&&null!=b.stateNode)Ei(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(y(166));\nc=dh(ch.current);dh(ah.current);rh(b)?(d=b.stateNode,c=b.memoizedProps,d[wf]=b,d.nodeValue!==c&&(b.flags|=4)):(d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[wf]=b,b.stateNode=d)}return null;case 13:H(P);d=b.memoizedState;if(0!==(b.flags&64))return b.lanes=c,b;d=null!==d;c=!1;null===a?void 0!==b.memoizedProps.fallback&&rh(b):c=null!==a.memoizedState;if(d&&!c&&0!==(b.mode&2))if(null===a&&!0!==b.memoizedProps.unstable_avoidThisFallback||0!==(P.current&1))0===V&&(V=3);else{if(0===V||3===V)V=\n4;null===U||0===(Dg&134217727)&&0===(Hi&134217727)||Ii(U,W)}if(d||c)b.flags|=4;return null;case 4:return fh(),Ci(b),null===a&&cf(b.stateNode.containerInfo),null;case 10:return rg(b),null;case 17:return Ff(b.type)&&Gf(),null;case 19:H(P);d=b.memoizedState;if(null===d)return null;f=0!==(b.flags&64);g=d.rendering;if(null===g)if(f)Fi(d,!1);else{if(0!==V||null!==a&&0!==(a.flags&64))for(a=b.child;null!==a;){g=ih(a);if(null!==g){b.flags|=64;Fi(d,!1);f=g.updateQueue;null!==f&&(b.updateQueue=f,b.flags|=4);\nnull===d.lastEffect&&(b.firstEffect=null);b.lastEffect=d.lastEffect;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=2,f.nextEffect=null,f.firstEffect=null,f.lastEffect=null,g=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,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.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,\nf.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;I(P,P.current&1|2);return b.child}a=a.sibling}null!==d.tail&&O()>Ji&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(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}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,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=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),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;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;e<f.length;e+=\n2){var g=f[e],h=f[e+1];\"style\"===g?tb(c,h):\"dangerouslySetInnerHTML\"===g?ob(c,h):\"children\"===g?pb(c,h):qa(c,g,h,b)}switch(a){case \"input\":ab(c,d);break;case \"textarea\":ib(c,d);break;case \"select\":a=c._wrapperState.wasMultiple,c._wrapperState.wasMultiple=!!d.multiple,f=d.value,null!=f?fb(c,!!d.multiple,f,!1):a!==!!d.multiple&&(null!=d.defaultValue?fb(c,!!d.multiple,d.defaultValue,!0):fb(c,!!d.multiple,d.multiple?[]:\"\",!1))}}}return;case 6:if(null===b.stateNode)throw Error(y(162));b.stateNode.nodeValue=\nb.memoizedProps;return;case 3:c=b.stateNode;c.hydrate&&(c.hydrate=!1,Cc(c.containerInfo));return;case 12:return;case 13:null!==b.memoizedState&&(jj=O(),aj(b.child,!0));kj(b);return;case 19:kj(b);return;case 17:return;case 23:case 24:aj(b,null!==b.memoizedState);return}throw Error(y(163));}function kj(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Ui);b.forEach(function(b){var d=lj.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction mj(a,b){return null!==a&&(a=a.memoizedState,null===a||null!==a.dehydrated)?(b=b.memoizedState,null!==b&&null===b.dehydrated):!1}var nj=Math.ceil,oj=ra.ReactCurrentDispatcher,pj=ra.ReactCurrentOwner,X=0,U=null,Y=null,W=0,qj=0,rj=Bf(0),V=0,sj=null,tj=0,Dg=0,Hi=0,uj=0,vj=null,jj=0,Ji=Infinity;function wj(){Ji=O()+500}var Z=null,Qi=!1,Ri=null,Ti=null,xj=!1,yj=null,zj=90,Aj=[],Bj=[],Cj=null,Dj=0,Ej=null,Fj=-1,Gj=0,Hj=0,Ij=null,Jj=!1;function Hg(){return 0!==(X&48)?O():-1!==Fj?Fj:Fj=O()}\nfunction Ig(a){a=a.mode;if(0===(a&2))return 1;if(0===(a&4))return 99===eg()?1:2;0===Gj&&(Gj=tj);if(0!==kg.transition){0!==Hj&&(Hj=null!==vj?vj.pendingLanes:0);a=Gj;var b=4186112&~Hj;b&=-b;0===b&&(a=4186112&~a,b=a&-a,0===b&&(b=8192));return b}a=eg();0!==(X&4)&&98===a?a=Xc(12,Gj):(a=Sc(a),a=Xc(a,Gj));return a}\nfunction Jg(a,b,c){if(50<Dj)throw Dj=0,Ej=null,Error(y(185));a=Kj(a,b);if(null===a)return null;$c(a,b,c);a===U&&(Hi|=b,4===V&&Ii(a,W));var d=eg();1===b?0!==(X&8)&&0===(X&48)?Lj(a):(Mj(a,c),0===X&&(wj(),ig())):(0===(X&4)||98!==d&&99!==d||(null===Cj?Cj=new Set([a]):Cj.add(a)),Mj(a,c));vj=a}function Kj(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}\nfunction Mj(a,b){for(var c=a.callbackNode,d=a.suspendedLanes,e=a.pingedLanes,f=a.expirationTimes,g=a.pendingLanes;0<g;){var h=31-Vc(g),k=1<<h,l=f[h];if(-1===l){if(0===(k&d)||0!==(k&e)){l=b;Rc(k);var n=F;f[h]=10<=n?l+250:6<=n?l+5E3:-1}}else l<=b&&(a.expiredLanes|=k);g&=~k}d=Uc(a,a===U?W:0);b=F;if(0===d)null!==c&&(c!==Zf&&Pf(c),a.callbackNode=null,a.callbackPriority=0);else{if(null!==c){if(a.callbackPriority===b)return;c!==Zf&&Pf(c)}15===b?(c=Lj.bind(null,a),null===ag?(ag=[c],bg=Of(Uf,jg)):ag.push(c),\nc=Zf):14===b?c=hg(99,Lj.bind(null,a)):(c=Tc(b),c=hg(c,Nj.bind(null,a)));a.callbackPriority=b;a.callbackNode=c}}\nfunction Nj(a){Fj=-1;Hj=Gj=0;if(0!==(X&48))throw Error(y(327));var b=a.callbackNode;if(Oj()&&a.callbackNode!==b)return null;var c=Uc(a,a===U?W:0);if(0===c)return null;var d=c;var e=X;X|=16;var f=Pj();if(U!==a||W!==d)wj(),Qj(a,d);do try{Rj();break}catch(h){Sj(a,h)}while(1);qg();oj.current=f;X=e;null!==Y?d=0:(U=null,W=0,d=V);if(0!==(tj&Hi))Qj(a,0);else if(0!==d){2===d&&(X|=64,a.hydrate&&(a.hydrate=!1,qf(a.containerInfo)),c=Wc(a),0!==c&&(d=Tj(a,c)));if(1===d)throw b=sj,Qj(a,0),Ii(a,c),Mj(a,O()),b;a.finishedWork=\na.current.alternate;a.finishedLanes=c;switch(d){case 0:case 1:throw Error(y(345));case 2:Uj(a);break;case 3:Ii(a,c);if((c&62914560)===c&&(d=jj+500-O(),10<d)){if(0!==Uc(a,0))break;e=a.suspendedLanes;if((e&c)!==c){Hg();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=of(Uj.bind(null,a),d);break}Uj(a);break;case 4:Ii(a,c);if((c&4186112)===c)break;d=a.eventTimes;for(e=-1;0<c;){var g=31-Vc(c);f=1<<g;g=d[g];g>e&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10<c){a.timeoutHandle=of(Uj.bind(null,a),c);break}Uj(a);break;case 5:Uj(a);break;default:throw Error(y(329));}}Mj(a,O());return a.callbackNode===b?Nj.bind(null,a):null}function Ii(a,b){b&=~uj;b&=~Hi;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-Vc(b),d=1<<c;a[c]=-1;b&=~d}}\nfunction Lj(a){if(0!==(X&48))throw Error(y(327));Oj();if(a===U&&0!==(a.expiredLanes&W)){var b=W;var c=Tj(a,b);0!==(tj&Hi)&&(b=Uc(a,b),c=Tj(a,b))}else b=Uc(a,0),c=Tj(a,b);0!==a.tag&&2===c&&(X|=64,a.hydrate&&(a.hydrate=!1,qf(a.containerInfo)),b=Wc(a),0!==b&&(c=Tj(a,b)));if(1===c)throw c=sj,Qj(a,0),Ii(a,b),Mj(a,O()),c;a.finishedWork=a.current.alternate;a.finishedLanes=b;Uj(a);Mj(a,O());return null}\nfunction Vj(){if(null!==Cj){var a=Cj;Cj=null;a.forEach(function(a){a.expiredLanes|=24&a.pendingLanes;Mj(a,O())})}ig()}function Wj(a,b){var c=X;X|=1;try{return a(b)}finally{X=c,0===X&&(wj(),ig())}}function Xj(a,b){var c=X;X&=-2;X|=8;try{return a(b)}finally{X=c,0===X&&(wj(),ig())}}function ni(a,b){I(rj,qj);qj|=b;tj|=b}function Ki(){qj=rj.current;H(rj)}\nfunction Qj(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,pf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&Gf();break;case 3:fh();H(N);H(M);uh();break;case 5:hh(d);break;case 4:fh();break;case 13:H(P);break;case 19:H(P);break;case 10:rg(d);break;case 23:case 24:Ki()}c=c.return}U=a;Y=Tg(a.current,null);W=qj=tj=b;V=0;sj=null;uj=Hi=Dg=0}\nfunction Sj(a,b){do{var c=Y;try{qg();vh.current=Gh;if(yh){for(var d=R.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}yh=!1}xh=0;T=S=R=null;zh=!1;pj.current=null;if(null===c||null===c.return){V=1;sj=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=W;h.flags|=2048;h.firstEffect=h.lastEffect=null;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k;if(0===(h.mode&2)){var n=h.alternate;n?(h.updateQueue=n.updateQueue,h.memoizedState=n.memoizedState,h.lanes=n.lanes):\n(h.updateQueue=null,h.memoizedState=null)}var A=0!==(P.current&1),p=g;do{var C;if(C=13===p.tag){var x=p.memoizedState;if(null!==x)C=null!==x.dehydrated?!0:!1;else{var w=p.memoizedProps;C=void 0===w.fallback?!1:!0!==w.unstable_avoidThisFallback?!0:A?!1:!0}}if(C){var z=p.updateQueue;if(null===z){var u=new Set;u.add(l);p.updateQueue=u}else z.add(l);if(0===(p.mode&2)){p.flags|=64;h.flags|=16384;h.flags&=-2981;if(1===h.tag)if(null===h.alternate)h.tag=17;else{var t=zg(-1,1);t.tag=2;Ag(h,t)}h.lanes|=1;break a}k=\nvoid 0;h=b;var q=f.pingCache;null===q?(q=f.pingCache=new Oi,k=new Set,q.set(l,k)):(k=q.get(l),void 0===k&&(k=new Set,q.set(l,k)));if(!k.has(h)){k.add(h);var v=Yj.bind(null,f,l,h);l.then(v,v)}p.flags|=4096;p.lanes=b;break a}p=p.return}while(null!==p);k=Error((Ra(h.type)||\"A React component\")+\" suspended while rendering, but no fallback UI was specified.\\n\\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1<b.flags&&(null!==\na.lastEffect?a.lastEffect.nextEffect=b:a.firstEffect=b,a.lastEffect=b))}else{c=Li(b);if(null!==c){c.flags&=2047;Y=c;return}null!==a&&(a.firstEffect=a.lastEffect=null,a.flags|=2048)}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===V&&(V=5)}function Uj(a){var b=eg();gg(99,dk.bind(null,a,b));return null}\nfunction dk(a,b){do Oj();while(null!==yj);if(0!==(X&48))throw Error(y(327));var c=a.finishedWork;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(y(177));a.callbackNode=null;var d=c.lanes|c.childLanes,e=d,f=a.pendingLanes&~e;a.pendingLanes=e;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=e;a.mutableReadLanes&=e;a.entangledLanes&=e;e=a.entanglements;for(var g=a.eventTimes,h=a.expirationTimes;0<f;){var k=31-Vc(f),l=1<<k;e[k]=0;g[k]=-1;h[k]=-1;f&=~l}null!==\nCj&&0===(d&24)&&Cj.has(a)&&Cj.delete(a);a===U&&(Y=U=null,W=0);1<c.flags?null!==c.lastEffect?(c.lastEffect.nextEffect=c,d=c.firstEffect):d=c:d=c.firstEffect;if(null!==d){e=X;X|=32;pj.current=null;kf=fd;g=Ne();if(Oe(g)){if(\"selectionStart\"in g)h={start:g.selectionStart,end:g.selectionEnd};else a:if(h=(h=g.ownerDocument)&&h.defaultView||window,(l=h.getSelection&&h.getSelection())&&0!==l.rangeCount){h=l.anchorNode;f=l.anchorOffset;k=l.focusNode;l=l.focusOffset;try{h.nodeType,k.nodeType}catch(va){h=null;\nbreak a}var n=0,A=-1,p=-1,C=0,x=0,w=g,z=null;b:for(;;){for(var u;;){w!==h||0!==f&&3!==w.nodeType||(A=n+f);w!==k||0!==l&&3!==w.nodeType||(p=n+l);3===w.nodeType&&(n+=w.nodeValue.length);if(null===(u=w.firstChild))break;z=w;w=u}for(;;){if(w===g)break b;z===h&&++C===f&&(A=n);z===k&&++x===l&&(p=n);if(null!==(u=w.nextSibling))break;w=z;z=w.parentNode}w=u}h=-1===A||-1===p?null:{start:A,end:p}}else h=null;h=h||{start:0,end:0}}else h=null;lf={focusedElem:g,selectionRange:h};fd=!1;Ij=null;Jj=!1;Z=d;do try{ek()}catch(va){if(null===\nZ)throw Error(y(330));Wi(Z,va);Z=Z.nextEffect}while(null!==Z);Ij=null;Z=d;do try{for(g=a;null!==Z;){var t=Z.flags;t&16&&pb(Z.stateNode,\"\");if(t&128){var q=Z.alternate;if(null!==q){var v=q.ref;null!==v&&(\"function\"===typeof v?v(null):v.current=null)}}switch(t&1038){case 2:fj(Z);Z.flags&=-3;break;case 6:fj(Z);Z.flags&=-3;ij(Z.alternate,Z);break;case 1024:Z.flags&=-1025;break;case 1028:Z.flags&=-1025;ij(Z.alternate,Z);break;case 4:ij(Z.alternate,Z);break;case 8:h=Z;cj(g,h);var J=h.alternate;dj(h);null!==\nJ&&dj(J)}Z=Z.nextEffect}}catch(va){if(null===Z)throw Error(y(330));Wi(Z,va);Z=Z.nextEffect}while(null!==Z);v=lf;q=Ne();t=v.focusedElem;g=v.selectionRange;if(q!==t&&t&&t.ownerDocument&&Me(t.ownerDocument.documentElement,t)){null!==g&&Oe(t)&&(q=g.start,v=g.end,void 0===v&&(v=q),\"selectionStart\"in t?(t.selectionStart=q,t.selectionEnd=Math.min(v,t.value.length)):(v=(q=t.ownerDocument||document)&&q.defaultView||window,v.getSelection&&(v=v.getSelection(),h=t.textContent.length,J=Math.min(g.start,h),g=void 0===\ng.end?J:Math.min(g.end,h),!v.extend&&J>g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;t<q.length;t++)v=q[t],v.element.scrollLeft=v.left,v.element.scrollTop=v.top}fd=!!kf;lf=kf=null;a.current=c;Z=d;do try{for(t=a;null!==Z;){var K=Z.flags;K&36&&Yi(t,Z.alternate,Z);if(K&128){q=void 0;var Q=Z.ref;if(null!==Q){var L=Z.stateNode;switch(Z.tag){case 5:q=L;break;default:q=L}\"function\"===typeof Q?Q(q):Q.current=q}}Z=Z.nextEffect}}catch(va){if(null===Z)throw Error(y(330));Wi(Z,va);Z=Z.nextEffect}while(null!==Z);Z=null;$f();X=e}else a.current=c;if(xj)xj=!1,yj=a,zj=b;else for(Z=d;null!==Z;)b=\nZ.nextEffect,Z.nextEffect=null,Z.flags&8&&(K=Z,K.sibling=null,K.stateNode=null),Z=b;d=a.pendingLanes;0===d&&(Ti=null);1===d?a===Ej?Dj++:(Dj=0,Ej=a):Dj=0;c=c.stateNode;if(Mf&&\"function\"===typeof Mf.onCommitFiberRoot)try{Mf.onCommitFiberRoot(Lf,c,void 0,64===(c.current.flags&64))}catch(va){}Mj(a,O());if(Qi)throw Qi=!1,a=Ri,Ri=null,a;if(0!==(X&8))return null;ig();return null}\nfunction ek(){for(;null!==Z;){var a=Z.alternate;Jj||null===Ij||(0!==(Z.flags&8)?dc(Z,Ij)&&(Jj=!0):13===Z.tag&&mj(a,Z)&&dc(Z,Ij)&&(Jj=!0));var b=Z.flags;0!==(b&256)&&Xi(a,Z);0===(b&512)||xj||(xj=!0,hg(97,function(){Oj();return null}));Z=Z.nextEffect}}function Oj(){if(90!==zj){var a=97<zj?97:zj;zj=90;return gg(a,fk)}return!1}function $i(a,b){Aj.push(b,a);xj||(xj=!0,hg(97,function(){Oj();return null}))}function Zi(a,b){Bj.push(b,a);xj||(xj=!0,hg(97,function(){Oj();return null}))}\nfunction fk(){if(null===yj)return!1;var a=yj;yj=null;if(0!==(X&48))throw Error(y(331));var b=X;X|=32;var c=Bj;Bj=[];for(var d=0;d<c.length;d+=2){var e=c[d],f=c[d+1],g=e.destroy;e.destroy=void 0;if(\"function\"===typeof g)try{g()}catch(k){if(null===f)throw Error(y(330));Wi(f,k)}}c=Aj;Aj=[];for(d=0;d<c.length;d+=2){e=c[d];f=c[d+1];try{var h=e.create;e.destroy=h()}catch(k){if(null===f)throw Error(y(330));Wi(f,k)}}for(h=a.current.firstEffect;null!==h;)a=h.nextEffect,h.nextEffect=null,h.flags&8&&(h.sibling=\nnull,h.stateNode=null),h=a;X=b;ig();return!0}function gk(a,b,c){b=Mi(c,b);b=Pi(a,b,1);Ag(a,b);b=Hg();a=Kj(a,1);null!==a&&($c(a,1,b),Mj(a,b))}\nfunction Wi(a,b){if(3===a.tag)gk(a,a,b);else for(var c=a.return;null!==c;){if(3===c.tag){gk(c,a,b);break}else if(1===c.tag){var d=c.stateNode;if(\"function\"===typeof c.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Ti||!Ti.has(d))){a=Mi(b,a);var e=Si(c,a,1);Ag(c,e);e=Hg();c=Kj(c,1);if(null!==c)$c(c,1,e),Mj(c,e);else if(\"function\"===typeof d.componentDidCatch&&(null===Ti||!Ti.has(d)))try{d.componentDidCatch(b,a)}catch(f){}break}}c=c.return}}\nfunction Yj(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=Hg();a.pingedLanes|=a.suspendedLanes&c;U===a&&(W&c)===c&&(4===V||3===V&&(W&62914560)===W&&500>O()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e<a.length;e+=2)f=a[e],f._workInProgressVersionPrimary=a[e+1],th.push(f);c=Zg(b,null,d,c);for(b.child=c;c;)c.flags=c.flags&-3|1024,c=c.sibling}else fi(a,b,d,c),sh();b=b.child}return b;case 5:return gh(b),null===a&&\nph(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,nf(d,e)?g=null:null!==f&&nf(d,f)&&(b.flags|=16),oi(a,b),fi(a,b,g,c),b.child;case 6:return null===a&&ph(b),null;case 13:return ti(a,b,c);case 4:return eh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Yg(b,null,d,c):fi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),gi(a,b,d,e,c);case 7:return fi(a,b,b.pendingProps,c),b.child;case 8:return fi(a,b,b.pendingProps.children,\nc),b.child;case 12:return fi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(mg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=He(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!N.current){b=hi(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==k){g=h.child;for(var l=\nk.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=zg(-1,c&-c),l.tag=2,Ag(h,l));h.lanes|=c;l=h.alternate;null!==l&&(l.lanes|=c);sg(h.return,c);k.lanes|=c;break}l=l.next}}else g=10===h.tag?h.type===b.type?null:h.child:h.child;if(null!==g)g.return=h;else for(g=h;null!==g;){if(g===b){g=null;break}h=g.sibling;if(null!==h){h.return=g.return;g=h;break}g=g.return}h=g}fi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,f=b.pendingProps,d=f.children,tg(b,c),e=vg(e,\nf.unstable_observedBits),d=d(e),b.flags|=1,fi(a,b,d,c),b.child;case 14:return e=b.type,f=lg(e,b.pendingProps),f=lg(e.type,f),ii(a,b,e,f,d,c);case 15:return ki(a,b,b.type,b.pendingProps,d,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),b.tag=1,Ff(d)?(a=!0,Jf(b)):a=!1,tg(b,c),Mg(b,d,e),Og(b,d,e,c),qi(null,b,d,!0,a,c);case 19:return Ai(a,b,c);case 23:return mi(a,b,c);case 24:return mi(a,b,c)}throw Error(y(156,b.tag));\n};function ik(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.flags=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childLanes=this.lanes=0;this.alternate=null}function nh(a,b,c,d){return new ik(a,b,c,d)}function ji(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction hk(a){if(\"function\"===typeof a)return ji(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Aa)return 11;if(a===Da)return 14}return 2}\nfunction Tg(a,b){var c=a.alternate;null===c?(c=nh(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.nextEffect=null,c.firstEffect=null,c.lastEffect=null);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 Vg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)ji(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ua:return Xg(c.children,e,f,b);case Ha:g=8;e|=16;break;case wa:g=8;e|=1;break;case xa:return a=nh(12,c,b,e|8),a.elementType=xa,a.type=xa,a.lanes=f,a;case Ba:return a=nh(13,c,b,e),a.type=Ba,a.elementType=Ba,a.lanes=f,a;case Ca:return a=nh(19,c,b,e),a.elementType=Ca,a.lanes=f,a;case Ia:return vi(c,e,f,b);case Ja:return a=nh(24,c,b,e),a.elementType=Ja,a.lanes=f,a;default:if(\"object\"===\ntypeof a&&null!==a)switch(a.$$typeof){case ya:g=10;break a;case za:g=9;break a;case Aa:g=11;break a;case Da:g=14;break a;case Ea:g=16;d=null;break a;case Fa:g=22;break a}throw Error(y(130,null==a?a:typeof a,\"\"));}b=nh(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Xg(a,b,c,d){a=nh(7,a,d,b);a.lanes=c;return a}function vi(a,b,c,d){a=nh(23,a,d,b);a.elementType=Ia;a.lanes=c;return a}function Ug(a,b,c){a=nh(6,a,null,b);a.lanes=c;return a}\nfunction Wg(a,b,c){b=nh(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 jk(a,b,c){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.pendingContext=this.context=null;this.hydrate=c;this.callbackNode=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.mutableSourceEagerHydrationData=null}\nfunction kk(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:ta,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction lk(a,b,c,d){var e=b.current,f=Hg(),g=Ig(e);a:if(c){c=c._reactInternals;b:{if(Zb(c)!==c||1!==c.tag)throw Error(y(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(Ff(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(y(171));}if(1===c.tag){var k=c.type;if(Ff(k)){c=If(c,k,h);break a}}c=h}else c=Cf;null===b.context?b.context=c:b.pendingContext=c;b=zg(f,g);b.payload={element:a};d=void 0===d?null:d;null!==\nd&&(b.callback=d);Ag(e,b);Jg(e,g,f);return g}function mk(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 nk(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function ok(a,b){nk(a,b);(a=a.alternate)&&nk(a,b)}function pk(){return null}\nfunction qk(a,b,c){var d=null!=c&&null!=c.hydrationOptions&&c.hydrationOptions.mutableSources||null;c=new jk(a,b,null!=c&&!0===c.hydrate);b=nh(3,null,null,2===b?7:1===b?3:0);c.current=b;b.stateNode=c;xg(b);a[ff]=c.current;cf(8===a.nodeType?a.parentNode:a);if(d)for(a=0;a<d.length;a++){b=d[a];var e=b._getVersion;e=e(b._source);null==c.mutableSourceEagerHydrationData?c.mutableSourceEagerHydrationData=[b,e]:c.mutableSourceEagerHydrationData.push(b,e)}this._internalRoot=c}\nqk.prototype.render=function(a){lk(a,this._internalRoot,null,null)};qk.prototype.unmount=function(){var a=this._internalRoot,b=a.containerInfo;lk(null,a,null,function(){b[ff]=null})};function rk(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}\nfunction sk(a,b){b||(b=a?9===a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute(\"data-reactroot\")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new qk(a,0,b?{hydrate:!0}:void 0)}\nfunction tk(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f._internalRoot;if(\"function\"===typeof e){var h=e;e=function(){var a=mk(g);h.call(a)}}lk(b,g,a,e)}else{f=c._reactRootContainer=sk(c,d);g=f._internalRoot;if(\"function\"===typeof e){var k=e;e=function(){var a=mk(g);k.call(a)}}Xj(function(){lk(b,g,a,e)})}return mk(g)}ec=function(a){if(13===a.tag){var b=Hg();Jg(a,4,b);ok(a,4)}};fc=function(a){if(13===a.tag){var b=Hg();Jg(a,67108864,b);ok(a,67108864)}};\ngc=function(a){if(13===a.tag){var b=Hg(),c=Ig(a);Jg(a,c,b);ok(a,c)}};hc=function(a,b){return b()};\nyb=function(a,b,c){switch(b){case \"input\":ab(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(y(90));Wa(d);ab(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Wj;\nHb=function(a,b,c,d,e){var f=X;X|=4;try{return gg(98,a.bind(null,b,c,d,e))}finally{X=f,0===X&&(wj(),ig())}};Ib=function(){0===(X&49)&&(Vj(),Oj())};Jb=function(a,b){var c=X;X|=2;try{return a(b)}finally{X=c,0===X&&(wj(),ig())}};function uk(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!rk(b))throw Error(y(200));return kk(a,b,null,c)}var vk={Events:[Cb,ue,Db,Eb,Fb,Oj,{current:!1}]},wk={findFiberByHostInstance:wc,bundleType:0,version:\"17.0.2\",rendererPackageName:\"react-dom\"};\nvar xk={bundleType:wk.bundleType,version:wk.version,rendererPackageName:wk.rendererPackageName,rendererConfig:wk.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ra.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=cc(a);return null===a?null:a.stateNode},findFiberByHostInstance:wk.findFiberByHostInstance||\npk,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var yk=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!yk.isDisabled&&yk.supportsFiber)try{Lf=yk.inject(xk),Mf=yk}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=vk;exports.createPortal=uk;\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(y(188));throw Error(y(268,Object.keys(a)));}a=cc(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a,b){var c=X;if(0!==(c&48))return a(b);X|=1;try{if(a)return gg(99,a.bind(null,b))}finally{X=c,ig()}};exports.hydrate=function(a,b,c){if(!rk(b))throw Error(y(200));return tk(null,a,b,!0,c)};\nexports.render=function(a,b,c){if(!rk(b))throw Error(y(200));return tk(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!rk(a))throw Error(y(40));return a._reactRootContainer?(Xj(function(){tk(null,null,a,!1,function(){a._reactRootContainer=null;a[ff]=null})}),!0):!1};exports.unstable_batchedUpdates=Wj;exports.unstable_createPortal=function(a,b){return uk(a,b,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)};\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!rk(c))throw Error(y(200));if(null==a||void 0===a._reactInternals)throw Error(y(38));return tk(a,b,c,!1,d)};exports.version=\"17.0.2\";\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","/** @license React v16.13.1\n * react-is.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'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.NextArrow = exports.PrevArrow = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || 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); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar PrevArrow = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(PrevArrow, _React$PureComponent);\n\n var _super = _createSuper(PrevArrow);\n\n function PrevArrow() {\n _classCallCheck(this, PrevArrow);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(PrevArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var prevClasses = {\n \"slick-arrow\": true,\n \"slick-prev\": true\n };\n var prevHandler = this.clickHandler.bind(this, {\n message: \"previous\"\n });\n\n if (!this.props.infinite && (this.props.currentSlide === 0 || this.props.slideCount <= this.props.slidesToShow)) {\n prevClasses[\"slick-disabled\"] = true;\n prevHandler = null;\n }\n\n var prevArrowProps = {\n key: \"0\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(prevClasses),\n style: {\n display: \"block\"\n },\n onClick: prevHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var prevArrow;\n\n if (this.props.prevArrow) {\n prevArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.prevArrow, _objectSpread(_objectSpread({}, prevArrowProps), customProps));\n } else {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"0\",\n type: \"button\"\n }, prevArrowProps), \" \", \"Previous\");\n }\n\n return prevArrow;\n }\n }]);\n\n return PrevArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.PrevArrow = PrevArrow;\n\nvar NextArrow = /*#__PURE__*/function (_React$PureComponent2) {\n _inherits(NextArrow, _React$PureComponent2);\n\n var _super2 = _createSuper(NextArrow);\n\n function NextArrow() {\n _classCallCheck(this, NextArrow);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(NextArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var nextClasses = {\n \"slick-arrow\": true,\n \"slick-next\": true\n };\n var nextHandler = this.clickHandler.bind(this, {\n message: \"next\"\n });\n\n if (!(0, _innerSliderUtils.canGoNext)(this.props)) {\n nextClasses[\"slick-disabled\"] = true;\n nextHandler = null;\n }\n\n var nextArrowProps = {\n key: \"1\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(nextClasses),\n style: {\n display: \"block\"\n },\n onClick: nextHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var nextArrow;\n\n if (this.props.nextArrow) {\n nextArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.nextArrow, _objectSpread(_objectSpread({}, nextArrowProps), customProps));\n } else {\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"1\",\n type: \"button\"\n }, nextArrowProps), \" \", \"Next\");\n }\n\n return nextArrow;\n }\n }]);\n\n return NextArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.NextArrow = NextArrow;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar defaultProps = {\n accessibility: true,\n adaptiveHeight: false,\n afterChange: null,\n appendDots: function appendDots(dots) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"ul\", {\n style: {\n display: \"block\"\n }\n }, dots);\n },\n arrows: true,\n autoplay: false,\n autoplaySpeed: 3000,\n beforeChange: null,\n centerMode: false,\n centerPadding: \"50px\",\n className: \"\",\n cssEase: \"ease\",\n customPaging: function customPaging(i) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"button\", null, i + 1);\n },\n dots: false,\n dotsClass: \"slick-dots\",\n draggable: true,\n easing: \"linear\",\n edgeFriction: 0.35,\n fade: false,\n focusOnSelect: false,\n infinite: true,\n initialSlide: 0,\n lazyLoad: null,\n nextArrow: null,\n onEdge: null,\n onInit: null,\n onLazyLoadError: null,\n onReInit: null,\n pauseOnDotsHover: false,\n pauseOnFocus: false,\n pauseOnHover: true,\n prevArrow: null,\n responsive: null,\n rows: 1,\n rtl: false,\n slide: \"div\",\n slidesPerRow: 1,\n slidesToScroll: 1,\n slidesToShow: 1,\n speed: 500,\n swipe: true,\n swipeEvent: null,\n swipeToSlide: false,\n touchMove: true,\n touchThreshold: 5,\n useCSS: true,\n useTransform: true,\n variableWidth: false,\n vertical: false,\n waitForAnimate: true\n};\nvar _default = defaultProps;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Dots = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar getDotCount = function getDotCount(spec) {\n var dots;\n\n if (spec.infinite) {\n dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n } else {\n dots = Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;\n }\n\n return dots;\n};\n\nvar Dots = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Dots, _React$PureComponent);\n\n var _super = _createSuper(Dots);\n\n function Dots() {\n _classCallCheck(this, Dots);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Dots, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n // In Autoplay the focus stays on clicked button even after transition\n // to next slide. That only goes away by click somewhere outside\n e.preventDefault();\n this.props.clickHandler(options);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave,\n infinite = _this$props.infinite,\n slidesToScroll = _this$props.slidesToScroll,\n slidesToShow = _this$props.slidesToShow,\n slideCount = _this$props.slideCount,\n currentSlide = _this$props.currentSlide;\n var dotCount = getDotCount({\n slideCount: slideCount,\n slidesToScroll: slidesToScroll,\n slidesToShow: slidesToShow,\n infinite: infinite\n });\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n var dots = [];\n\n for (var i = 0; i < dotCount; i++) {\n var _rightBound = (i + 1) * slidesToScroll - 1;\n\n var rightBound = infinite ? _rightBound : (0, _innerSliderUtils.clamp)(_rightBound, 0, slideCount - 1);\n\n var _leftBound = rightBound - (slidesToScroll - 1);\n\n var leftBound = infinite ? _leftBound : (0, _innerSliderUtils.clamp)(_leftBound, 0, slideCount - 1);\n var className = (0, _classnames[\"default\"])({\n \"slick-active\": infinite ? currentSlide >= leftBound && currentSlide <= rightBound : currentSlide === leftBound\n });\n var dotOptions = {\n message: \"dots\",\n index: i,\n slidesToScroll: slidesToScroll,\n currentSlide: currentSlide\n };\n var onClick = this.clickHandler.bind(this, dotOptions);\n dots = dots.concat( /*#__PURE__*/_react[\"default\"].createElement(\"li\", {\n key: i,\n className: className\n }, /*#__PURE__*/_react[\"default\"].cloneElement(this.props.customPaging(i), {\n onClick: onClick\n })));\n }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(this.props.appendDots(dots), _objectSpread({\n className: this.props.dotsClass\n }, mouseEvents));\n }\n }]);\n\n return Dots;\n}(_react[\"default\"].PureComponent);\n\nexports.Dots = Dots;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _slider = _interopRequireDefault(require(\"./slider\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = _slider[\"default\"];\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar initialState = {\n animating: false,\n autoplaying: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n dragging: false,\n edgeDragged: false,\n initialized: false,\n lazyLoadedList: [],\n listHeight: null,\n listWidth: null,\n scrolling: false,\n slideCount: null,\n slideHeight: null,\n slideWidth: null,\n swipeLeft: null,\n swiped: false,\n // used by swipeEvent. differentites between touch and swipe.\n swiping: false,\n touchObject: {\n startX: 0,\n startY: 0,\n curX: 0,\n curY: 0\n },\n trackStyle: {},\n trackWidth: 0,\n targetSlide: 0\n};\nvar _default = initialState;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.InnerSlider = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _initialState = _interopRequireDefault(require(\"./initial-state\"));\n\nvar _lodash = _interopRequireDefault(require(\"lodash.debounce\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nvar _track = require(\"./track\");\n\nvar _dots = require(\"./dots\");\n\nvar _arrows = require(\"./arrows\");\n\nvar _resizeObserverPolyfill = _interopRequireDefault(require(\"resize-observer-polyfill\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || 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); }\n\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; }\n\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; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar InnerSlider = /*#__PURE__*/function (_React$Component) {\n _inherits(InnerSlider, _React$Component);\n\n var _super = _createSuper(InnerSlider);\n\n function InnerSlider(props) {\n var _this;\n\n _classCallCheck(this, InnerSlider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"listRefHandler\", function (ref) {\n return _this.list = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"trackRefHandler\", function (ref) {\n return _this.track = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"adaptHeight\", function () {\n if (_this.props.adaptiveHeight && _this.list) {\n var elem = _this.list.querySelector(\"[data-index=\\\"\".concat(_this.state.currentSlide, \"\\\"]\"));\n\n _this.list.style.height = (0, _innerSliderUtils.getHeight)(elem) + \"px\";\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidMount\", function () {\n _this.props.onInit && _this.props.onInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props);\n\n _this.updateState(spec, true, function () {\n _this.adaptHeight();\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n });\n\n if (_this.props.lazyLoad === \"progressive\") {\n _this.lazyLoadTimer = setInterval(_this.progressiveLazyLoad, 1000);\n }\n\n _this.ro = new _resizeObserverPolyfill[\"default\"](function () {\n if (_this.state.animating) {\n _this.onWindowResized(false); // don't set trackStyle hence don't break animation\n\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.onWindowResized();\n }, _this.props.speed));\n } else {\n _this.onWindowResized();\n }\n });\n\n _this.ro.observe(_this.list);\n\n document.querySelectorAll && Array.prototype.forEach.call(document.querySelectorAll(\".slick-slide\"), function (slide) {\n slide.onfocus = _this.props.pauseOnFocus ? _this.onSlideFocus : null;\n slide.onblur = _this.props.pauseOnFocus ? _this.onSlideBlur : null;\n });\n\n if (window.addEventListener) {\n window.addEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.attachEvent(\"onresize\", _this.onWindowResized);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentWillUnmount\", function () {\n if (_this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n }\n\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n }\n\n if (_this.callbackTimers.length) {\n _this.callbackTimers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n\n _this.callbackTimers = [];\n }\n\n if (window.addEventListener) {\n window.removeEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.detachEvent(\"onresize\", _this.onWindowResized);\n }\n\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n _this.ro.disconnect();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidUpdate\", function (prevProps) {\n _this.checkImagesLoad();\n\n _this.props.onReInit && _this.props.onReInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n } // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n\n\n _this.adaptHeight();\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n var setTrackStyle = _this.didPropsChange(prevProps);\n\n setTrackStyle && _this.updateState(spec, setTrackStyle, function () {\n if (_this.state.currentSlide >= _react[\"default\"].Children.count(_this.props.children)) {\n _this.changeSlide({\n message: \"index\",\n index: _react[\"default\"].Children.count(_this.props.children) - _this.props.slidesToShow,\n currentSlide: _this.state.currentSlide\n });\n }\n\n if (_this.props.autoplay) {\n _this.autoPlay(\"update\");\n } else {\n _this.pause(\"paused\");\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onWindowResized\", function (setTrackStyle) {\n if (_this.debouncedResize) _this.debouncedResize.cancel();\n _this.debouncedResize = (0, _lodash[\"default\"])(function () {\n return _this.resizeWindow(setTrackStyle);\n }, 50);\n\n _this.debouncedResize();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"resizeWindow\", function () {\n var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var isTrackMounted = Boolean(_this.track && _this.track.node); // prevent warning: setting state on unmounted component (server side rendering)\n\n if (!isTrackMounted) return;\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.props.autoplay) _this.autoPlay(\"update\");else _this.pause(\"paused\");\n }); // animating state should be cleared while resizing, otherwise autoplay stops working\n\n\n _this.setState({\n animating: false\n });\n\n clearTimeout(_this.animationEndCallback);\n delete _this.animationEndCallback;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateState\", function (spec, setTrackStyle, callback) {\n var updatedState = (0, _innerSliderUtils.initializedState)(spec);\n spec = _objectSpread(_objectSpread(_objectSpread({}, spec), updatedState), {}, {\n slideIndex: updatedState.currentSlide\n });\n var targetLeft = (0, _innerSliderUtils.getTrackLeft)(spec);\n spec = _objectSpread(_objectSpread({}, spec), {}, {\n left: targetLeft\n });\n var trackStyle = (0, _innerSliderUtils.getTrackCSS)(spec);\n\n if (setTrackStyle || _react[\"default\"].Children.count(_this.props.children) !== _react[\"default\"].Children.count(spec.children)) {\n updatedState[\"trackStyle\"] = trackStyle;\n }\n\n _this.setState(updatedState, callback);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ssrInit\", function () {\n if (_this.props.variableWidth) {\n var _trackWidth = 0,\n _trackLeft = 0;\n var childrenWidths = [];\n var preClones = (0, _innerSliderUtils.getPreClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n var postClones = (0, _innerSliderUtils.getPostClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n\n _this.props.children.forEach(function (child) {\n childrenWidths.push(child.props.style.width);\n _trackWidth += child.props.style.width;\n });\n\n for (var i = 0; i < preClones; i++) {\n _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n\n for (var _i = 0; _i < postClones; _i++) {\n _trackWidth += childrenWidths[_i];\n }\n\n for (var _i2 = 0; _i2 < _this.state.currentSlide; _i2++) {\n _trackLeft += childrenWidths[_i2];\n }\n\n var _trackStyle = {\n width: _trackWidth + \"px\",\n left: -_trackLeft + \"px\"\n };\n\n if (_this.props.centerMode) {\n var currentWidth = \"\".concat(childrenWidths[_this.state.currentSlide], \"px\");\n _trackStyle.left = \"calc(\".concat(_trackStyle.left, \" + (100% - \").concat(currentWidth, \") / 2 ) \");\n }\n\n return {\n trackStyle: _trackStyle\n };\n }\n\n var childrenCount = _react[\"default\"].Children.count(_this.props.children);\n\n var spec = _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: childrenCount\n });\n\n var slideCount = (0, _innerSliderUtils.getPreClones)(spec) + (0, _innerSliderUtils.getPostClones)(spec) + childrenCount;\n var trackWidth = 100 / _this.props.slidesToShow * slideCount;\n var slideWidth = 100 / slideCount;\n var trackLeft = -slideWidth * ((0, _innerSliderUtils.getPreClones)(spec) + _this.state.currentSlide) * trackWidth / 100;\n\n if (_this.props.centerMode) {\n trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n }\n\n var trackStyle = {\n width: trackWidth + \"%\",\n left: trackLeft + \"%\"\n };\n return {\n slideWidth: slideWidth + \"%\",\n trackStyle: trackStyle\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"checkImagesLoad\", function () {\n var images = _this.list && _this.list.querySelectorAll && _this.list.querySelectorAll(\".slick-slide img\") || [];\n var imagesCount = images.length,\n loadedCount = 0;\n Array.prototype.forEach.call(images, function (image) {\n var handler = function handler() {\n return ++loadedCount && loadedCount >= imagesCount && _this.onWindowResized();\n };\n\n if (!image.onclick) {\n image.onclick = function () {\n return image.parentNode.focus();\n };\n } else {\n var prevClickHandler = image.onclick;\n\n image.onclick = function () {\n prevClickHandler();\n image.parentNode.focus();\n };\n }\n\n if (!image.onload) {\n if (_this.props.lazyLoad) {\n image.onload = function () {\n _this.adaptHeight();\n\n _this.callbackTimers.push(setTimeout(_this.onWindowResized, _this.props.speed));\n };\n } else {\n image.onload = handler;\n\n image.onerror = function () {\n handler();\n _this.props.onLazyLoadError && _this.props.onLazyLoadError();\n };\n }\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"progressiveLazyLoad\", function () {\n var slidesToLoad = [];\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n for (var index = _this.state.currentSlide; index < _this.state.slideCount + (0, _innerSliderUtils.getPostClones)(spec); index++) {\n if (_this.state.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n\n for (var _index = _this.state.currentSlide - 1; _index >= -(0, _innerSliderUtils.getPreClones)(spec); _index--) {\n if (_this.state.lazyLoadedList.indexOf(_index) < 0) {\n slidesToLoad.push(_index);\n break;\n }\n }\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (state) {\n return {\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n } else {\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n delete _this.lazyLoadTimer;\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slideHandler\", function (index) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _this$props = _this.props,\n asNavFor = _this$props.asNavFor,\n beforeChange = _this$props.beforeChange,\n onLazyLoad = _this$props.onLazyLoad,\n speed = _this$props.speed,\n afterChange = _this$props.afterChange; // capture currentslide before state is updated\n\n var currentSlide = _this.state.currentSlide;\n\n var _slideHandler = (0, _innerSliderUtils.slideHandler)(_objectSpread(_objectSpread(_objectSpread({\n index: index\n }, _this.props), _this.state), {}, {\n trackRef: _this.track,\n useCSS: _this.props.useCSS && !dontAnimate\n })),\n state = _slideHandler.state,\n nextState = _slideHandler.nextState;\n\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n return _this.state.lazyLoadedList.indexOf(value) < 0;\n });\n onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n\n if (!_this.props.waitForAnimate && _this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n afterChange && afterChange(currentSlide);\n delete _this.animationEndCallback;\n }\n\n _this.setState(state, function () {\n // asNavForIndex check is to avoid recursive calls of slideHandler in waitForAnimate=false mode\n if (asNavFor && _this.asNavForIndex !== index) {\n _this.asNavForIndex = index;\n asNavFor.innerSlider.slideHandler(index);\n }\n\n if (!nextState) return;\n _this.animationEndCallback = setTimeout(function () {\n var animating = nextState.animating,\n firstBatch = _objectWithoutProperties(nextState, [\"animating\"]);\n\n _this.setState(firstBatch, function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.setState({\n animating: animating\n });\n }, 10));\n\n afterChange && afterChange(state.currentSlide);\n delete _this.animationEndCallback;\n });\n }, speed);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"changeSlide\", function (options) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var targetSlide = (0, _innerSliderUtils.changeSlide)(spec, options);\n if (targetSlide !== 0 && !targetSlide) return;\n\n if (dontAnimate === true) {\n _this.slideHandler(targetSlide, dontAnimate);\n } else {\n _this.slideHandler(targetSlide);\n }\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n\n if (_this.props.focusOnSelect) {\n var nodes = _this.list.querySelectorAll(\".slick-current\");\n\n nodes[0] && nodes[0].focus();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"clickHandler\", function (e) {\n if (_this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"keyHandler\", function (e) {\n var dir = (0, _innerSliderUtils.keyHandler)(e, _this.props.accessibility, _this.props.rtl);\n dir !== \"\" && _this.changeSlide({\n message: dir\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"selectHandler\", function (options) {\n _this.changeSlide(options);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"disableBodyScroll\", function () {\n var preventDefault = function preventDefault(e) {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n };\n\n window.ontouchmove = preventDefault;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"enableBodyScroll\", function () {\n window.ontouchmove = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeStart\", function (e) {\n if (_this.props.verticalSwiping) {\n _this.disableBodyScroll();\n }\n\n var state = (0, _innerSliderUtils.swipeStart)(e, _this.props.swipe, _this.props.draggable);\n state !== \"\" && _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeMove\", function (e) {\n var state = (0, _innerSliderUtils.swipeMove)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n\n if (state[\"swiping\"]) {\n _this.clickable = false;\n }\n\n _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeEnd\", function (e) {\n var state = (0, _innerSliderUtils.swipeEnd)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n var triggerSlideHandler = state[\"triggerSlideHandler\"];\n delete state[\"triggerSlideHandler\"];\n\n _this.setState(state);\n\n if (triggerSlideHandler === undefined) return;\n\n _this.slideHandler(triggerSlideHandler);\n\n if (_this.props.verticalSwiping) {\n _this.enableBodyScroll();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"touchEnd\", function (e) {\n _this.swipeEnd(e);\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"previous\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"next\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n slide = Number(slide);\n if (isNaN(slide)) return \"\";\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"index\",\n index: slide,\n currentSlide: _this.state.currentSlide\n }, dontAnimate);\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"play\", function () {\n var nextIndex;\n\n if (_this.props.rtl) {\n nextIndex = _this.state.currentSlide - _this.props.slidesToScroll;\n } else {\n if ((0, _innerSliderUtils.canGoNext)(_objectSpread(_objectSpread({}, _this.props), _this.state))) {\n nextIndex = _this.state.currentSlide + _this.props.slidesToScroll;\n } else {\n return false;\n }\n }\n\n _this.slideHandler(nextIndex);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function (playType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (playType === \"update\") {\n if (autoplaying === \"hovered\" || autoplaying === \"focused\" || autoplaying === \"paused\") {\n return;\n }\n } else if (playType === \"leave\") {\n if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n return;\n }\n } else if (playType === \"blur\") {\n if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n return;\n }\n }\n\n _this.autoplayTimer = setInterval(_this.play, _this.props.autoplaySpeed + 50);\n\n _this.setState({\n autoplaying: \"playing\"\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"pause\", function (pauseType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n _this.autoplayTimer = null;\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (pauseType === \"paused\") {\n _this.setState({\n autoplaying: \"paused\"\n });\n } else if (pauseType === \"focused\") {\n if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"focused\"\n });\n }\n } else {\n // pauseType is 'hovered'\n if (autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"hovered\"\n });\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideFocus\", function () {\n return _this.props.autoplay && _this.pause(\"focused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideBlur\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"focused\" && _this.autoPlay(\"blur\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"render\", function () {\n var className = (0, _classnames[\"default\"])(\"slick-slider\", _this.props.className, {\n \"slick-vertical\": _this.props.vertical,\n \"slick-initialized\": true\n });\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var trackProps = (0, _innerSliderUtils.extractObject)(spec, [\"fade\", \"cssEase\", \"speed\", \"infinite\", \"centerMode\", \"focusOnSelect\", \"currentSlide\", \"lazyLoad\", \"lazyLoadedList\", \"rtl\", \"slideWidth\", \"slideHeight\", \"listHeight\", \"vertical\", \"slidesToShow\", \"slidesToScroll\", \"slideCount\", \"trackStyle\", \"variableWidth\", \"unslick\", \"centerPadding\", \"targetSlide\", \"useCSS\"]);\n var pauseOnHover = _this.props.pauseOnHover;\n trackProps = _objectSpread(_objectSpread({}, trackProps), {}, {\n onMouseEnter: pauseOnHover ? _this.onTrackOver : null,\n onMouseLeave: pauseOnHover ? _this.onTrackLeave : null,\n onMouseOver: pauseOnHover ? _this.onTrackOver : null,\n focusOnSelect: _this.props.focusOnSelect && _this.clickable ? _this.selectHandler : null\n });\n var dots;\n\n if (_this.props.dots === true && _this.state.slideCount >= _this.props.slidesToShow) {\n var dotProps = (0, _innerSliderUtils.extractObject)(spec, [\"dotsClass\", \"slideCount\", \"slidesToShow\", \"currentSlide\", \"slidesToScroll\", \"clickHandler\", \"children\", \"customPaging\", \"infinite\", \"appendDots\"]);\n var pauseOnDotsHover = _this.props.pauseOnDotsHover;\n dotProps = _objectSpread(_objectSpread({}, dotProps), {}, {\n clickHandler: _this.changeSlide,\n onMouseEnter: pauseOnDotsHover ? _this.onDotsLeave : null,\n onMouseOver: pauseOnDotsHover ? _this.onDotsOver : null,\n onMouseLeave: pauseOnDotsHover ? _this.onDotsLeave : null\n });\n dots = /*#__PURE__*/_react[\"default\"].createElement(_dots.Dots, dotProps);\n }\n\n var prevArrow, nextArrow;\n var arrowProps = (0, _innerSliderUtils.extractObject)(spec, [\"infinite\", \"centerMode\", \"currentSlide\", \"slideCount\", \"slidesToShow\", \"prevArrow\", \"nextArrow\"]);\n arrowProps.clickHandler = _this.changeSlide;\n\n if (_this.props.arrows) {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.PrevArrow, arrowProps);\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.NextArrow, arrowProps);\n }\n\n var verticalHeightStyle = null;\n\n if (_this.props.vertical) {\n verticalHeightStyle = {\n height: _this.state.listHeight\n };\n }\n\n var centerPaddingStyle = null;\n\n if (_this.props.vertical === false) {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: \"0px \" + _this.props.centerPadding\n };\n }\n } else {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: _this.props.centerPadding + \" 0px\"\n };\n }\n }\n\n var listStyle = _objectSpread(_objectSpread({}, verticalHeightStyle), centerPaddingStyle);\n\n var touchMove = _this.props.touchMove;\n var listProps = {\n className: \"slick-list\",\n style: listStyle,\n onClick: _this.clickHandler,\n onMouseDown: touchMove ? _this.swipeStart : null,\n onMouseMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onMouseUp: touchMove ? _this.swipeEnd : null,\n onMouseLeave: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onTouchStart: touchMove ? _this.swipeStart : null,\n onTouchMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onTouchEnd: touchMove ? _this.touchEnd : null,\n onTouchCancel: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onKeyDown: _this.props.accessibility ? _this.keyHandler : null\n };\n var innerSliderProps = {\n className: className,\n dir: \"ltr\",\n style: _this.props.style\n };\n\n if (_this.props.unslick) {\n listProps = {\n className: \"slick-list\"\n };\n innerSliderProps = {\n className: className\n };\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", innerSliderProps, !_this.props.unslick ? prevArrow : \"\", /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: _this.listRefHandler\n }, listProps), /*#__PURE__*/_react[\"default\"].createElement(_track.Track, _extends({\n ref: _this.trackRefHandler\n }, trackProps), _this.props.children)), !_this.props.unslick ? nextArrow : \"\", !_this.props.unslick ? dots : \"\");\n });\n\n _this.list = null;\n _this.track = null;\n _this.state = _objectSpread(_objectSpread({}, _initialState[\"default\"]), {}, {\n currentSlide: _this.props.initialSlide,\n slideCount: _react[\"default\"].Children.count(_this.props.children)\n });\n _this.callbackTimers = [];\n _this.clickable = true;\n _this.debouncedResize = null;\n\n var ssrState = _this.ssrInit();\n\n _this.state = _objectSpread(_objectSpread({}, _this.state), ssrState);\n return _this;\n }\n\n _createClass(InnerSlider, [{\n key: \"didPropsChange\",\n value: function didPropsChange(prevProps) {\n var setTrackStyle = false;\n\n for (var _i3 = 0, _Object$keys = Object.keys(this.props); _i3 < _Object$keys.length; _i3++) {\n var key = _Object$keys[_i3];\n\n if (!prevProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n\n if (_typeof(prevProps[key]) === \"object\" || typeof prevProps[key] === \"function\") {\n continue;\n }\n\n if (prevProps[key] !== this.props[key]) {\n setTrackStyle = true;\n break;\n }\n }\n\n return setTrackStyle || _react[\"default\"].Children.count(this.props.children) !== _react[\"default\"].Children.count(prevProps.children);\n }\n }]);\n\n return InnerSlider;\n}(_react[\"default\"].Component);\n\nexports.InnerSlider = InnerSlider;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _innerSlider = require(\"./inner-slider\");\n\nvar _json2mq = _interopRequireDefault(require(\"json2mq\"));\n\nvar _defaultProps = _interopRequireDefault(require(\"./default-props\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || 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); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar enquire = (0, _innerSliderUtils.canUseDOM)() && require(\"enquire.js\");\n\nvar Slider = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n\n var _super = _createSuper(Slider);\n\n function Slider(props) {\n var _this;\n\n _classCallCheck(this, Slider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"innerSliderRefHandler\", function (ref) {\n return _this.innerSlider = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n return _this.innerSlider.slickPrev();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n return _this.innerSlider.slickNext();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return _this.innerSlider.slickGoTo(slide, dontAnimate);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPause\", function () {\n return _this.innerSlider.pause(\"paused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPlay\", function () {\n return _this.innerSlider.autoPlay(\"play\");\n });\n\n _this.state = {\n breakpoint: null\n };\n _this._responsiveMediaHandlers = [];\n return _this;\n }\n\n _createClass(Slider, [{\n key: \"media\",\n value: function media(query, handler) {\n // javascript handler for css media query\n enquire.register(query, handler);\n\n this._responsiveMediaHandlers.push({\n query: query,\n handler: handler\n });\n } // handles responsive breakpoints\n\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n // performance monitoring\n //if (process.env.NODE_ENV !== 'production') {\n //const { whyDidYouUpdate } = require('why-did-you-update')\n //whyDidYouUpdate(React)\n //}\n if (this.props.responsive) {\n var breakpoints = this.props.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n }); // sort them in increasing order of their numerical value\n\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery;\n\n if (index === 0) {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: 0,\n maxWidth: breakpoint\n });\n } else {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n } // when not using server side rendering\n\n\n (0, _innerSliderUtils.canUseDOM)() && _this2.media(bQuery, function () {\n _this2.setState({\n breakpoint: breakpoint\n });\n });\n }); // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n\n var query = (0, _json2mq[\"default\"])({\n minWidth: breakpoints.slice(-1)[0]\n });\n (0, _innerSliderUtils.canUseDOM)() && this.media(query, function () {\n _this2.setState({\n breakpoint: null\n });\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n enquire.unregister(obj.query, obj.handler);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var settings;\n var newProps;\n\n if (this.state.breakpoint) {\n newProps = this.props.responsive.filter(function (resp) {\n return resp.breakpoint === _this3.state.breakpoint;\n });\n settings = newProps[0].settings === \"unslick\" ? \"unslick\" : _objectSpread(_objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props), newProps[0].settings);\n } else {\n settings = _objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props);\n } // force scrolling by one if centerMode is on\n\n\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 in centerMode, you are using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToScroll = 1;\n } // force showing one slide and scrolling by one if the fade mode is on\n\n\n if (settings.fade) {\n if (settings.slidesToShow > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToShow should be equal to 1 when fade is true, you're using \".concat(settings.slidesToShow));\n }\n\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 when fade is true, you're using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n } // makes sure that children is an array, even when there is only 1 child\n\n\n var children = _react[\"default\"].Children.toArray(this.props.children); // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n\n\n children = children.filter(function (child) {\n if (typeof child === \"string\") {\n return !!child.trim();\n }\n\n return !!child;\n }); // rows and slidesPerRow logic is handled here\n\n if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn(\"variableWidth is not supported in case of rows > 1 or slidesPerRow > 1\");\n settings.variableWidth = false;\n }\n\n var newChildren = [];\n var currentWidth = null;\n\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && children[k].props.style) {\n currentWidth = children[k].props.style.width;\n }\n\n if (k >= children.length) break;\n row.push( /*#__PURE__*/_react[\"default\"].cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n tabIndex: -1,\n style: {\n width: \"\".concat(100 / settings.slidesPerRow, \"%\"),\n display: \"inline-block\"\n }\n }));\n }\n\n newSlide.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: 10 * i + j\n }, row));\n }\n\n if (settings.variableWidth) {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i,\n style: {\n width: currentWidth\n }\n }, newSlide));\n } else {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i\n }, newSlide));\n }\n }\n\n if (settings === \"unslick\") {\n var className = \"regular slider \" + (this.props.className || \"\");\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: className\n }, children);\n } else if (newChildren.length <= settings.slidesToShow) {\n settings.unslick = true;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(_innerSlider.InnerSlider, _extends({\n style: this.props.style,\n ref: this.innerSliderRefHandler\n }, settings), newChildren);\n }\n }]);\n\n return Slider;\n}(_react[\"default\"].Component);\n\nexports[\"default\"] = Slider;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Track = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || 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); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive, slickCenter, slickCloned;\n var centerOffset, index;\n\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n\n slickCloned = index < 0 || index >= spec.slideCount;\n\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n\n if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n\n var focusedSlide;\n\n if (spec.targetSlide < 0) {\n focusedSlide = spec.targetSlide + spec.slideCount;\n } else if (spec.targetSlide >= spec.slideCount) {\n focusedSlide = spec.targetSlide - spec.slideCount;\n } else {\n focusedSlide = spec.targetSlide;\n }\n\n var slickCurrent = index === focusedSlide;\n return {\n \"slick-slide\": true,\n \"slick-active\": slickActive,\n \"slick-center\": slickCenter,\n \"slick-cloned\": slickCloned,\n \"slick-current\": slickCurrent // dubious in case of RTL\n\n };\n};\n\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth;\n }\n\n if (spec.fade) {\n style.position = \"relative\";\n\n if (spec.vertical) {\n style.top = -spec.index * parseInt(spec.slideHeight);\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth);\n }\n\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n\n if (spec.useCSS) {\n style.transition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nvar getKey = function getKey(child, fallbackKey) {\n return child.key || fallbackKey;\n};\n\nvar renderSlides = function renderSlides(spec) {\n var key;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n\n var childrenCount = _react[\"default\"].Children.count(spec.children);\n\n var startIndex = (0, _innerSliderUtils.lazyStartIndex)(spec);\n var endIndex = (0, _innerSliderUtils.lazyEndIndex)(spec);\n\n _react[\"default\"].Children.forEach(spec.children, function (elem, index) {\n var child;\n var childOnClickOptions = {\n message: \"children\",\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n }; // in case of lazyLoad, whether or not we want to fetch the slide\n\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = /*#__PURE__*/_react[\"default\"].createElement(\"div\", null);\n }\n\n var childStyle = getSlideStyle(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n var slideClass = child.props.className || \"\";\n var slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n })); // push a cloned element of the desired slide\n\n slides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"original\" + getKey(child, index),\n \"data-index\": index,\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n tabIndex: \"-1\",\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({\n outline: \"none\"\n }, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n })); // if slide needs to be precloned or postcloned\n\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n\n if (preCloneNo <= (0, _innerSliderUtils.getPreClones)(spec) && childrenCount !== spec.slidesToShow) {\n key = -preCloneNo;\n\n if (key >= startIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n preCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"precloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n\n if (childrenCount !== spec.slidesToShow) {\n key = childrenCount + index;\n\n if (key < endIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n postCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"postcloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n }\n });\n\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\n\nvar Track = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Track, _React$PureComponent);\n\n var _super = _createSuper(Track);\n\n function Track() {\n var _this;\n\n _classCallCheck(this, Track);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"node\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"handleRef\", function (ref) {\n _this.node = ref;\n });\n\n return _this;\n }\n\n _createClass(Track, [{\n key: \"render\",\n value: function render() {\n var slides = renderSlides(this.props);\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: this.handleRef,\n className: \"slick-track\",\n style: this.props.trackStyle\n }, mouseEvents), slides);\n }\n }]);\n\n return Track;\n}(_react[\"default\"].PureComponent);\n\nexports.Track = Track;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.clamp = clamp;\nexports.canUseDOM = exports.slidesOnLeft = exports.slidesOnRight = exports.siblingDirection = exports.getTotalSlides = exports.getPostClones = exports.getPreClones = exports.getTrackLeft = exports.getTrackAnimateCSS = exports.getTrackCSS = exports.checkSpecKeys = exports.getSlideCount = exports.checkNavigable = exports.getNavigableIndexes = exports.swipeEnd = exports.swipeMove = exports.swipeStart = exports.keyHandler = exports.changeSlide = exports.slideHandler = exports.initializedState = exports.extractObject = exports.canGoNext = exports.getSwipeDirection = exports.getHeight = exports.getWidth = exports.lazySlidesOnRight = exports.lazySlidesOnLeft = exports.lazyEndIndex = exports.lazyStartIndex = exports.getRequiredLazySlides = exports.getOnDemandLazySlides = exports.safePreventDefault = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction clamp(number, lowerBound, upperBound) {\n return Math.max(lowerBound, Math.min(number, upperBound));\n}\n\nvar safePreventDefault = function safePreventDefault(event) {\n var passiveEvents = [\"onTouchStart\", \"onTouchMove\", \"onWheel\"];\n\n if (!passiveEvents.includes(event._reactName)) {\n event.preventDefault();\n }\n};\n\nexports.safePreventDefault = safePreventDefault;\n\nvar getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n\n return onDemandSlides;\n}; // return list of slides that need to be present\n\n\nexports.getOnDemandLazySlides = getOnDemandLazySlides;\n\nvar getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n\n return requiredSlides;\n}; // startIndex that needs to be present\n\n\nexports.getRequiredLazySlides = getRequiredLazySlides;\n\nvar lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\n\nexports.lazyStartIndex = lazyStartIndex;\n\nvar lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\n\nexports.lazyEndIndex = lazyEndIndex;\n\nvar lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\n\nexports.lazySlidesOnLeft = lazySlidesOnLeft;\n\nvar lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n}; // get width of an element\n\n\nexports.lazySlidesOnRight = lazySlidesOnRight;\n\nvar getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\n\nexports.getWidth = getWidth;\n\nvar getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\n\nexports.getHeight = getHeight;\n\nvar getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n\n if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n return \"left\";\n }\n\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n\n return \"vertical\";\n}; // whether or not we can go next\n\n\nexports.getSwipeDirection = getSwipeDirection;\n\nvar canGoNext = function canGoNext(spec) {\n var canGo = true;\n\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n\n return canGo;\n}; // given an object and a list of keys, return new object with given keys\n\n\nexports.canGoNext = canGoNext;\n\nvar extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n}; // get initialized state\n\n\nexports.extractObject = extractObject;\n\nvar initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = _react[\"default\"].Children.count(spec.children);\n\n var listNode = spec.listRef;\n var listWidth = Math.ceil(getWidth(listNode));\n var trackNode = spec.trackRef && spec.trackRef.node;\n var trackWidth = Math.ceil(getWidth(trackNode));\n var slideWidth;\n\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n\n if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n centerPaddingAdj *= listWidth / 100;\n }\n\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n\n var slideHeight = listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: currentSlide,\n lazyLoadedList: lazyLoadedList\n }));\n lazyLoadedList = lazyLoadedList.concat(slidesToLoad);\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n\n return state;\n};\n\nexports.initializedState = initializedState;\n\nvar slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n var lazyLoadedList = spec.lazyLoadedList;\n if (waitForAnimate && animating) return {};\n var animationSlide = index,\n finalSlide,\n animationLeft,\n finalLeft;\n var state = {},\n nextState = {};\n var targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList = lazyLoadedList.concat(animationSlide);\n }\n\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList,\n targetSlide: animationSlide\n };\n nextState = {\n animating: false,\n targetSlide: animationSlide\n };\n } else {\n finalSlide = animationSlide;\n\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n\n if (!infinite && animationSlide + slidesToShow >= slideCount) {\n finalSlide = slideCount - slidesToShow;\n }\n\n animationLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: animationSlide\n }));\n finalLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: finalSlide\n }));\n\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n\n if (lazyLoad) {\n lazyLoadedList = lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: animationSlide\n })));\n }\n\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: animationLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n swipeLeft: null,\n targetSlide: targetSlide\n };\n }\n }\n\n return {\n state: state,\n nextState: nextState\n };\n};\n\nexports.slideHandler = slideHandler;\n\nvar changeSlide = function changeSlide(spec, options) {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n previousTargetSlide = spec.targetSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n\n if (options.message === \"previous\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide - slidesToScroll;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide + slidesToScroll;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n\n if (infinite) {\n var direction = siblingDirection(_objectSpread(_objectSpread({}, spec), {}, {\n targetSlide: targetSlide\n }));\n\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n }\n\n return targetSlide;\n};\n\nexports.changeSlide = changeSlide;\n\nvar keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\n\nexports.keyHandler = keyHandler;\n\nvar swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === \"IMG\" && safePreventDefault(e);\n if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\n\nexports.swipeStart = swipeStart;\n\nvar swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n if (scrolling) return;\n if (animating) return safePreventDefault(e);\n if (vertical && swipeToSlide && verticalSwiping) safePreventDefault(e);\n var swipeLeft,\n state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return {\n scrolling: true\n };\n }\n\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n\n if (!infinite) {\n if (currentSlide === 0 && (swipeDirection === \"right\" || swipeDirection === \"down\") || currentSlide + 1 >= dotCount && (swipeDirection === \"left\" || swipeDirection === \"up\") || !canGoNext(spec) && (swipeDirection === \"left\" || swipeDirection === \"up\")) {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n\n state = _objectSpread(_objectSpread({}, state), {}, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: swipeLeft\n }))\n });\n\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n safePreventDefault(e);\n }\n\n return state;\n};\n\nexports.swipeMove = swipeMove;\n\nvar swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe,\n targetSlide = spec.targetSlide,\n currentSlide = spec.currentSlide,\n infinite = spec.infinite;\n\n if (!dragging) {\n if (swipe) safePreventDefault(e);\n return {};\n }\n\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping); // reset the state of touch related state variables.\n\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n\n if (scrolling) {\n return state;\n }\n\n if (!touchObject.swipeLength) {\n return state;\n }\n\n if (touchObject.swipeLength > minSwipe) {\n safePreventDefault(e);\n\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n\n var slideCount, newSlide;\n var activeSlide = infinite ? currentSlide : targetSlide;\n\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = activeSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n\n case \"right\":\n case \"down\":\n newSlide = activeSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n\n default:\n slideCount = activeSlide;\n }\n\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: currentLeft\n }));\n }\n\n return state;\n};\n\nexports.swipeEnd = swipeEnd;\n\nvar getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n\n return indexes;\n};\n\nexports.getNavigableIndexes = getNavigableIndexes;\n\nvar checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n\n prevNavigable = navigables[n];\n }\n }\n\n return index;\n};\n\nexports.checkNavigable = checkNavigable;\n\nvar getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n\n if (spec.swipeToSlide) {\n var swipedSlide;\n var slickList = spec.listRef;\n var slides = slickList.querySelectorAll && slickList.querySelectorAll(\".slick-slide\") || [];\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n\n return true;\n });\n\n if (!swipedSlide) {\n return 0;\n }\n\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\n\nexports.getSlideCount = getSlideCount;\n\nvar checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error(\"Keys Missing:\", spec);\n};\n\nexports.checkSpecKeys = checkSpecKeys;\n\nvar getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n var trackWidth, trackHeight;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n\n var style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n style = _objectSpread(_objectSpread({}, style), {}, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n\n if (spec.fade) style = {\n opacity: 1\n };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight; // Fallback for IE8\n\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n\n return style;\n};\n\nexports.getTrackCSS = getTrackCSS;\n\nvar getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n var style = getTrackCSS(spec); // useCSS is true by default so it can be undefined\n\n if (spec.useTransform) {\n style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nexports.getTrackAnimateCSS = getTrackAnimateCSS;\n\nvar getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n\n checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n\n var slidesToOffset = 0;\n\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n } // shift current slide to center of the frame\n\n\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n\n if (variableWidth === true) {\n var targetSlideIndex;\n var trackElem = trackRef && trackRef.node;\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n\n return targetLeft;\n};\n\nexports.getTrackLeft = getTrackLeft;\n\nvar getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\n\nexports.getPreClones = getPreClones;\n\nvar getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n return spec.slideCount;\n};\n\nexports.getPostClones = getPostClones;\n\nvar getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\n\nexports.getTotalSlides = getTotalSlides;\n\nvar siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n\n return \"left\";\n }\n};\n\nexports.siblingDirection = siblingDirection;\n\nvar slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding;\n\n // returns no of slides on the right of active slide\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n\n if (rtl) {\n return 0;\n }\n\n return slidesToShow - 1;\n};\n\nexports.slidesOnRight = slidesOnRight;\n\nvar slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding;\n\n // returns no of slides on the left of active slide\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n\n if (rtl) {\n return slidesToShow - 1;\n }\n\n return 0;\n};\n\nexports.slidesOnLeft = slidesOnLeft;\n\nvar canUseDOM = function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};\n\nexports.canUseDOM = canUseDOM;","/** @license React v17.0.2\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';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.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:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<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.\"}\nvar A={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},B={};function C(a,b,c){this.props=a;this.context=b;this.refs=B;this.updater=c||A}C.prototype.isReactComponent={};C.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(z(85));this.updater.enqueueSetState(this,a,b,\"setState\")};C.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};\nfunction D(){}D.prototype=C.prototype;function E(a,b,c){this.props=a;this.context=b;this.refs=B;this.updater=c||A}var F=E.prototype=new D;F.constructor=E;l(F,C.prototype);F.isPureReactComponent=!0;var G={current:null},H=Object.prototype.hasOwnProperty,I={key:!0,ref:!0,__self:!0,__source:!0};\nfunction J(a,b,c){var e,d={},k=null,h=null;if(null!=b)for(e in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)H.call(b,e)&&!I.hasOwnProperty(e)&&(d[e]=b[e]);var g=arguments.length-2;if(1===g)d.children=c;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];d.children=f}if(a&&a.defaultProps)for(e in g=a.defaultProps,g)void 0===d[e]&&(d[e]=g[e]);return{$$typeof:n,type:a,key:k,ref:h,props:d,_owner:G.current}}\nfunction K(a,b){return{$$typeof:n,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function L(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===n}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var M=/\\/+/g;function N(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction O(a,b,c,e,d){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 n:case p:h=!0}}if(h)return h=a,d=d(h),a=\"\"===e?\".\"+N(h,0):e,Array.isArray(d)?(c=\"\",null!=a&&(c=a.replace(M,\"$&/\")+\"/\"),O(d,b,c,\"\",function(a){return a})):null!=d&&(L(d)&&(d=K(d,c+(!d.key||h&&h.key===d.key?\"\":(\"\"+d.key).replace(M,\"$&/\")+\"/\")+a)),b.push(d)),1;h=0;e=\"\"===e?\".\":e+\":\";if(Array.isArray(a))for(var g=\n0;g<a.length;g++){k=a[g];var f=e+N(k,g);h+=O(k,b,c,f,d)}else if(f=y(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=e+N(k,g++),h+=O(k,b,c,f,d);else if(\"object\"===k)throw b=\"\"+a,Error(z(31,\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b));return h}function P(a,b,c){if(null==a)return a;var e=[],d=0;O(a,e,\"\",\"\",function(a){return b.call(c,a,d++)});return e}\nfunction Q(a){if(-1===a._status){var b=a._result;b=b();a._status=0;a._result=b;b.then(function(b){0===a._status&&(b=b.default,a._status=1,a._result=b)},function(b){0===a._status&&(a._status=2,a._result=b)})}if(1===a._status)return a._result;throw a._result;}var R={current:null};function S(){var a=R.current;if(null===a)throw Error(z(321));return a}var T={ReactCurrentDispatcher:R,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:G,IsSomeRendererActing:{current:!1},assign:l};\nexports.Children={map:P,forEach:function(a,b,c){P(a,function(){b.apply(this,arguments)},c)},count:function(a){var b=0;P(a,function(){b++});return b},toArray:function(a){return P(a,function(a){return a})||[]},only:function(a){if(!L(a))throw Error(z(143));return a}};exports.Component=C;exports.PureComponent=E;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=T;\nexports.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error(z(267,a));var e=l({},a.props),d=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=G.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)H.call(b,f)&&!I.hasOwnProperty(f)&&(e[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)e.children=c;else if(1<f){g=Array(f);for(var m=0;m<f;m++)g[m]=arguments[m+2];e.children=g}return{$$typeof:n,type:a.type,\nkey:d,ref:k,props:e,_owner:h}};exports.createContext=function(a,b){void 0===b&&(b=null);a={$$typeof:r,_calculateChangedBits:b,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:q,_context:a};return a.Consumer=a};exports.createElement=J;exports.createFactory=function(a){var b=J.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};exports.forwardRef=function(a){return{$$typeof:t,render:a}};exports.isValidElement=L;\nexports.lazy=function(a){return{$$typeof:v,_payload:{_status:-1,_result:a},_init:Q}};exports.memo=function(a,b){return{$$typeof:u,type:a,compare:void 0===b?null:b}};exports.useCallback=function(a,b){return S().useCallback(a,b)};exports.useContext=function(a,b){return S().useContext(a,b)};exports.useDebugValue=function(){};exports.useEffect=function(a,b){return S().useEffect(a,b)};exports.useImperativeHandle=function(a,b,c){return S().useImperativeHandle(a,b,c)};\nexports.useLayoutEffect=function(a,b){return S().useLayoutEffect(a,b)};exports.useMemo=function(a,b){return S().useMemo(a,b)};exports.useReducer=function(a,b,c){return S().useReducer(a,b,c)};exports.useRef=function(a){return S().useRef(a)};exports.useState=function(a){return S().useState(a)};exports.version=\"17.0.2\";\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","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array<Array>} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array<ResizeObserverSPI>}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the <html> itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array<ResizeObservation>}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map<Element, ResizeObservation>}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","/** @license React v0.20.2\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';var f,g,h,k;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}}\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var t=null,u=null,w=function(){if(null!==t)try{var a=exports.unstable_now();t(!0,a);t=null}catch(b){throw setTimeout(w,0),b;}};f=function(a){null!==t?setTimeout(f,0,a):(t=a,setTimeout(w,0))};g=function(a,b){u=setTimeout(a,b)};h=function(){clearTimeout(u)};exports.unstable_shouldYield=function(){return!1};k=exports.unstable_forceFrameRate=function(){}}else{var x=window.setTimeout,y=window.clearTimeout;if(\"undefined\"!==typeof console){var z=\nwindow.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\");\"function\"!==typeof z&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\")}var A=!1,B=null,C=-1,D=5,E=0;exports.unstable_shouldYield=function(){return exports.unstable_now()>=\nE};k=function(){};exports.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\"):D=0<a?Math.floor(1E3/a):5};var F=new MessageChannel,G=F.port2;F.port1.onmessage=function(){if(null!==B){var a=exports.unstable_now();E=a+D;try{B(!0,a)?G.postMessage(null):(A=!1,B=null)}catch(b){throw G.postMessage(null),b;}}else A=!1};f=function(a){B=a;A||(A=!0,G.postMessage(null))};g=function(a,b){C=\nx(function(){a(exports.unstable_now())},b)};h=function(){y(C);C=-1}}function H(a,b){var c=a.length;a.push(b);a:for(;;){var d=c-1>>>1,e=a[d];if(void 0!==e&&0<I(e,b))a[d]=b,a[c]=e,c=d;else break a}}function J(a){a=a[0];return void 0===a?null:a}\nfunction K(a){var b=a[0];if(void 0!==b){var c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length;d<e;){var m=2*(d+1)-1,n=a[m],v=m+1,r=a[v];if(void 0!==n&&0>I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.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(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=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:N++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=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","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","window.eve = require('eve')\n\n// Copyright (c) 2017 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar mina = (function (eve) {\n var animations = {},\n requestAnimFrame = window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.oRequestAnimationFrame ||\n window.msRequestAnimationFrame ||\n function (callback) {\n setTimeout(callback, 16, new Date().getTime());\n return true;\n },\n requestID,\n isArray = Array.isArray || function (a) {\n return a instanceof Array ||\n Object.prototype.toString.call(a) == \"[object Array]\";\n },\n idgen = 0,\n idprefix = \"M\" + (+new Date).toString(36),\n ID = function () {\n return idprefix + (idgen++).toString(36);\n },\n diff = function (a, b, A, B) {\n if (isArray(a)) {\n res = [];\n for (var i = 0, ii = a.length; i < ii; i++) {\n res[i] = diff(a[i], b, A[i], B);\n }\n return res;\n }\n var dif = (A - a) / (B - b);\n return function (bb) {\n return a + dif * (bb - b);\n };\n },\n timer = Date.now || function () {\n return +new Date;\n },\n sta = function (val) {\n var a = this;\n if (val == null) {\n return a.s;\n }\n var ds = a.s - val;\n a.b += a.dur * ds;\n a.B += a.dur * ds;\n a.s = val;\n },\n speed = function (val) {\n var a = this;\n if (val == null) {\n return a.spd;\n }\n a.spd = val;\n },\n duration = function (val) {\n var a = this;\n if (val == null) {\n return a.dur;\n }\n a.s = a.s * val / a.dur;\n a.dur = val;\n },\n stopit = function () {\n var a = this;\n delete animations[a.id];\n a.update();\n eve(\"mina.stop.\" + a.id, a);\n },\n pause = function () {\n var a = this;\n if (a.pdif) {\n return;\n }\n delete animations[a.id];\n a.update();\n a.pdif = a.get() - a.b;\n },\n resume = function () {\n var a = this;\n if (!a.pdif) {\n return;\n }\n a.b = a.get() - a.pdif;\n delete a.pdif;\n animations[a.id] = a;\n frame();\n },\n update = function () {\n var a = this,\n res;\n if (isArray(a.start)) {\n res = [];\n for (var j = 0, jj = a.start.length; j < jj; j++) {\n res[j] = +a.start[j] +\n (a.end[j] - a.start[j]) * a.easing(a.s);\n }\n } else {\n res = +a.start + (a.end - a.start) * a.easing(a.s);\n }\n a.set(res);\n },\n frame = function (timeStamp) {\n // Manual invokation?\n if (!timeStamp) {\n // Frame loop stopped?\n if (!requestID) {\n // Start frame loop...\n requestID = requestAnimFrame(frame);\n }\n return;\n }\n var len = 0;\n for (var i in animations) if (animations.hasOwnProperty(i)) {\n var a = animations[i],\n b = a.get(),\n res;\n len++;\n a.s = (b - a.b) / (a.dur / a.spd);\n if (a.s >= 1) {\n delete animations[i];\n a.s = 1;\n len--;\n (function (a) {\n setTimeout(function () {\n eve(\"mina.finish.\" + a.id, a);\n });\n }(a));\n }\n a.update();\n }\n requestID = len ? requestAnimFrame(frame) : false;\n },\n /*\\\n * mina\n [ method ]\n **\n * Generic animation of numbers\n **\n - a (number) start _slave_ number\n - A (number) end _slave_ number\n - b (number) start _master_ number (start time in general case)\n - B (number) end _master_ number (end time in general case)\n - get (function) getter of _master_ number (see @mina.time)\n - set (function) setter of _slave_ number\n - easing (function) #optional easing function, default is @mina.linear\n = (object) animation descriptor\n o {\n o id (string) animation id,\n o start (number) start _slave_ number,\n o end (number) end _slave_ number,\n o b (number) start _master_ number,\n o s (number) animation status (0..1),\n o dur (number) animation duration,\n o spd (number) animation speed,\n o get (function) getter of _master_ number (see @mina.time),\n o set (function) setter of _slave_ number,\n o easing (function) easing function, default is @mina.linear,\n o status (function) status getter/setter,\n o speed (function) speed getter/setter,\n o duration (function) duration getter/setter,\n o stop (function) animation stopper\n o pause (function) pauses the animation\n o resume (function) resumes the animation\n o update (function) calles setter with the right value of the animation\n o }\n \\*/\n mina = function (a, A, b, B, get, set, easing) {\n var anim = {\n id: ID(),\n start: a,\n end: A,\n b: b,\n s: 0,\n dur: B - b,\n spd: 1,\n get: get,\n set: set,\n easing: easing || mina.linear,\n status: sta,\n speed: speed,\n duration: duration,\n stop: stopit,\n pause: pause,\n resume: resume,\n update: update\n };\n animations[anim.id] = anim;\n var len = 0, i;\n for (i in animations) if (animations.hasOwnProperty(i)) {\n len++;\n if (len == 2) {\n break;\n }\n }\n len == 1 && frame();\n return anim;\n };\n /*\\\n * mina.time\n [ method ]\n **\n * Returns the current time. Equivalent to:\n | function () {\n | return (new Date).getTime();\n | }\n \\*/\n mina.time = timer;\n /*\\\n * mina.getById\n [ method ]\n **\n * Returns an animation by its id\n - id (string) animation's id\n = (object) See @mina\n \\*/\n mina.getById = function (id) {\n return animations[id] || null;\n };\n\n /*\\\n * mina.linear\n [ method ]\n **\n * Default linear easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.linear = function (n) {\n return n;\n };\n /*\\\n * mina.easeout\n [ method ]\n **\n * Easeout easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.easeout = function (n) {\n return Math.pow(n, 1.7);\n };\n /*\\\n * mina.easein\n [ method ]\n **\n * Easein easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.easein = function (n) {\n return Math.pow(n, .48);\n };\n /*\\\n * mina.easeinout\n [ method ]\n **\n * Easeinout easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.easeinout = function (n) {\n if (n == 1) {\n return 1;\n }\n if (n == 0) {\n return 0;\n }\n var q = .48 - n / 1.04,\n Q = Math.sqrt(.1734 + q * q),\n x = Q - q,\n X = Math.pow(Math.abs(x), 1 / 3) * (x < 0 ? -1 : 1),\n y = -Q - q,\n Y = Math.pow(Math.abs(y), 1 / 3) * (y < 0 ? -1 : 1),\n t = X + Y + .5;\n return (1 - t) * 3 * t * t + t * t * t;\n };\n /*\\\n * mina.backin\n [ method ]\n **\n * Backin easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.backin = function (n) {\n if (n == 1) {\n return 1;\n }\n var s = 1.70158;\n return n * n * ((s + 1) * n - s);\n };\n /*\\\n * mina.backout\n [ method ]\n **\n * Backout easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.backout = function (n) {\n if (n == 0) {\n return 0;\n }\n n = n - 1;\n var s = 1.70158;\n return n * n * ((s + 1) * n + s) + 1;\n };\n /*\\\n * mina.elastic\n [ method ]\n **\n * Elastic easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.elastic = function (n) {\n if (n == !!n) {\n return n;\n }\n return Math.pow(2, -10 * n) * Math.sin((n - .075) *\n (2 * Math.PI) / .3) + 1;\n };\n /*\\\n * mina.bounce\n [ method ]\n **\n * Bounce easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.bounce = function (n) {\n var s = 7.5625,\n p = 2.75,\n l;\n if (n < 1 / p) {\n l = s * n * n;\n } else {\n if (n < 2 / p) {\n n -= 1.5 / p;\n l = s * n * n + .75;\n } else {\n if (n < 2.5 / p) {\n n -= 2.25 / p;\n l = s * n * n + .9375;\n } else {\n n -= 2.625 / p;\n l = s * n * n + .984375;\n }\n }\n }\n return l;\n };\n window.mina = mina;\n return mina;\n})(typeof eve == \"undefined\" ? function () {} : eve);\n\n// Copyright (c) 2013 - 2017 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nvar Snap = (function(root) {\nSnap.version = \"0.5.1\";\n/*\\\n * Snap\n [ method ]\n **\n * Creates a drawing surface or wraps existing SVG element.\n **\n - width (number|string) width of surface\n - height (number|string) height of surface\n * or\n - DOM (SVGElement) element to be wrapped into Snap structure\n * or\n - array (array) array of elements (will return set of elements)\n * or\n - query (string) CSS query selector\n = (object) @Element\n\\*/\nfunction Snap(w, h) {\n if (w) {\n if (w.nodeType) {\n return wrap(w);\n }\n if (is(w, \"array\") && Snap.set) {\n return Snap.set.apply(Snap, w);\n }\n if (w instanceof Element) {\n return w;\n }\n if (h == null) {\n try {\n w = glob.doc.querySelector(String(w));\n return wrap(w);\n } catch (e) {\n return null;\n }\n }\n }\n w = w == null ? \"100%\" : w;\n h = h == null ? \"100%\" : h;\n return new Paper(w, h);\n}\nSnap.toString = function () {\n return \"Snap v\" + this.version;\n};\nSnap._ = {};\nvar glob = {\n win: root.window,\n doc: root.window.document\n};\nSnap._.glob = glob;\nvar has = \"hasOwnProperty\",\n Str = String,\n toFloat = parseFloat,\n toInt = parseInt,\n math = Math,\n mmax = math.max,\n mmin = math.min,\n abs = math.abs,\n pow = math.pow,\n PI = math.PI,\n round = math.round,\n E = \"\",\n S = \" \",\n objectToString = Object.prototype.toString,\n ISURL = /^url\\(['\"]?([^\\)]+?)['\"]?\\)$/i,\n colourRegExp = /^\\s*((#[a-f\\d]{6})|(#[a-f\\d]{3})|rgba?\\(\\s*([\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?(?:\\s*,\\s*[\\d\\.]+%?)?)\\s*\\)|hsba?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?%?)\\s*\\)|hsla?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?%?)\\s*\\))\\s*$/i,\n bezierrg = /^(?:cubic-)?bezier\\(([^,]+),([^,]+),([^,]+),([^\\)]+)\\)/,\n separator = Snap._.separator = /[,\\s]+/,\n whitespace = /[\\s]/g,\n commaSpaces = /[\\s]*,[\\s]*/,\n hsrg = {hs: 1, rg: 1},\n pathCommand = /([a-z])[\\s,]*((-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?[\\s]*,?[\\s]*)+)/ig,\n tCommand = /([rstm])[\\s,]*((-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?[\\s]*,?[\\s]*)+)/ig,\n pathValues = /(-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?)[\\s]*,?[\\s]*/ig,\n idgen = 0,\n idprefix = \"S\" + (+new Date).toString(36),\n ID = function (el) {\n return (el && el.type ? el.type : E) + idprefix + (idgen++).toString(36);\n },\n xlink = \"http://www.w3.org/1999/xlink\",\n xmlns = \"http://www.w3.org/2000/svg\",\n hub = {},\n /*\\\n * Snap.url\n [ method ]\n **\n * Wraps path into `\"url('<path>')\"`.\n - value (string) path\n = (string) wrapped path\n \\*/\n URL = Snap.url = function (url) {\n return \"url('#\" + url + \"')\";\n };\n\nfunction $(el, attr) {\n if (attr) {\n if (el == \"#text\") {\n el = glob.doc.createTextNode(attr.text || attr[\"#text\"] || \"\");\n }\n if (el == \"#comment\") {\n el = glob.doc.createComment(attr.text || attr[\"#text\"] || \"\");\n }\n if (typeof el == \"string\") {\n el = $(el);\n }\n if (typeof attr == \"string\") {\n if (el.nodeType == 1) {\n if (attr.substring(0, 6) == \"xlink:\") {\n return el.getAttributeNS(xlink, attr.substring(6));\n }\n if (attr.substring(0, 4) == \"xml:\") {\n return el.getAttributeNS(xmlns, attr.substring(4));\n }\n return el.getAttribute(attr);\n } else if (attr == \"text\") {\n return el.nodeValue;\n } else {\n return null;\n }\n }\n if (el.nodeType == 1) {\n for (var key in attr) if (attr[has](key)) {\n var val = Str(attr[key]);\n if (val) {\n if (key.substring(0, 6) == \"xlink:\") {\n el.setAttributeNS(xlink, key.substring(6), val);\n } else if (key.substring(0, 4) == \"xml:\") {\n el.setAttributeNS(xmlns, key.substring(4), val);\n } else {\n el.setAttribute(key, val);\n }\n } else {\n el.removeAttribute(key);\n }\n }\n } else if (\"text\" in attr) {\n el.nodeValue = attr.text;\n }\n } else {\n el = glob.doc.createElementNS(xmlns, el);\n }\n return el;\n}\nSnap._.$ = $;\nSnap._.id = ID;\nfunction getAttrs(el) {\n var attrs = el.attributes,\n name,\n out = {};\n for (var i = 0; i < attrs.length; i++) {\n if (attrs[i].namespaceURI == xlink) {\n name = \"xlink:\";\n } else {\n name = \"\";\n }\n name += attrs[i].name;\n out[name] = attrs[i].textContent;\n }\n return out;\n}\nfunction is(o, type) {\n type = Str.prototype.toLowerCase.call(type);\n if (type == \"finite\") {\n return isFinite(o);\n }\n if (type == \"array\" &&\n (o instanceof Array || Array.isArray && Array.isArray(o))) {\n return true;\n }\n return type == \"null\" && o === null ||\n type == typeof o && o !== null ||\n type == \"object\" && o === Object(o) ||\n objectToString.call(o).slice(8, -1).toLowerCase() == type;\n}\n/*\\\n * Snap.format\n [ method ]\n **\n * Replaces construction of type `{<name>}` to the corresponding argument\n **\n - token (string) string to format\n - json (object) object which properties are used as a replacement\n = (string) formatted string\n > Usage\n | // this draws a rectangular shape equivalent to \"M10,20h40v50h-40z\"\n | paper.path(Snap.format(\"M{x},{y}h{dim.width}v{dim.height}h{dim['negative width']}z\", {\n | x: 10,\n | y: 20,\n | dim: {\n | width: 40,\n | height: 50,\n | \"negative width\": -40\n | }\n | }));\n\\*/\nSnap.format = (function () {\n var tokenRegex = /\\{([^\\}]+)\\}/g,\n objNotationRegex = /(?:(?:^|\\.)(.+?)(?=\\[|\\.|$|\\()|\\[('|\")(.+?)\\2\\])(\\(\\))?/g, // matches .xxxxx or [\"xxxxx\"] to run over object properties\n replacer = function (all, key, obj) {\n var res = obj;\n key.replace(objNotationRegex, function (all, name, quote, quotedName, isFunc) {\n name = name || quotedName;\n if (res) {\n if (name in res) {\n res = res[name];\n }\n typeof res == \"function\" && isFunc && (res = res());\n }\n });\n res = (res == null || res == obj ? all : res) + \"\";\n return res;\n };\n return function (str, obj) {\n return Str(str).replace(tokenRegex, function (all, key) {\n return replacer(all, key, obj);\n });\n };\n})();\nfunction clone(obj) {\n if (typeof obj == \"function\" || Object(obj) !== obj) {\n return obj;\n }\n var res = new obj.constructor;\n for (var key in obj) if (obj[has](key)) {\n res[key] = clone(obj[key]);\n }\n return res;\n}\nSnap._.clone = clone;\nfunction repush(array, item) {\n for (var i = 0, ii = array.length; i < ii; i++) if (array[i] === item) {\n return array.push(array.splice(i, 1)[0]);\n }\n}\nfunction cacher(f, scope, postprocessor) {\n function newf() {\n var arg = Array.prototype.slice.call(arguments, 0),\n args = arg.join(\"\\u2400\"),\n cache = newf.cache = newf.cache || {},\n count = newf.count = newf.count || [];\n if (cache[has](args)) {\n repush(count, args);\n return postprocessor ? postprocessor(cache[args]) : cache[args];\n }\n count.length >= 1e3 && delete cache[count.shift()];\n count.push(args);\n cache[args] = f.apply(scope, arg);\n return postprocessor ? postprocessor(cache[args]) : cache[args];\n }\n return newf;\n}\nSnap._.cacher = cacher;\nfunction angle(x1, y1, x2, y2, x3, y3) {\n if (x3 == null) {\n var x = x1 - x2,\n y = y1 - y2;\n if (!x && !y) {\n return 0;\n }\n return (180 + math.atan2(-y, -x) * 180 / PI + 360) % 360;\n } else {\n return angle(x1, y1, x3, y3) - angle(x2, y2, x3, y3);\n }\n}\nfunction rad(deg) {\n return deg % 360 * PI / 180;\n}\nfunction deg(rad) {\n return rad * 180 / PI % 360;\n}\nfunction x_y() {\n return this.x + S + this.y;\n}\nfunction x_y_w_h() {\n return this.x + S + this.y + S + this.width + \" \\xd7 \" + this.height;\n}\n\n/*\\\n * Snap.rad\n [ method ]\n **\n * Transform angle to radians\n - deg (number) angle in degrees\n = (number) angle in radians\n\\*/\nSnap.rad = rad;\n/*\\\n * Snap.deg\n [ method ]\n **\n * Transform angle to degrees\n - rad (number) angle in radians\n = (number) angle in degrees\n\\*/\nSnap.deg = deg;\n/*\\\n * Snap.sin\n [ method ]\n **\n * Equivalent to `Math.sin()` only works with degrees, not radians.\n - angle (number) angle in degrees\n = (number) sin\n\\*/\nSnap.sin = function (angle) {\n return math.sin(Snap.rad(angle));\n};\n/*\\\n * Snap.tan\n [ method ]\n **\n * Equivalent to `Math.tan()` only works with degrees, not radians.\n - angle (number) angle in degrees\n = (number) tan\n\\*/\nSnap.tan = function (angle) {\n return math.tan(Snap.rad(angle));\n};\n/*\\\n * Snap.cos\n [ method ]\n **\n * Equivalent to `Math.cos()` only works with degrees, not radians.\n - angle (number) angle in degrees\n = (number) cos\n\\*/\nSnap.cos = function (angle) {\n return math.cos(Snap.rad(angle));\n};\n/*\\\n * Snap.asin\n [ method ]\n **\n * Equivalent to `Math.asin()` only works with degrees, not radians.\n - num (number) value\n = (number) asin in degrees\n\\*/\nSnap.asin = function (num) {\n return Snap.deg(math.asin(num));\n};\n/*\\\n * Snap.acos\n [ method ]\n **\n * Equivalent to `Math.acos()` only works with degrees, not radians.\n - num (number) value\n = (number) acos in degrees\n\\*/\nSnap.acos = function (num) {\n return Snap.deg(math.acos(num));\n};\n/*\\\n * Snap.atan\n [ method ]\n **\n * Equivalent to `Math.atan()` only works with degrees, not radians.\n - num (number) value\n = (number) atan in degrees\n\\*/\nSnap.atan = function (num) {\n return Snap.deg(math.atan(num));\n};\n/*\\\n * Snap.atan2\n [ method ]\n **\n * Equivalent to `Math.atan2()` only works with degrees, not radians.\n - num (number) value\n = (number) atan2 in degrees\n\\*/\nSnap.atan2 = function (num) {\n return Snap.deg(math.atan2(num));\n};\n/*\\\n * Snap.angle\n [ method ]\n **\n * Returns an angle between two or three points\n - x1 (number) x coord of first point\n - y1 (number) y coord of first point\n - x2 (number) x coord of second point\n - y2 (number) y coord of second point\n - x3 (number) #optional x coord of third point\n - y3 (number) #optional y coord of third point\n = (number) angle in degrees\n\\*/\nSnap.angle = angle;\n/*\\\n * Snap.len\n [ method ]\n **\n * Returns distance between two points\n - x1 (number) x coord of first point\n - y1 (number) y coord of first point\n - x2 (number) x coord of second point\n - y2 (number) y coord of second point\n = (number) distance\n\\*/\nSnap.len = function (x1, y1, x2, y2) {\n return Math.sqrt(Snap.len2(x1, y1, x2, y2));\n};\n/*\\\n * Snap.len2\n [ method ]\n **\n * Returns squared distance between two points\n - x1 (number) x coord of first point\n - y1 (number) y coord of first point\n - x2 (number) x coord of second point\n - y2 (number) y coord of second point\n = (number) distance\n\\*/\nSnap.len2 = function (x1, y1, x2, y2) {\n return (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);\n};\n/*\\\n * Snap.closestPoint\n [ method ]\n **\n * Returns closest point to a given one on a given path.\n - path (Element) path element\n - x (number) x coord of a point\n - y (number) y coord of a point\n = (object) in format\n {\n x (number) x coord of the point on the path\n y (number) y coord of the point on the path\n length (number) length of the path to the point\n distance (number) distance from the given point to the path\n }\n\\*/\n// Copied from http://bl.ocks.org/mbostock/8027637\nSnap.closestPoint = function (path, x, y) {\n function distance2(p) {\n var dx = p.x - x,\n dy = p.y - y;\n return dx * dx + dy * dy;\n }\n var pathNode = path.node,\n pathLength = pathNode.getTotalLength(),\n precision = pathLength / pathNode.pathSegList.numberOfItems * .125,\n best,\n bestLength,\n bestDistance = Infinity;\n\n // linear scan for coarse approximation\n for (var scan, scanLength = 0, scanDistance; scanLength <= pathLength; scanLength += precision) {\n if ((scanDistance = distance2(scan = pathNode.getPointAtLength(scanLength))) < bestDistance) {\n best = scan;\n bestLength = scanLength;\n bestDistance = scanDistance;\n }\n }\n\n // binary search for precise estimate\n precision *= .5;\n while (precision > .5) {\n var before,\n after,\n beforeLength,\n afterLength,\n beforeDistance,\n afterDistance;\n if ((beforeLength = bestLength - precision) >= 0 && (beforeDistance = distance2(before = pathNode.getPointAtLength(beforeLength))) < bestDistance) {\n best = before;\n bestLength = beforeLength;\n bestDistance = beforeDistance;\n } else if ((afterLength = bestLength + precision) <= pathLength && (afterDistance = distance2(after = pathNode.getPointAtLength(afterLength))) < bestDistance) {\n best = after;\n bestLength = afterLength;\n bestDistance = afterDistance;\n } else {\n precision *= .5;\n }\n }\n\n best = {\n x: best.x,\n y: best.y,\n length: bestLength,\n distance: Math.sqrt(bestDistance)\n };\n return best;\n}\n/*\\\n * Snap.is\n [ method ]\n **\n * Handy replacement for the `typeof` operator\n - o (…) any object or primitive\n - type (string) name of the type, e.g., `string`, `function`, `number`, etc.\n = (boolean) `true` if given value is of given type\n\\*/\nSnap.is = is;\n/*\\\n * Snap.snapTo\n [ method ]\n **\n * Snaps given value to given grid\n - values (array|number) given array of values or step of the grid\n - value (number) value to adjust\n - tolerance (number) #optional maximum distance to the target value that would trigger the snap. Default is `10`.\n = (number) adjusted value\n\\*/\nSnap.snapTo = function (values, value, tolerance) {\n tolerance = is(tolerance, \"finite\") ? tolerance : 10;\n if (is(values, \"array\")) {\n var i = values.length;\n while (i--) if (abs(values[i] - value) <= tolerance) {\n return values[i];\n }\n } else {\n values = +values;\n var rem = value % values;\n if (rem < tolerance) {\n return value - rem;\n }\n if (rem > values - tolerance) {\n return value - rem + values;\n }\n }\n return value;\n};\n// Colour\n/*\\\n * Snap.getRGB\n [ method ]\n **\n * Parses color string as RGB object\n - color (string) color string in one of the following formats:\n # <ul>\n # <li>Color name (<code>red</code>, <code>green</code>, <code>cornflowerblue</code>, etc)</li>\n # <li>#••• — shortened HTML color: (<code>#000</code>, <code>#fc0</code>, etc.)</li>\n # <li>#•••••• — full length HTML color: (<code>#000000</code>, <code>#bd2300</code>)</li>\n # <li>rgb(•••, •••, •••) — red, green and blue channels values: (<code>rgb(200, 100, 0)</code>)</li>\n # <li>rgba(•••, •••, •••, •••) — also with opacity</li>\n # <li>rgb(•••%, •••%, •••%) — same as above, but in %: (<code>rgb(100%, 175%, 0%)</code>)</li>\n # <li>rgba(•••%, •••%, •••%, •••%) — also with opacity</li>\n # <li>hsb(•••, •••, •••) — hue, saturation and brightness values: (<code>hsb(0.5, 0.25, 1)</code>)</li>\n # <li>hsba(•••, •••, •••, •••) — also with opacity</li>\n # <li>hsb(•••%, •••%, •••%) — same as above, but in %</li>\n # <li>hsba(•••%, •••%, •••%, •••%) — also with opacity</li>\n # <li>hsl(•••, •••, •••) — hue, saturation and luminosity values: (<code>hsb(0.5, 0.25, 0.5)</code>)</li>\n # <li>hsla(•••, •••, •••, •••) — also with opacity</li>\n # <li>hsl(•••%, •••%, •••%) — same as above, but in %</li>\n # <li>hsla(•••%, •••%, •••%, •••%) — also with opacity</li>\n # </ul>\n * Note that `%` can be used any time: `rgb(20%, 255, 50%)`.\n = (object) RGB object in the following format:\n o {\n o r (number) red,\n o g (number) green,\n o b (number) blue,\n o hex (string) color in HTML/CSS format: #••••••,\n o error (boolean) true if string can't be parsed\n o }\n\\*/\nSnap.getRGB = cacher(function (colour) {\n if (!colour || !!((colour = Str(colour)).indexOf(\"-\") + 1)) {\n return {r: -1, g: -1, b: -1, hex: \"none\", error: 1, toString: rgbtoString};\n }\n if (colour == \"none\") {\n return {r: -1, g: -1, b: -1, hex: \"none\", toString: rgbtoString};\n }\n !(hsrg[has](colour.toLowerCase().substring(0, 2)) || colour.charAt() == \"#\") && (colour = toHex(colour));\n if (!colour) {\n return {r: -1, g: -1, b: -1, hex: \"none\", error: 1, toString: rgbtoString};\n }\n var res,\n red,\n green,\n blue,\n opacity,\n t,\n values,\n rgb = colour.match(colourRegExp);\n if (rgb) {\n if (rgb[2]) {\n blue = toInt(rgb[2].substring(5), 16);\n green = toInt(rgb[2].substring(3, 5), 16);\n red = toInt(rgb[2].substring(1, 3), 16);\n }\n if (rgb[3]) {\n blue = toInt((t = rgb[3].charAt(3)) + t, 16);\n green = toInt((t = rgb[3].charAt(2)) + t, 16);\n red = toInt((t = rgb[3].charAt(1)) + t, 16);\n }\n if (rgb[4]) {\n values = rgb[4].split(commaSpaces);\n red = toFloat(values[0]);\n values[0].slice(-1) == \"%\" && (red *= 2.55);\n green = toFloat(values[1]);\n values[1].slice(-1) == \"%\" && (green *= 2.55);\n blue = toFloat(values[2]);\n values[2].slice(-1) == \"%\" && (blue *= 2.55);\n rgb[1].toLowerCase().slice(0, 4) == \"rgba\" && (opacity = toFloat(values[3]));\n values[3] && values[3].slice(-1) == \"%\" && (opacity /= 100);\n }\n if (rgb[5]) {\n values = rgb[5].split(commaSpaces);\n red = toFloat(values[0]);\n values[0].slice(-1) == \"%\" && (red /= 100);\n green = toFloat(values[1]);\n values[1].slice(-1) == \"%\" && (green /= 100);\n blue = toFloat(values[2]);\n values[2].slice(-1) == \"%\" && (blue /= 100);\n (values[0].slice(-3) == \"deg\" || values[0].slice(-1) == \"\\xb0\") && (red /= 360);\n rgb[1].toLowerCase().slice(0, 4) == \"hsba\" && (opacity = toFloat(values[3]));\n values[3] && values[3].slice(-1) == \"%\" && (opacity /= 100);\n return Snap.hsb2rgb(red, green, blue, opacity);\n }\n if (rgb[6]) {\n values = rgb[6].split(commaSpaces);\n red = toFloat(values[0]);\n values[0].slice(-1) == \"%\" && (red /= 100);\n green = toFloat(values[1]);\n values[1].slice(-1) == \"%\" && (green /= 100);\n blue = toFloat(values[2]);\n values[2].slice(-1) == \"%\" && (blue /= 100);\n (values[0].slice(-3) == \"deg\" || values[0].slice(-1) == \"\\xb0\") && (red /= 360);\n rgb[1].toLowerCase().slice(0, 4) == \"hsla\" && (opacity = toFloat(values[3]));\n values[3] && values[3].slice(-1) == \"%\" && (opacity /= 100);\n return Snap.hsl2rgb(red, green, blue, opacity);\n }\n red = mmin(math.round(red), 255);\n green = mmin(math.round(green), 255);\n blue = mmin(math.round(blue), 255);\n opacity = mmin(mmax(opacity, 0), 1);\n rgb = {r: red, g: green, b: blue, toString: rgbtoString};\n rgb.hex = \"#\" + (16777216 | blue | green << 8 | red << 16).toString(16).slice(1);\n rgb.opacity = is(opacity, \"finite\") ? opacity : 1;\n return rgb;\n }\n return {r: -1, g: -1, b: -1, hex: \"none\", error: 1, toString: rgbtoString};\n}, Snap);\n/*\\\n * Snap.hsb\n [ method ]\n **\n * Converts HSB values to a hex representation of the color\n - h (number) hue\n - s (number) saturation\n - b (number) value or brightness\n = (string) hex representation of the color\n\\*/\nSnap.hsb = cacher(function (h, s, b) {\n return Snap.hsb2rgb(h, s, b).hex;\n});\n/*\\\n * Snap.hsl\n [ method ]\n **\n * Converts HSL values to a hex representation of the color\n - h (number) hue\n - s (number) saturation\n - l (number) luminosity\n = (string) hex representation of the color\n\\*/\nSnap.hsl = cacher(function (h, s, l) {\n return Snap.hsl2rgb(h, s, l).hex;\n});\n/*\\\n * Snap.rgb\n [ method ]\n **\n * Converts RGB values to a hex representation of the color\n - r (number) red\n - g (number) green\n - b (number) blue\n = (string) hex representation of the color\n\\*/\nSnap.rgb = cacher(function (r, g, b, o) {\n if (is(o, \"finite\")) {\n var round = math.round;\n return \"rgba(\" + [round(r), round(g), round(b), +o.toFixed(2)] + \")\";\n }\n return \"#\" + (16777216 | b | g << 8 | r << 16).toString(16).slice(1);\n});\nvar toHex = function (color) {\n var i = glob.doc.getElementsByTagName(\"head\")[0] || glob.doc.getElementsByTagName(\"svg\")[0],\n red = \"rgb(255, 0, 0)\";\n toHex = cacher(function (color) {\n if (color.toLowerCase() == \"red\") {\n return red;\n }\n i.style.color = red;\n i.style.color = color;\n var out = glob.doc.defaultView.getComputedStyle(i, E).getPropertyValue(\"color\");\n return out == red ? null : out;\n });\n return toHex(color);\n},\nhsbtoString = function () {\n return \"hsb(\" + [this.h, this.s, this.b] + \")\";\n},\nhsltoString = function () {\n return \"hsl(\" + [this.h, this.s, this.l] + \")\";\n},\nrgbtoString = function () {\n return this.opacity == 1 || this.opacity == null ?\n this.hex :\n \"rgba(\" + [this.r, this.g, this.b, this.opacity] + \")\";\n},\nprepareRGB = function (r, g, b) {\n if (g == null && is(r, \"object\") && \"r\" in r && \"g\" in r && \"b\" in r) {\n b = r.b;\n g = r.g;\n r = r.r;\n }\n if (g == null && is(r, string)) {\n var clr = Snap.getRGB(r);\n r = clr.r;\n g = clr.g;\n b = clr.b;\n }\n if (r > 1 || g > 1 || b > 1) {\n r /= 255;\n g /= 255;\n b /= 255;\n }\n\n return [r, g, b];\n},\npackageRGB = function (r, g, b, o) {\n r = math.round(r * 255);\n g = math.round(g * 255);\n b = math.round(b * 255);\n var rgb = {\n r: r,\n g: g,\n b: b,\n opacity: is(o, \"finite\") ? o : 1,\n hex: Snap.rgb(r, g, b),\n toString: rgbtoString\n };\n is(o, \"finite\") && (rgb.opacity = o);\n return rgb;\n};\n/*\\\n * Snap.color\n [ method ]\n **\n * Parses the color string and returns an object featuring the color's component values\n - clr (string) color string in one of the supported formats (see @Snap.getRGB)\n = (object) Combined RGB/HSB object in the following format:\n o {\n o r (number) red,\n o g (number) green,\n o b (number) blue,\n o hex (string) color in HTML/CSS format: #••••••,\n o error (boolean) `true` if string can't be parsed,\n o h (number) hue,\n o s (number) saturation,\n o v (number) value (brightness),\n o l (number) lightness\n o }\n\\*/\nSnap.color = function (clr) {\n var rgb;\n if (is(clr, \"object\") && \"h\" in clr && \"s\" in clr && \"b\" in clr) {\n rgb = Snap.hsb2rgb(clr);\n clr.r = rgb.r;\n clr.g = rgb.g;\n clr.b = rgb.b;\n clr.opacity = 1;\n clr.hex = rgb.hex;\n } else if (is(clr, \"object\") && \"h\" in clr && \"s\" in clr && \"l\" in clr) {\n rgb = Snap.hsl2rgb(clr);\n clr.r = rgb.r;\n clr.g = rgb.g;\n clr.b = rgb.b;\n clr.opacity = 1;\n clr.hex = rgb.hex;\n } else {\n if (is(clr, \"string\")) {\n clr = Snap.getRGB(clr);\n }\n if (is(clr, \"object\") && \"r\" in clr && \"g\" in clr && \"b\" in clr && !(\"error\" in clr)) {\n rgb = Snap.rgb2hsl(clr);\n clr.h = rgb.h;\n clr.s = rgb.s;\n clr.l = rgb.l;\n rgb = Snap.rgb2hsb(clr);\n clr.v = rgb.b;\n } else {\n clr = {hex: \"none\"};\n clr.r = clr.g = clr.b = clr.h = clr.s = clr.v = clr.l = -1;\n clr.error = 1;\n }\n }\n clr.toString = rgbtoString;\n return clr;\n};\n/*\\\n * Snap.hsb2rgb\n [ method ]\n **\n * Converts HSB values to an RGB object\n - h (number) hue\n - s (number) saturation\n - v (number) value or brightness\n = (object) RGB object in the following format:\n o {\n o r (number) red,\n o g (number) green,\n o b (number) blue,\n o hex (string) color in HTML/CSS format: #••••••\n o }\n\\*/\nSnap.hsb2rgb = function (h, s, v, o) {\n if (is(h, \"object\") && \"h\" in h && \"s\" in h && \"b\" in h) {\n v = h.b;\n s = h.s;\n o = h.o;\n h = h.h;\n }\n h *= 360;\n var R, G, B, X, C;\n h = h % 360 / 60;\n C = v * s;\n X = C * (1 - abs(h % 2 - 1));\n R = G = B = v - C;\n\n h = ~~h;\n R += [C, X, 0, 0, X, C][h];\n G += [X, C, C, X, 0, 0][h];\n B += [0, 0, X, C, C, X][h];\n return packageRGB(R, G, B, o);\n};\n/*\\\n * Snap.hsl2rgb\n [ method ]\n **\n * Converts HSL values to an RGB object\n - h (number) hue\n - s (number) saturation\n - l (number) luminosity\n = (object) RGB object in the following format:\n o {\n o r (number) red,\n o g (number) green,\n o b (number) blue,\n o hex (string) color in HTML/CSS format: #••••••\n o }\n\\*/\nSnap.hsl2rgb = function (h, s, l, o) {\n if (is(h, \"object\") && \"h\" in h && \"s\" in h && \"l\" in h) {\n l = h.l;\n s = h.s;\n h = h.h;\n }\n if (h > 1 || s > 1 || l > 1) {\n h /= 360;\n s /= 100;\n l /= 100;\n }\n h *= 360;\n var R, G, B, X, C;\n h = h % 360 / 60;\n C = 2 * s * (l < .5 ? l : 1 - l);\n X = C * (1 - abs(h % 2 - 1));\n R = G = B = l - C / 2;\n\n h = ~~h;\n R += [C, X, 0, 0, X, C][h];\n G += [X, C, C, X, 0, 0][h];\n B += [0, 0, X, C, C, X][h];\n return packageRGB(R, G, B, o);\n};\n/*\\\n * Snap.rgb2hsb\n [ method ]\n **\n * Converts RGB values to an HSB object\n - r (number) red\n - g (number) green\n - b (number) blue\n = (object) HSB object in the following format:\n o {\n o h (number) hue,\n o s (number) saturation,\n o b (number) brightness\n o }\n\\*/\nSnap.rgb2hsb = function (r, g, b) {\n b = prepareRGB(r, g, b);\n r = b[0];\n g = b[1];\n b = b[2];\n\n var H, S, V, C;\n V = mmax(r, g, b);\n C = V - mmin(r, g, b);\n H = C == 0 ? null :\n V == r ? (g - b) / C :\n V == g ? (b - r) / C + 2 :\n (r - g) / C + 4;\n H = (H + 360) % 6 * 60 / 360;\n S = C == 0 ? 0 : C / V;\n return {h: H, s: S, b: V, toString: hsbtoString};\n};\n/*\\\n * Snap.rgb2hsl\n [ method ]\n **\n * Converts RGB values to an HSL object\n - r (number) red\n - g (number) green\n - b (number) blue\n = (object) HSL object in the following format:\n o {\n o h (number) hue,\n o s (number) saturation,\n o l (number) luminosity\n o }\n\\*/\nSnap.rgb2hsl = function (r, g, b) {\n b = prepareRGB(r, g, b);\n r = b[0];\n g = b[1];\n b = b[2];\n\n var H, S, L, M, m, C;\n M = mmax(r, g, b);\n m = mmin(r, g, b);\n C = M - m;\n H = C == 0 ? null :\n M == r ? (g - b) / C :\n M == g ? (b - r) / C + 2 :\n (r - g) / C + 4;\n H = (H + 360) % 6 * 60 / 360;\n L = (M + m) / 2;\n S = C == 0 ? 0 :\n L < .5 ? C / (2 * L) :\n C / (2 - 2 * L);\n return {h: H, s: S, l: L, toString: hsltoString};\n};\n\n// Transformations\n/*\\\n * Snap.parsePathString\n [ method ]\n **\n * Utility method\n **\n * Parses given path string into an array of arrays of path segments\n - pathString (string|array) path string or array of segments (in the last case it is returned straight away)\n = (array) array of segments\n\\*/\nSnap.parsePathString = function (pathString) {\n if (!pathString) {\n return null;\n }\n var pth = Snap.path(pathString);\n if (pth.arr) {\n return Snap.path.clone(pth.arr);\n }\n\n var paramCounts = {a: 7, c: 6, o: 2, h: 1, l: 2, m: 2, r: 4, q: 4, s: 4, t: 2, v: 1, u: 3, z: 0},\n data = [];\n if (is(pathString, \"array\") && is(pathString[0], \"array\")) { // rough assumption\n data = Snap.path.clone(pathString);\n }\n if (!data.length) {\n Str(pathString).replace(pathCommand, function (a, b, c) {\n var params = [],\n name = b.toLowerCase();\n c.replace(pathValues, function (a, b) {\n b && params.push(+b);\n });\n if (name == \"m\" && params.length > 2) {\n data.push([b].concat(params.splice(0, 2)));\n name = \"l\";\n b = b == \"m\" ? \"l\" : \"L\";\n }\n if (name == \"o\" && params.length == 1) {\n data.push([b, params[0]]);\n }\n if (name == \"r\") {\n data.push([b].concat(params));\n } else while (params.length >= paramCounts[name]) {\n data.push([b].concat(params.splice(0, paramCounts[name])));\n if (!paramCounts[name]) {\n break;\n }\n }\n });\n }\n data.toString = Snap.path.toString;\n pth.arr = Snap.path.clone(data);\n return data;\n};\n/*\\\n * Snap.parseTransformString\n [ method ]\n **\n * Utility method\n **\n * Parses given transform string into an array of transformations\n - TString (string|array) transform string or array of transformations (in the last case it is returned straight away)\n = (array) array of transformations\n\\*/\nvar parseTransformString = Snap.parseTransformString = function (TString) {\n if (!TString) {\n return null;\n }\n var paramCounts = {r: 3, s: 4, t: 2, m: 6},\n data = [];\n if (is(TString, \"array\") && is(TString[0], \"array\")) { // rough assumption\n data = Snap.path.clone(TString);\n }\n if (!data.length) {\n Str(TString).replace(tCommand, function (a, b, c) {\n var params = [],\n name = b.toLowerCase();\n c.replace(pathValues, function (a, b) {\n b && params.push(+b);\n });\n data.push([b].concat(params));\n });\n }\n data.toString = Snap.path.toString;\n return data;\n};\nfunction svgTransform2string(tstr) {\n var res = [];\n tstr = tstr.replace(/(?:^|\\s)(\\w+)\\(([^)]+)\\)/g, function (all, name, params) {\n params = params.split(/\\s*,\\s*|\\s+/);\n if (name == \"rotate\" && params.length == 1) {\n params.push(0, 0);\n }\n if (name == \"scale\") {\n if (params.length > 2) {\n params = params.slice(0, 2);\n } else if (params.length == 2) {\n params.push(0, 0);\n }\n if (params.length == 1) {\n params.push(params[0], 0, 0);\n }\n }\n if (name == \"skewX\") {\n res.push([\"m\", 1, 0, math.tan(rad(params[0])), 1, 0, 0]);\n } else if (name == \"skewY\") {\n res.push([\"m\", 1, math.tan(rad(params[0])), 0, 1, 0, 0]);\n } else {\n res.push([name.charAt(0)].concat(params));\n }\n return all;\n });\n return res;\n}\nSnap._.svgTransform2string = svgTransform2string;\nSnap._.rgTransform = /^[a-z][\\s]*-?\\.?\\d/i;\nfunction transform2matrix(tstr, bbox) {\n var tdata = parseTransformString(tstr),\n m = new Snap.Matrix;\n if (tdata) {\n for (var i = 0, ii = tdata.length; i < ii; i++) {\n var t = tdata[i],\n tlen = t.length,\n command = Str(t[0]).toLowerCase(),\n absolute = t[0] != command,\n inver = absolute ? m.invert() : 0,\n x1,\n y1,\n x2,\n y2,\n bb;\n if (command == \"t\" && tlen == 2){\n m.translate(t[1], 0);\n } else if (command == \"t\" && tlen == 3) {\n if (absolute) {\n x1 = inver.x(0, 0);\n y1 = inver.y(0, 0);\n x2 = inver.x(t[1], t[2]);\n y2 = inver.y(t[1], t[2]);\n m.translate(x2 - x1, y2 - y1);\n } else {\n m.translate(t[1], t[2]);\n }\n } else if (command == \"r\") {\n if (tlen == 2) {\n bb = bb || bbox;\n m.rotate(t[1], bb.x + bb.width / 2, bb.y + bb.height / 2);\n } else if (tlen == 4) {\n if (absolute) {\n x2 = inver.x(t[2], t[3]);\n y2 = inver.y(t[2], t[3]);\n m.rotate(t[1], x2, y2);\n } else {\n m.rotate(t[1], t[2], t[3]);\n }\n }\n } else if (command == \"s\") {\n if (tlen == 2 || tlen == 3) {\n bb = bb || bbox;\n m.scale(t[1], t[tlen - 1], bb.x + bb.width / 2, bb.y + bb.height / 2);\n } else if (tlen == 4) {\n if (absolute) {\n x2 = inver.x(t[2], t[3]);\n y2 = inver.y(t[2], t[3]);\n m.scale(t[1], t[1], x2, y2);\n } else {\n m.scale(t[1], t[1], t[2], t[3]);\n }\n } else if (tlen == 5) {\n if (absolute) {\n x2 = inver.x(t[3], t[4]);\n y2 = inver.y(t[3], t[4]);\n m.scale(t[1], t[2], x2, y2);\n } else {\n m.scale(t[1], t[2], t[3], t[4]);\n }\n }\n } else if (command == \"m\" && tlen == 7) {\n m.add(t[1], t[2], t[3], t[4], t[5], t[6]);\n }\n }\n }\n return m;\n}\nSnap._.transform2matrix = transform2matrix;\nSnap._unit2px = unit2px;\nvar contains = glob.doc.contains || glob.doc.compareDocumentPosition ?\n function (a, b) {\n var adown = a.nodeType == 9 ? a.documentElement : a,\n bup = b && b.parentNode;\n return a == bup || !!(bup && bup.nodeType == 1 && (\n adown.contains ?\n adown.contains(bup) :\n a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16\n ));\n } :\n function (a, b) {\n if (b) {\n while (b) {\n b = b.parentNode;\n if (b == a) {\n return true;\n }\n }\n }\n return false;\n };\nfunction getSomeDefs(el) {\n var p = el.node.ownerSVGElement && wrap(el.node.ownerSVGElement) ||\n el.node.parentNode && wrap(el.node.parentNode) ||\n Snap.select(\"svg\") ||\n Snap(0, 0),\n pdefs = p.select(\"defs\"),\n defs = pdefs == null ? false : pdefs.node;\n if (!defs) {\n defs = make(\"defs\", p.node).node;\n }\n return defs;\n}\nfunction getSomeSVG(el) {\n return el.node.ownerSVGElement && wrap(el.node.ownerSVGElement) || Snap.select(\"svg\");\n}\nSnap._.getSomeDefs = getSomeDefs;\nSnap._.getSomeSVG = getSomeSVG;\nfunction unit2px(el, name, value) {\n var svg = getSomeSVG(el).node,\n out = {},\n mgr = svg.querySelector(\".svg---mgr\");\n if (!mgr) {\n mgr = $(\"rect\");\n $(mgr, {x: -9e9, y: -9e9, width: 10, height: 10, \"class\": \"svg---mgr\", fill: \"none\"});\n svg.appendChild(mgr);\n }\n function getW(val) {\n if (val == null) {\n return E;\n }\n if (val == +val) {\n return val;\n }\n $(mgr, {width: val});\n try {\n return mgr.getBBox().width;\n } catch (e) {\n return 0;\n }\n }\n function getH(val) {\n if (val == null) {\n return E;\n }\n if (val == +val) {\n return val;\n }\n $(mgr, {height: val});\n try {\n return mgr.getBBox().height;\n } catch (e) {\n return 0;\n }\n }\n function set(nam, f) {\n if (name == null) {\n out[nam] = f(el.attr(nam) || 0);\n } else if (nam == name) {\n out = f(value == null ? el.attr(nam) || 0 : value);\n }\n }\n switch (el.type) {\n case \"rect\":\n set(\"rx\", getW);\n set(\"ry\", getH);\n case \"image\":\n set(\"width\", getW);\n set(\"height\", getH);\n case \"text\":\n set(\"x\", getW);\n set(\"y\", getH);\n break;\n case \"circle\":\n set(\"cx\", getW);\n set(\"cy\", getH);\n set(\"r\", getW);\n break;\n case \"ellipse\":\n set(\"cx\", getW);\n set(\"cy\", getH);\n set(\"rx\", getW);\n set(\"ry\", getH);\n break;\n case \"line\":\n set(\"x1\", getW);\n set(\"x2\", getW);\n set(\"y1\", getH);\n set(\"y2\", getH);\n break;\n case \"marker\":\n set(\"refX\", getW);\n set(\"markerWidth\", getW);\n set(\"refY\", getH);\n set(\"markerHeight\", getH);\n break;\n case \"radialGradient\":\n set(\"fx\", getW);\n set(\"fy\", getH);\n break;\n case \"tspan\":\n set(\"dx\", getW);\n set(\"dy\", getH);\n break;\n default:\n set(name, getW);\n }\n svg.removeChild(mgr);\n return out;\n}\n/*\\\n * Snap.select\n [ method ]\n **\n * Wraps a DOM element specified by CSS selector as @Element\n - query (string) CSS selector of the element\n = (Element) the current element\n\\*/\nSnap.select = function (query) {\n query = Str(query).replace(/([^\\\\]):/g, \"$1\\\\:\");\n return wrap(glob.doc.querySelector(query));\n};\n/*\\\n * Snap.selectAll\n [ method ]\n **\n * Wraps DOM elements specified by CSS selector as set or array of @Element\n - query (string) CSS selector of the element\n = (Element) the current element\n\\*/\nSnap.selectAll = function (query) {\n var nodelist = glob.doc.querySelectorAll(query),\n set = (Snap.set || Array)();\n for (var i = 0; i < nodelist.length; i++) {\n set.push(wrap(nodelist[i]));\n }\n return set;\n};\n\nfunction add2group(list) {\n if (!is(list, \"array\")) {\n list = Array.prototype.slice.call(arguments, 0);\n }\n var i = 0,\n j = 0,\n node = this.node;\n while (this[i]) delete this[i++];\n for (i = 0; i < list.length; i++) {\n if (list[i].type == \"set\") {\n list[i].forEach(function (el) {\n node.appendChild(el.node);\n });\n } else {\n node.appendChild(list[i].node);\n }\n }\n var children = node.childNodes;\n for (i = 0; i < children.length; i++) {\n this[j++] = wrap(children[i]);\n }\n return this;\n}\n// Hub garbage collector every 10s\nsetInterval(function () {\n for (var key in hub) if (hub[has](key)) {\n var el = hub[key],\n node = el.node;\n if (el.type != \"svg\" && !node.ownerSVGElement || el.type == \"svg\" && (!node.parentNode || \"ownerSVGElement\" in node.parentNode && !node.ownerSVGElement)) {\n delete hub[key];\n }\n }\n}, 1e4);\nfunction Element(el) {\n if (el.snap in hub) {\n return hub[el.snap];\n }\n var svg;\n try {\n svg = el.ownerSVGElement;\n } catch(e) {}\n /*\\\n * Element.node\n [ property (object) ]\n **\n * Gives you a reference to the DOM object, so you can assign event handlers or just mess around.\n > Usage\n | // draw a circle at coordinate 10,10 with radius of 10\n | var c = paper.circle(10, 10, 10);\n | c.node.onclick = function () {\n | c.attr(\"fill\", \"red\");\n | };\n \\*/\n this.node = el;\n if (svg) {\n this.paper = new Paper(svg);\n }\n /*\\\n * Element.type\n [ property (string) ]\n **\n * SVG tag name of the given element.\n \\*/\n this.type = el.tagName || el.nodeName;\n var id = this.id = ID(this);\n this.anims = {};\n this._ = {\n transform: []\n };\n el.snap = id;\n hub[id] = this;\n if (this.type == \"g\") {\n this.add = add2group;\n }\n if (this.type in {g: 1, mask: 1, pattern: 1, symbol: 1}) {\n for (var method in Paper.prototype) if (Paper.prototype[has](method)) {\n this[method] = Paper.prototype[method];\n }\n }\n}\n /*\\\n * Element.attr\n [ method ]\n **\n * Gets or sets given attributes of the element.\n **\n - params (object) contains key-value pairs of attributes you want to set\n * or\n - param (string) name of the attribute\n = (Element) the current element\n * or\n = (string) value of attribute\n > Usage\n | el.attr({\n | fill: \"#fc0\",\n | stroke: \"#000\",\n | strokeWidth: 2, // CamelCase...\n | \"fill-opacity\": 0.5, // or dash-separated names\n | width: \"*=2\" // prefixed values\n | });\n | console.log(el.attr(\"fill\")); // #fc0\n * Prefixed values in format `\"+=10\"` supported. All four operations\n * (`+`, `-`, `*` and `/`) could be used. Optionally you can use units for `+`\n * and `-`: `\"+=2em\"`.\n \\*/\n Element.prototype.attr = function (params, value) {\n var el = this,\n node = el.node;\n if (!params) {\n if (node.nodeType != 1) {\n return {\n text: node.nodeValue\n };\n }\n var attr = node.attributes,\n out = {};\n for (var i = 0, ii = attr.length; i < ii; i++) {\n out[attr[i].nodeName] = attr[i].nodeValue;\n }\n return out;\n }\n if (is(params, \"string\")) {\n if (arguments.length > 1) {\n var json = {};\n json[params] = value;\n params = json;\n } else {\n return eve(\"snap.util.getattr.\" + params, el).firstDefined();\n }\n }\n for (var att in params) {\n if (params[has](att)) {\n eve(\"snap.util.attr.\" + att, el, params[att]);\n }\n }\n return el;\n };\n/*\\\n * Snap.parse\n [ method ]\n **\n * Parses SVG fragment and converts it into a @Fragment\n **\n - svg (string) SVG string\n = (Fragment) the @Fragment\n\\*/\nSnap.parse = function (svg) {\n var f = glob.doc.createDocumentFragment(),\n full = true,\n div = glob.doc.createElement(\"div\");\n svg = Str(svg);\n if (!svg.match(/^\\s*<\\s*svg(?:\\s|>)/)) {\n svg = \"<svg>\" + svg + \"</svg>\";\n full = false;\n }\n div.innerHTML = svg;\n svg = div.getElementsByTagName(\"svg\")[0];\n if (svg) {\n if (full) {\n f = svg;\n } else {\n while (svg.firstChild) {\n f.appendChild(svg.firstChild);\n }\n }\n }\n return new Fragment(f);\n};\nfunction Fragment(frag) {\n this.node = frag;\n}\n/*\\\n * Snap.fragment\n [ method ]\n **\n * Creates a DOM fragment from a given list of elements or strings\n **\n - varargs (…) SVG string\n = (Fragment) the @Fragment\n\\*/\nSnap.fragment = function () {\n var args = Array.prototype.slice.call(arguments, 0),\n f = glob.doc.createDocumentFragment();\n for (var i = 0, ii = args.length; i < ii; i++) {\n var item = args[i];\n if (item.node && item.node.nodeType) {\n f.appendChild(item.node);\n }\n if (item.nodeType) {\n f.appendChild(item);\n }\n if (typeof item == \"string\") {\n f.appendChild(Snap.parse(item).node);\n }\n }\n return new Fragment(f);\n};\n\nfunction make(name, parent) {\n var res = $(name);\n parent.appendChild(res);\n var el = wrap(res);\n return el;\n}\nfunction Paper(w, h) {\n var res,\n desc,\n defs,\n proto = Paper.prototype;\n if (w && w.tagName && w.tagName.toLowerCase() == \"svg\") {\n if (w.snap in hub) {\n return hub[w.snap];\n }\n var doc = w.ownerDocument;\n res = new Element(w);\n desc = w.getElementsByTagName(\"desc\")[0];\n defs = w.getElementsByTagName(\"defs\")[0];\n if (!desc) {\n desc = $(\"desc\");\n desc.appendChild(doc.createTextNode(\"Created with Snap\"));\n res.node.appendChild(desc);\n }\n if (!defs) {\n defs = $(\"defs\");\n res.node.appendChild(defs);\n }\n res.defs = defs;\n for (var key in proto) if (proto[has](key)) {\n res[key] = proto[key];\n }\n res.paper = res.root = res;\n } else {\n res = make(\"svg\", glob.doc.body);\n $(res.node, {\n height: h,\n version: 1.1,\n width: w,\n xmlns: xmlns\n });\n }\n return res;\n}\nfunction wrap(dom) {\n if (!dom) {\n return dom;\n }\n if (dom instanceof Element || dom instanceof Fragment) {\n return dom;\n }\n if (dom.tagName && dom.tagName.toLowerCase() == \"svg\") {\n return new Paper(dom);\n }\n if (dom.tagName && dom.tagName.toLowerCase() == \"object\" && dom.type == \"image/svg+xml\") {\n return new Paper(dom.contentDocument.getElementsByTagName(\"svg\")[0]);\n }\n return new Element(dom);\n}\n\nSnap._.make = make;\nSnap._.wrap = wrap;\n/*\\\n * Paper.el\n [ method ]\n **\n * Creates an element on paper with a given name and no attributes\n **\n - name (string) tag name\n - attr (object) attributes\n = (Element) the current element\n > Usage\n | var c = paper.circle(10, 10, 10); // is the same as...\n | var c = paper.el(\"circle\").attr({\n | cx: 10,\n | cy: 10,\n | r: 10\n | });\n | // and the same as\n | var c = paper.el(\"circle\", {\n | cx: 10,\n | cy: 10,\n | r: 10\n | });\n\\*/\nPaper.prototype.el = function (name, attr) {\n var el = make(name, this.node);\n attr && el.attr(attr);\n return el;\n};\n/*\\\n * Element.children\n [ method ]\n **\n * Returns array of all the children of the element.\n = (array) array of Elements\n\\*/\nElement.prototype.children = function () {\n var out = [],\n ch = this.node.childNodes;\n for (var i = 0, ii = ch.length; i < ii; i++) {\n out[i] = Snap(ch[i]);\n }\n return out;\n};\nfunction jsonFiller(root, o) {\n for (var i = 0, ii = root.length; i < ii; i++) {\n var item = {\n type: root[i].type,\n attr: root[i].attr()\n },\n children = root[i].children();\n o.push(item);\n if (children.length) {\n jsonFiller(children, item.childNodes = []);\n }\n }\n}\n/*\\\n * Element.toJSON\n [ method ]\n **\n * Returns object representation of the given element and all its children.\n = (object) in format\n o {\n o type (string) this.type,\n o attr (object) attributes map,\n o childNodes (array) optional array of children in the same format\n o }\n\\*/\nElement.prototype.toJSON = function () {\n var out = [];\n jsonFiller([this], out);\n return out[0];\n};\n// default\neve.on(\"snap.util.getattr\", function () {\n var att = eve.nt();\n att = att.substring(att.lastIndexOf(\".\") + 1);\n var css = att.replace(/[A-Z]/g, function (letter) {\n return \"-\" + letter.toLowerCase();\n });\n if (cssAttr[has](css)) {\n return this.node.ownerDocument.defaultView.getComputedStyle(this.node, null).getPropertyValue(css);\n } else {\n return $(this.node, att);\n }\n});\nvar cssAttr = {\n \"alignment-baseline\": 0,\n \"baseline-shift\": 0,\n \"clip\": 0,\n \"clip-path\": 0,\n \"clip-rule\": 0,\n \"color\": 0,\n \"color-interpolation\": 0,\n \"color-interpolation-filters\": 0,\n \"color-profile\": 0,\n \"color-rendering\": 0,\n \"cursor\": 0,\n \"direction\": 0,\n \"display\": 0,\n \"dominant-baseline\": 0,\n \"enable-background\": 0,\n \"fill\": 0,\n \"fill-opacity\": 0,\n \"fill-rule\": 0,\n \"filter\": 0,\n \"flood-color\": 0,\n \"flood-opacity\": 0,\n \"font\": 0,\n \"font-family\": 0,\n \"font-size\": 0,\n \"font-size-adjust\": 0,\n \"font-stretch\": 0,\n \"font-style\": 0,\n \"font-variant\": 0,\n \"font-weight\": 0,\n \"glyph-orientation-horizontal\": 0,\n \"glyph-orientation-vertical\": 0,\n \"image-rendering\": 0,\n \"kerning\": 0,\n \"letter-spacing\": 0,\n \"lighting-color\": 0,\n \"marker\": 0,\n \"marker-end\": 0,\n \"marker-mid\": 0,\n \"marker-start\": 0,\n \"mask\": 0,\n \"opacity\": 0,\n \"overflow\": 0,\n \"pointer-events\": 0,\n \"shape-rendering\": 0,\n \"stop-color\": 0,\n \"stop-opacity\": 0,\n \"stroke\": 0,\n \"stroke-dasharray\": 0,\n \"stroke-dashoffset\": 0,\n \"stroke-linecap\": 0,\n \"stroke-linejoin\": 0,\n \"stroke-miterlimit\": 0,\n \"stroke-opacity\": 0,\n \"stroke-width\": 0,\n \"text-anchor\": 0,\n \"text-decoration\": 0,\n \"text-rendering\": 0,\n \"unicode-bidi\": 0,\n \"visibility\": 0,\n \"word-spacing\": 0,\n \"writing-mode\": 0\n};\n\neve.on(\"snap.util.attr\", function (value) {\n var att = eve.nt(),\n attr = {};\n att = att.substring(att.lastIndexOf(\".\") + 1);\n attr[att] = value;\n var style = att.replace(/-(\\w)/gi, function (all, letter) {\n return letter.toUpperCase();\n }),\n css = att.replace(/[A-Z]/g, function (letter) {\n return \"-\" + letter.toLowerCase();\n });\n if (cssAttr[has](css)) {\n this.node.style[style] = value == null ? E : value;\n } else {\n $(this.node, attr);\n }\n});\n(function (proto) {}(Paper.prototype));\n\n// simple ajax\n/*\\\n * Snap.ajax\n [ method ]\n **\n * Simple implementation of Ajax\n **\n - url (string) URL\n - postData (object|string) data for post request\n - callback (function) callback\n - scope (object) #optional scope of callback\n * or\n - url (string) URL\n - callback (function) callback\n - scope (object) #optional scope of callback\n = (XMLHttpRequest) the XMLHttpRequest object, just in case\n\\*/\nSnap.ajax = function (url, postData, callback, scope){\n var req = new XMLHttpRequest,\n id = ID();\n if (req) {\n if (is(postData, \"function\")) {\n scope = callback;\n callback = postData;\n postData = null;\n } else if (is(postData, \"object\")) {\n var pd = [];\n for (var key in postData) if (postData.hasOwnProperty(key)) {\n pd.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(postData[key]));\n }\n postData = pd.join(\"&\");\n }\n req.open(postData ? \"POST\" : \"GET\", url, true);\n if (postData) {\n req.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n req.setRequestHeader(\"Content-type\", \"application/x-www-form-urlencoded\");\n }\n if (callback) {\n eve.once(\"snap.ajax.\" + id + \".0\", callback);\n eve.once(\"snap.ajax.\" + id + \".200\", callback);\n eve.once(\"snap.ajax.\" + id + \".304\", callback);\n }\n req.onreadystatechange = function() {\n if (req.readyState != 4) return;\n eve(\"snap.ajax.\" + id + \".\" + req.status, scope, req);\n };\n if (req.readyState == 4) {\n return req;\n }\n req.send(postData);\n return req;\n }\n};\n/*\\\n * Snap.load\n [ method ]\n **\n * Loads external SVG file as a @Fragment (see @Snap.ajax for more advanced AJAX)\n **\n - url (string) URL\n - callback (function) callback\n - scope (object) #optional scope of callback\n\\*/\nSnap.load = function (url, callback, scope) {\n Snap.ajax(url, function (req) {\n var f = Snap.parse(req.responseText);\n scope ? callback.call(scope, f) : callback(f);\n });\n};\nvar getOffset = function (elem) {\n var box = elem.getBoundingClientRect(),\n doc = elem.ownerDocument,\n body = doc.body,\n docElem = doc.documentElement,\n clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0,\n top = box.top + (g.win.pageYOffset || docElem.scrollTop || body.scrollTop ) - clientTop,\n left = box.left + (g.win.pageXOffset || docElem.scrollLeft || body.scrollLeft) - clientLeft;\n return {\n y: top,\n x: left\n };\n};\n/*\\\n * Snap.getElementByPoint\n [ method ]\n **\n * Returns you topmost element under given point.\n **\n = (object) Snap element object\n - x (number) x coordinate from the top left corner of the window\n - y (number) y coordinate from the top left corner of the window\n > Usage\n | Snap.getElementByPoint(mouseX, mouseY).attr({stroke: \"#f00\"});\n\\*/\nSnap.getElementByPoint = function (x, y) {\n var paper = this,\n svg = paper.canvas,\n target = glob.doc.elementFromPoint(x, y);\n if (glob.win.opera && target.tagName == \"svg\") {\n var so = getOffset(target),\n sr = target.createSVGRect();\n sr.x = x - so.x;\n sr.y = y - so.y;\n sr.width = sr.height = 1;\n var hits = target.getIntersectionList(sr, null);\n if (hits.length) {\n target = hits[hits.length - 1];\n }\n }\n if (!target) {\n return null;\n }\n return wrap(target);\n};\n/*\\\n * Snap.plugin\n [ method ]\n **\n * Let you write plugins. You pass in a function with five arguments, like this:\n | Snap.plugin(function (Snap, Element, Paper, global, Fragment) {\n | Snap.newmethod = function () {};\n | Element.prototype.newmethod = function () {};\n | Paper.prototype.newmethod = function () {};\n | });\n * Inside the function you have access to all main objects (and their\n * prototypes). This allow you to extend anything you want.\n **\n - f (function) your plugin body\n\\*/\nSnap.plugin = function (f) {\n f(Snap, Element, Paper, glob, Fragment);\n};\nglob.win.Snap = Snap;\nreturn Snap;\n}(window || this));\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var elproto = Element.prototype,\n is = Snap.is,\n Str = String,\n unit2px = Snap._unit2px,\n $ = Snap._.$,\n make = Snap._.make,\n getSomeDefs = Snap._.getSomeDefs,\n has = \"hasOwnProperty\",\n wrap = Snap._.wrap;\n /*\\\n * Element.getBBox\n [ method ]\n **\n * Returns the bounding box descriptor for the given element\n **\n = (object) bounding box descriptor:\n o {\n o cx: (number) x of the center,\n o cy: (number) x of the center,\n o h: (number) height,\n o height: (number) height,\n o path: (string) path command for the box,\n o r0: (number) radius of a circle that fully encloses the box,\n o r1: (number) radius of the smallest circle that can be enclosed,\n o r2: (number) radius of the largest circle that can be enclosed,\n o vb: (string) box as a viewbox command,\n o w: (number) width,\n o width: (number) width,\n o x2: (number) x of the right side,\n o x: (number) x of the left side,\n o y2: (number) y of the bottom edge,\n o y: (number) y of the top edge\n o }\n \\*/\n elproto.getBBox = function (isWithoutTransform) {\n if (this.type == \"tspan\") {\n return Snap._.box(this.node.getClientRects().item(0));\n }\n if (!Snap.Matrix || !Snap.path) {\n return this.node.getBBox();\n }\n var el = this,\n m = new Snap.Matrix;\n if (el.removed) {\n return Snap._.box();\n }\n while (el.type == \"use\") {\n if (!isWithoutTransform) {\n m = m.add(el.transform().localMatrix.translate(el.attr(\"x\") || 0, el.attr(\"y\") || 0));\n }\n if (el.original) {\n el = el.original;\n } else {\n var href = el.attr(\"xlink:href\");\n el = el.original = el.node.ownerDocument.getElementById(href.substring(href.indexOf(\"#\") + 1));\n }\n }\n var _ = el._,\n pathfinder = Snap.path.get[el.type] || Snap.path.get.deflt;\n try {\n if (isWithoutTransform) {\n _.bboxwt = pathfinder ? Snap.path.getBBox(el.realPath = pathfinder(el)) : Snap._.box(el.node.getBBox());\n return Snap._.box(_.bboxwt);\n } else {\n el.realPath = pathfinder(el);\n el.matrix = el.transform().localMatrix;\n _.bbox = Snap.path.getBBox(Snap.path.map(el.realPath, m.add(el.matrix)));\n return Snap._.box(_.bbox);\n }\n } catch (e) {\n // Firefox doesn’t give you bbox of hidden element\n return Snap._.box();\n }\n };\n var propString = function () {\n return this.string;\n };\n function extractTransform(el, tstr) {\n if (tstr == null) {\n var doReturn = true;\n if (el.type == \"linearGradient\" || el.type == \"radialGradient\") {\n tstr = el.node.getAttribute(\"gradientTransform\");\n } else if (el.type == \"pattern\") {\n tstr = el.node.getAttribute(\"patternTransform\");\n } else {\n tstr = el.node.getAttribute(\"transform\");\n }\n if (!tstr) {\n return new Snap.Matrix;\n }\n tstr = Snap._.svgTransform2string(tstr);\n } else {\n if (!Snap._.rgTransform.test(tstr)) {\n tstr = Snap._.svgTransform2string(tstr);\n } else {\n tstr = Str(tstr).replace(/\\.{3}|\\u2026/g, el._.transform || \"\");\n }\n if (is(tstr, \"array\")) {\n tstr = Snap.path ? Snap.path.toString.call(tstr) : Str(tstr);\n }\n el._.transform = tstr;\n }\n var m = Snap._.transform2matrix(tstr, el.getBBox(1));\n if (doReturn) {\n return m;\n } else {\n el.matrix = m;\n }\n }\n /*\\\n * Element.transform\n [ method ]\n **\n * Gets or sets transformation of the element\n **\n - tstr (string) transform string in Snap or SVG format\n = (Element) the current element\n * or\n = (object) transformation descriptor:\n o {\n o string (string) transform string,\n o globalMatrix (Matrix) matrix of all transformations applied to element or its parents,\n o localMatrix (Matrix) matrix of transformations applied only to the element,\n o diffMatrix (Matrix) matrix of difference between global and local transformations,\n o global (string) global transformation as string,\n o local (string) local transformation as string,\n o toString (function) returns `string` property\n o }\n \\*/\n elproto.transform = function (tstr) {\n var _ = this._;\n if (tstr == null) {\n var papa = this,\n global = new Snap.Matrix(this.node.getCTM()),\n local = extractTransform(this),\n ms = [local],\n m = new Snap.Matrix,\n i,\n localString = local.toTransformString(),\n string = Str(local) == Str(this.matrix) ?\n Str(_.transform) : localString;\n while (papa.type != \"svg\" && (papa = papa.parent())) {\n ms.push(extractTransform(papa));\n }\n i = ms.length;\n while (i--) {\n m.add(ms[i]);\n }\n return {\n string: string,\n globalMatrix: global,\n totalMatrix: m,\n localMatrix: local,\n diffMatrix: global.clone().add(local.invert()),\n global: global.toTransformString(),\n total: m.toTransformString(),\n local: localString,\n toString: propString\n };\n }\n if (tstr instanceof Snap.Matrix) {\n this.matrix = tstr;\n this._.transform = tstr.toTransformString();\n } else {\n extractTransform(this, tstr);\n }\n\n if (this.node) {\n if (this.type == \"linearGradient\" || this.type == \"radialGradient\") {\n $(this.node, {gradientTransform: this.matrix});\n } else if (this.type == \"pattern\") {\n $(this.node, {patternTransform: this.matrix});\n } else {\n $(this.node, {transform: this.matrix});\n }\n }\n\n return this;\n };\n /*\\\n * Element.parent\n [ method ]\n **\n * Returns the element's parent\n **\n = (Element) the parent element\n \\*/\n elproto.parent = function () {\n return wrap(this.node.parentNode);\n };\n /*\\\n * Element.append\n [ method ]\n **\n * Appends the given element to current one\n **\n - el (Element|Set) element to append\n = (Element) the parent element\n \\*/\n /*\\\n * Element.add\n [ method ]\n **\n * See @Element.append\n \\*/\n elproto.append = elproto.add = function (el) {\n if (el) {\n if (el.type == \"set\") {\n var it = this;\n el.forEach(function (el) {\n it.add(el);\n });\n return this;\n }\n el = wrap(el);\n this.node.appendChild(el.node);\n el.paper = this.paper;\n }\n return this;\n };\n /*\\\n * Element.appendTo\n [ method ]\n **\n * Appends the current element to the given one\n **\n - el (Element) parent element to append to\n = (Element) the child element\n \\*/\n elproto.appendTo = function (el) {\n if (el) {\n el = wrap(el);\n el.append(this);\n }\n return this;\n };\n /*\\\n * Element.prepend\n [ method ]\n **\n * Prepends the given element to the current one\n **\n - el (Element) element to prepend\n = (Element) the parent element\n \\*/\n elproto.prepend = function (el) {\n if (el) {\n if (el.type == \"set\") {\n var it = this,\n first;\n el.forEach(function (el) {\n if (first) {\n first.after(el);\n } else {\n it.prepend(el);\n }\n first = el;\n });\n return this;\n }\n el = wrap(el);\n var parent = el.parent();\n this.node.insertBefore(el.node, this.node.firstChild);\n this.add && this.add();\n el.paper = this.paper;\n this.parent() && this.parent().add();\n parent && parent.add();\n }\n return this;\n };\n /*\\\n * Element.prependTo\n [ method ]\n **\n * Prepends the current element to the given one\n **\n - el (Element) parent element to prepend to\n = (Element) the child element\n \\*/\n elproto.prependTo = function (el) {\n el = wrap(el);\n el.prepend(this);\n return this;\n };\n /*\\\n * Element.before\n [ method ]\n **\n * Inserts given element before the current one\n **\n - el (Element) element to insert\n = (Element) the parent element\n \\*/\n elproto.before = function (el) {\n if (el.type == \"set\") {\n var it = this;\n el.forEach(function (el) {\n var parent = el.parent();\n it.node.parentNode.insertBefore(el.node, it.node);\n parent && parent.add();\n });\n this.parent().add();\n return this;\n }\n el = wrap(el);\n var parent = el.parent();\n this.node.parentNode.insertBefore(el.node, this.node);\n this.parent() && this.parent().add();\n parent && parent.add();\n el.paper = this.paper;\n return this;\n };\n /*\\\n * Element.after\n [ method ]\n **\n * Inserts given element after the current one\n **\n - el (Element) element to insert\n = (Element) the parent element\n \\*/\n elproto.after = function (el) {\n el = wrap(el);\n var parent = el.parent();\n if (this.node.nextSibling) {\n this.node.parentNode.insertBefore(el.node, this.node.nextSibling);\n } else {\n this.node.parentNode.appendChild(el.node);\n }\n this.parent() && this.parent().add();\n parent && parent.add();\n el.paper = this.paper;\n return this;\n };\n /*\\\n * Element.insertBefore\n [ method ]\n **\n * Inserts the element after the given one\n **\n - el (Element) element next to whom insert to\n = (Element) the parent element\n \\*/\n elproto.insertBefore = function (el) {\n el = wrap(el);\n var parent = this.parent();\n el.node.parentNode.insertBefore(this.node, el.node);\n this.paper = el.paper;\n parent && parent.add();\n el.parent() && el.parent().add();\n return this;\n };\n /*\\\n * Element.insertAfter\n [ method ]\n **\n * Inserts the element after the given one\n **\n - el (Element) element next to whom insert to\n = (Element) the parent element\n \\*/\n elproto.insertAfter = function (el) {\n el = wrap(el);\n var parent = this.parent();\n el.node.parentNode.insertBefore(this.node, el.node.nextSibling);\n this.paper = el.paper;\n parent && parent.add();\n el.parent() && el.parent().add();\n return this;\n };\n /*\\\n * Element.remove\n [ method ]\n **\n * Removes element from the DOM\n = (Element) the detached element\n \\*/\n elproto.remove = function () {\n var parent = this.parent();\n this.node.parentNode && this.node.parentNode.removeChild(this.node);\n delete this.paper;\n this.removed = true;\n parent && parent.add();\n return this;\n };\n /*\\\n * Element.select\n [ method ]\n **\n * Gathers the nested @Element matching the given set of CSS selectors\n **\n - query (string) CSS selector\n = (Element) result of query selection\n \\*/\n elproto.select = function (query) {\n return wrap(this.node.querySelector(query));\n };\n /*\\\n * Element.selectAll\n [ method ]\n **\n * Gathers nested @Element objects matching the given set of CSS selectors\n **\n - query (string) CSS selector\n = (Set|array) result of query selection\n \\*/\n elproto.selectAll = function (query) {\n var nodelist = this.node.querySelectorAll(query),\n set = (Snap.set || Array)();\n for (var i = 0; i < nodelist.length; i++) {\n set.push(wrap(nodelist[i]));\n }\n return set;\n };\n /*\\\n * Element.asPX\n [ method ]\n **\n * Returns given attribute of the element as a `px` value (not %, em, etc.)\n **\n - attr (string) attribute name\n - value (string) #optional attribute value\n = (Element) result of query selection\n \\*/\n elproto.asPX = function (attr, value) {\n if (value == null) {\n value = this.attr(attr);\n }\n return +unit2px(this, attr, value);\n };\n // SIERRA Element.use(): I suggest adding a note about how to access the original element the returned <use> instantiates. It's a part of SVG with which ordinary web developers may be least familiar.\n /*\\\n * Element.use\n [ method ]\n **\n * Creates a `<use>` element linked to the current element\n **\n = (Element) the `<use>` element\n \\*/\n elproto.use = function () {\n var use,\n id = this.node.id;\n if (!id) {\n id = this.id;\n $(this.node, {\n id: id\n });\n }\n if (this.type == \"linearGradient\" || this.type == \"radialGradient\" ||\n this.type == \"pattern\") {\n use = make(this.type, this.node.parentNode);\n } else {\n use = make(\"use\", this.node.parentNode);\n }\n $(use.node, {\n \"xlink:href\": \"#\" + id\n });\n use.original = this;\n return use;\n };\n function fixids(el) {\n var els = el.selectAll(\"*\"),\n it,\n url = /^\\s*url\\((\"|'|)(.*)\\1\\)\\s*$/,\n ids = [],\n uses = {};\n function urltest(it, name) {\n var val = $(it.node, name);\n val = val && val.match(url);\n val = val && val[2];\n if (val && val.charAt() == \"#\") {\n val = val.substring(1);\n } else {\n return;\n }\n if (val) {\n uses[val] = (uses[val] || []).concat(function (id) {\n var attr = {};\n attr[name] = Snap.url(id);\n $(it.node, attr);\n });\n }\n }\n function linktest(it) {\n var val = $(it.node, \"xlink:href\");\n if (val && val.charAt() == \"#\") {\n val = val.substring(1);\n } else {\n return;\n }\n if (val) {\n uses[val] = (uses[val] || []).concat(function (id) {\n it.attr(\"xlink:href\", \"#\" + id);\n });\n }\n }\n for (var i = 0, ii = els.length; i < ii; i++) {\n it = els[i];\n urltest(it, \"fill\");\n urltest(it, \"stroke\");\n urltest(it, \"filter\");\n urltest(it, \"mask\");\n urltest(it, \"clip-path\");\n linktest(it);\n var oldid = $(it.node, \"id\");\n if (oldid) {\n $(it.node, {id: it.id});\n ids.push({\n old: oldid,\n id: it.id\n });\n }\n }\n for (i = 0, ii = ids.length; i < ii; i++) {\n var fs = uses[ids[i].old];\n if (fs) {\n for (var j = 0, jj = fs.length; j < jj; j++) {\n fs[j](ids[i].id);\n }\n }\n }\n }\n /*\\\n * Element.clone\n [ method ]\n **\n * Creates a clone of the element and inserts it after the element\n **\n = (Element) the clone\n \\*/\n elproto.clone = function () {\n var clone = wrap(this.node.cloneNode(true));\n if ($(clone.node, \"id\")) {\n $(clone.node, {id: clone.id});\n }\n fixids(clone);\n clone.insertAfter(this);\n return clone;\n };\n /*\\\n * Element.toDefs\n [ method ]\n **\n * Moves element to the shared `<defs>` area\n **\n = (Element) the element\n \\*/\n elproto.toDefs = function () {\n var defs = getSomeDefs(this);\n defs.appendChild(this.node);\n return this;\n };\n /*\\\n * Element.toPattern\n [ method ]\n **\n * Creates a `<pattern>` element from the current element\n **\n * To create a pattern you have to specify the pattern rect:\n - x (string|number)\n - y (string|number)\n - width (string|number)\n - height (string|number)\n = (Element) the `<pattern>` element\n * You can use pattern later on as an argument for `fill` attribute:\n | var p = paper.path(\"M10-5-10,15M15,0,0,15M0-5-20,15\").attr({\n | fill: \"none\",\n | stroke: \"#bada55\",\n | strokeWidth: 5\n | }).pattern(0, 0, 10, 10),\n | c = paper.circle(200, 200, 100);\n | c.attr({\n | fill: p\n | });\n \\*/\n elproto.pattern = elproto.toPattern = function (x, y, width, height) {\n var p = make(\"pattern\", getSomeDefs(this));\n if (x == null) {\n x = this.getBBox();\n }\n if (is(x, \"object\") && \"x\" in x) {\n y = x.y;\n width = x.width;\n height = x.height;\n x = x.x;\n }\n $(p.node, {\n x: x,\n y: y,\n width: width,\n height: height,\n patternUnits: \"userSpaceOnUse\",\n id: p.id,\n viewBox: [x, y, width, height].join(\" \")\n });\n p.node.appendChild(this.node);\n return p;\n };\n// SIERRA Element.marker(): clarify what a reference point is. E.g., helps you offset the object from its edge such as when centering it over a path.\n// SIERRA Element.marker(): I suggest the method should accept default reference point values. Perhaps centered with (refX = width/2) and (refY = height/2)? Also, couldn't it assume the element's current _width_ and _height_? And please specify what _x_ and _y_ mean: offsets? If so, from where? Couldn't they also be assigned default values?\n /*\\\n * Element.marker\n [ method ]\n **\n * Creates a `<marker>` element from the current element\n **\n * To create a marker you have to specify the bounding rect and reference point:\n - x (number)\n - y (number)\n - width (number)\n - height (number)\n - refX (number)\n - refY (number)\n = (Element) the `<marker>` element\n * You can specify the marker later as an argument for `marker-start`, `marker-end`, `marker-mid`, and `marker` attributes. The `marker` attribute places the marker at every point along the path, and `marker-mid` places them at every point except the start and end.\n \\*/\n // TODO add usage for markers\n elproto.marker = function (x, y, width, height, refX, refY) {\n var p = make(\"marker\", getSomeDefs(this));\n if (x == null) {\n x = this.getBBox();\n }\n if (is(x, \"object\") && \"x\" in x) {\n y = x.y;\n width = x.width;\n height = x.height;\n refX = x.refX || x.cx;\n refY = x.refY || x.cy;\n x = x.x;\n }\n $(p.node, {\n viewBox: [x, y, width, height].join(\" \"),\n markerWidth: width,\n markerHeight: height,\n orient: \"auto\",\n refX: refX || 0,\n refY: refY || 0,\n id: p.id\n });\n p.node.appendChild(this.node);\n return p;\n };\n var eldata = {};\n /*\\\n * Element.data\n [ method ]\n **\n * Adds or retrieves given value associated with given key. (Don’t confuse\n * with `data-` attributes)\n *\n * See also @Element.removeData\n - key (string) key to store data\n - value (any) #optional value to store\n = (object) @Element\n * or, if value is not specified:\n = (any) value\n > Usage\n | for (var i = 0, i < 5, i++) {\n | paper.circle(10 + 15 * i, 10, 10)\n | .attr({fill: \"#000\"})\n | .data(\"i\", i)\n | .click(function () {\n | alert(this.data(\"i\"));\n | });\n | }\n \\*/\n elproto.data = function (key, value) {\n var data = eldata[this.id] = eldata[this.id] || {};\n if (arguments.length == 0){\n eve(\"snap.data.get.\" + this.id, this, data, null);\n return data;\n }\n if (arguments.length == 1) {\n if (Snap.is(key, \"object\")) {\n for (var i in key) if (key[has](i)) {\n this.data(i, key[i]);\n }\n return this;\n }\n eve(\"snap.data.get.\" + this.id, this, data[key], key);\n return data[key];\n }\n data[key] = value;\n eve(\"snap.data.set.\" + this.id, this, value, key);\n return this;\n };\n /*\\\n * Element.removeData\n [ method ]\n **\n * Removes value associated with an element by given key.\n * If key is not provided, removes all the data of the element.\n - key (string) #optional key\n = (object) @Element\n \\*/\n elproto.removeData = function (key) {\n if (key == null) {\n eldata[this.id] = {};\n } else {\n eldata[this.id] && delete eldata[this.id][key];\n }\n return this;\n };\n /*\\\n * Element.outerSVG\n [ method ]\n **\n * Returns SVG code for the element, equivalent to HTML's `outerHTML`.\n *\n * See also @Element.innerSVG\n = (string) SVG code for the element\n \\*/\n /*\\\n * Element.toString\n [ method ]\n **\n * See @Element.outerSVG\n \\*/\n elproto.outerSVG = elproto.toString = toString(1);\n /*\\\n * Element.innerSVG\n [ method ]\n **\n * Returns SVG code for the element's contents, equivalent to HTML's `innerHTML`\n = (string) SVG code for the element\n \\*/\n elproto.innerSVG = toString();\n function toString(type) {\n return function () {\n var res = type ? \"<\" + this.type : \"\",\n attr = this.node.attributes,\n chld = this.node.childNodes;\n if (type) {\n for (var i = 0, ii = attr.length; i < ii; i++) {\n res += \" \" + attr[i].name + '=\"' +\n attr[i].value.replace(/\"/g, '\\\\\"') + '\"';\n }\n }\n if (chld.length) {\n type && (res += \">\");\n for (i = 0, ii = chld.length; i < ii; i++) {\n if (chld[i].nodeType == 3) {\n res += chld[i].nodeValue;\n } else if (chld[i].nodeType == 1) {\n res += wrap(chld[i]).toString();\n }\n }\n type && (res += \"</\" + this.type + \">\");\n } else {\n type && (res += \"/>\");\n }\n return res;\n };\n }\n elproto.toDataURL = function () {\n if (window && window.btoa) {\n var bb = this.getBBox(),\n svg = Snap.format('<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"{width}\" height=\"{height}\" viewBox=\"{x} {y} {width} {height}\">{contents}</svg>', {\n x: +bb.x.toFixed(3),\n y: +bb.y.toFixed(3),\n width: +bb.width.toFixed(3),\n height: +bb.height.toFixed(3),\n contents: this.outerSVG()\n });\n return \"data:image/svg+xml;base64,\" + btoa(unescape(encodeURIComponent(svg)));\n }\n };\n /*\\\n * Fragment.select\n [ method ]\n **\n * See @Element.select\n \\*/\n Fragment.prototype.select = elproto.select;\n /*\\\n * Fragment.selectAll\n [ method ]\n **\n * See @Element.selectAll\n \\*/\n Fragment.prototype.selectAll = elproto.selectAll;\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var objectToString = Object.prototype.toString,\n Str = String,\n math = Math,\n E = \"\";\n function Matrix(a, b, c, d, e, f) {\n if (b == null && objectToString.call(a) == \"[object SVGMatrix]\") {\n this.a = a.a;\n this.b = a.b;\n this.c = a.c;\n this.d = a.d;\n this.e = a.e;\n this.f = a.f;\n return;\n }\n if (a != null) {\n this.a = +a;\n this.b = +b;\n this.c = +c;\n this.d = +d;\n this.e = +e;\n this.f = +f;\n } else {\n this.a = 1;\n this.b = 0;\n this.c = 0;\n this.d = 1;\n this.e = 0;\n this.f = 0;\n }\n }\n (function (matrixproto) {\n /*\\\n * Matrix.add\n [ method ]\n **\n * Adds the given matrix to existing one\n - a (number)\n - b (number)\n - c (number)\n - d (number)\n - e (number)\n - f (number)\n * or\n - matrix (object) @Matrix\n \\*/\n matrixproto.add = function (a, b, c, d, e, f) {\n if (a && a instanceof Matrix) {\n return this.add(a.a, a.b, a.c, a.d, a.e, a.f);\n }\n var aNew = a * this.a + b * this.c,\n bNew = a * this.b + b * this.d;\n this.e += e * this.a + f * this.c;\n this.f += e * this.b + f * this.d;\n this.c = c * this.a + d * this.c;\n this.d = c * this.b + d * this.d;\n\n this.a = aNew;\n this.b = bNew;\n return this;\n };\n /*\\\n * Matrix.multLeft\n [ method ]\n **\n * Multiplies a passed affine transform to the left: M * this.\n - a (number)\n - b (number)\n - c (number)\n - d (number)\n - e (number)\n - f (number)\n * or\n - matrix (object) @Matrix\n \\*/\n Matrix.prototype.multLeft = function (a, b, c, d, e, f) {\n if (a && a instanceof Matrix) {\n return this.multLeft(a.a, a.b, a.c, a.d, a.e, a.f);\n }\n var aNew = a * this.a + c * this.b,\n cNew = a * this.c + c * this.d,\n eNew = a * this.e + c * this.f + e;\n this.b = b * this.a + d * this.b;\n this.d = b * this.c + d * this.d;\n this.f = b * this.e + d * this.f + f;\n\n this.a = aNew;\n this.c = cNew;\n this.e = eNew;\n return this;\n };\n /*\\\n * Matrix.invert\n [ method ]\n **\n * Returns an inverted version of the matrix\n = (object) @Matrix\n \\*/\n matrixproto.invert = function () {\n var me = this,\n x = me.a * me.d - me.b * me.c;\n return new Matrix(me.d / x, -me.b / x, -me.c / x, me.a / x, (me.c * me.f - me.d * me.e) / x, (me.b * me.e - me.a * me.f) / x);\n };\n /*\\\n * Matrix.clone\n [ method ]\n **\n * Returns a copy of the matrix\n = (object) @Matrix\n \\*/\n matrixproto.clone = function () {\n return new Matrix(this.a, this.b, this.c, this.d, this.e, this.f);\n };\n /*\\\n * Matrix.translate\n [ method ]\n **\n * Translate the matrix\n - x (number) horizontal offset distance\n - y (number) vertical offset distance\n \\*/\n matrixproto.translate = function (x, y) {\n this.e += x * this.a + y * this.c;\n this.f += x * this.b + y * this.d;\n return this;\n };\n /*\\\n * Matrix.scale\n [ method ]\n **\n * Scales the matrix\n - x (number) amount to be scaled, with `1` resulting in no change\n - y (number) #optional amount to scale along the vertical axis. (Otherwise `x` applies to both axes.)\n - cx (number) #optional horizontal origin point from which to scale\n - cy (number) #optional vertical origin point from which to scale\n * Default cx, cy is the middle point of the element.\n \\*/\n matrixproto.scale = function (x, y, cx, cy) {\n y == null && (y = x);\n (cx || cy) && this.translate(cx, cy);\n this.a *= x;\n this.b *= x;\n this.c *= y;\n this.d *= y;\n (cx || cy) && this.translate(-cx, -cy);\n return this;\n };\n /*\\\n * Matrix.rotate\n [ method ]\n **\n * Rotates the matrix\n - a (number) angle of rotation, in degrees\n - x (number) horizontal origin point from which to rotate\n - y (number) vertical origin point from which to rotate\n \\*/\n matrixproto.rotate = function (a, x, y) {\n a = Snap.rad(a);\n x = x || 0;\n y = y || 0;\n var cos = +math.cos(a).toFixed(9),\n sin = +math.sin(a).toFixed(9);\n this.add(cos, sin, -sin, cos, x, y);\n return this.add(1, 0, 0, 1, -x, -y);\n };\n /*\\\n * Matrix.skewX\n [ method ]\n **\n * Skews the matrix along the x-axis\n - x (number) Angle to skew along the x-axis (in degrees).\n \\*/\n matrixproto.skewX = function (x) {\n return this.skew(x, 0);\n };\n /*\\\n * Matrix.skewY\n [ method ]\n **\n * Skews the matrix along the y-axis\n - y (number) Angle to skew along the y-axis (in degrees).\n \\*/\n matrixproto.skewY = function (y) {\n return this.skew(0, y);\n };\n /*\\\n * Matrix.skew\n [ method ]\n **\n * Skews the matrix\n - y (number) Angle to skew along the y-axis (in degrees).\n - x (number) Angle to skew along the x-axis (in degrees).\n \\*/\n matrixproto.skew = function (x, y) {\n x = x || 0;\n y = y || 0;\n x = Snap.rad(x);\n y = Snap.rad(y);\n var c = math.tan(x).toFixed(9);\n var b = math.tan(y).toFixed(9);\n return this.add(1, b, c, 1, 0, 0);\n };\n /*\\\n * Matrix.x\n [ method ]\n **\n * Returns x coordinate for given point after transformation described by the matrix. See also @Matrix.y\n - x (number)\n - y (number)\n = (number) x\n \\*/\n matrixproto.x = function (x, y) {\n return x * this.a + y * this.c + this.e;\n };\n /*\\\n * Matrix.y\n [ method ]\n **\n * Returns y coordinate for given point after transformation described by the matrix. See also @Matrix.x\n - x (number)\n - y (number)\n = (number) y\n \\*/\n matrixproto.y = function (x, y) {\n return x * this.b + y * this.d + this.f;\n };\n matrixproto.get = function (i) {\n return +this[Str.fromCharCode(97 + i)].toFixed(4);\n };\n matrixproto.toString = function () {\n return \"matrix(\" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)].join() + \")\";\n };\n matrixproto.offset = function () {\n return [this.e.toFixed(4), this.f.toFixed(4)];\n };\n function norm(a) {\n return a[0] * a[0] + a[1] * a[1];\n }\n function normalize(a) {\n var mag = math.sqrt(norm(a));\n a[0] && (a[0] /= mag);\n a[1] && (a[1] /= mag);\n }\n /*\\\n * Matrix.determinant\n [ method ]\n **\n * Finds determinant of the given matrix.\n = (number) determinant\n \\*/\n matrixproto.determinant = function () {\n return this.a * this.d - this.b * this.c;\n };\n /*\\\n * Matrix.split\n [ method ]\n **\n * Splits matrix into primitive transformations\n = (object) in format:\n o dx (number) translation by x\n o dy (number) translation by y\n o scalex (number) scale by x\n o scaley (number) scale by y\n o shear (number) shear\n o rotate (number) rotation in deg\n o isSimple (boolean) could it be represented via simple transformations\n \\*/\n matrixproto.split = function () {\n var out = {};\n // translation\n out.dx = this.e;\n out.dy = this.f;\n\n // scale and shear\n var row = [[this.a, this.b], [this.c, this.d]];\n out.scalex = math.sqrt(norm(row[0]));\n normalize(row[0]);\n\n out.shear = row[0][0] * row[1][0] + row[0][1] * row[1][1];\n row[1] = [row[1][0] - row[0][0] * out.shear, row[1][1] - row[0][1] * out.shear];\n\n out.scaley = math.sqrt(norm(row[1]));\n normalize(row[1]);\n out.shear /= out.scaley;\n\n if (this.determinant() < 0) {\n out.scalex = -out.scalex;\n }\n\n // rotation\n var sin = row[0][1],\n cos = row[1][1];\n if (cos < 0) {\n out.rotate = Snap.deg(math.acos(cos));\n if (sin < 0) {\n out.rotate = 360 - out.rotate;\n }\n } else {\n out.rotate = Snap.deg(math.asin(sin));\n }\n\n out.isSimple = !+out.shear.toFixed(9) && (out.scalex.toFixed(9) == out.scaley.toFixed(9) || !out.rotate);\n out.isSuperSimple = !+out.shear.toFixed(9) && out.scalex.toFixed(9) == out.scaley.toFixed(9) && !out.rotate;\n out.noRotation = !+out.shear.toFixed(9) && !out.rotate;\n return out;\n };\n /*\\\n * Matrix.toTransformString\n [ method ]\n **\n * Returns transform string that represents given matrix\n = (string) transform string\n \\*/\n matrixproto.toTransformString = function (shorter) {\n var s = shorter || this.split();\n if (!+s.shear.toFixed(9)) {\n s.scalex = +s.scalex.toFixed(4);\n s.scaley = +s.scaley.toFixed(4);\n s.rotate = +s.rotate.toFixed(4);\n return (s.dx || s.dy ? \"t\" + [+s.dx.toFixed(4), +s.dy.toFixed(4)] : E) +\n (s.rotate ? \"r\" + [+s.rotate.toFixed(4), 0, 0] : E) +\n (s.scalex != 1 || s.scaley != 1 ? \"s\" + [s.scalex, s.scaley, 0, 0] : E);\n } else {\n return \"m\" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)];\n }\n };\n })(Matrix.prototype);\n /*\\\n * Snap.Matrix\n [ method ]\n **\n * Matrix constructor, extend on your own risk.\n * To create matrices use @Snap.matrix.\n \\*/\n Snap.Matrix = Matrix;\n /*\\\n * Snap.matrix\n [ method ]\n **\n * Utility method\n **\n * Returns a matrix based on the given parameters\n - a (number)\n - b (number)\n - c (number)\n - d (number)\n - e (number)\n - f (number)\n * or\n - svgMatrix (SVGMatrix)\n = (object) @Matrix\n \\*/\n Snap.matrix = function (a, b, c, d, e, f) {\n return new Matrix(a, b, c, d, e, f);\n };\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var has = \"hasOwnProperty\",\n make = Snap._.make,\n wrap = Snap._.wrap,\n is = Snap.is,\n getSomeDefs = Snap._.getSomeDefs,\n reURLValue = /^url\\((['\"]?)([^)]+)\\1\\)$/,\n $ = Snap._.$,\n URL = Snap.url,\n Str = String,\n separator = Snap._.separator,\n E = \"\";\n /*\\\n * Snap.deurl\n [ method ]\n **\n * Unwraps path from `\"url(<path>)\"`.\n - value (string) url path\n = (string) unwrapped path\n \\*/\n Snap.deurl = function (value) {\n var res = String(value).match(reURLValue);\n return res ? res[2] : value;\n }\n // Attributes event handlers\n eve.on(\"snap.util.attr.mask\", function (value) {\n if (value instanceof Element || value instanceof Fragment) {\n eve.stop();\n if (value instanceof Fragment && value.node.childNodes.length == 1) {\n value = value.node.firstChild;\n getSomeDefs(this).appendChild(value);\n value = wrap(value);\n }\n if (value.type == \"mask\") {\n var mask = value;\n } else {\n mask = make(\"mask\", getSomeDefs(this));\n mask.node.appendChild(value.node);\n }\n !mask.node.id && $(mask.node, {\n id: mask.id\n });\n $(this.node, {\n mask: URL(mask.id)\n });\n }\n });\n (function (clipIt) {\n eve.on(\"snap.util.attr.clip\", clipIt);\n eve.on(\"snap.util.attr.clip-path\", clipIt);\n eve.on(\"snap.util.attr.clipPath\", clipIt);\n }(function (value) {\n if (value instanceof Element || value instanceof Fragment) {\n eve.stop();\n var clip,\n node = value.node;\n while (node) {\n if (node.nodeName === \"clipPath\") {\n clip = new Element(node);\n break;\n }\n if (node.nodeName === \"svg\") {\n clip = undefined;\n break;\n }\n node = node.parentNode;\n }\n if (!clip) {\n clip = make(\"clipPath\", getSomeDefs(this));\n clip.node.appendChild(value.node);\n !clip.node.id && $(clip.node, {\n id: clip.id\n });\n }\n $(this.node, {\n \"clip-path\": URL(clip.node.id || clip.id)\n });\n }\n }));\n function fillStroke(name) {\n return function (value) {\n eve.stop();\n if (value instanceof Fragment && value.node.childNodes.length == 1 &&\n (value.node.firstChild.tagName == \"radialGradient\" ||\n value.node.firstChild.tagName == \"linearGradient\" ||\n value.node.firstChild.tagName == \"pattern\")) {\n value = value.node.firstChild;\n getSomeDefs(this).appendChild(value);\n value = wrap(value);\n }\n if (value instanceof Element) {\n if (value.type == \"radialGradient\" || value.type == \"linearGradient\"\n || value.type == \"pattern\") {\n if (!value.node.id) {\n $(value.node, {\n id: value.id\n });\n }\n var fill = URL(value.node.id);\n } else {\n fill = value.attr(name);\n }\n } else {\n fill = Snap.color(value);\n if (fill.error) {\n var grad = Snap(getSomeDefs(this).ownerSVGElement).gradient(value);\n if (grad) {\n if (!grad.node.id) {\n $(grad.node, {\n id: grad.id\n });\n }\n fill = URL(grad.node.id);\n } else {\n fill = value;\n }\n } else {\n fill = Str(fill);\n }\n }\n var attrs = {};\n attrs[name] = fill;\n $(this.node, attrs);\n this.node.style[name] = E;\n };\n }\n eve.on(\"snap.util.attr.fill\", fillStroke(\"fill\"));\n eve.on(\"snap.util.attr.stroke\", fillStroke(\"stroke\"));\n var gradrg = /^([lr])(?:\\(([^)]*)\\))?(.*)$/i;\n eve.on(\"snap.util.grad.parse\", function parseGrad(string) {\n string = Str(string);\n var tokens = string.match(gradrg);\n if (!tokens) {\n return null;\n }\n var type = tokens[1],\n params = tokens[2],\n stops = tokens[3];\n params = params.split(/\\s*,\\s*/).map(function (el) {\n return +el == el ? +el : el;\n });\n if (params.length == 1 && params[0] == 0) {\n params = [];\n }\n stops = stops.split(\"-\");\n stops = stops.map(function (el) {\n el = el.split(\":\");\n var out = {\n color: el[0]\n };\n if (el[1]) {\n out.offset = parseFloat(el[1]);\n }\n return out;\n });\n var len = stops.length,\n start = 0,\n j = 0;\n function seed(i, end) {\n var step = (end - start) / (i - j);\n for (var k = j; k < i; k++) {\n stops[k].offset = +(+start + step * (k - j)).toFixed(2);\n }\n j = i;\n start = end;\n }\n len--;\n for (var i = 0; i < len; i++) if (\"offset\" in stops[i]) {\n seed(i, stops[i].offset);\n }\n stops[len].offset = stops[len].offset || 100;\n seed(len, stops[len].offset);\n return {\n type: type,\n params: params,\n stops: stops\n };\n });\n\n eve.on(\"snap.util.attr.d\", function (value) {\n eve.stop();\n if (is(value, \"array\") && is(value[0], \"array\")) {\n value = Snap.path.toString.call(value);\n }\n value = Str(value);\n if (value.match(/[ruo]/i)) {\n value = Snap.path.toAbsolute(value);\n }\n $(this.node, {d: value});\n })(-1);\n eve.on(\"snap.util.attr.#text\", function (value) {\n eve.stop();\n value = Str(value);\n var txt = glob.doc.createTextNode(value);\n while (this.node.firstChild) {\n this.node.removeChild(this.node.firstChild);\n }\n this.node.appendChild(txt);\n })(-1);\n eve.on(\"snap.util.attr.path\", function (value) {\n eve.stop();\n this.attr({d: value});\n })(-1);\n eve.on(\"snap.util.attr.class\", function (value) {\n eve.stop();\n this.node.className.baseVal = value;\n })(-1);\n eve.on(\"snap.util.attr.viewBox\", function (value) {\n var vb;\n if (is(value, \"object\") && \"x\" in value) {\n vb = [value.x, value.y, value.width, value.height].join(\" \");\n } else if (is(value, \"array\")) {\n vb = value.join(\" \");\n } else {\n vb = value;\n }\n $(this.node, {\n viewBox: vb\n });\n eve.stop();\n })(-1);\n eve.on(\"snap.util.attr.transform\", function (value) {\n this.transform(value);\n eve.stop();\n })(-1);\n eve.on(\"snap.util.attr.r\", function (value) {\n if (this.type == \"rect\") {\n eve.stop();\n $(this.node, {\n rx: value,\n ry: value\n });\n }\n })(-1);\n eve.on(\"snap.util.attr.textpath\", function (value) {\n eve.stop();\n if (this.type == \"text\") {\n var id, tp, node;\n if (!value && this.textPath) {\n tp = this.textPath;\n while (tp.node.firstChild) {\n this.node.appendChild(tp.node.firstChild);\n }\n tp.remove();\n delete this.textPath;\n return;\n }\n if (is(value, \"string\")) {\n var defs = getSomeDefs(this),\n path = wrap(defs.parentNode).path(value);\n defs.appendChild(path.node);\n id = path.id;\n path.attr({id: id});\n } else {\n value = wrap(value);\n if (value instanceof Element) {\n id = value.attr(\"id\");\n if (!id) {\n id = value.id;\n value.attr({id: id});\n }\n }\n }\n if (id) {\n tp = this.textPath;\n node = this.node;\n if (tp) {\n tp.attr({\"xlink:href\": \"#\" + id});\n } else {\n tp = $(\"textPath\", {\n \"xlink:href\": \"#\" + id\n });\n while (node.firstChild) {\n tp.appendChild(node.firstChild);\n }\n node.appendChild(tp);\n this.textPath = wrap(tp);\n }\n }\n }\n })(-1);\n eve.on(\"snap.util.attr.text\", function (value) {\n if (this.type == \"text\") {\n var i = 0,\n node = this.node,\n tuner = function (chunk) {\n var out = $(\"tspan\");\n if (is(chunk, \"array\")) {\n for (var i = 0; i < chunk.length; i++) {\n out.appendChild(tuner(chunk[i]));\n }\n } else {\n out.appendChild(glob.doc.createTextNode(chunk));\n }\n out.normalize && out.normalize();\n return out;\n };\n while (node.firstChild) {\n node.removeChild(node.firstChild);\n }\n var tuned = tuner(value);\n while (tuned.firstChild) {\n node.appendChild(tuned.firstChild);\n }\n }\n eve.stop();\n })(-1);\n function setFontSize(value) {\n eve.stop();\n if (value == +value) {\n value += \"px\";\n }\n this.node.style.fontSize = value;\n }\n eve.on(\"snap.util.attr.fontSize\", setFontSize)(-1);\n eve.on(\"snap.util.attr.font-size\", setFontSize)(-1);\n\n\n eve.on(\"snap.util.getattr.transform\", function () {\n eve.stop();\n return this.transform();\n })(-1);\n eve.on(\"snap.util.getattr.textpath\", function () {\n eve.stop();\n return this.textPath;\n })(-1);\n // Markers\n (function () {\n function getter(end) {\n return function () {\n eve.stop();\n var style = glob.doc.defaultView.getComputedStyle(this.node, null).getPropertyValue(\"marker-\" + end);\n if (style == \"none\") {\n return style;\n } else {\n return Snap(glob.doc.getElementById(style.match(reURLValue)[1]));\n }\n };\n }\n function setter(end) {\n return function (value) {\n eve.stop();\n var name = \"marker\" + end.charAt(0).toUpperCase() + end.substring(1);\n if (value == \"\" || !value) {\n this.node.style[name] = \"none\";\n return;\n }\n if (value.type == \"marker\") {\n var id = value.node.id;\n if (!id) {\n $(value.node, {id: value.id});\n }\n this.node.style[name] = URL(id);\n return;\n }\n };\n }\n eve.on(\"snap.util.getattr.marker-end\", getter(\"end\"))(-1);\n eve.on(\"snap.util.getattr.markerEnd\", getter(\"end\"))(-1);\n eve.on(\"snap.util.getattr.marker-start\", getter(\"start\"))(-1);\n eve.on(\"snap.util.getattr.markerStart\", getter(\"start\"))(-1);\n eve.on(\"snap.util.getattr.marker-mid\", getter(\"mid\"))(-1);\n eve.on(\"snap.util.getattr.markerMid\", getter(\"mid\"))(-1);\n eve.on(\"snap.util.attr.marker-end\", setter(\"end\"))(-1);\n eve.on(\"snap.util.attr.markerEnd\", setter(\"end\"))(-1);\n eve.on(\"snap.util.attr.marker-start\", setter(\"start\"))(-1);\n eve.on(\"snap.util.attr.markerStart\", setter(\"start\"))(-1);\n eve.on(\"snap.util.attr.marker-mid\", setter(\"mid\"))(-1);\n eve.on(\"snap.util.attr.markerMid\", setter(\"mid\"))(-1);\n }());\n eve.on(\"snap.util.getattr.r\", function () {\n if (this.type == \"rect\" && $(this.node, \"rx\") == $(this.node, \"ry\")) {\n eve.stop();\n return $(this.node, \"rx\");\n }\n })(-1);\n function textExtract(node) {\n var out = [];\n var children = node.childNodes;\n for (var i = 0, ii = children.length; i < ii; i++) {\n var chi = children[i];\n if (chi.nodeType == 3) {\n out.push(chi.nodeValue);\n }\n if (chi.tagName == \"tspan\") {\n if (chi.childNodes.length == 1 && chi.firstChild.nodeType == 3) {\n out.push(chi.firstChild.nodeValue);\n } else {\n out.push(textExtract(chi));\n }\n }\n }\n return out;\n }\n eve.on(\"snap.util.getattr.text\", function () {\n if (this.type == \"text\" || this.type == \"tspan\") {\n eve.stop();\n var out = textExtract(this.node);\n return out.length == 1 ? out[0] : out;\n }\n })(-1);\n eve.on(\"snap.util.getattr.#text\", function () {\n return this.node.textContent;\n })(-1);\n eve.on(\"snap.util.getattr.fill\", function (internal) {\n if (internal) {\n return;\n }\n eve.stop();\n var value = eve(\"snap.util.getattr.fill\", this, true).firstDefined();\n return Snap(Snap.deurl(value)) || value;\n })(-1);\n eve.on(\"snap.util.getattr.stroke\", function (internal) {\n if (internal) {\n return;\n }\n eve.stop();\n var value = eve(\"snap.util.getattr.stroke\", this, true).firstDefined();\n return Snap(Snap.deurl(value)) || value;\n })(-1);\n eve.on(\"snap.util.getattr.viewBox\", function () {\n eve.stop();\n var vb = $(this.node, \"viewBox\");\n if (vb) {\n vb = vb.split(separator);\n return Snap._.box(+vb[0], +vb[1], +vb[2], +vb[3]);\n } else {\n return;\n }\n })(-1);\n eve.on(\"snap.util.getattr.points\", function () {\n var p = $(this.node, \"points\");\n eve.stop();\n if (p) {\n return p.split(separator);\n } else {\n return;\n }\n })(-1);\n eve.on(\"snap.util.getattr.path\", function () {\n var p = $(this.node, \"d\");\n eve.stop();\n return p;\n })(-1);\n eve.on(\"snap.util.getattr.class\", function () {\n return this.node.className.baseVal;\n })(-1);\n function getFontSize() {\n eve.stop();\n return this.node.style.fontSize;\n }\n eve.on(\"snap.util.getattr.fontSize\", getFontSize)(-1);\n eve.on(\"snap.util.getattr.font-size\", getFontSize)(-1);\n});\n\n// Copyright (c) 2014 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var rgNotSpace = /\\S+/g,\n rgBadSpace = /[\\t\\r\\n\\f]/g,\n rgTrim = /(^\\s+|\\s+$)/g,\n Str = String,\n elproto = Element.prototype;\n /*\\\n * Element.addClass\n [ method ]\n **\n * Adds given class name or list of class names to the element.\n - value (string) class name or space separated list of class names\n **\n = (Element) original element.\n \\*/\n elproto.addClass = function (value) {\n var classes = Str(value || \"\").match(rgNotSpace) || [],\n elem = this.node,\n className = elem.className.baseVal,\n curClasses = className.match(rgNotSpace) || [],\n j,\n pos,\n clazz,\n finalValue;\n\n if (classes.length) {\n j = 0;\n while (clazz = classes[j++]) {\n pos = curClasses.indexOf(clazz);\n if (!~pos) {\n curClasses.push(clazz);\n }\n }\n\n finalValue = curClasses.join(\" \");\n if (className != finalValue) {\n elem.className.baseVal = finalValue;\n }\n }\n return this;\n };\n /*\\\n * Element.removeClass\n [ method ]\n **\n * Removes given class name or list of class names from the element.\n - value (string) class name or space separated list of class names\n **\n = (Element) original element.\n \\*/\n elproto.removeClass = function (value) {\n var classes = Str(value || \"\").match(rgNotSpace) || [],\n elem = this.node,\n className = elem.className.baseVal,\n curClasses = className.match(rgNotSpace) || [],\n j,\n pos,\n clazz,\n finalValue;\n if (curClasses.length) {\n j = 0;\n while (clazz = classes[j++]) {\n pos = curClasses.indexOf(clazz);\n if (~pos) {\n curClasses.splice(pos, 1);\n }\n }\n\n finalValue = curClasses.join(\" \");\n if (className != finalValue) {\n elem.className.baseVal = finalValue;\n }\n }\n return this;\n };\n /*\\\n * Element.hasClass\n [ method ]\n **\n * Checks if the element has a given class name in the list of class names applied to it.\n - value (string) class name\n **\n = (boolean) `true` if the element has given class\n \\*/\n elproto.hasClass = function (value) {\n var elem = this.node,\n className = elem.className.baseVal,\n curClasses = className.match(rgNotSpace) || [];\n return !!~curClasses.indexOf(value);\n };\n /*\\\n * Element.toggleClass\n [ method ]\n **\n * Add or remove one or more classes from the element, depending on either\n * the class’s presence or the value of the `flag` argument.\n - value (string) class name or space separated list of class names\n - flag (boolean) value to determine whether the class should be added or removed\n **\n = (Element) original element.\n \\*/\n elproto.toggleClass = function (value, flag) {\n if (flag != null) {\n if (flag) {\n return this.addClass(value);\n } else {\n return this.removeClass(value);\n }\n }\n var classes = (value || \"\").match(rgNotSpace) || [],\n elem = this.node,\n className = elem.className.baseVal,\n curClasses = className.match(rgNotSpace) || [],\n j,\n pos,\n clazz,\n finalValue;\n j = 0;\n while (clazz = classes[j++]) {\n pos = curClasses.indexOf(clazz);\n if (~pos) {\n curClasses.splice(pos, 1);\n } else {\n curClasses.push(clazz);\n }\n }\n\n finalValue = curClasses.join(\" \");\n if (className != finalValue) {\n elem.className.baseVal = finalValue;\n }\n return this;\n };\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var operators = {\n \"+\": function (x, y) {\n return x + y;\n },\n \"-\": function (x, y) {\n return x - y;\n },\n \"/\": function (x, y) {\n return x / y;\n },\n \"*\": function (x, y) {\n return x * y;\n }\n },\n Str = String,\n reUnit = /[a-z]+$/i,\n reAddon = /^\\s*([+\\-\\/*])\\s*=\\s*([\\d.eE+\\-]+)\\s*([^\\d\\s]+)?\\s*$/;\n function getNumber(val) {\n return val;\n }\n function getUnit(unit) {\n return function (val) {\n return +val.toFixed(3) + unit;\n };\n }\n eve.on(\"snap.util.attr\", function (val) {\n var plus = Str(val).match(reAddon);\n if (plus) {\n var evnt = eve.nt(),\n name = evnt.substring(evnt.lastIndexOf(\".\") + 1),\n a = this.attr(name),\n atr = {};\n eve.stop();\n var unit = plus[3] || \"\",\n aUnit = a.match(reUnit),\n op = operators[plus[1]];\n if (aUnit && aUnit == unit) {\n val = op(parseFloat(a), +plus[2]);\n } else {\n a = this.asPX(name);\n val = op(this.asPX(name), this.asPX(name, plus[2] + unit));\n }\n if (isNaN(a) || isNaN(val)) {\n return;\n }\n atr[name] = val;\n this.attr(atr);\n }\n })(-10);\n eve.on(\"snap.util.equal\", function (name, b) {\n var A, B, a = Str(this.attr(name) || \"\"),\n el = this,\n bplus = Str(b).match(reAddon);\n if (bplus) {\n eve.stop();\n var unit = bplus[3] || \"\",\n aUnit = a.match(reUnit),\n op = operators[bplus[1]];\n if (aUnit && aUnit == unit) {\n return {\n from: parseFloat(a),\n to: op(parseFloat(a), +bplus[2]),\n f: getUnit(aUnit)\n };\n } else {\n a = this.asPX(name);\n return {\n from: a,\n to: op(a, this.asPX(name, bplus[2] + unit)),\n f: getNumber\n };\n }\n }\n })(-10);\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var proto = Paper.prototype,\n is = Snap.is;\n /*\\\n * Paper.rect\n [ method ]\n *\n * Draws a rectangle\n **\n - x (number) x coordinate of the top left corner\n - y (number) y coordinate of the top left corner\n - width (number) width\n - height (number) height\n - rx (number) #optional horizontal radius for rounded corners, default is 0\n - ry (number) #optional vertical radius for rounded corners, default is rx or 0\n = (object) the `rect` element\n **\n > Usage\n | // regular rectangle\n | var c = paper.rect(10, 10, 50, 50);\n | // rectangle with rounded corners\n | var c = paper.rect(40, 40, 50, 50, 10);\n \\*/\n proto.rect = function (x, y, w, h, rx, ry) {\n var attr;\n if (ry == null) {\n ry = rx;\n }\n if (is(x, \"object\") && x == \"[object Object]\") {\n attr = x;\n } else if (x != null) {\n attr = {\n x: x,\n y: y,\n width: w,\n height: h\n };\n if (rx != null) {\n attr.rx = rx;\n attr.ry = ry;\n }\n }\n return this.el(\"rect\", attr);\n };\n /*\\\n * Paper.circle\n [ method ]\n **\n * Draws a circle\n **\n - x (number) x coordinate of the centre\n - y (number) y coordinate of the centre\n - r (number) radius\n = (object) the `circle` element\n **\n > Usage\n | var c = paper.circle(50, 50, 40);\n \\*/\n proto.circle = function (cx, cy, r) {\n var attr;\n if (is(cx, \"object\") && cx == \"[object Object]\") {\n attr = cx;\n } else if (cx != null) {\n attr = {\n cx: cx,\n cy: cy,\n r: r\n };\n }\n return this.el(\"circle\", attr);\n };\n\n var preload = (function () {\n function onerror() {\n this.parentNode.removeChild(this);\n }\n return function (src, f) {\n var img = glob.doc.createElement(\"img\"),\n body = glob.doc.body;\n img.style.cssText = \"position:absolute;left:-9999em;top:-9999em\";\n img.onload = function () {\n f.call(img);\n img.onload = img.onerror = null;\n body.removeChild(img);\n };\n img.onerror = onerror;\n body.appendChild(img);\n img.src = src;\n };\n }());\n\n /*\\\n * Paper.image\n [ method ]\n **\n * Places an image on the surface\n **\n - src (string) URI of the source image\n - x (number) x offset position\n - y (number) y offset position\n - width (number) width of the image\n - height (number) height of the image\n = (object) the `image` element\n * or\n = (object) Snap element object with type `image`\n **\n > Usage\n | var c = paper.image(\"apple.png\", 10, 10, 80, 80);\n \\*/\n proto.image = function (src, x, y, width, height) {\n var el = this.el(\"image\");\n if (is(src, \"object\") && \"src\" in src) {\n el.attr(src);\n } else if (src != null) {\n var set = {\n \"xlink:href\": src,\n preserveAspectRatio: \"none\"\n };\n if (x != null && y != null) {\n set.x = x;\n set.y = y;\n }\n if (width != null && height != null) {\n set.width = width;\n set.height = height;\n } else {\n preload(src, function () {\n Snap._.$(el.node, {\n width: this.offsetWidth,\n height: this.offsetHeight\n });\n });\n }\n Snap._.$(el.node, set);\n }\n return el;\n };\n /*\\\n * Paper.ellipse\n [ method ]\n **\n * Draws an ellipse\n **\n - x (number) x coordinate of the centre\n - y (number) y coordinate of the centre\n - rx (number) horizontal radius\n - ry (number) vertical radius\n = (object) the `ellipse` element\n **\n > Usage\n | var c = paper.ellipse(50, 50, 40, 20);\n \\*/\n proto.ellipse = function (cx, cy, rx, ry) {\n var attr;\n if (is(cx, \"object\") && cx == \"[object Object]\") {\n attr = cx;\n } else if (cx != null) {\n attr ={\n cx: cx,\n cy: cy,\n rx: rx,\n ry: ry\n };\n }\n return this.el(\"ellipse\", attr);\n };\n // SIERRA Paper.path(): Unclear from the link what a Catmull-Rom curveto is, and why it would make life any easier.\n /*\\\n * Paper.path\n [ method ]\n **\n * Creates a `<path>` element using the given string as the path's definition\n - pathString (string) #optional path string in SVG format\n * Path string consists of one-letter commands, followed by comma seprarated arguments in numerical form. Example:\n | \"M10,20L30,40\"\n * This example features two commands: `M`, with arguments `(10, 20)` and `L` with arguments `(30, 40)`. Uppercase letter commands express coordinates in absolute terms, while lowercase commands express them in relative terms from the most recently declared coordinates.\n *\n # <p>Here is short list of commands available, for more details see <a href=\"http://www.w3.org/TR/SVG/paths.html#PathData\" title=\"Details of a path's data attribute's format are described in the SVG specification.\">SVG path string format</a> or <a href=\"https://developer.mozilla.org/en/SVG/Tutorial/Paths\">article about path strings at MDN</a>.</p>\n # <table><thead><tr><th>Command</th><th>Name</th><th>Parameters</th></tr></thead><tbody>\n # <tr><td>M</td><td>moveto</td><td>(x y)+</td></tr>\n # <tr><td>Z</td><td>closepath</td><td>(none)</td></tr>\n # <tr><td>L</td><td>lineto</td><td>(x y)+</td></tr>\n # <tr><td>H</td><td>horizontal lineto</td><td>x+</td></tr>\n # <tr><td>V</td><td>vertical lineto</td><td>y+</td></tr>\n # <tr><td>C</td><td>curveto</td><td>(x1 y1 x2 y2 x y)+</td></tr>\n # <tr><td>S</td><td>smooth curveto</td><td>(x2 y2 x y)+</td></tr>\n # <tr><td>Q</td><td>quadratic Bézier curveto</td><td>(x1 y1 x y)+</td></tr>\n # <tr><td>T</td><td>smooth quadratic Bézier curveto</td><td>(x y)+</td></tr>\n # <tr><td>A</td><td>elliptical arc</td><td>(rx ry x-axis-rotation large-arc-flag sweep-flag x y)+</td></tr>\n # <tr><td>R</td><td><a href=\"http://en.wikipedia.org/wiki/Catmull–Rom_spline#Catmull.E2.80.93Rom_spline\">Catmull-Rom curveto</a>*</td><td>x1 y1 (x y)+</td></tr></tbody></table>\n * * _Catmull-Rom curveto_ is a not standard SVG command and added to make life easier.\n * Note: there is a special case when a path consists of only three commands: `M10,10R…z`. In this case the path connects back to its starting point.\n > Usage\n | var c = paper.path(\"M10 10L90 90\");\n | // draw a diagonal line:\n | // move to 10,10, line to 90,90\n \\*/\n proto.path = function (d) {\n var attr;\n if (is(d, \"object\") && !is(d, \"array\")) {\n attr = d;\n } else if (d) {\n attr = {d: d};\n }\n return this.el(\"path\", attr);\n };\n /*\\\n * Paper.g\n [ method ]\n **\n * Creates a group element\n **\n - varargs (…) #optional elements to nest within the group\n = (object) the `g` element\n **\n > Usage\n | var c1 = paper.circle(),\n | c2 = paper.rect(),\n | g = paper.g(c2, c1); // note that the order of elements is different\n * or\n | var c1 = paper.circle(),\n | c2 = paper.rect(),\n | g = paper.g();\n | g.add(c2, c1);\n \\*/\n /*\\\n * Paper.group\n [ method ]\n **\n * See @Paper.g\n \\*/\n proto.group = proto.g = function (first) {\n var attr,\n el = this.el(\"g\");\n if (arguments.length == 1 && first && !first.type) {\n el.attr(first);\n } else if (arguments.length) {\n el.add(Array.prototype.slice.call(arguments, 0));\n }\n return el;\n };\n /*\\\n * Paper.svg\n [ method ]\n **\n * Creates a nested SVG element.\n - x (number) @optional X of the element\n - y (number) @optional Y of the element\n - width (number) @optional width of the element\n - height (number) @optional height of the element\n - vbx (number) @optional viewbox X\n - vby (number) @optional viewbox Y\n - vbw (number) @optional viewbox width\n - vbh (number) @optional viewbox height\n **\n = (object) the `svg` element\n **\n \\*/\n proto.svg = function (x, y, width, height, vbx, vby, vbw, vbh) {\n var attrs = {};\n if (is(x, \"object\") && y == null) {\n attrs = x;\n } else {\n if (x != null) {\n attrs.x = x;\n }\n if (y != null) {\n attrs.y = y;\n }\n if (width != null) {\n attrs.width = width;\n }\n if (height != null) {\n attrs.height = height;\n }\n if (vbx != null && vby != null && vbw != null && vbh != null) {\n attrs.viewBox = [vbx, vby, vbw, vbh];\n }\n }\n return this.el(\"svg\", attrs);\n };\n /*\\\n * Paper.mask\n [ method ]\n **\n * Equivalent in behaviour to @Paper.g, except it’s a mask.\n **\n = (object) the `mask` element\n **\n \\*/\n proto.mask = function (first) {\n var attr,\n el = this.el(\"mask\");\n if (arguments.length == 1 && first && !first.type) {\n el.attr(first);\n } else if (arguments.length) {\n el.add(Array.prototype.slice.call(arguments, 0));\n }\n return el;\n };\n /*\\\n * Paper.ptrn\n [ method ]\n **\n * Equivalent in behaviour to @Paper.g, except it’s a pattern.\n - x (number) @optional X of the element\n - y (number) @optional Y of the element\n - width (number) @optional width of the element\n - height (number) @optional height of the element\n - vbx (number) @optional viewbox X\n - vby (number) @optional viewbox Y\n - vbw (number) @optional viewbox width\n - vbh (number) @optional viewbox height\n **\n = (object) the `pattern` element\n **\n \\*/\n proto.ptrn = function (x, y, width, height, vx, vy, vw, vh) {\n if (is(x, \"object\")) {\n var attr = x;\n } else {\n attr = {patternUnits: \"userSpaceOnUse\"};\n if (x) {\n attr.x = x;\n }\n if (y) {\n attr.y = y;\n }\n if (width != null) {\n attr.width = width;\n }\n if (height != null) {\n attr.height = height;\n }\n if (vx != null && vy != null && vw != null && vh != null) {\n attr.viewBox = [vx, vy, vw, vh];\n } else {\n attr.viewBox = [x || 0, y || 0, width || 0, height || 0];\n }\n }\n return this.el(\"pattern\", attr);\n };\n /*\\\n * Paper.use\n [ method ]\n **\n * Creates a <use> element.\n - id (string) @optional id of element to link\n * or\n - id (Element) @optional element to link\n **\n = (object) the `use` element\n **\n \\*/\n proto.use = function (id) {\n if (id != null) {\n if (id instanceof Element) {\n if (!id.attr(\"id\")) {\n id.attr({id: Snap._.id(id)});\n }\n id = id.attr(\"id\");\n }\n if (String(id).charAt() == \"#\") {\n id = id.substring(1);\n }\n return this.el(\"use\", {\"xlink:href\": \"#\" + id});\n } else {\n return Element.prototype.use.call(this);\n }\n };\n /*\\\n * Paper.symbol\n [ method ]\n **\n * Creates a <symbol> element.\n - vbx (number) @optional viewbox X\n - vby (number) @optional viewbox Y\n - vbw (number) @optional viewbox width\n - vbh (number) @optional viewbox height\n = (object) the `symbol` element\n **\n \\*/\n proto.symbol = function (vx, vy, vw, vh) {\n var attr = {};\n if (vx != null && vy != null && vw != null && vh != null) {\n attr.viewBox = [vx, vy, vw, vh];\n }\n\n return this.el(\"symbol\", attr);\n };\n /*\\\n * Paper.text\n [ method ]\n **\n * Draws a text string\n **\n - x (number) x coordinate position\n - y (number) y coordinate position\n - text (string|array) The text string to draw or array of strings to nest within separate `<tspan>` elements\n = (object) the `text` element\n **\n > Usage\n | var t1 = paper.text(50, 50, \"Snap\");\n | var t2 = paper.text(50, 50, [\"S\",\"n\",\"a\",\"p\"]);\n | // Text path usage\n | t1.attr({textpath: \"M10,10L100,100\"});\n | // or\n | var pth = paper.path(\"M10,10L100,100\");\n | t1.attr({textpath: pth});\n \\*/\n proto.text = function (x, y, text) {\n var attr = {};\n if (is(x, \"object\")) {\n attr = x;\n } else if (x != null) {\n attr = {\n x: x,\n y: y,\n text: text || \"\"\n };\n }\n return this.el(\"text\", attr);\n };\n /*\\\n * Paper.line\n [ method ]\n **\n * Draws a line\n **\n - x1 (number) x coordinate position of the start\n - y1 (number) y coordinate position of the start\n - x2 (number) x coordinate position of the end\n - y2 (number) y coordinate position of the end\n = (object) the `line` element\n **\n > Usage\n | var t1 = paper.line(50, 50, 100, 100);\n \\*/\n proto.line = function (x1, y1, x2, y2) {\n var attr = {};\n if (is(x1, \"object\")) {\n attr = x1;\n } else if (x1 != null) {\n attr = {\n x1: x1,\n x2: x2,\n y1: y1,\n y2: y2\n };\n }\n return this.el(\"line\", attr);\n };\n /*\\\n * Paper.polyline\n [ method ]\n **\n * Draws a polyline\n **\n - points (array) array of points\n * or\n - varargs (…) points\n = (object) the `polyline` element\n **\n > Usage\n | var p1 = paper.polyline([10, 10, 100, 100]);\n | var p2 = paper.polyline(10, 10, 100, 100);\n \\*/\n proto.polyline = function (points) {\n if (arguments.length > 1) {\n points = Array.prototype.slice.call(arguments, 0);\n }\n var attr = {};\n if (is(points, \"object\") && !is(points, \"array\")) {\n attr = points;\n } else if (points != null) {\n attr = {points: points};\n }\n return this.el(\"polyline\", attr);\n };\n /*\\\n * Paper.polygon\n [ method ]\n **\n * Draws a polygon. See @Paper.polyline\n \\*/\n proto.polygon = function (points) {\n if (arguments.length > 1) {\n points = Array.prototype.slice.call(arguments, 0);\n }\n var attr = {};\n if (is(points, \"object\") && !is(points, \"array\")) {\n attr = points;\n } else if (points != null) {\n attr = {points: points};\n }\n return this.el(\"polygon\", attr);\n };\n // gradients\n (function () {\n var $ = Snap._.$;\n // gradients' helpers\n /*\\\n * Element.stops\n [ method ]\n **\n * Only for gradients!\n * Returns array of gradient stops elements.\n = (array) the stops array.\n \\*/\n function Gstops() {\n return this.selectAll(\"stop\");\n }\n /*\\\n * Element.addStop\n [ method ]\n **\n * Only for gradients!\n * Adds another stop to the gradient.\n - color (string) stops color\n - offset (number) stops offset 0..100\n = (object) gradient element\n \\*/\n function GaddStop(color, offset) {\n var stop = $(\"stop\"),\n attr = {\n offset: +offset + \"%\"\n };\n color = Snap.color(color);\n attr[\"stop-color\"] = color.hex;\n if (color.opacity < 1) {\n attr[\"stop-opacity\"] = color.opacity;\n }\n $(stop, attr);\n var stops = this.stops(),\n inserted;\n for (var i = 0; i < stops.length; i++) {\n var stopOffset = parseFloat(stops[i].attr(\"offset\"));\n if (stopOffset > offset) {\n this.node.insertBefore(stop, stops[i].node);\n inserted = true;\n break;\n }\n }\n if (!inserted) {\n this.node.appendChild(stop);\n }\n return this;\n }\n function GgetBBox() {\n if (this.type == \"linearGradient\") {\n var x1 = $(this.node, \"x1\") || 0,\n x2 = $(this.node, \"x2\") || 1,\n y1 = $(this.node, \"y1\") || 0,\n y2 = $(this.node, \"y2\") || 0;\n return Snap._.box(x1, y1, math.abs(x2 - x1), math.abs(y2 - y1));\n } else {\n var cx = this.node.cx || .5,\n cy = this.node.cy || .5,\n r = this.node.r || 0;\n return Snap._.box(cx - r, cy - r, r * 2, r * 2);\n }\n }\n /*\\\n * Element.setStops\n [ method ]\n **\n * Only for gradients!\n * Updates stops of the gradient based on passed gradient descriptor. See @Ppaer.gradient\n - str (string) gradient descriptor part after `()`.\n = (object) gradient element\n | var g = paper.gradient(\"l(0, 0, 1, 1)#000-#f00-#fff\");\n | g.setStops(\"#fff-#000-#f00-#fc0\");\n \\*/\n function GsetStops(str) {\n var grad = str,\n stops = this.stops();\n if (typeof str == \"string\") {\n grad = eve(\"snap.util.grad.parse\", null, \"l(0,0,0,1)\" + str).firstDefined().stops;\n }\n if (!Snap.is(grad, \"array\")) {\n return;\n }\n for (var i = 0; i < stops.length; i++) {\n if (grad[i]) {\n var color = Snap.color(grad[i].color),\n attr = {\"offset\": grad[i].offset + \"%\"};\n attr[\"stop-color\"] = color.hex;\n if (color.opacity < 1) {\n attr[\"stop-opacity\"] = color.opacity;\n }\n stops[i].attr(attr);\n } else {\n stops[i].remove();\n }\n }\n for (i = stops.length; i < grad.length; i++) {\n this.addStop(grad[i].color, grad[i].offset);\n }\n return this;\n }\n function gradient(defs, str) {\n var grad = eve(\"snap.util.grad.parse\", null, str).firstDefined(),\n el;\n if (!grad) {\n return null;\n }\n grad.params.unshift(defs);\n if (grad.type.toLowerCase() == \"l\") {\n el = gradientLinear.apply(0, grad.params);\n } else {\n el = gradientRadial.apply(0, grad.params);\n }\n if (grad.type != grad.type.toLowerCase()) {\n $(el.node, {\n gradientUnits: \"userSpaceOnUse\"\n });\n }\n var stops = grad.stops,\n len = stops.length;\n for (var i = 0; i < len; i++) {\n var stop = stops[i];\n el.addStop(stop.color, stop.offset);\n }\n return el;\n }\n function gradientLinear(defs, x1, y1, x2, y2) {\n var el = Snap._.make(\"linearGradient\", defs);\n el.stops = Gstops;\n el.addStop = GaddStop;\n el.getBBox = GgetBBox;\n el.setStops = GsetStops;\n if (x1 != null) {\n $(el.node, {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n });\n }\n return el;\n }\n function gradientRadial(defs, cx, cy, r, fx, fy) {\n var el = Snap._.make(\"radialGradient\", defs);\n el.stops = Gstops;\n el.addStop = GaddStop;\n el.getBBox = GgetBBox;\n if (cx != null) {\n $(el.node, {\n cx: cx,\n cy: cy,\n r: r\n });\n }\n if (fx != null && fy != null) {\n $(el.node, {\n fx: fx,\n fy: fy\n });\n }\n return el;\n }\n /*\\\n * Paper.gradient\n [ method ]\n **\n * Creates a gradient element\n **\n - gradient (string) gradient descriptor\n > Gradient Descriptor\n * The gradient descriptor is an expression formatted as\n * follows: `<type>(<coords>)<colors>`. The `<type>` can be\n * either linear or radial. The uppercase `L` or `R` letters\n * indicate absolute coordinates offset from the SVG surface.\n * Lowercase `l` or `r` letters indicate coordinates\n * calculated relative to the element to which the gradient is\n * applied. Coordinates specify a linear gradient vector as\n * `x1`, `y1`, `x2`, `y2`, or a radial gradient as `cx`, `cy`,\n * `r` and optional `fx`, `fy` specifying a focal point away\n * from the center of the circle. Specify `<colors>` as a list\n * of dash-separated CSS color values. Each color may be\n * followed by a custom offset value, separated with a colon\n * character.\n > Examples\n * Linear gradient, relative from top-left corner to bottom-right\n * corner, from black through red to white:\n | var g = paper.gradient(\"l(0, 0, 1, 1)#000-#f00-#fff\");\n * Linear gradient, absolute from (0, 0) to (100, 100), from black\n * through red at 25% to white:\n | var g = paper.gradient(\"L(0, 0, 100, 100)#000-#f00:25-#fff\");\n * Radial gradient, relative from the center of the element with radius\n * half the width, from black to white:\n | var g = paper.gradient(\"r(0.5, 0.5, 0.5)#000-#fff\");\n * To apply the gradient:\n | paper.circle(50, 50, 40).attr({\n | fill: g\n | });\n = (object) the `gradient` element\n \\*/\n proto.gradient = function (str) {\n return gradient(this.defs, str);\n };\n proto.gradientLinear = function (x1, y1, x2, y2) {\n return gradientLinear(this.defs, x1, y1, x2, y2);\n };\n proto.gradientRadial = function (cx, cy, r, fx, fy) {\n return gradientRadial(this.defs, cx, cy, r, fx, fy);\n };\n /*\\\n * Paper.toString\n [ method ]\n **\n * Returns SVG code for the @Paper\n = (string) SVG code for the @Paper\n \\*/\n proto.toString = function () {\n var doc = this.node.ownerDocument,\n f = doc.createDocumentFragment(),\n d = doc.createElement(\"div\"),\n svg = this.node.cloneNode(true),\n res;\n f.appendChild(d);\n d.appendChild(svg);\n Snap._.$(svg, {xmlns: \"http://www.w3.org/2000/svg\"});\n res = d.innerHTML;\n f.removeChild(f.firstChild);\n return res;\n };\n /*\\\n * Paper.toDataURL\n [ method ]\n **\n * Returns SVG code for the @Paper as Data URI string.\n = (string) Data URI string\n \\*/\n proto.toDataURL = function () {\n if (window && window.btoa) {\n return \"data:image/svg+xml;base64,\" + btoa(unescape(encodeURIComponent(this)));\n }\n };\n /*\\\n * Paper.clear\n [ method ]\n **\n * Removes all child nodes of the paper, except <defs>.\n \\*/\n proto.clear = function () {\n var node = this.node.firstChild,\n next;\n while (node) {\n next = node.nextSibling;\n if (node.tagName != \"defs\") {\n node.parentNode.removeChild(node);\n } else {\n proto.clear.call({node: node});\n }\n node = next;\n }\n };\n }());\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob) {\n var elproto = Element.prototype,\n is = Snap.is,\n clone = Snap._.clone,\n has = \"hasOwnProperty\",\n p2s = /,?([a-z]),?/gi,\n toFloat = parseFloat,\n math = Math,\n PI = math.PI,\n mmin = math.min,\n mmax = math.max,\n pow = math.pow,\n abs = math.abs;\n function paths(ps) {\n var p = paths.ps = paths.ps || {};\n if (p[ps]) {\n p[ps].sleep = 100;\n } else {\n p[ps] = {\n sleep: 100\n };\n }\n setTimeout(function () {\n for (var key in p) if (p[has](key) && key != ps) {\n p[key].sleep--;\n !p[key].sleep && delete p[key];\n }\n });\n return p[ps];\n }\n function box(x, y, width, height) {\n if (x == null) {\n x = y = width = height = 0;\n }\n if (y == null) {\n y = x.y;\n width = x.width;\n height = x.height;\n x = x.x;\n }\n return {\n x: x,\n y: y,\n width: width,\n w: width,\n height: height,\n h: height,\n x2: x + width,\n y2: y + height,\n cx: x + width / 2,\n cy: y + height / 2,\n r1: math.min(width, height) / 2,\n r2: math.max(width, height) / 2,\n r0: math.sqrt(width * width + height * height) / 2,\n path: rectPath(x, y, width, height),\n vb: [x, y, width, height].join(\" \")\n };\n }\n function toString() {\n return this.join(\",\").replace(p2s, \"$1\");\n }\n function pathClone(pathArray) {\n var res = clone(pathArray);\n res.toString = toString;\n return res;\n }\n function getPointAtSegmentLength(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length) {\n if (length == null) {\n return bezlen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y);\n } else {\n return findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y,\n getTotLen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length));\n }\n }\n function getLengthFactory(istotal, subpath) {\n function O(val) {\n return +(+val).toFixed(3);\n }\n return Snap._.cacher(function (path, length, onlystart) {\n if (path instanceof Element) {\n path = path.attr(\"d\");\n }\n path = path2curve(path);\n var x, y, p, l, sp = \"\", subpaths = {}, point,\n len = 0;\n for (var i = 0, ii = path.length; i < ii; i++) {\n p = path[i];\n if (p[0] == \"M\") {\n x = +p[1];\n y = +p[2];\n } else {\n l = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6]);\n if (len + l > length) {\n if (subpath && !subpaths.start) {\n point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len);\n sp += [\n \"C\" + O(point.start.x),\n O(point.start.y),\n O(point.m.x),\n O(point.m.y),\n O(point.x),\n O(point.y)\n ];\n if (onlystart) {return sp;}\n subpaths.start = sp;\n sp = [\n \"M\" + O(point.x),\n O(point.y) + \"C\" + O(point.n.x),\n O(point.n.y),\n O(point.end.x),\n O(point.end.y),\n O(p[5]),\n O(p[6])\n ].join();\n len += l;\n x = +p[5];\n y = +p[6];\n continue;\n }\n if (!istotal && !subpath) {\n point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len);\n return point;\n }\n }\n len += l;\n x = +p[5];\n y = +p[6];\n }\n sp += p.shift() + p;\n }\n subpaths.end = sp;\n point = istotal ? len : subpath ? subpaths : findDotsAtSegment(x, y, p[0], p[1], p[2], p[3], p[4], p[5], 1);\n return point;\n }, null, Snap._.clone);\n }\n var getTotalLength = getLengthFactory(1),\n getPointAtLength = getLengthFactory(),\n getSubpathsAtLength = getLengthFactory(0, 1);\n function findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) {\n var t1 = 1 - t,\n t13 = pow(t1, 3),\n t12 = pow(t1, 2),\n t2 = t * t,\n t3 = t2 * t,\n x = t13 * p1x + t12 * 3 * t * c1x + t1 * 3 * t * t * c2x + t3 * p2x,\n y = t13 * p1y + t12 * 3 * t * c1y + t1 * 3 * t * t * c2y + t3 * p2y,\n mx = p1x + 2 * t * (c1x - p1x) + t2 * (c2x - 2 * c1x + p1x),\n my = p1y + 2 * t * (c1y - p1y) + t2 * (c2y - 2 * c1y + p1y),\n nx = c1x + 2 * t * (c2x - c1x) + t2 * (p2x - 2 * c2x + c1x),\n ny = c1y + 2 * t * (c2y - c1y) + t2 * (p2y - 2 * c2y + c1y),\n ax = t1 * p1x + t * c1x,\n ay = t1 * p1y + t * c1y,\n cx = t1 * c2x + t * p2x,\n cy = t1 * c2y + t * p2y,\n alpha = 90 - math.atan2(mx - nx, my - ny) * 180 / PI;\n // (mx > nx || my < ny) && (alpha += 180);\n return {\n x: x,\n y: y,\n m: {x: mx, y: my},\n n: {x: nx, y: ny},\n start: {x: ax, y: ay},\n end: {x: cx, y: cy},\n alpha: alpha\n };\n }\n function bezierBBox(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) {\n if (!Snap.is(p1x, \"array\")) {\n p1x = [p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y];\n }\n var bbox = curveDim.apply(null, p1x);\n return box(\n bbox.min.x,\n bbox.min.y,\n bbox.max.x - bbox.min.x,\n bbox.max.y - bbox.min.y\n );\n }\n function isPointInsideBBox(bbox, x, y) {\n return x >= bbox.x &&\n x <= bbox.x + bbox.width &&\n y >= bbox.y &&\n y <= bbox.y + bbox.height;\n }\n function isBBoxIntersect(bbox1, bbox2) {\n bbox1 = box(bbox1);\n bbox2 = box(bbox2);\n return isPointInsideBBox(bbox2, bbox1.x, bbox1.y)\n || isPointInsideBBox(bbox2, bbox1.x2, bbox1.y)\n || isPointInsideBBox(bbox2, bbox1.x, bbox1.y2)\n || isPointInsideBBox(bbox2, bbox1.x2, bbox1.y2)\n || isPointInsideBBox(bbox1, bbox2.x, bbox2.y)\n || isPointInsideBBox(bbox1, bbox2.x2, bbox2.y)\n || isPointInsideBBox(bbox1, bbox2.x, bbox2.y2)\n || isPointInsideBBox(bbox1, bbox2.x2, bbox2.y2)\n || (bbox1.x < bbox2.x2 && bbox1.x > bbox2.x\n || bbox2.x < bbox1.x2 && bbox2.x > bbox1.x)\n && (bbox1.y < bbox2.y2 && bbox1.y > bbox2.y\n || bbox2.y < bbox1.y2 && bbox2.y > bbox1.y);\n }\n function base3(t, p1, p2, p3, p4) {\n var t1 = -3 * p1 + 9 * p2 - 9 * p3 + 3 * p4,\n t2 = t * t1 + 6 * p1 - 12 * p2 + 6 * p3;\n return t * t2 - 3 * p1 + 3 * p2;\n }\n function bezlen(x1, y1, x2, y2, x3, y3, x4, y4, z) {\n if (z == null) {\n z = 1;\n }\n z = z > 1 ? 1 : z < 0 ? 0 : z;\n var z2 = z / 2,\n n = 12,\n Tvalues = [-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],\n Cvalues = [0.2491,0.2491,0.2335,0.2335,0.2032,0.2032,0.1601,0.1601,0.1069,0.1069,0.0472,0.0472],\n sum = 0;\n for (var i = 0; i < n; i++) {\n var ct = z2 * Tvalues[i] + z2,\n xbase = base3(ct, x1, x2, x3, x4),\n ybase = base3(ct, y1, y2, y3, y4),\n comb = xbase * xbase + ybase * ybase;\n sum += Cvalues[i] * math.sqrt(comb);\n }\n return z2 * sum;\n }\n function getTotLen(x1, y1, x2, y2, x3, y3, x4, y4, ll) {\n if (ll < 0 || bezlen(x1, y1, x2, y2, x3, y3, x4, y4) < ll) {\n return;\n }\n var t = 1,\n step = t / 2,\n t2 = t - step,\n l,\n e = .01;\n l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2);\n while (abs(l - ll) > e) {\n step /= 2;\n t2 += (l < ll ? 1 : -1) * step;\n l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2);\n }\n return t2;\n }\n function intersect(x1, y1, x2, y2, x3, y3, x4, y4) {\n if (\n mmax(x1, x2) < mmin(x3, x4) ||\n mmin(x1, x2) > mmax(x3, x4) ||\n mmax(y1, y2) < mmin(y3, y4) ||\n mmin(y1, y2) > mmax(y3, y4)\n ) {\n return;\n }\n var nx = (x1 * y2 - y1 * x2) * (x3 - x4) - (x1 - x2) * (x3 * y4 - y3 * x4),\n ny = (x1 * y2 - y1 * x2) * (y3 - y4) - (y1 - y2) * (x3 * y4 - y3 * x4),\n denominator = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4);\n\n if (!denominator) {\n return;\n }\n var px = nx / denominator,\n py = ny / denominator,\n px2 = +px.toFixed(2),\n py2 = +py.toFixed(2);\n if (\n px2 < +mmin(x1, x2).toFixed(2) ||\n px2 > +mmax(x1, x2).toFixed(2) ||\n px2 < +mmin(x3, x4).toFixed(2) ||\n px2 > +mmax(x3, x4).toFixed(2) ||\n py2 < +mmin(y1, y2).toFixed(2) ||\n py2 > +mmax(y1, y2).toFixed(2) ||\n py2 < +mmin(y3, y4).toFixed(2) ||\n py2 > +mmax(y3, y4).toFixed(2)\n ) {\n return;\n }\n return {x: px, y: py};\n }\n function inter(bez1, bez2) {\n return interHelper(bez1, bez2);\n }\n function interCount(bez1, bez2) {\n return interHelper(bez1, bez2, 1);\n }\n function interHelper(bez1, bez2, justCount) {\n var bbox1 = bezierBBox(bez1),\n bbox2 = bezierBBox(bez2);\n if (!isBBoxIntersect(bbox1, bbox2)) {\n return justCount ? 0 : [];\n }\n var l1 = bezlen.apply(0, bez1),\n l2 = bezlen.apply(0, bez2),\n n1 = ~~(l1 / 8),\n n2 = ~~(l2 / 8),\n dots1 = [],\n dots2 = [],\n xy = {},\n res = justCount ? 0 : [];\n for (var i = 0; i < n1 + 1; i++) {\n var p = findDotsAtSegment.apply(0, bez1.concat(i / n1));\n dots1.push({x: p.x, y: p.y, t: i / n1});\n }\n for (i = 0; i < n2 + 1; i++) {\n p = findDotsAtSegment.apply(0, bez2.concat(i / n2));\n dots2.push({x: p.x, y: p.y, t: i / n2});\n }\n for (i = 0; i < n1; i++) {\n for (var j = 0; j < n2; j++) {\n var di = dots1[i],\n di1 = dots1[i + 1],\n dj = dots2[j],\n dj1 = dots2[j + 1],\n ci = abs(di1.x - di.x) < .001 ? \"y\" : \"x\",\n cj = abs(dj1.x - dj.x) < .001 ? \"y\" : \"x\",\n is = intersect(di.x, di.y, di1.x, di1.y, dj.x, dj.y, dj1.x, dj1.y);\n if (is) {\n if (xy[is.x.toFixed(4)] == is.y.toFixed(4)) {\n continue;\n }\n xy[is.x.toFixed(4)] = is.y.toFixed(4);\n var t1 = di.t + abs((is[ci] - di[ci]) / (di1[ci] - di[ci])) * (di1.t - di.t),\n t2 = dj.t + abs((is[cj] - dj[cj]) / (dj1[cj] - dj[cj])) * (dj1.t - dj.t);\n if (t1 >= 0 && t1 <= 1 && t2 >= 0 && t2 <= 1) {\n if (justCount) {\n res++;\n } else {\n res.push({\n x: is.x,\n y: is.y,\n t1: t1,\n t2: t2\n });\n }\n }\n }\n }\n }\n return res;\n }\n function pathIntersection(path1, path2) {\n return interPathHelper(path1, path2);\n }\n function pathIntersectionNumber(path1, path2) {\n return interPathHelper(path1, path2, 1);\n }\n function interPathHelper(path1, path2, justCount) {\n path1 = path2curve(path1);\n path2 = path2curve(path2);\n var x1, y1, x2, y2, x1m, y1m, x2m, y2m, bez1, bez2,\n res = justCount ? 0 : [];\n for (var i = 0, ii = path1.length; i < ii; i++) {\n var pi = path1[i];\n if (pi[0] == \"M\") {\n x1 = x1m = pi[1];\n y1 = y1m = pi[2];\n } else {\n if (pi[0] == \"C\") {\n bez1 = [x1, y1].concat(pi.slice(1));\n x1 = bez1[6];\n y1 = bez1[7];\n } else {\n bez1 = [x1, y1, x1, y1, x1m, y1m, x1m, y1m];\n x1 = x1m;\n y1 = y1m;\n }\n for (var j = 0, jj = path2.length; j < jj; j++) {\n var pj = path2[j];\n if (pj[0] == \"M\") {\n x2 = x2m = pj[1];\n y2 = y2m = pj[2];\n } else {\n if (pj[0] == \"C\") {\n bez2 = [x2, y2].concat(pj.slice(1));\n x2 = bez2[6];\n y2 = bez2[7];\n } else {\n bez2 = [x2, y2, x2, y2, x2m, y2m, x2m, y2m];\n x2 = x2m;\n y2 = y2m;\n }\n var intr = interHelper(bez1, bez2, justCount);\n if (justCount) {\n res += intr;\n } else {\n for (var k = 0, kk = intr.length; k < kk; k++) {\n intr[k].segment1 = i;\n intr[k].segment2 = j;\n intr[k].bez1 = bez1;\n intr[k].bez2 = bez2;\n }\n res = res.concat(intr);\n }\n }\n }\n }\n }\n return res;\n }\n function isPointInsidePath(path, x, y) {\n var bbox = pathBBox(path);\n return isPointInsideBBox(bbox, x, y) &&\n interPathHelper(path, [[\"M\", x, y], [\"H\", bbox.x2 + 10]], 1) % 2 == 1;\n }\n function pathBBox(path) {\n var pth = paths(path);\n if (pth.bbox) {\n return clone(pth.bbox);\n }\n if (!path) {\n return box();\n }\n path = path2curve(path);\n var x = 0,\n y = 0,\n X = [],\n Y = [],\n p;\n for (var i = 0, ii = path.length; i < ii; i++) {\n p = path[i];\n if (p[0] == \"M\") {\n x = p[1];\n y = p[2];\n X.push(x);\n Y.push(y);\n } else {\n var dim = curveDim(x, y, p[1], p[2], p[3], p[4], p[5], p[6]);\n X = X.concat(dim.min.x, dim.max.x);\n Y = Y.concat(dim.min.y, dim.max.y);\n x = p[5];\n y = p[6];\n }\n }\n var xmin = mmin.apply(0, X),\n ymin = mmin.apply(0, Y),\n xmax = mmax.apply(0, X),\n ymax = mmax.apply(0, Y),\n bb = box(xmin, ymin, xmax - xmin, ymax - ymin);\n pth.bbox = clone(bb);\n return bb;\n }\n function rectPath(x, y, w, h, r) {\n if (r) {\n return [\n [\"M\", +x + +r, y],\n [\"l\", w - r * 2, 0],\n [\"a\", r, r, 0, 0, 1, r, r],\n [\"l\", 0, h - r * 2],\n [\"a\", r, r, 0, 0, 1, -r, r],\n [\"l\", r * 2 - w, 0],\n [\"a\", r, r, 0, 0, 1, -r, -r],\n [\"l\", 0, r * 2 - h],\n [\"a\", r, r, 0, 0, 1, r, -r],\n [\"z\"]\n ];\n }\n var res = [[\"M\", x, y], [\"l\", w, 0], [\"l\", 0, h], [\"l\", -w, 0], [\"z\"]];\n res.toString = toString;\n return res;\n }\n function ellipsePath(x, y, rx, ry, a) {\n if (a == null && ry == null) {\n ry = rx;\n }\n x = +x;\n y = +y;\n rx = +rx;\n ry = +ry;\n if (a != null) {\n var rad = Math.PI / 180,\n x1 = x + rx * Math.cos(-ry * rad),\n x2 = x + rx * Math.cos(-a * rad),\n y1 = y + rx * Math.sin(-ry * rad),\n y2 = y + rx * Math.sin(-a * rad),\n res = [[\"M\", x1, y1], [\"A\", rx, rx, 0, +(a - ry > 180), 0, x2, y2]];\n } else {\n res = [\n [\"M\", x, y],\n [\"m\", 0, -ry],\n [\"a\", rx, ry, 0, 1, 1, 0, 2 * ry],\n [\"a\", rx, ry, 0, 1, 1, 0, -2 * ry],\n [\"z\"]\n ];\n }\n res.toString = toString;\n return res;\n }\n var unit2px = Snap._unit2px,\n getPath = {\n path: function (el) {\n return el.attr(\"path\");\n },\n circle: function (el) {\n var attr = unit2px(el);\n return ellipsePath(attr.cx, attr.cy, attr.r);\n },\n ellipse: function (el) {\n var attr = unit2px(el);\n return ellipsePath(attr.cx || 0, attr.cy || 0, attr.rx, attr.ry);\n },\n rect: function (el) {\n var attr = unit2px(el);\n return rectPath(attr.x || 0, attr.y || 0, attr.width, attr.height, attr.rx, attr.ry);\n },\n image: function (el) {\n var attr = unit2px(el);\n return rectPath(attr.x || 0, attr.y || 0, attr.width, attr.height);\n },\n line: function (el) {\n return \"M\" + [el.attr(\"x1\") || 0, el.attr(\"y1\") || 0, el.attr(\"x2\"), el.attr(\"y2\")];\n },\n polyline: function (el) {\n return \"M\" + el.attr(\"points\");\n },\n polygon: function (el) {\n return \"M\" + el.attr(\"points\") + \"z\";\n },\n deflt: function (el) {\n var bbox = el.node.getBBox();\n return rectPath(bbox.x, bbox.y, bbox.width, bbox.height);\n }\n };\n function pathToRelative(pathArray) {\n var pth = paths(pathArray),\n lowerCase = String.prototype.toLowerCase;\n if (pth.rel) {\n return pathClone(pth.rel);\n }\n if (!Snap.is(pathArray, \"array\") || !Snap.is(pathArray && pathArray[0], \"array\")) {\n pathArray = Snap.parsePathString(pathArray);\n }\n var res = [],\n x = 0,\n y = 0,\n mx = 0,\n my = 0,\n start = 0;\n if (pathArray[0][0] == \"M\") {\n x = pathArray[0][1];\n y = pathArray[0][2];\n mx = x;\n my = y;\n start++;\n res.push([\"M\", x, y]);\n }\n for (var i = start, ii = pathArray.length; i < ii; i++) {\n var r = res[i] = [],\n pa = pathArray[i];\n if (pa[0] != lowerCase.call(pa[0])) {\n r[0] = lowerCase.call(pa[0]);\n switch (r[0]) {\n case \"a\":\n r[1] = pa[1];\n r[2] = pa[2];\n r[3] = pa[3];\n r[4] = pa[4];\n r[5] = pa[5];\n r[6] = +(pa[6] - x).toFixed(3);\n r[7] = +(pa[7] - y).toFixed(3);\n break;\n case \"v\":\n r[1] = +(pa[1] - y).toFixed(3);\n break;\n case \"m\":\n mx = pa[1];\n my = pa[2];\n default:\n for (var j = 1, jj = pa.length; j < jj; j++) {\n r[j] = +(pa[j] - (j % 2 ? x : y)).toFixed(3);\n }\n }\n } else {\n r = res[i] = [];\n if (pa[0] == \"m\") {\n mx = pa[1] + x;\n my = pa[2] + y;\n }\n for (var k = 0, kk = pa.length; k < kk; k++) {\n res[i][k] = pa[k];\n }\n }\n var len = res[i].length;\n switch (res[i][0]) {\n case \"z\":\n x = mx;\n y = my;\n break;\n case \"h\":\n x += +res[i][len - 1];\n break;\n case \"v\":\n y += +res[i][len - 1];\n break;\n default:\n x += +res[i][len - 2];\n y += +res[i][len - 1];\n }\n }\n res.toString = toString;\n pth.rel = pathClone(res);\n return res;\n }\n function pathToAbsolute(pathArray) {\n var pth = paths(pathArray);\n if (pth.abs) {\n return pathClone(pth.abs);\n }\n if (!is(pathArray, \"array\") || !is(pathArray && pathArray[0], \"array\")) { // rough assumption\n pathArray = Snap.parsePathString(pathArray);\n }\n if (!pathArray || !pathArray.length) {\n return [[\"M\", 0, 0]];\n }\n var res = [],\n x = 0,\n y = 0,\n mx = 0,\n my = 0,\n start = 0,\n pa0;\n if (pathArray[0][0] == \"M\") {\n x = +pathArray[0][1];\n y = +pathArray[0][2];\n mx = x;\n my = y;\n start++;\n res[0] = [\"M\", x, y];\n }\n var crz = pathArray.length == 3 &&\n pathArray[0][0] == \"M\" &&\n pathArray[1][0].toUpperCase() == \"R\" &&\n pathArray[2][0].toUpperCase() == \"Z\";\n for (var r, pa, i = start, ii = pathArray.length; i < ii; i++) {\n res.push(r = []);\n pa = pathArray[i];\n pa0 = pa[0];\n if (pa0 != pa0.toUpperCase()) {\n r[0] = pa0.toUpperCase();\n switch (r[0]) {\n case \"A\":\n r[1] = pa[1];\n r[2] = pa[2];\n r[3] = pa[3];\n r[4] = pa[4];\n r[5] = pa[5];\n r[6] = +pa[6] + x;\n r[7] = +pa[7] + y;\n break;\n case \"V\":\n r[1] = +pa[1] + y;\n break;\n case \"H\":\n r[1] = +pa[1] + x;\n break;\n case \"R\":\n var dots = [x, y].concat(pa.slice(1));\n for (var j = 2, jj = dots.length; j < jj; j++) {\n dots[j] = +dots[j] + x;\n dots[++j] = +dots[j] + y;\n }\n res.pop();\n res = res.concat(catmullRom2bezier(dots, crz));\n break;\n case \"O\":\n res.pop();\n dots = ellipsePath(x, y, pa[1], pa[2]);\n dots.push(dots[0]);\n res = res.concat(dots);\n break;\n case \"U\":\n res.pop();\n res = res.concat(ellipsePath(x, y, pa[1], pa[2], pa[3]));\n r = [\"U\"].concat(res[res.length - 1].slice(-2));\n break;\n case \"M\":\n mx = +pa[1] + x;\n my = +pa[2] + y;\n default:\n for (j = 1, jj = pa.length; j < jj; j++) {\n r[j] = +pa[j] + (j % 2 ? x : y);\n }\n }\n } else if (pa0 == \"R\") {\n dots = [x, y].concat(pa.slice(1));\n res.pop();\n res = res.concat(catmullRom2bezier(dots, crz));\n r = [\"R\"].concat(pa.slice(-2));\n } else if (pa0 == \"O\") {\n res.pop();\n dots = ellipsePath(x, y, pa[1], pa[2]);\n dots.push(dots[0]);\n res = res.concat(dots);\n } else if (pa0 == \"U\") {\n res.pop();\n res = res.concat(ellipsePath(x, y, pa[1], pa[2], pa[3]));\n r = [\"U\"].concat(res[res.length - 1].slice(-2));\n } else {\n for (var k = 0, kk = pa.length; k < kk; k++) {\n r[k] = pa[k];\n }\n }\n pa0 = pa0.toUpperCase();\n if (pa0 != \"O\") {\n switch (r[0]) {\n case \"Z\":\n x = +mx;\n y = +my;\n break;\n case \"H\":\n x = r[1];\n break;\n case \"V\":\n y = r[1];\n break;\n case \"M\":\n mx = r[r.length - 2];\n my = r[r.length - 1];\n default:\n x = r[r.length - 2];\n y = r[r.length - 1];\n }\n }\n }\n res.toString = toString;\n pth.abs = pathClone(res);\n return res;\n }\n function l2c(x1, y1, x2, y2) {\n return [x1, y1, x2, y2, x2, y2];\n }\n function q2c(x1, y1, ax, ay, x2, y2) {\n var _13 = 1 / 3,\n _23 = 2 / 3;\n return [\n _13 * x1 + _23 * ax,\n _13 * y1 + _23 * ay,\n _13 * x2 + _23 * ax,\n _13 * y2 + _23 * ay,\n x2,\n y2\n ];\n }\n function a2c(x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2, recursive) {\n // for more information of where this math came from visit:\n // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n var _120 = PI * 120 / 180,\n rad = PI / 180 * (+angle || 0),\n res = [],\n xy,\n rotate = Snap._.cacher(function (x, y, rad) {\n var X = x * math.cos(rad) - y * math.sin(rad),\n Y = x * math.sin(rad) + y * math.cos(rad);\n return {x: X, y: Y};\n });\n if (!rx || !ry) {\n return [x1, y1, x2, y2, x2, y2];\n }\n if (!recursive) {\n xy = rotate(x1, y1, -rad);\n x1 = xy.x;\n y1 = xy.y;\n xy = rotate(x2, y2, -rad);\n x2 = xy.x;\n y2 = xy.y;\n var cos = math.cos(PI / 180 * angle),\n sin = math.sin(PI / 180 * angle),\n x = (x1 - x2) / 2,\n y = (y1 - y2) / 2;\n var h = x * x / (rx * rx) + y * y / (ry * ry);\n if (h > 1) {\n h = math.sqrt(h);\n rx = h * rx;\n ry = h * ry;\n }\n var rx2 = rx * rx,\n ry2 = ry * ry,\n k = (large_arc_flag == sweep_flag ? -1 : 1) *\n math.sqrt(abs((rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x))),\n cx = k * rx * y / ry + (x1 + x2) / 2,\n cy = k * -ry * x / rx + (y1 + y2) / 2,\n f1 = math.asin(((y1 - cy) / ry).toFixed(9)),\n f2 = math.asin(((y2 - cy) / ry).toFixed(9));\n\n f1 = x1 < cx ? PI - f1 : f1;\n f2 = x2 < cx ? PI - f2 : f2;\n f1 < 0 && (f1 = PI * 2 + f1);\n f2 < 0 && (f2 = PI * 2 + f2);\n if (sweep_flag && f1 > f2) {\n f1 = f1 - PI * 2;\n }\n if (!sweep_flag && f2 > f1) {\n f2 = f2 - PI * 2;\n }\n } else {\n f1 = recursive[0];\n f2 = recursive[1];\n cx = recursive[2];\n cy = recursive[3];\n }\n var df = f2 - f1;\n if (abs(df) > _120) {\n var f2old = f2,\n x2old = x2,\n y2old = y2;\n f2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1);\n x2 = cx + rx * math.cos(f2);\n y2 = cy + ry * math.sin(f2);\n res = a2c(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [f2, f2old, cx, cy]);\n }\n df = f2 - f1;\n var c1 = math.cos(f1),\n s1 = math.sin(f1),\n c2 = math.cos(f2),\n s2 = math.sin(f2),\n t = math.tan(df / 4),\n hx = 4 / 3 * rx * t,\n hy = 4 / 3 * ry * t,\n m1 = [x1, y1],\n m2 = [x1 + hx * s1, y1 - hy * c1],\n m3 = [x2 + hx * s2, y2 - hy * c2],\n m4 = [x2, y2];\n m2[0] = 2 * m1[0] - m2[0];\n m2[1] = 2 * m1[1] - m2[1];\n if (recursive) {\n return [m2, m3, m4].concat(res);\n } else {\n res = [m2, m3, m4].concat(res).join().split(\",\");\n var newres = [];\n for (var i = 0, ii = res.length; i < ii; i++) {\n newres[i] = i % 2 ? rotate(res[i - 1], res[i], rad).y : rotate(res[i], res[i + 1], rad).x;\n }\n return newres;\n }\n }\n function findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) {\n var t1 = 1 - t;\n return {\n x: pow(t1, 3) * p1x + pow(t1, 2) * 3 * t * c1x + t1 * 3 * t * t * c2x + pow(t, 3) * p2x,\n y: pow(t1, 3) * p1y + pow(t1, 2) * 3 * t * c1y + t1 * 3 * t * t * c2y + pow(t, 3) * p2y\n };\n }\n\n // Returns bounding box of cubic bezier curve.\n // Source: http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html\n // Original version: NISHIO Hirokazu\n // Modifications: https://github.com/timo22345\n function curveDim(x0, y0, x1, y1, x2, y2, x3, y3) {\n var tvalues = [],\n bounds = [[], []],\n a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n for (var i = 0; i < 2; ++i) {\n if (i == 0) {\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n } else {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n if (abs(a) < 1e-12) {\n if (abs(b) < 1e-12) {\n continue;\n }\n t = -c / b;\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n continue;\n }\n b2ac = b * b - 4 * c * a;\n sqrtb2ac = math.sqrt(b2ac);\n if (b2ac < 0) {\n continue;\n }\n t1 = (-b + sqrtb2ac) / (2 * a);\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n t2 = (-b - sqrtb2ac) / (2 * a);\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n\n var x, y, j = tvalues.length,\n jlen = j,\n mt;\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n bounds[0][j] = mt * mt * mt * x0 + 3 * mt * mt * t * x1 + 3 * mt * t * t * x2 + t * t * t * x3;\n bounds[1][j] = mt * mt * mt * y0 + 3 * mt * mt * t * y1 + 3 * mt * t * t * y2 + t * t * t * y3;\n }\n\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n bounds[0].length = bounds[1].length = jlen + 2;\n\n\n return {\n min: {x: mmin.apply(0, bounds[0]), y: mmin.apply(0, bounds[1])},\n max: {x: mmax.apply(0, bounds[0]), y: mmax.apply(0, bounds[1])}\n };\n }\n\n function path2curve(path, path2) {\n var pth = !path2 && paths(path);\n if (!path2 && pth.curve) {\n return pathClone(pth.curve);\n }\n var p = pathToAbsolute(path),\n p2 = path2 && pathToAbsolute(path2),\n attrs = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null},\n attrs2 = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null},\n processPath = function (path, d, pcom) {\n var nx, ny;\n if (!path) {\n return [\"C\", d.x, d.y, d.x, d.y, d.x, d.y];\n }\n !(path[0] in {T: 1, Q: 1}) && (d.qx = d.qy = null);\n switch (path[0]) {\n case \"M\":\n d.X = path[1];\n d.Y = path[2];\n break;\n case \"A\":\n path = [\"C\"].concat(a2c.apply(0, [d.x, d.y].concat(path.slice(1))));\n break;\n case \"S\":\n if (pcom == \"C\" || pcom == \"S\") { // In \"S\" case we have to take into account, if the previous command is C/S.\n nx = d.x * 2 - d.bx; // And reflect the previous\n ny = d.y * 2 - d.by; // command's control point relative to the current point.\n }\n else { // or some else or nothing\n nx = d.x;\n ny = d.y;\n }\n path = [\"C\", nx, ny].concat(path.slice(1));\n break;\n case \"T\":\n if (pcom == \"Q\" || pcom == \"T\") { // In \"T\" case we have to take into account, if the previous command is Q/T.\n d.qx = d.x * 2 - d.qx; // And make a reflection similar\n d.qy = d.y * 2 - d.qy; // to case \"S\".\n }\n else { // or something else or nothing\n d.qx = d.x;\n d.qy = d.y;\n }\n path = [\"C\"].concat(q2c(d.x, d.y, d.qx, d.qy, path[1], path[2]));\n break;\n case \"Q\":\n d.qx = path[1];\n d.qy = path[2];\n path = [\"C\"].concat(q2c(d.x, d.y, path[1], path[2], path[3], path[4]));\n break;\n case \"L\":\n path = [\"C\"].concat(l2c(d.x, d.y, path[1], path[2]));\n break;\n case \"H\":\n path = [\"C\"].concat(l2c(d.x, d.y, path[1], d.y));\n break;\n case \"V\":\n path = [\"C\"].concat(l2c(d.x, d.y, d.x, path[1]));\n break;\n case \"Z\":\n path = [\"C\"].concat(l2c(d.x, d.y, d.X, d.Y));\n break;\n }\n return path;\n },\n fixArc = function (pp, i) {\n if (pp[i].length > 7) {\n pp[i].shift();\n var pi = pp[i];\n while (pi.length) {\n pcoms1[i] = \"A\"; // if created multiple C:s, their original seg is saved\n p2 && (pcoms2[i] = \"A\"); // the same as above\n pp.splice(i++, 0, [\"C\"].concat(pi.splice(0, 6)));\n }\n pp.splice(i, 1);\n ii = mmax(p.length, p2 && p2.length || 0);\n }\n },\n fixM = function (path1, path2, a1, a2, i) {\n if (path1 && path2 && path1[i][0] == \"M\" && path2[i][0] != \"M\") {\n path2.splice(i, 0, [\"M\", a2.x, a2.y]);\n a1.bx = 0;\n a1.by = 0;\n a1.x = path1[i][1];\n a1.y = path1[i][2];\n ii = mmax(p.length, p2 && p2.length || 0);\n }\n },\n pcoms1 = [], // path commands of original path p\n pcoms2 = [], // path commands of original path p2\n pfirst = \"\", // temporary holder for original path command\n pcom = \"\"; // holder for previous path command of original path\n for (var i = 0, ii = mmax(p.length, p2 && p2.length || 0); i < ii; i++) {\n p[i] && (pfirst = p[i][0]); // save current path command\n\n if (pfirst != \"C\") // C is not saved yet, because it may be result of conversion\n {\n pcoms1[i] = pfirst; // Save current path command\n i && ( pcom = pcoms1[i - 1]); // Get previous path command pcom\n }\n p[i] = processPath(p[i], attrs, pcom); // Previous path command is inputted to processPath\n\n if (pcoms1[i] != \"A\" && pfirst == \"C\") pcoms1[i] = \"C\"; // A is the only command\n // which may produce multiple C:s\n // so we have to make sure that C is also C in original path\n\n fixArc(p, i); // fixArc adds also the right amount of A:s to pcoms1\n\n if (p2) { // the same procedures is done to p2\n p2[i] && (pfirst = p2[i][0]);\n if (pfirst != \"C\") {\n pcoms2[i] = pfirst;\n i && (pcom = pcoms2[i - 1]);\n }\n p2[i] = processPath(p2[i], attrs2, pcom);\n\n if (pcoms2[i] != \"A\" && pfirst == \"C\") {\n pcoms2[i] = \"C\";\n }\n\n fixArc(p2, i);\n }\n fixM(p, p2, attrs, attrs2, i);\n fixM(p2, p, attrs2, attrs, i);\n var seg = p[i],\n seg2 = p2 && p2[i],\n seglen = seg.length,\n seg2len = p2 && seg2.length;\n attrs.x = seg[seglen - 2];\n attrs.y = seg[seglen - 1];\n attrs.bx = toFloat(seg[seglen - 4]) || attrs.x;\n attrs.by = toFloat(seg[seglen - 3]) || attrs.y;\n attrs2.bx = p2 && (toFloat(seg2[seg2len - 4]) || attrs2.x);\n attrs2.by = p2 && (toFloat(seg2[seg2len - 3]) || attrs2.y);\n attrs2.x = p2 && seg2[seg2len - 2];\n attrs2.y = p2 && seg2[seg2len - 1];\n }\n if (!p2) {\n pth.curve = pathClone(p);\n }\n return p2 ? [p, p2] : p;\n }\n function mapPath(path, matrix) {\n if (!matrix) {\n return path;\n }\n var x, y, i, j, ii, jj, pathi;\n path = path2curve(path);\n for (i = 0, ii = path.length; i < ii; i++) {\n pathi = path[i];\n for (j = 1, jj = pathi.length; j < jj; j += 2) {\n x = matrix.x(pathi[j], pathi[j + 1]);\n y = matrix.y(pathi[j], pathi[j + 1]);\n pathi[j] = x;\n pathi[j + 1] = y;\n }\n }\n return path;\n }\n\n // http://schepers.cc/getting-to-the-point\n function catmullRom2bezier(crp, z) {\n var d = [];\n for (var i = 0, iLen = crp.length; iLen - 2 * !z > i; i += 2) {\n var p = [\n {x: +crp[i - 2], y: +crp[i - 1]},\n {x: +crp[i], y: +crp[i + 1]},\n {x: +crp[i + 2], y: +crp[i + 3]},\n {x: +crp[i + 4], y: +crp[i + 5]}\n ];\n if (z) {\n if (!i) {\n p[0] = {x: +crp[iLen - 2], y: +crp[iLen - 1]};\n } else if (iLen - 4 == i) {\n p[3] = {x: +crp[0], y: +crp[1]};\n } else if (iLen - 2 == i) {\n p[2] = {x: +crp[0], y: +crp[1]};\n p[3] = {x: +crp[2], y: +crp[3]};\n }\n } else {\n if (iLen - 4 == i) {\n p[3] = p[2];\n } else if (!i) {\n p[0] = {x: +crp[i], y: +crp[i + 1]};\n }\n }\n d.push([\"C\",\n (-p[0].x + 6 * p[1].x + p[2].x) / 6,\n (-p[0].y + 6 * p[1].y + p[2].y) / 6,\n (p[1].x + 6 * p[2].x - p[3].x) / 6,\n (p[1].y + 6*p[2].y - p[3].y) / 6,\n p[2].x,\n p[2].y\n ]);\n }\n\n return d;\n }\n\n // export\n Snap.path = paths;\n\n /*\\\n * Snap.path.getTotalLength\n [ method ]\n **\n * Returns the length of the given path in pixels\n **\n - path (string) SVG path string\n **\n = (number) length\n \\*/\n Snap.path.getTotalLength = getTotalLength;\n /*\\\n * Snap.path.getPointAtLength\n [ method ]\n **\n * Returns the coordinates of the point located at the given length along the given path\n **\n - path (string) SVG path string\n - length (number) length, in pixels, from the start of the path, excluding non-rendering jumps\n **\n = (object) representation of the point:\n o {\n o x: (number) x coordinate,\n o y: (number) y coordinate,\n o alpha: (number) angle of derivative\n o }\n \\*/\n Snap.path.getPointAtLength = getPointAtLength;\n /*\\\n * Snap.path.getSubpath\n [ method ]\n **\n * Returns the subpath of a given path between given start and end lengths\n **\n - path (string) SVG path string\n - from (number) length, in pixels, from the start of the path to the start of the segment\n - to (number) length, in pixels, from the start of the path to the end of the segment\n **\n = (string) path string definition for the segment\n \\*/\n Snap.path.getSubpath = function (path, from, to) {\n if (this.getTotalLength(path) - to < 1e-6) {\n return getSubpathsAtLength(path, from).end;\n }\n var a = getSubpathsAtLength(path, to, 1);\n return from ? getSubpathsAtLength(a, from).end : a;\n };\n /*\\\n * Element.getTotalLength\n [ method ]\n **\n * Returns the length of the path in pixels (only works for `path` elements)\n = (number) length\n \\*/\n elproto.getTotalLength = function () {\n if (this.node.getTotalLength) {\n return this.node.getTotalLength();\n }\n };\n // SIERRA Element.getPointAtLength()/Element.getTotalLength(): If a <path> is broken into different segments, is the jump distance to the new coordinates set by the _M_ or _m_ commands calculated as part of the path's total length?\n /*\\\n * Element.getPointAtLength\n [ method ]\n **\n * Returns coordinates of the point located at the given length on the given path (only works for `path` elements)\n **\n - length (number) length, in pixels, from the start of the path, excluding non-rendering jumps\n **\n = (object) representation of the point:\n o {\n o x: (number) x coordinate,\n o y: (number) y coordinate,\n o alpha: (number) angle of derivative\n o }\n \\*/\n elproto.getPointAtLength = function (length) {\n return getPointAtLength(this.attr(\"d\"), length);\n };\n // SIERRA Element.getSubpath(): Similar to the problem for Element.getPointAtLength(). Unclear how this would work for a segmented path. Overall, the concept of _subpath_ and what I'm calling a _segment_ (series of non-_M_ or _Z_ commands) is unclear.\n /*\\\n * Element.getSubpath\n [ method ]\n **\n * Returns subpath of a given element from given start and end lengths (only works for `path` elements)\n **\n - from (number) length, in pixels, from the start of the path to the start of the segment\n - to (number) length, in pixels, from the start of the path to the end of the segment\n **\n = (string) path string definition for the segment\n \\*/\n elproto.getSubpath = function (from, to) {\n return Snap.path.getSubpath(this.attr(\"d\"), from, to);\n };\n Snap._.box = box;\n /*\\\n * Snap.path.findDotsAtSegment\n [ method ]\n **\n * Utility method\n **\n * Finds dot coordinates on the given cubic beziér curve at the given t\n - p1x (number) x of the first point of the curve\n - p1y (number) y of the first point of the curve\n - c1x (number) x of the first anchor of the curve\n - c1y (number) y of the first anchor of the curve\n - c2x (number) x of the second anchor of the curve\n - c2y (number) y of the second anchor of the curve\n - p2x (number) x of the second point of the curve\n - p2y (number) y of the second point of the curve\n - t (number) position on the curve (0..1)\n = (object) point information in format:\n o {\n o x: (number) x coordinate of the point,\n o y: (number) y coordinate of the point,\n o m: {\n o x: (number) x coordinate of the left anchor,\n o y: (number) y coordinate of the left anchor\n o },\n o n: {\n o x: (number) x coordinate of the right anchor,\n o y: (number) y coordinate of the right anchor\n o },\n o start: {\n o x: (number) x coordinate of the start of the curve,\n o y: (number) y coordinate of the start of the curve\n o },\n o end: {\n o x: (number) x coordinate of the end of the curve,\n o y: (number) y coordinate of the end of the curve\n o },\n o alpha: (number) angle of the curve derivative at the point\n o }\n \\*/\n Snap.path.findDotsAtSegment = findDotsAtSegment;\n /*\\\n * Snap.path.bezierBBox\n [ method ]\n **\n * Utility method\n **\n * Returns the bounding box of a given cubic beziér curve\n - p1x (number) x of the first point of the curve\n - p1y (number) y of the first point of the curve\n - c1x (number) x of the first anchor of the curve\n - c1y (number) y of the first anchor of the curve\n - c2x (number) x of the second anchor of the curve\n - c2y (number) y of the second anchor of the curve\n - p2x (number) x of the second point of the curve\n - p2y (number) y of the second point of the curve\n * or\n - bez (array) array of six points for beziér curve\n = (object) bounding box\n o {\n o x: (number) x coordinate of the left top point of the box,\n o y: (number) y coordinate of the left top point of the box,\n o x2: (number) x coordinate of the right bottom point of the box,\n o y2: (number) y coordinate of the right bottom point of the box,\n o width: (number) width of the box,\n o height: (number) height of the box\n o }\n \\*/\n Snap.path.bezierBBox = bezierBBox;\n /*\\\n * Snap.path.isPointInsideBBox\n [ method ]\n **\n * Utility method\n **\n * Returns `true` if given point is inside bounding box\n - bbox (string) bounding box\n - x (string) x coordinate of the point\n - y (string) y coordinate of the point\n = (boolean) `true` if point is inside\n \\*/\n Snap.path.isPointInsideBBox = isPointInsideBBox;\n Snap.closest = function (x, y, X, Y) {\n var r = 100,\n b = box(x - r / 2, y - r / 2, r, r),\n inside = [],\n getter = X[0].hasOwnProperty(\"x\") ? function (i) {\n return {\n x: X[i].x,\n y: X[i].y\n };\n } : function (i) {\n return {\n x: X[i],\n y: Y[i]\n };\n },\n found = 0;\n while (r <= 1e6 && !found) {\n for (var i = 0, ii = X.length; i < ii; i++) {\n var xy = getter(i);\n if (isPointInsideBBox(b, xy.x, xy.y)) {\n found++;\n inside.push(xy);\n break;\n }\n }\n if (!found) {\n r *= 2;\n b = box(x - r / 2, y - r / 2, r, r)\n }\n }\n if (r == 1e6) {\n return;\n }\n var len = Infinity,\n res;\n for (i = 0, ii = inside.length; i < ii; i++) {\n var l = Snap.len(x, y, inside[i].x, inside[i].y);\n if (len > l) {\n len = l;\n inside[i].len = l;\n res = inside[i];\n }\n }\n return res;\n };\n /*\\\n * Snap.path.isBBoxIntersect\n [ method ]\n **\n * Utility method\n **\n * Returns `true` if two bounding boxes intersect\n - bbox1 (string) first bounding box\n - bbox2 (string) second bounding box\n = (boolean) `true` if bounding boxes intersect\n \\*/\n Snap.path.isBBoxIntersect = isBBoxIntersect;\n /*\\\n * Snap.path.intersection\n [ method ]\n **\n * Utility method\n **\n * Finds intersections of two paths\n - path1 (string) path string\n - path2 (string) path string\n = (array) dots of intersection\n o [\n o {\n o x: (number) x coordinate of the point,\n o y: (number) y coordinate of the point,\n o t1: (number) t value for segment of path1,\n o t2: (number) t value for segment of path2,\n o segment1: (number) order number for segment of path1,\n o segment2: (number) order number for segment of path2,\n o bez1: (array) eight coordinates representing beziér curve for the segment of path1,\n o bez2: (array) eight coordinates representing beziér curve for the segment of path2\n o }\n o ]\n \\*/\n Snap.path.intersection = pathIntersection;\n Snap.path.intersectionNumber = pathIntersectionNumber;\n /*\\\n * Snap.path.isPointInside\n [ method ]\n **\n * Utility method\n **\n * Returns `true` if given point is inside a given closed path.\n *\n * Note: fill mode doesn’t affect the result of this method.\n - path (string) path string\n - x (number) x of the point\n - y (number) y of the point\n = (boolean) `true` if point is inside the path\n \\*/\n Snap.path.isPointInside = isPointInsidePath;\n /*\\\n * Snap.path.getBBox\n [ method ]\n **\n * Utility method\n **\n * Returns the bounding box of a given path\n - path (string) path string\n = (object) bounding box\n o {\n o x: (number) x coordinate of the left top point of the box,\n o y: (number) y coordinate of the left top point of the box,\n o x2: (number) x coordinate of the right bottom point of the box,\n o y2: (number) y coordinate of the right bottom point of the box,\n o width: (number) width of the box,\n o height: (number) height of the box\n o }\n \\*/\n Snap.path.getBBox = pathBBox;\n Snap.path.get = getPath;\n /*\\\n * Snap.path.toRelative\n [ method ]\n **\n * Utility method\n **\n * Converts path coordinates into relative values\n - path (string) path string\n = (array) path string\n \\*/\n Snap.path.toRelative = pathToRelative;\n /*\\\n * Snap.path.toAbsolute\n [ method ]\n **\n * Utility method\n **\n * Converts path coordinates into absolute values\n - path (string) path string\n = (array) path string\n \\*/\n Snap.path.toAbsolute = pathToAbsolute;\n /*\\\n * Snap.path.toCubic\n [ method ]\n **\n * Utility method\n **\n * Converts path to a new path where all segments are cubic beziér curves\n - pathString (string|array) path string or array of segments\n = (array) array of segments\n \\*/\n Snap.path.toCubic = path2curve;\n /*\\\n * Snap.path.map\n [ method ]\n **\n * Transform the path string with the given matrix\n - path (string) path string\n - matrix (object) see @Matrix\n = (string) transformed path string\n \\*/\n Snap.path.map = mapPath;\n Snap.path.toString = toString;\n Snap.path.clone = pathClone;\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob) {\n var mmax = Math.max,\n mmin = Math.min;\n\n // Set\n var Set = function (items) {\n this.items = [];\n\tthis.bindings = {};\n this.length = 0;\n this.type = \"set\";\n if (items) {\n for (var i = 0, ii = items.length; i < ii; i++) {\n if (items[i]) {\n this[this.items.length] = this.items[this.items.length] = items[i];\n this.length++;\n }\n }\n }\n },\n setproto = Set.prototype;\n /*\\\n * Set.push\n [ method ]\n **\n * Adds each argument to the current set\n = (object) original element\n \\*/\n setproto.push = function () {\n var item,\n len;\n for (var i = 0, ii = arguments.length; i < ii; i++) {\n item = arguments[i];\n if (item) {\n len = this.items.length;\n this[len] = this.items[len] = item;\n this.length++;\n }\n }\n return this;\n };\n /*\\\n * Set.pop\n [ method ]\n **\n * Removes last element and returns it\n = (object) element\n \\*/\n setproto.pop = function () {\n this.length && delete this[this.length--];\n return this.items.pop();\n };\n /*\\\n * Set.forEach\n [ method ]\n **\n * Executes given function for each element in the set\n *\n * If the function returns `false`, the loop stops running.\n **\n - callback (function) function to run\n - thisArg (object) context object for the callback\n = (object) Set object\n \\*/\n setproto.forEach = function (callback, thisArg) {\n for (var i = 0, ii = this.items.length; i < ii; i++) {\n if (callback.call(thisArg, this.items[i], i) === false) {\n return this;\n }\n }\n return this;\n };\n /*\\\n * Set.animate\n [ method ]\n **\n * Animates each element in set in sync.\n *\n **\n - attrs (object) key-value pairs of destination attributes\n - duration (number) duration of the animation in milliseconds\n - easing (function) #optional easing function from @mina or custom\n - callback (function) #optional callback function that executes when the animation ends\n * or\n - animation (array) array of animation parameter for each element in set in format `[attrs, duration, easing, callback]`\n > Usage\n | // animate all elements in set to radius 10\n | set.animate({r: 10}, 500, mina.easein);\n | // or\n | // animate first element to radius 10, but second to radius 20 and in different time\n | set.animate([{r: 10}, 500, mina.easein], [{r: 20}, 1500, mina.easein]);\n = (Element) the current element\n \\*/\n setproto.animate = function (attrs, ms, easing, callback) {\n if (typeof easing == \"function\" && !easing.length) {\n callback = easing;\n easing = mina.linear;\n }\n if (attrs instanceof Snap._.Animation) {\n callback = attrs.callback;\n easing = attrs.easing;\n ms = easing.dur;\n attrs = attrs.attr;\n }\n var args = arguments;\n if (Snap.is(attrs, \"array\") && Snap.is(args[args.length - 1], \"array\")) {\n var each = true;\n }\n var begin,\n handler = function () {\n if (begin) {\n this.b = begin;\n } else {\n begin = this.b;\n }\n },\n cb = 0,\n set = this,\n callbacker = callback && function () {\n if (++cb == set.length) {\n callback.call(this);\n }\n };\n return this.forEach(function (el, i) {\n eve.once(\"snap.animcreated.\" + el.id, handler);\n if (each) {\n args[i] && el.animate.apply(el, args[i]);\n } else {\n el.animate(attrs, ms, easing, callbacker);\n }\n });\n };\n /*\\\n * Set.remove\n [ method ]\n **\n * Removes all children of the set.\n *\n = (object) Set object\n \\*/\n setproto.remove = function () {\n while (this.length) {\n this.pop().remove();\n }\n return this;\n };\n /*\\\n * Set.bind\n [ method ]\n **\n * Specifies how to handle a specific attribute when applied\n * to a set.\n *\n **\n - attr (string) attribute name\n - callback (function) function to run\n * or\n - attr (string) attribute name\n - element (Element) specific element in the set to apply the attribute to\n * or\n - attr (string) attribute name\n - element (Element) specific element in the set to apply the attribute to\n - eattr (string) attribute on the element to bind the attribute to\n = (object) Set object\n \\*/\n setproto.bind = function (attr, a, b) {\n var data = {};\n if (typeof a == \"function\") {\n this.bindings[attr] = a;\n } else {\n var aname = b || attr;\n this.bindings[attr] = function (v) {\n data[aname] = v;\n a.attr(data);\n };\n }\n return this;\n };\n /*\\\n * Set.attr\n [ method ]\n **\n * Equivalent of @Element.attr.\n = (object) Set object\n \\*/\n setproto.attr = function (value) {\n var unbound = {};\n for (var k in value) {\n if (this.bindings[k]) {\n this.bindings[k](value[k]);\n } else {\n unbound[k] = value[k];\n }\n }\n for (var i = 0, ii = this.items.length; i < ii; i++) {\n this.items[i].attr(unbound);\n }\n return this;\n };\n /*\\\n * Set.clear\n [ method ]\n **\n * Removes all elements from the set\n \\*/\n setproto.clear = function () {\n while (this.length) {\n this.pop();\n }\n };\n /*\\\n * Set.splice\n [ method ]\n **\n * Removes range of elements from the set\n **\n - index (number) position of the deletion\n - count (number) number of element to remove\n - insertion… (object) #optional elements to insert\n = (object) set elements that were deleted\n \\*/\n setproto.splice = function (index, count, insertion) {\n index = index < 0 ? mmax(this.length + index, 0) : index;\n count = mmax(0, mmin(this.length - index, count));\n var tail = [],\n todel = [],\n args = [],\n i;\n for (i = 2; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n for (i = 0; i < count; i++) {\n todel.push(this[index + i]);\n }\n for (; i < this.length - index; i++) {\n tail.push(this[index + i]);\n }\n var arglen = args.length;\n for (i = 0; i < arglen + tail.length; i++) {\n this.items[index + i] = this[index + i] = i < arglen ? args[i] : tail[i - arglen];\n }\n i = this.items.length = this.length -= count - arglen;\n while (this[i]) {\n delete this[i++];\n }\n return new Set(todel);\n };\n /*\\\n * Set.exclude\n [ method ]\n **\n * Removes given element from the set\n **\n - element (object) element to remove\n = (boolean) `true` if object was found and removed from the set\n \\*/\n setproto.exclude = function (el) {\n for (var i = 0, ii = this.length; i < ii; i++) if (this[i] == el) {\n this.splice(i, 1);\n return true;\n }\n return false;\n };\n /*\\\n * Set.insertAfter\n [ method ]\n **\n * Inserts set elements after given element.\n **\n - element (object) set will be inserted after this element\n = (object) Set object\n \\*/\n setproto.insertAfter = function (el) {\n var i = this.items.length;\n while (i--) {\n this.items[i].insertAfter(el);\n }\n return this;\n };\n /*\\\n * Set.getBBox\n [ method ]\n **\n * Union of all bboxes of the set. See @Element.getBBox.\n = (object) bounding box descriptor. See @Element.getBBox.\n \\*/\n setproto.getBBox = function () {\n var x = [],\n y = [],\n x2 = [],\n y2 = [];\n for (var i = this.items.length; i--;) if (!this.items[i].removed) {\n var box = this.items[i].getBBox();\n x.push(box.x);\n y.push(box.y);\n x2.push(box.x + box.width);\n y2.push(box.y + box.height);\n }\n x = mmin.apply(0, x);\n y = mmin.apply(0, y);\n x2 = mmax.apply(0, x2);\n y2 = mmax.apply(0, y2);\n return {\n x: x,\n y: y,\n x2: x2,\n y2: y2,\n width: x2 - x,\n height: y2 - y,\n cx: x + (x2 - x) / 2,\n cy: y + (y2 - y) / 2\n };\n };\n /*\\\n * Set.insertAfter\n [ method ]\n **\n * Creates a clone of the set.\n **\n = (object) New Set object\n \\*/\n setproto.clone = function (s) {\n s = new Set;\n for (var i = 0, ii = this.items.length; i < ii; i++) {\n s.push(this.items[i].clone());\n }\n return s;\n };\n setproto.toString = function () {\n return \"Snap\\u2018s set\";\n };\n setproto.type = \"set\";\n // export\n /*\\\n * Snap.Set\n [ property ]\n **\n * Set constructor.\n \\*/\n Snap.Set = Set;\n /*\\\n * Snap.set\n [ method ]\n **\n * Creates a set and fills it with list of arguments.\n **\n = (object) New Set object\n | var r = paper.rect(0, 0, 10, 10),\n | s1 = Snap.set(), // empty set\n | s2 = Snap.set(r, paper.circle(100, 100, 20)); // prefilled set\n \\*/\n Snap.set = function () {\n var set = new Set;\n if (arguments.length) {\n set.push.apply(set, Array.prototype.slice.call(arguments, 0));\n }\n return set;\n };\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob) {\n var names = {},\n reUnit = /[%a-z]+$/i,\n Str = String;\n names.stroke = names.fill = \"colour\";\n function getEmpty(item) {\n var l = item[0];\n switch (l.toLowerCase()) {\n case \"t\": return [l, 0, 0];\n case \"m\": return [l, 1, 0, 0, 1, 0, 0];\n case \"r\": if (item.length == 4) {\n return [l, 0, item[2], item[3]];\n } else {\n return [l, 0];\n }\n case \"s\": if (item.length == 5) {\n return [l, 1, 1, item[3], item[4]];\n } else if (item.length == 3) {\n return [l, 1, 1];\n } else {\n return [l, 1];\n }\n }\n }\n function equaliseTransform(t1, t2, getBBox) {\n t1 = t1 || new Snap.Matrix;\n t2 = t2 || new Snap.Matrix;\n t1 = Snap.parseTransformString(t1.toTransformString()) || [];\n t2 = Snap.parseTransformString(t2.toTransformString()) || [];\n var maxlength = Math.max(t1.length, t2.length),\n from = [],\n to = [],\n i = 0, j, jj,\n tt1, tt2;\n for (; i < maxlength; i++) {\n tt1 = t1[i] || getEmpty(t2[i]);\n tt2 = t2[i] || getEmpty(tt1);\n if (tt1[0] != tt2[0] ||\n tt1[0].toLowerCase() == \"r\" && (tt1[2] != tt2[2] || tt1[3] != tt2[3]) ||\n tt1[0].toLowerCase() == \"s\" && (tt1[3] != tt2[3] || tt1[4] != tt2[4])\n ) {\n t1 = Snap._.transform2matrix(t1, getBBox());\n t2 = Snap._.transform2matrix(t2, getBBox());\n from = [[\"m\", t1.a, t1.b, t1.c, t1.d, t1.e, t1.f]];\n to = [[\"m\", t2.a, t2.b, t2.c, t2.d, t2.e, t2.f]];\n break;\n }\n from[i] = [];\n to[i] = [];\n for (j = 0, jj = Math.max(tt1.length, tt2.length); j < jj; j++) {\n j in tt1 && (from[i][j] = tt1[j]);\n j in tt2 && (to[i][j] = tt2[j]);\n }\n }\n return {\n from: path2array(from),\n to: path2array(to),\n f: getPath(from)\n };\n }\n function getNumber(val) {\n return val;\n }\n function getUnit(unit) {\n return function (val) {\n return +val.toFixed(3) + unit;\n };\n }\n function getViewBox(val) {\n return val.join(\" \");\n }\n function getColour(clr) {\n return Snap.rgb(clr[0], clr[1], clr[2], clr[3]);\n }\n function getPath(path) {\n var k = 0, i, ii, j, jj, out, a, b = [];\n for (i = 0, ii = path.length; i < ii; i++) {\n out = \"[\";\n a = ['\"' + path[i][0] + '\"'];\n for (j = 1, jj = path[i].length; j < jj; j++) {\n a[j] = \"val[\" + k++ + \"]\";\n }\n out += a + \"]\";\n b[i] = out;\n }\n return Function(\"val\", \"return Snap.path.toString.call([\" + b + \"])\");\n }\n function path2array(path) {\n var out = [];\n for (var i = 0, ii = path.length; i < ii; i++) {\n for (var j = 1, jj = path[i].length; j < jj; j++) {\n out.push(path[i][j]);\n }\n }\n return out;\n }\n function isNumeric(obj) {\n return isFinite(obj);\n }\n function arrayEqual(arr1, arr2) {\n if (!Snap.is(arr1, \"array\") || !Snap.is(arr2, \"array\")) {\n return false;\n }\n return arr1.toString() == arr2.toString();\n }\n Element.prototype.equal = function (name, b) {\n return eve(\"snap.util.equal\", this, name, b).firstDefined();\n };\n eve.on(\"snap.util.equal\", function (name, b) {\n var A, B, a = Str(this.attr(name) || \"\"),\n el = this;\n if (names[name] == \"colour\") {\n A = Snap.color(a);\n B = Snap.color(b);\n return {\n from: [A.r, A.g, A.b, A.opacity],\n to: [B.r, B.g, B.b, B.opacity],\n f: getColour\n };\n }\n if (name == \"viewBox\") {\n A = this.attr(name).vb.split(\" \").map(Number);\n B = b.split(\" \").map(Number);\n return {\n from: A,\n to: B,\n f: getViewBox\n };\n }\n if (name == \"transform\" || name == \"gradientTransform\" || name == \"patternTransform\") {\n if (typeof b == \"string\") {\n b = Str(b).replace(/\\.{3}|\\u2026/g, a);\n }\n a = this.matrix;\n if (!Snap._.rgTransform.test(b)) {\n b = Snap._.transform2matrix(Snap._.svgTransform2string(b), this.getBBox());\n } else {\n b = Snap._.transform2matrix(b, this.getBBox());\n }\n return equaliseTransform(a, b, function () {\n return el.getBBox(1);\n });\n }\n if (name == \"d\" || name == \"path\") {\n A = Snap.path.toCubic(a, b);\n return {\n from: path2array(A[0]),\n to: path2array(A[1]),\n f: getPath(A[0])\n };\n }\n if (name == \"points\") {\n A = Str(a).split(Snap._.separator);\n B = Str(b).split(Snap._.separator);\n return {\n from: A,\n to: B,\n f: function (val) { return val; }\n };\n }\n if (isNumeric(a) && isNumeric(b)) {\n return {\n from: parseFloat(a),\n to: parseFloat(b),\n f: getNumber\n };\n }\n var aUnit = a.match(reUnit),\n bUnit = Str(b).match(reUnit);\n if (aUnit && arrayEqual(aUnit, bUnit)) {\n return {\n from: parseFloat(a),\n to: parseFloat(b),\n f: getUnit(aUnit)\n };\n } else {\n return {\n from: this.asPX(name),\n to: this.asPX(name, b),\n f: getNumber\n };\n }\n });\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n// \n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n// \n// http://www.apache.org/licenses/LICENSE-2.0\n// \n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob) {\n var elproto = Element.prototype,\n has = \"hasOwnProperty\",\n supportsTouch = \"createTouch\" in glob.doc,\n events = [\n \"click\", \"dblclick\", \"mousedown\", \"mousemove\", \"mouseout\",\n \"mouseover\", \"mouseup\", \"touchstart\", \"touchmove\", \"touchend\",\n \"touchcancel\"\n ],\n touchMap = {\n mousedown: \"touchstart\",\n mousemove: \"touchmove\",\n mouseup: \"touchend\"\n },\n getScroll = function (xy, el) {\n var name = xy == \"y\" ? \"scrollTop\" : \"scrollLeft\",\n doc = el && el.node ? el.node.ownerDocument : glob.doc;\n return doc[name in doc.documentElement ? \"documentElement\" : \"body\"][name];\n },\n preventDefault = function () {\n this.returnValue = false;\n },\n preventTouch = function () {\n return this.originalEvent.preventDefault();\n },\n stopPropagation = function () {\n this.cancelBubble = true;\n },\n stopTouch = function () {\n return this.originalEvent.stopPropagation();\n },\n addEvent = function (obj, type, fn, element) {\n var realName = supportsTouch && touchMap[type] ? touchMap[type] : type,\n f = function (e) {\n var scrollY = getScroll(\"y\", element),\n scrollX = getScroll(\"x\", element);\n if (supportsTouch && touchMap[has](type)) {\n for (var i = 0, ii = e.targetTouches && e.targetTouches.length; i < ii; i++) {\n if (e.targetTouches[i].target == obj || obj.contains(e.targetTouches[i].target)) {\n var olde = e;\n e = e.targetTouches[i];\n e.originalEvent = olde;\n e.preventDefault = preventTouch;\n e.stopPropagation = stopTouch;\n break;\n }\n }\n }\n var x = e.clientX + scrollX,\n y = e.clientY + scrollY;\n return fn.call(element, e, x, y);\n };\n\n if (type !== realName) {\n obj.addEventListener(type, f, false);\n }\n\n obj.addEventListener(realName, f, false);\n\n return function () {\n if (type !== realName) {\n obj.removeEventListener(type, f, false);\n }\n\n obj.removeEventListener(realName, f, false);\n return true;\n };\n },\n drag = [],\n dragMove = function (e) {\n var x = e.clientX,\n y = e.clientY,\n scrollY = getScroll(\"y\"),\n scrollX = getScroll(\"x\"),\n dragi,\n j = drag.length;\n while (j--) {\n dragi = drag[j];\n if (supportsTouch) {\n var i = e.touches && e.touches.length,\n touch;\n while (i--) {\n touch = e.touches[i];\n if (touch.identifier == dragi.el._drag.id || dragi.el.node.contains(touch.target)) {\n x = touch.clientX;\n y = touch.clientY;\n (e.originalEvent ? e.originalEvent : e).preventDefault();\n break;\n }\n }\n } else {\n e.preventDefault();\n }\n var node = dragi.el.node,\n o,\n next = node.nextSibling,\n parent = node.parentNode,\n display = node.style.display;\n // glob.win.opera && parent.removeChild(node);\n // node.style.display = \"none\";\n // o = dragi.el.paper.getElementByPoint(x, y);\n // node.style.display = display;\n // glob.win.opera && (next ? parent.insertBefore(node, next) : parent.appendChild(node));\n // o && eve(\"snap.drag.over.\" + dragi.el.id, dragi.el, o);\n x += scrollX;\n y += scrollY;\n eve(\"snap.drag.move.\" + dragi.el.id, dragi.move_scope || dragi.el, x - dragi.el._drag.x, y - dragi.el._drag.y, x, y, e);\n }\n },\n dragUp = function (e) {\n Snap.unmousemove(dragMove).unmouseup(dragUp);\n var i = drag.length,\n dragi;\n while (i--) {\n dragi = drag[i];\n dragi.el._drag = {};\n eve(\"snap.drag.end.\" + dragi.el.id, dragi.end_scope || dragi.start_scope || dragi.move_scope || dragi.el, e);\n eve.off(\"snap.drag.*.\" + dragi.el.id);\n }\n drag = [];\n };\n /*\\\n * Element.click\n [ method ]\n **\n * Adds a click event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.unclick\n [ method ]\n **\n * Removes a click event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.dblclick\n [ method ]\n **\n * Adds a double click event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.undblclick\n [ method ]\n **\n * Removes a double click event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.mousedown\n [ method ]\n **\n * Adds a mousedown event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.unmousedown\n [ method ]\n **\n * Removes a mousedown event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.mousemove\n [ method ]\n **\n * Adds a mousemove event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.unmousemove\n [ method ]\n **\n * Removes a mousemove event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.mouseout\n [ method ]\n **\n * Adds a mouseout event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.unmouseout\n [ method ]\n **\n * Removes a mouseout event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.mouseover\n [ method ]\n **\n * Adds a mouseover event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.unmouseover\n [ method ]\n **\n * Removes a mouseover event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.mouseup\n [ method ]\n **\n * Adds a mouseup event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.unmouseup\n [ method ]\n **\n * Removes a mouseup event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.touchstart\n [ method ]\n **\n * Adds a touchstart event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.untouchstart\n [ method ]\n **\n * Removes a touchstart event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.touchmove\n [ method ]\n **\n * Adds a touchmove event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.untouchmove\n [ method ]\n **\n * Removes a touchmove event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.touchend\n [ method ]\n **\n * Adds a touchend event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.untouchend\n [ method ]\n **\n * Removes a touchend event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.touchcancel\n [ method ]\n **\n * Adds a touchcancel event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.untouchcancel\n [ method ]\n **\n * Removes a touchcancel event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n for (var i = events.length; i--;) {\n (function (eventName) {\n Snap[eventName] = elproto[eventName] = function (fn, scope) {\n if (Snap.is(fn, \"function\")) {\n this.events = this.events || [];\n this.events.push({\n name: eventName,\n f: fn,\n unbind: addEvent(this.node || document, eventName, fn, scope || this)\n });\n } else {\n for (var i = 0, ii = this.events.length; i < ii; i++) if (this.events[i].name == eventName) {\n try {\n this.events[i].f.call(this);\n } catch (e) {}\n }\n }\n return this;\n };\n Snap[\"un\" + eventName] =\n elproto[\"un\" + eventName] = function (fn) {\n var events = this.events || [],\n l = events.length;\n while (l--) if (events[l].name == eventName &&\n (events[l].f == fn || !fn)) {\n events[l].unbind();\n events.splice(l, 1);\n !events.length && delete this.events;\n return this;\n }\n return this;\n };\n })(events[i]);\n }\n /*\\\n * Element.hover\n [ method ]\n **\n * Adds hover event handlers to the element\n - f_in (function) handler for hover in\n - f_out (function) handler for hover out\n - icontext (object) #optional context for hover in handler\n - ocontext (object) #optional context for hover out handler\n = (object) @Element\n \\*/\n elproto.hover = function (f_in, f_out, scope_in, scope_out) {\n return this.mouseover(f_in, scope_in).mouseout(f_out, scope_out || scope_in);\n };\n /*\\\n * Element.unhover\n [ method ]\n **\n * Removes hover event handlers from the element\n - f_in (function) handler for hover in\n - f_out (function) handler for hover out\n = (object) @Element\n \\*/\n elproto.unhover = function (f_in, f_out) {\n return this.unmouseover(f_in).unmouseout(f_out);\n };\n var draggable = [];\n // SIERRA unclear what _context_ refers to for starting, ending, moving the drag gesture.\n // SIERRA Element.drag(): _x position of the mouse_: Where are the x/y values offset from?\n // SIERRA Element.drag(): much of this member's doc appears to be duplicated for some reason.\n // SIERRA Unclear about this sentence: _Additionally following drag events will be triggered: drag.start.<id> on start, drag.end.<id> on end and drag.move.<id> on every move._ Is there a global _drag_ object to which you can assign handlers keyed by an element's ID?\n /*\\\n * Element.drag\n [ method ]\n **\n * Adds event handlers for an element's drag gesture\n **\n - onmove (function) handler for moving\n - onstart (function) handler for drag start\n - onend (function) handler for drag end\n - mcontext (object) #optional context for moving handler\n - scontext (object) #optional context for drag start handler\n - econtext (object) #optional context for drag end handler\n * Additionaly following `drag` events are triggered: `drag.start.<id>` on start, \n * `drag.end.<id>` on end and `drag.move.<id>` on every move. When element is dragged over another element \n * `drag.over.<id>` fires as well.\n *\n * Start event and start handler are called in specified context or in context of the element with following parameters:\n o x (number) x position of the mouse\n o y (number) y position of the mouse\n o event (object) DOM event object\n * Move event and move handler are called in specified context or in context of the element with following parameters:\n o dx (number) shift by x from the start point\n o dy (number) shift by y from the start point\n o x (number) x position of the mouse\n o y (number) y position of the mouse\n o event (object) DOM event object\n * End event and end handler are called in specified context or in context of the element with following parameters:\n o event (object) DOM event object\n = (object) @Element\n \\*/\n elproto.drag = function (onmove, onstart, onend, move_scope, start_scope, end_scope) {\n var el = this;\n if (!arguments.length) {\n var origTransform;\n return el.drag(function (dx, dy) {\n this.attr({\n transform: origTransform + (origTransform ? \"T\" : \"t\") + [dx, dy]\n });\n }, function () {\n origTransform = this.transform().local;\n });\n }\n function start(e, x, y) {\n (e.originalEvent || e).preventDefault();\n el._drag.x = x;\n el._drag.y = y;\n el._drag.id = e.identifier;\n !drag.length && Snap.mousemove(dragMove).mouseup(dragUp);\n drag.push({el: el, move_scope: move_scope, start_scope: start_scope, end_scope: end_scope});\n onstart && eve.on(\"snap.drag.start.\" + el.id, onstart);\n onmove && eve.on(\"snap.drag.move.\" + el.id, onmove);\n onend && eve.on(\"snap.drag.end.\" + el.id, onend);\n eve(\"snap.drag.start.\" + el.id, start_scope || move_scope || el, x, y, e);\n }\n function init(e, x, y) {\n eve(\"snap.draginit.\" + el.id, el, e, x, y);\n }\n eve.on(\"snap.draginit.\" + el.id, start);\n el._drag = {};\n draggable.push({el: el, start: start, init: init});\n el.mousedown(init);\n return el;\n };\n /*\n * Element.onDragOver\n [ method ]\n **\n * Shortcut to assign event handler for `drag.over.<id>` event, where `id` is the element's `id` (see @Element.id)\n - f (function) handler for event, first argument would be the element you are dragging over\n \\*/\n // elproto.onDragOver = function (f) {\n // f ? eve.on(\"snap.drag.over.\" + this.id, f) : eve.unbind(\"snap.drag.over.\" + this.id);\n // };\n /*\\\n * Element.undrag\n [ method ]\n **\n * Removes all drag event handlers from the given element\n \\*/\n elproto.undrag = function () {\n var i = draggable.length;\n while (i--) if (draggable[i].el == this) {\n this.unmousedown(draggable[i].init);\n draggable.splice(i, 1);\n eve.unbind(\"snap.drag.*.\" + this.id);\n eve.unbind(\"snap.draginit.\" + this.id);\n }\n !draggable.length && Snap.unmousemove(dragMove).unmouseup(dragUp);\n return this;\n };\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob) {\n var elproto = Element.prototype,\n pproto = Paper.prototype,\n rgurl = /^\\s*url\\((.+)\\)/,\n Str = String,\n $ = Snap._.$;\n Snap.filter = {};\n /*\\\n * Paper.filter\n [ method ]\n **\n * Creates a `<filter>` element\n **\n - filstr (string) SVG fragment of filter provided as a string\n = (object) @Element\n * Note: It is recommended to use filters embedded into the page inside an empty SVG element.\n > Usage\n | var f = paper.filter('<feGaussianBlur stdDeviation=\"2\"/>'),\n | c = paper.circle(10, 10, 10).attr({\n | filter: f\n | });\n \\*/\n pproto.filter = function (filstr) {\n var paper = this;\n if (paper.type != \"svg\") {\n paper = paper.paper;\n }\n var f = Snap.parse(Str(filstr)),\n id = Snap._.id(),\n width = paper.node.offsetWidth,\n height = paper.node.offsetHeight,\n filter = $(\"filter\");\n $(filter, {\n id: id,\n filterUnits: \"userSpaceOnUse\"\n });\n filter.appendChild(f.node);\n paper.defs.appendChild(filter);\n return new Element(filter);\n };\n\n eve.on(\"snap.util.getattr.filter\", function () {\n eve.stop();\n var p = $(this.node, \"filter\");\n if (p) {\n var match = Str(p).match(rgurl);\n return match && Snap.select(match[1]);\n }\n });\n eve.on(\"snap.util.attr.filter\", function (value) {\n if (value instanceof Element && value.type == \"filter\") {\n eve.stop();\n var id = value.node.id;\n if (!id) {\n $(value.node, {id: value.id});\n id = value.id;\n }\n $(this.node, {\n filter: Snap.url(id)\n });\n }\n if (!value || value == \"none\") {\n eve.stop();\n this.node.removeAttribute(\"filter\");\n }\n });\n /*\\\n * Snap.filter.blur\n [ method ]\n **\n * Returns an SVG markup string for the blur filter\n **\n - x (number) amount of horizontal blur, in pixels\n - y (number) #optional amount of vertical blur, in pixels\n = (string) filter representation\n > Usage\n | var f = paper.filter(Snap.filter.blur(5, 10)),\n | c = paper.circle(10, 10, 10).attr({\n | filter: f\n | });\n \\*/\n Snap.filter.blur = function (x, y) {\n if (x == null) {\n x = 2;\n }\n var def = y == null ? x : [x, y];\n return Snap.format('\\<feGaussianBlur stdDeviation=\"{def}\"/>', {\n def: def\n });\n };\n Snap.filter.blur.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.shadow\n [ method ]\n **\n * Returns an SVG markup string for the shadow filter\n **\n - dx (number) #optional horizontal shift of the shadow, in pixels\n - dy (number) #optional vertical shift of the shadow, in pixels\n - blur (number) #optional amount of blur\n - color (string) #optional color of the shadow\n - opacity (number) #optional `0..1` opacity of the shadow\n * or\n - dx (number) #optional horizontal shift of the shadow, in pixels\n - dy (number) #optional vertical shift of the shadow, in pixels\n - color (string) #optional color of the shadow\n - opacity (number) #optional `0..1` opacity of the shadow\n * which makes blur default to `4`. Or\n - dx (number) #optional horizontal shift of the shadow, in pixels\n - dy (number) #optional vertical shift of the shadow, in pixels\n - opacity (number) #optional `0..1` opacity of the shadow\n = (string) filter representation\n > Usage\n | var f = paper.filter(Snap.filter.shadow(0, 2, .3)),\n | c = paper.circle(10, 10, 10).attr({\n | filter: f\n | });\n \\*/\n Snap.filter.shadow = function (dx, dy, blur, color, opacity) {\n if (opacity == null) {\n if (color == null) {\n opacity = blur;\n blur = 4;\n color = \"#000\";\n } else {\n opacity = color;\n color = blur;\n blur = 4;\n }\n }\n if (blur == null) {\n blur = 4;\n }\n if (opacity == null) {\n opacity = 1;\n }\n if (dx == null) {\n dx = 0;\n dy = 2;\n }\n if (dy == null) {\n dy = dx;\n }\n color = Snap.color(color);\n return Snap.format('<feGaussianBlur in=\"SourceAlpha\" stdDeviation=\"{blur}\"/><feOffset dx=\"{dx}\" dy=\"{dy}\" result=\"offsetblur\"/><feFlood flood-color=\"{color}\"/><feComposite in2=\"offsetblur\" operator=\"in\"/><feComponentTransfer><feFuncA type=\"linear\" slope=\"{opacity}\"/></feComponentTransfer><feMerge><feMergeNode/><feMergeNode in=\"SourceGraphic\"/></feMerge>', {\n color: color,\n dx: dx,\n dy: dy,\n blur: blur,\n opacity: opacity\n });\n };\n Snap.filter.shadow.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.grayscale\n [ method ]\n **\n * Returns an SVG markup string for the grayscale filter\n **\n - amount (number) amount of filter (`0..1`)\n = (string) filter representation\n \\*/\n Snap.filter.grayscale = function (amount) {\n if (amount == null) {\n amount = 1;\n }\n return Snap.format('<feColorMatrix type=\"matrix\" values=\"{a} {b} {c} 0 0 {d} {e} {f} 0 0 {g} {b} {h} 0 0 0 0 0 1 0\"/>', {\n a: 0.2126 + 0.7874 * (1 - amount),\n b: 0.7152 - 0.7152 * (1 - amount),\n c: 0.0722 - 0.0722 * (1 - amount),\n d: 0.2126 - 0.2126 * (1 - amount),\n e: 0.7152 + 0.2848 * (1 - amount),\n f: 0.0722 - 0.0722 * (1 - amount),\n g: 0.2126 - 0.2126 * (1 - amount),\n h: 0.0722 + 0.9278 * (1 - amount)\n });\n };\n Snap.filter.grayscale.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.sepia\n [ method ]\n **\n * Returns an SVG markup string for the sepia filter\n **\n - amount (number) amount of filter (`0..1`)\n = (string) filter representation\n \\*/\n Snap.filter.sepia = function (amount) {\n if (amount == null) {\n amount = 1;\n }\n return Snap.format('<feColorMatrix type=\"matrix\" values=\"{a} {b} {c} 0 0 {d} {e} {f} 0 0 {g} {h} {i} 0 0 0 0 0 1 0\"/>', {\n a: 0.393 + 0.607 * (1 - amount),\n b: 0.769 - 0.769 * (1 - amount),\n c: 0.189 - 0.189 * (1 - amount),\n d: 0.349 - 0.349 * (1 - amount),\n e: 0.686 + 0.314 * (1 - amount),\n f: 0.168 - 0.168 * (1 - amount),\n g: 0.272 - 0.272 * (1 - amount),\n h: 0.534 - 0.534 * (1 - amount),\n i: 0.131 + 0.869 * (1 - amount)\n });\n };\n Snap.filter.sepia.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.saturate\n [ method ]\n **\n * Returns an SVG markup string for the saturate filter\n **\n - amount (number) amount of filter (`0..1`)\n = (string) filter representation\n \\*/\n Snap.filter.saturate = function (amount) {\n if (amount == null) {\n amount = 1;\n }\n return Snap.format('<feColorMatrix type=\"saturate\" values=\"{amount}\"/>', {\n amount: 1 - amount\n });\n };\n Snap.filter.saturate.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.hueRotate\n [ method ]\n **\n * Returns an SVG markup string for the hue-rotate filter\n **\n - angle (number) angle of rotation\n = (string) filter representation\n \\*/\n Snap.filter.hueRotate = function (angle) {\n angle = angle || 0;\n return Snap.format('<feColorMatrix type=\"hueRotate\" values=\"{angle}\"/>', {\n angle: angle\n });\n };\n Snap.filter.hueRotate.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.invert\n [ method ]\n **\n * Returns an SVG markup string for the invert filter\n **\n - amount (number) amount of filter (`0..1`)\n = (string) filter representation\n \\*/\n Snap.filter.invert = function (amount) {\n if (amount == null) {\n amount = 1;\n }\n// <feColorMatrix type=\"matrix\" values=\"-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0\" color-interpolation-filters=\"sRGB\"/>\n return Snap.format('<feComponentTransfer><feFuncR type=\"table\" tableValues=\"{amount} {amount2}\"/><feFuncG type=\"table\" tableValues=\"{amount} {amount2}\"/><feFuncB type=\"table\" tableValues=\"{amount} {amount2}\"/></feComponentTransfer>', {\n amount: amount,\n amount2: 1 - amount\n });\n };\n Snap.filter.invert.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.brightness\n [ method ]\n **\n * Returns an SVG markup string for the brightness filter\n **\n - amount (number) amount of filter (`0..1`)\n = (string) filter representation\n \\*/\n Snap.filter.brightness = function (amount) {\n if (amount == null) {\n amount = 1;\n }\n return Snap.format('<feComponentTransfer><feFuncR type=\"linear\" slope=\"{amount}\"/><feFuncG type=\"linear\" slope=\"{amount}\"/><feFuncB type=\"linear\" slope=\"{amount}\"/></feComponentTransfer>', {\n amount: amount\n });\n };\n Snap.filter.brightness.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.contrast\n [ method ]\n **\n * Returns an SVG markup string for the contrast filter\n **\n - amount (number) amount of filter (`0..1`)\n = (string) filter representation\n \\*/\n Snap.filter.contrast = function (amount) {\n if (amount == null) {\n amount = 1;\n }\n return Snap.format('<feComponentTransfer><feFuncR type=\"linear\" slope=\"{amount}\" intercept=\"{amount2}\"/><feFuncG type=\"linear\" slope=\"{amount}\" intercept=\"{amount2}\"/><feFuncB type=\"linear\" slope=\"{amount}\" intercept=\"{amount2}\"/></feComponentTransfer>', {\n amount: amount,\n amount2: .5 - amount / 2\n });\n };\n Snap.filter.contrast.toString = function () {\n return this();\n };\n});\n\n// Copyright (c) 2014 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var box = Snap._.box,\n is = Snap.is,\n firstLetter = /^[^a-z]*([tbmlrc])/i,\n toString = function () {\n return \"T\" + this.dx + \",\" + this.dy;\n };\n /*\\\n * Element.getAlign\n [ method ]\n **\n * Returns shift needed to align the element relatively to given element.\n * If no elements specified, parent `<svg>` container will be used.\n - el (object) @optional alignment element\n - way (string) one of six values: `\"top\"`, `\"middle\"`, `\"bottom\"`, `\"left\"`, `\"center\"`, `\"right\"`\n = (object|string) Object in format `{dx: , dy: }` also has a string representation as a transformation string\n > Usage\n | el.transform(el.getAlign(el2, \"top\"));\n * or\n | var dy = el.getAlign(el2, \"top\").dy;\n \\*/\n Element.prototype.getAlign = function (el, way) {\n if (way == null && is(el, \"string\")) {\n way = el;\n el = null;\n }\n el = el || this.paper;\n var bx = el.getBBox ? el.getBBox() : box(el),\n bb = this.getBBox(),\n out = {};\n way = way && way.match(firstLetter);\n way = way ? way[1].toLowerCase() : \"c\";\n switch (way) {\n case \"t\":\n out.dx = 0;\n out.dy = bx.y - bb.y;\n break;\n case \"b\":\n out.dx = 0;\n out.dy = bx.y2 - bb.y2;\n break;\n case \"m\":\n out.dx = 0;\n out.dy = bx.cy - bb.cy;\n break;\n case \"l\":\n out.dx = bx.x - bb.x;\n out.dy = 0;\n break;\n case \"r\":\n out.dx = bx.x2 - bb.x2;\n out.dy = 0;\n break;\n default:\n out.dx = bx.cx - bb.cx;\n out.dy = 0;\n break;\n }\n out.toString = toString;\n return out;\n };\n /*\\\n * Element.align\n [ method ]\n **\n * Aligns the element relatively to given one via transformation.\n * If no elements specified, parent `<svg>` container will be used.\n - el (object) @optional alignment element\n - way (string) one of six values: `\"top\"`, `\"middle\"`, `\"bottom\"`, `\"left\"`, `\"center\"`, `\"right\"`\n = (object) this element\n > Usage\n | el.align(el2, \"top\");\n * or\n | el.align(\"middle\");\n \\*/\n Element.prototype.align = function (el, way) {\n return this.transform(\"...\" + this.getAlign(el, way));\n };\n});\n\n// Copyright (c) 2016 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var elproto = Element.prototype,\n is = Snap.is,\n Str = String,\n has = \"hasOwnProperty\";\n function slice(from, to, f) {\n return function (arr) {\n var res = arr.slice(from, to);\n if (res.length == 1) {\n res = res[0];\n }\n return f ? f(res) : res;\n };\n }\n var Animation = function (attr, ms, easing, callback) {\n if (typeof easing == \"function\" && !easing.length) {\n callback = easing;\n easing = mina.linear;\n }\n this.attr = attr;\n this.dur = ms;\n easing && (this.easing = easing);\n callback && (this.callback = callback);\n };\n Snap._.Animation = Animation;\n /*\\\n * Snap.animation\n [ method ]\n **\n * Creates an animation object\n **\n - attr (object) attributes of final destination\n - duration (number) duration of the animation, in milliseconds\n - easing (function) #optional one of easing functions of @mina or custom one\n - callback (function) #optional callback function that fires when animation ends\n = (object) animation object\n \\*/\n Snap.animation = function (attr, ms, easing, callback) {\n return new Animation(attr, ms, easing, callback);\n };\n /*\\\n * Element.inAnim\n [ method ]\n **\n * Returns a set of animations that may be able to manipulate the current element\n **\n = (object) in format:\n o {\n o anim (object) animation object,\n o mina (object) @mina object,\n o curStatus (number) 0..1 — status of the animation: 0 — just started, 1 — just finished,\n o status (function) gets or sets the status of the animation,\n o stop (function) stops the animation\n o }\n \\*/\n elproto.inAnim = function () {\n var el = this,\n res = [];\n for (var id in el.anims) if (el.anims[has](id)) {\n (function (a) {\n res.push({\n anim: new Animation(a._attrs, a.dur, a.easing, a._callback),\n mina: a,\n curStatus: a.status(),\n status: function (val) {\n return a.status(val);\n },\n stop: function () {\n a.stop();\n }\n });\n }(el.anims[id]));\n }\n return res;\n };\n /*\\\n * Snap.animate\n [ method ]\n **\n * Runs generic animation of one number into another with a caring function\n **\n - from (number|array) number or array of numbers\n - to (number|array) number or array of numbers\n - setter (function) caring function that accepts one number argument\n - duration (number) duration, in milliseconds\n - easing (function) #optional easing function from @mina or custom\n - callback (function) #optional callback function to execute when animation ends\n = (object) animation object in @mina format\n o {\n o id (string) animation id, consider it read-only,\n o duration (function) gets or sets the duration of the animation,\n o easing (function) easing,\n o speed (function) gets or sets the speed of the animation,\n o status (function) gets or sets the status of the animation,\n o stop (function) stops the animation\n o }\n | var rect = Snap().rect(0, 0, 10, 10);\n | Snap.animate(0, 10, function (val) {\n | rect.attr({\n | x: val\n | });\n | }, 1000);\n | // in given context is equivalent to\n | rect.animate({x: 10}, 1000);\n \\*/\n Snap.animate = function (from, to, setter, ms, easing, callback) {\n if (typeof easing == \"function\" && !easing.length) {\n callback = easing;\n easing = mina.linear;\n }\n var now = mina.time(),\n anim = mina(from, to, now, now + ms, mina.time, setter, easing);\n callback && eve.once(\"mina.finish.\" + anim.id, callback);\n return anim;\n };\n /*\\\n * Element.stop\n [ method ]\n **\n * Stops all the animations for the current element\n **\n = (Element) the current element\n \\*/\n elproto.stop = function () {\n var anims = this.inAnim();\n for (var i = 0, ii = anims.length; i < ii; i++) {\n anims[i].stop();\n }\n return this;\n };\n /*\\\n * Element.animate\n [ method ]\n **\n * Animates the given attributes of the element\n **\n - attrs (object) key-value pairs of destination attributes\n - duration (number) duration of the animation in milliseconds\n - easing (function) #optional easing function from @mina or custom\n - callback (function) #optional callback function that executes when the animation ends\n = (Element) the current element\n \\*/\n elproto.animate = function (attrs, ms, easing, callback) {\n if (typeof easing == \"function\" && !easing.length) {\n callback = easing;\n easing = mina.linear;\n }\n if (attrs instanceof Animation) {\n callback = attrs.callback;\n easing = attrs.easing;\n ms = attrs.dur;\n attrs = attrs.attr;\n }\n var fkeys = [], tkeys = [], keys = {}, from, to, f, eq,\n el = this;\n for (var key in attrs) if (attrs[has](key)) {\n if (el.equal) {\n eq = el.equal(key, Str(attrs[key]));\n from = eq.from;\n to = eq.to;\n f = eq.f;\n } else {\n from = +el.attr(key);\n to = +attrs[key];\n }\n var len = is(from, \"array\") ? from.length : 1;\n keys[key] = slice(fkeys.length, fkeys.length + len, f);\n fkeys = fkeys.concat(from);\n tkeys = tkeys.concat(to);\n }\n var now = mina.time(),\n anim = mina(fkeys, tkeys, now, now + ms, mina.time, function (val) {\n var attr = {};\n for (var key in keys) if (keys[has](key)) {\n attr[key] = keys[key](val);\n }\n el.attr(attr);\n }, easing);\n el.anims[anim.id] = anim;\n anim._attrs = attrs;\n anim._callback = callback;\n eve(\"snap.animcreated.\" + el.id, anim);\n eve.once(\"mina.finish.\" + anim.id, function () {\n eve.off(\"mina.*.\" + anim.id);\n delete el.anims[anim.id];\n callback && callback.call(el);\n });\n eve.once(\"mina.stop.\" + anim.id, function () {\n eve.off(\"mina.*.\" + anim.id);\n delete el.anims[anim.id];\n });\n return el;\n };\n});\n\n// Copyright (c) 2017 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob) {\n // Colours are from https://www.materialui.co\n var red = \"#ffebee#ffcdd2#ef9a9a#e57373#ef5350#f44336#e53935#d32f2f#c62828#b71c1c#ff8a80#ff5252#ff1744#d50000\",\n pink = \"#FCE4EC#F8BBD0#F48FB1#F06292#EC407A#E91E63#D81B60#C2185B#AD1457#880E4F#FF80AB#FF4081#F50057#C51162\",\n purple = \"#F3E5F5#E1BEE7#CE93D8#BA68C8#AB47BC#9C27B0#8E24AA#7B1FA2#6A1B9A#4A148C#EA80FC#E040FB#D500F9#AA00FF\",\n deeppurple = \"#EDE7F6#D1C4E9#B39DDB#9575CD#7E57C2#673AB7#5E35B1#512DA8#4527A0#311B92#B388FF#7C4DFF#651FFF#6200EA\",\n indigo = \"#E8EAF6#C5CAE9#9FA8DA#7986CB#5C6BC0#3F51B5#3949AB#303F9F#283593#1A237E#8C9EFF#536DFE#3D5AFE#304FFE\",\n blue = \"#E3F2FD#BBDEFB#90CAF9#64B5F6#64B5F6#2196F3#1E88E5#1976D2#1565C0#0D47A1#82B1FF#448AFF#2979FF#2962FF\",\n lightblue = \"#E1F5FE#B3E5FC#81D4FA#4FC3F7#29B6F6#03A9F4#039BE5#0288D1#0277BD#01579B#80D8FF#40C4FF#00B0FF#0091EA\",\n cyan = \"#E0F7FA#B2EBF2#80DEEA#4DD0E1#26C6DA#00BCD4#00ACC1#0097A7#00838F#006064#84FFFF#18FFFF#00E5FF#00B8D4\",\n teal = \"#E0F2F1#B2DFDB#80CBC4#4DB6AC#26A69A#009688#00897B#00796B#00695C#004D40#A7FFEB#64FFDA#1DE9B6#00BFA5\",\n green = \"#E8F5E9#C8E6C9#A5D6A7#81C784#66BB6A#4CAF50#43A047#388E3C#2E7D32#1B5E20#B9F6CA#69F0AE#00E676#00C853\",\n lightgreen = \"#F1F8E9#DCEDC8#C5E1A5#AED581#9CCC65#8BC34A#7CB342#689F38#558B2F#33691E#CCFF90#B2FF59#76FF03#64DD17\",\n lime = \"#F9FBE7#F0F4C3#E6EE9C#DCE775#D4E157#CDDC39#C0CA33#AFB42B#9E9D24#827717#F4FF81#EEFF41#C6FF00#AEEA00\",\n yellow = \"#FFFDE7#FFF9C4#FFF59D#FFF176#FFEE58#FFEB3B#FDD835#FBC02D#F9A825#F57F17#FFFF8D#FFFF00#FFEA00#FFD600\",\n amber = \"#FFF8E1#FFECB3#FFE082#FFD54F#FFCA28#FFC107#FFB300#FFA000#FF8F00#FF6F00#FFE57F#FFD740#FFC400#FFAB00\",\n orange = \"#FFF3E0#FFE0B2#FFCC80#FFB74D#FFA726#FF9800#FB8C00#F57C00#EF6C00#E65100#FFD180#FFAB40#FF9100#FF6D00\",\n deeporange = \"#FBE9E7#FFCCBC#FFAB91#FF8A65#FF7043#FF5722#F4511E#E64A19#D84315#BF360C#FF9E80#FF6E40#FF3D00#DD2C00\",\n brown = \"#EFEBE9#D7CCC8#BCAAA4#A1887F#8D6E63#795548#6D4C41#5D4037#4E342E#3E2723\",\n grey = \"#FAFAFA#F5F5F5#EEEEEE#E0E0E0#BDBDBD#9E9E9E#757575#616161#424242#212121\",\n bluegrey = \"#ECEFF1#CFD8DC#B0BEC5#90A4AE#78909C#607D8B#546E7A#455A64#37474F#263238\";\n /*\\\n * Snap.mui\n [ property ]\n **\n * Contain Material UI colours.\n | Snap().rect(0, 0, 10, 10).attr({fill: Snap.mui.deeppurple, stroke: Snap.mui.amber[600]});\n # For colour reference: <a href=\"https://www.materialui.co\">https://www.materialui.co</a>.\n \\*/\n Snap.mui = {};\n /*\\\n * Snap.flat\n [ property ]\n **\n * Contain Flat UI colours.\n | Snap().rect(0, 0, 10, 10).attr({fill: Snap.flat.carrot, stroke: Snap.flat.wetasphalt});\n # For colour reference: <a href=\"https://www.materialui.co\">https://www.materialui.co</a>.\n \\*/\n Snap.flat = {};\n function saveColor(colors) {\n colors = colors.split(/(?=#)/);\n var color = new String(colors[5]);\n color[50] = colors[0];\n color[100] = colors[1];\n color[200] = colors[2];\n color[300] = colors[3];\n color[400] = colors[4];\n color[500] = colors[5];\n color[600] = colors[6];\n color[700] = colors[7];\n color[800] = colors[8];\n color[900] = colors[9];\n if (colors[10]) {\n color.A100 = colors[10];\n color.A200 = colors[11];\n color.A400 = colors[12];\n color.A700 = colors[13];\n }\n return color;\n }\n Snap.mui.red = saveColor(red);\n Snap.mui.pink = saveColor(pink);\n Snap.mui.purple = saveColor(purple);\n Snap.mui.deeppurple = saveColor(deeppurple);\n Snap.mui.indigo = saveColor(indigo);\n Snap.mui.blue = saveColor(blue);\n Snap.mui.lightblue = saveColor(lightblue);\n Snap.mui.cyan = saveColor(cyan);\n Snap.mui.teal = saveColor(teal);\n Snap.mui.green = saveColor(green);\n Snap.mui.lightgreen = saveColor(lightgreen);\n Snap.mui.lime = saveColor(lime);\n Snap.mui.yellow = saveColor(yellow);\n Snap.mui.amber = saveColor(amber);\n Snap.mui.orange = saveColor(orange);\n Snap.mui.deeporange = saveColor(deeporange);\n Snap.mui.brown = saveColor(brown);\n Snap.mui.grey = saveColor(grey);\n Snap.mui.bluegrey = saveColor(bluegrey);\n Snap.flat.turquoise = \"#1abc9c\";\n Snap.flat.greensea = \"#16a085\";\n Snap.flat.sunflower = \"#f1c40f\";\n Snap.flat.orange = \"#f39c12\";\n Snap.flat.emerland = \"#2ecc71\";\n Snap.flat.nephritis = \"#27ae60\";\n Snap.flat.carrot = \"#e67e22\";\n Snap.flat.pumpkin = \"#d35400\";\n Snap.flat.peterriver = \"#3498db\";\n Snap.flat.belizehole = \"#2980b9\";\n Snap.flat.alizarin = \"#e74c3c\";\n Snap.flat.pomegranate = \"#c0392b\";\n Snap.flat.amethyst = \"#9b59b6\";\n Snap.flat.wisteria = \"#8e44ad\";\n Snap.flat.clouds = \"#ecf0f1\";\n Snap.flat.silver = \"#bdc3c7\";\n Snap.flat.wetasphalt = \"#34495e\";\n Snap.flat.midnightblue = \"#2c3e50\";\n Snap.flat.concrete = \"#95a5a6\";\n Snap.flat.asbestos = \"#7f8c8d\";\n /*\\\n * Snap.importMUIColors\n [ method ]\n **\n * Imports Material UI colours into global object.\n | Snap.importMUIColors();\n | Snap().rect(0, 0, 10, 10).attr({fill: deeppurple, stroke: amber[600]});\n # For colour reference: <a href=\"https://www.materialui.co\">https://www.materialui.co</a>.\n \\*/\n Snap.importMUIColors = function () {\n for (var color in Snap.mui) {\n if (Snap.mui.hasOwnProperty(color)) {\n window[color] = Snap.mui[color];\n }\n }\n };\n});\n\nmodule.exports = Snap\n","var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// 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","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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__.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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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 = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","__webpack_require__.nc = undefined;","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","// MIT License\n// Copyright (c) 2019-present StringEpsilon <StringEpsilon@gmail.com>\n// Copyright (c) 2017-2019 James Kyle <me@thejameskyle.com>\n// https://github.com/StringEpsilon/mini-create-react-context\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nconst MAX_SIGNED_31_BIT_INT = 1073741823;\n\nconst commonjsGlobal =\n typeof globalThis !== \"undefined\" // 'global proper'\n ? // eslint-disable-next-line no-undef\n globalThis\n : typeof window !== \"undefined\"\n ? window // Browser\n : typeof global !== \"undefined\"\n ? global // node.js\n : {};\n\nfunction getUniqueId() {\n let key = \"__global_unique_id__\";\n return (commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1);\n}\n\n// Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // eslint-disable-next-line no-self-compare\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n let handlers = [];\n return {\n on(handler) {\n handlers.push(handler);\n },\n\n off(handler) {\n handlers = handlers.filter(h => h !== handler);\n },\n\n get() {\n return value;\n },\n\n set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(handler => handler(value, changedBits));\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nexport default function createReactContext(defaultValue, calculateChangedBits) {\n const contextProp = \"__create-react-context-\" + getUniqueId() + \"__\";\n\n class Provider extends React.Component {\n emitter = createEventEmitter(this.props.value);\n\n static childContextTypes = {\n [contextProp]: PropTypes.object.isRequired\n };\n\n getChildContext() {\n return {\n [contextProp]: this.emitter\n };\n }\n\n componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n let oldValue = this.props.value;\n let newValue = nextProps.value;\n let changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits =\n typeof calculateChangedBits === \"function\"\n ? calculateChangedBits(oldValue, newValue)\n : MAX_SIGNED_31_BIT_INT;\n if (process.env.NODE_ENV !== \"production\") {\n warning(\n (changedBits & MAX_SIGNED_31_BIT_INT) === changedBits,\n \"calculateChangedBits: Expected the return value to be a \" +\n \"31-bit integer. Instead received: \" +\n changedBits\n );\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n }\n\n render() {\n return this.props.children;\n }\n }\n\n class Consumer extends React.Component {\n static contextTypes = {\n [contextProp]: PropTypes.object\n };\n\n observedBits;\n\n state = {\n value: this.getValue()\n };\n\n componentWillReceiveProps(nextProps) {\n let { observedBits } = nextProps;\n this.observedBits =\n observedBits === undefined || observedBits === null\n ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n }\n\n componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n let { observedBits } = this.props;\n this.observedBits =\n observedBits === undefined || observedBits === null\n ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n }\n\n componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n }\n\n getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n }\n\n onUpdate = (newValue, changedBits) => {\n const observedBits = this.observedBits | 0;\n if ((observedBits & changedBits) !== 0) {\n this.setState({ value: this.getValue() });\n }\n };\n\n render() {\n return onlyChild(this.props.children)(this.state.value);\n }\n }\n\n return {\n Provider,\n Consumer\n };\n}\n","// MIT License\n// Copyright (c) 2019-present StringEpsilon <StringEpsilon@gmail.com>\n// Copyright (c) 2017-2019 James Kyle <me@thejameskyle.com>\n// https://github.com/StringEpsilon/mini-create-react-context\nimport React from \"react\";\nimport createReactContext from \"./miniCreateReactContext\";\n\nexport default React.createContext || createReactContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"./createContext\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any <Redirect>s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the <Router> is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n this._pendingLocation = location;\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this.unlisten) {\n // Any pre-mount location changes have been captured at\n // this point, so unregister the listener.\n this.unlisten();\n }\n if (!this.props.staticContext) {\n this.unlisten = this.props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n }\n });\n }\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n }\n\n render() {\n return (\n <RouterContext.Provider\n value={{\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }}\n >\n <HistoryContext.Provider\n children={this.props.children || null}\n value={this.props.history}\n />\n </RouterContext.Provider>\n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change <Router history>\"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a <Router> that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return <Router history={this.history} children={this.props.children} />;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<MemoryRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `<Route${path ? ` path=\"${path}\"` : \"\"}>, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Route> outside a <Router>\");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // <Switch> already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return (\n <RouterContext.Provider value={props}>\n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n </RouterContext.Provider>\n );\n }}\n </RouterContext.Consumer>\n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use <Route component> and <Route children> in the same route; <Route component> will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use <Route render> and <Route children> in the same route; <Route render> will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n '<Route> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n '<Route> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with <StaticRouter>\", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" <Router>, so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return <Router {...rest} history={history} staticContext={context} />;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<StaticRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first <Route> that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Switch> outside a <Router>\");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two <Route>s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n </RouterContext.Consumer>\n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n '<Switch> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n '<Switch> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(RouterContext).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(RouterContext).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a <Router> that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return <Router history={this.history} children={this.props.children} />;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<BrowserRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a <Router> that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return <Router history={this.history} children={this.props.children} />;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<HashRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return <a {...props} />;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware <a>.\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Link> outside a <Router>\");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n const method = (replace || isDuplicateNavigation) ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n </RouterContext.Consumer>\n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A <Link> wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\", // TODO: deprecate\n activeStyle, // TODO: deprecate\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <NavLink> outside a <Router>\");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n let className =\n typeof classNameProp === \"function\"\n ? classNameProp(isActive)\n : classNameProp;\n\n let style =\n typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = { ...style, ...activeStyle };\n }\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return <Link {...props} />;\n }}\n </RouterContext.Consumer>\n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\",\n \"false\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n };\n}\n\nexport default NavLink;\n","function _taggedTemplateLiteral(e, t) {\n return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, {\n raw: {\n value: Object.freeze(t)\n }\n }));\n}\nexport { _taggedTemplateLiteral as 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}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","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}\nfunction _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}\nexport { _objectSpread2 as default };","import React, { Component } from 'react';\nimport Slider from 'react-slick';\nimport './slider.styles.scss';\nimport testimonialOne from '../../assets/home/michelle.png';\nimport testimonialTwo from '../../assets/home/jennifer.png';\nimport testimonialThree from '../../assets/home/bruce.png';\nimport testimonialFour from '../../assets/home/dixie.png';\nimport testimonialFive from '../../assets/home/linda.png';\nimport testimonialSix from '../../assets/home/celiaJason.png';\n\nexport default class SimpleSlider extends Component {\n\trender() {\n\t\tvar settings = {\n\t\t\tdots: true,\n\t\t\tinfinite: true,\n\t\t\tautoplay: false,\n\t\t\tspeed: 800,\n\n\t\t\tslidesToShow: 3,\n\t\t\tslidesToScroll: 3,\n\t\t\tpauseOnHover: true,\n\t\t\tcssEase: 'linear',\n\t\t\tresponsive: [\n\t\t\t\t{\n\t\t\t\t\tbreakpoint: 1024,\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\tslidesToShow: 3,\n\t\t\t\t\t\tslidesToScroll: 3,\n\t\t\t\t\t\tinfinite: true,\n\t\t\t\t\t\tdots: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbreakpoint: 800,\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\tslidesToShow: 1,\n\t\t\t\t\t\tslidesToScroll: 1,\n\t\t\t\t\t\tautoplay: true,\n\t\t\t\t\t\tdots: false,\n\t\t\t\t\t\tpauseOnHover: true,\n\t\t\t\t\t\tcssEase: 'linear',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbreakpoint: 480,\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\tslidesToShow: 1,\n\t\t\t\t\t\tslidesToScroll: 1,\n\t\t\t\t\t\tautoplay: true,\n\t\t\t\t\t\tdots: false,\n\t\t\t\t\t\tpauseOnHover: true,\n\t\t\t\t\t\tcssEase: 'linear',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t\treturn (\n\t\t\t<section id='slider'>\n\t\t\t\t<div className='slider'>\n\t\t\t\t\t<div className='slider__container'>\n\t\t\t\t\t\t<Slider {...settings}>\n\t\t\t\t\t\t\t<div className='slider__container--slide shrink'>\n\t\t\t\t\t\t\t\t<img className='slide--image' src={testimonialOne} />\n\t\t\t\t\t\t\t\t<h4 className='slide--name'>Michelle C.</h4>\n\t\t\t\t\t\t\t\t<p className='slide--text'>\n\t\t\t\t\t\t\t\t\t“I cannot express how much the Community Choir of the Valley means to\n\t\t\t\t\t\t\t\t\tme. To say that it changed my life is an understatement for so\n\t\t\t\t\t\t\t\t\tmany reasons. Having no idea what to expect, I can tell you\n\t\t\t\t\t\t\t\t\tthat from the first practice, I was blown away at the talent\n\t\t\t\t\t\t\t\t\tof this group. To have this avenue to express myself musically\n\t\t\t\t\t\t\t\t\thas been such a Godsend…but the “family†and lifelong friends\n\t\t\t\t\t\t\t\t\tI have met through this group will stay with me forever.â€\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<div className='slider__container--slide center'>\n\t\t\t\t\t\t\t\t<img className='slide--image' src={testimonialTwo} />\n\t\t\t\t\t\t\t\t<h4 className='slide--name'>Jennifer H.</h4>\n\t\t\t\t\t\t\t\t<p className='slide--text'>\n\t\t\t\t\t\t\t\t\t“I've been in Community Choir of the Valley for about 6 years and\n\t\t\t\t\t\t\t\t\thave enjoyed it so very much! The choir is for people who love\n\t\t\t\t\t\t\t\t\tto sing choral music! I love working on learning my part and\n\t\t\t\t\t\t\t\t\twhen all the parts come together, it's just the best! I enjoy\n\t\t\t\t\t\t\t\t\tthe people I've met, people of all ages! We are all there to\n\t\t\t\t\t\t\t\t\thave fun, and in the process, sing some amazing choral music\n\t\t\t\t\t\t\t\t\ttogether. Ed is the best director and chooses the most\n\t\t\t\t\t\t\t\t\twonderful pieces for us to sing! Please come and join us!â€\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<div className='slider__container--slide shrink'>\n\t\t\t\t\t\t\t\t<img className='slide--image' src={testimonialThree} />\n\t\t\t\t\t\t\t\t<h4 className='slide--name'>Bruce W.</h4>\n\t\t\t\t\t\t\t\t<p className='slide--text'>\n\t\t\t\t\t\t\t\t\t“The choir has been a joy. Ed makes the work challenging at\n\t\t\t\t\t\t\t\t\ttimes, but always fun. The music selected is joyful and even a\n\t\t\t\t\t\t\t\t\tlittle emotional on occasion. We are pushed beyond what we\n\t\t\t\t\t\t\t\t\tthink are our limits and encouraged by accomplishing what we\n\t\t\t\t\t\t\t\t\tthought we couldn't. Most important is the value of\n\t\t\t\t\t\t\t\t\tfellowship. We feel as \"family\" and share our needs and\n\t\t\t\t\t\t\t\t\tblessings to give comfort and help to the other members. â€\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<div className='slider__container--slide shrink'>\n\t\t\t\t\t\t\t\t<img className='slide--image' src={testimonialSix} />\n\t\t\t\t\t\t\t\t<h4 className='slide--name'>Celia and Jason</h4>\n\t\t\t\t\t\t\t\t<p className='slide--text'>\n\t\t\t\t\t\t\t\t\t“My husband and I are truly grateful for the wonderful experiences we've had with our choir. The music, the friendships, and the shared moments of harmony have enriched our lives in countless ways. The conductor's guidance and the camaraderie of fellow choir members make each rehearsal and performance a joyous occasion. Our choir has become a treasured part of our journey together.â€\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<div className='slider__container--slide center'>\n\t\t\t\t\t\t\t\t<img className='slide--image' src={testimonialFour} />\n\t\t\t\t\t\t\t\t<h4 className='slide--name'>Dixie M.</h4>\n\t\t\t\t\t\t\t\t<p className='slide--text'>\n\t\t\t\t\t\t\t\t\t“Community Choir of the Valley provides opportunities for all singers\n\t\t\t\t\t\t\t\t\tto share their talent and meet like people who enjoy music and\n\t\t\t\t\t\t\t\t\tsocializing. I have been a member of various choruses\n\t\t\t\t\t\t\t\t\tthroughout my life and this one ranks on top of the list.\n\t\t\t\t\t\t\t\t\tDirector Ed Cobb selects music from many genres and manages to\n\t\t\t\t\t\t\t\t\tdraw the best from each of us who possess varied stages of\n\t\t\t\t\t\t\t\t\tsinging skills. Music is so healing and was missed so much\n\t\t\t\t\t\t\t\t\tduring the past year of Covid. I am looking forward to getting\n\t\t\t\t\t\t\t\t\tback to practice with the Choir and reconnecting with old\n\t\t\t\t\t\t\t\t\tfriends once again.â€\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<div className='slider__container--slide shrink'>\n\t\t\t\t\t\t\t\t<img className='slide--image' src={testimonialFive} />\n\t\t\t\t\t\t\t\t<h4 className='slide--name'>Linda D.</h4>\n\t\t\t\t\t\t\t\t<p className='slide--text'>\n\t\t\t\t\t\t\t\t\t“Joining Community Choir of the Valley means singing great songs\n\t\t\t\t\t\t\t\t\ttogether with wonderful people. The music is pure joy, so get\n\t\t\t\t\t\t\t\t\thappy again! Come, sing with us!â€\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</Slider>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</section>\n\t\t);\n\t}\n}\n","import React, { useState } from 'react';\nimport { BrowserRouter as Router, Switch, Route, Link } from 'react-router-dom';\n\nimport logo from '../../assets/home/footer-logo.png';\n\nimport './nav.styles.scss';\n\nconst Nav = () => {\n\tconst [toggle, setToggle] = useState(false);\n\n\treturn (\n\t\t<nav id='nav'>\n\t\t\t<Link class='nav__logo' to='/'>\n\t\t\t\t<img src={logo} />\n\t\t\t</Link>\n\t\t\t<div class='nav__links'>\n\t\t\t\t<Link to='/' class='nav__links--link'>\n\t\t\t\t\tHome\n\t\t\t\t</Link>\n\t\t\t\t<div id='about-link' onClick={() => setToggle(!toggle)}>\n\t\t\t\t\tAbout\n\t\t\t\t\t{toggle && (\n\t\t\t\t\t\t<div className='dropdown'>\n\t\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\t\tto='/about'\n\t\t\t\t\t\t\t\tclassName=' nav__links--link nav__links--link-dropdown'\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tWho We Are?\n\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\t\tto='/director'\n\t\t\t\t\t\t\t\tclassName='nav__links--link nav__links--link-dropdown'\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tOur Director\n\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\t\tto='/accompanist'\n\t\t\t\t\t\t\t\tclassName=' nav__links--link nav__links--link-dropdown'\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tOur Accompanist\n\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\t\tto='/history'\n\t\t\t\t\t\t\t\tclassName='nav__links--link nav__links--link-dropdown'\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tOur History\n\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\n\t\t\t\t<Link to='/events' class='nav__links--link'>\n\t\t\t\t\tEvents\n\t\t\t\t</Link>\n\t\t\t\t<Link to='/contact' class='nav__links--link'>\n\t\t\t\t\tContact\n\t\t\t\t</Link>\n\t\t\t</div>\n\t\t</nav>\n\t);\n};\n\nexport default Nav;\n","import React, { useState, useToggle, useEffect } from 'react';\nimport { BrowserRouter as Router, Switch, Route, Link } from 'react-router-dom';\nimport { slide as Menu } from 'react-burger-menu';\n\nimport logo from '../../assets/home/footer-logo.png';\nimport treble from '../../assets/nav/button.png';\n\nimport './mobileNav.styles.scss';\n\nconst MobileNav = () => {\n\tconst [toggle, setToggle] = useState(false);\n\n\tuseEffect(() => {\n\t\tconst checkbox = document.querySelector('#menuToggle input[type=\"checkbox\"]');\n\t\tconst navLinks = document.querySelectorAll('.nav__links--mobile-link, .nav__links--link-dropdown-mobile');\n\t\tconst body = document.body;\n\t \n\t\tconst toggleScroll = () => {\n\t\t if (checkbox.checked) {\n\t\t\tbody.classList.add('lock-scroll');\n\t\t } else {\n\t\t\tbody.classList.remove('lock-scroll');\n\t\t }\n\t\t};\n\t \n\t\tconst removeLockScroll = () => {\n\t\t body.classList.remove('lock-scroll');\n\t\t};\n\t \n\t\tcheckbox.addEventListener('change', toggleScroll);\n\t \n\t\tnavLinks.forEach(link => {\n\t\t link.addEventListener('click', removeLockScroll);\n\t\t});\n\t \n\t\treturn () => {\n\t\t checkbox.removeEventListener('change', toggleScroll);\n\t\t navLinks.forEach(link => {\n\t\t\tlink.removeEventListener('click', removeLockScroll);\n\t\t });\n\t\t};\n\t }, []);\n\t \n\n\treturn (\n\t\t<nav role='navigation' id='mobile-nav'>\n\t\t\t<Link to='/' className='mobile-logo'>\n\t\t\t\t<img src={logo} />\n\t\t\t</Link>\n\t\t\t<div id='menuToggle'>\n\t\t\t\t<input type='checkbox' />\n\n\t\t\t\t<span></span>\n\t\t\t\t<span></span>\n\t\t\t\t<span></span>\n\n\t\t\t\t<ul id='menu'>\n\t\t\t\t\t<div class='nav__links--mobile'>\n\t\t\t\t\t\t<Link to='/' class='nav__links--mobile-link'>\n\t\t\t\t\t\t\tHome\n\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tid='about-link-mobile'\n\t\t\t\t\t\t\tclass='nav__links--mobile-link'\n\t\t\t\t\t\t\tonClick={() => setToggle(!toggle)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tAbout\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{toggle && (\n\t\t\t\t\t\t\t<div className='dropdown-mobile'>\n\t\t\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\t\t\tto='/about'\n\t\t\t\t\t\t\t\t\tclassName=' nav__links--link nav__links--link-dropdown-mobile'\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tWho We Are?\n\t\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\t\t\tto='/director'\n\t\t\t\t\t\t\t\t\tclassName='nav__links--link nav__links--link-dropdown-mobile'\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tOur Director\n\t\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\t\t\tto='/accompanist'\n\t\t\t\t\t\t\t\t\tclassName=' nav__links--link nav__links--link-dropdown-mobile'\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tOur Accompanist\n\t\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\t\t\tto='/history'\n\t\t\t\t\t\t\t\t\tclassName='nav__links--link nav__links--link-dropdown-mobile'\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tOur History\n\t\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<Link to='/events' class='nav__links--mobile-link'>\n\t\t\t\t\t\t\tEvents\n\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t<Link to='/contact' class='nav__links--mobile-link'>\n\t\t\t\t\t\t\tContact\n\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t<div className='menu-list__logo'>\n\t\t\t\t\t\t\t\t<img src={logo} />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t</nav>\n\t);\n};\n\nexport default MobileNav;\n","import React from 'react';\nimport Nav from '../nav/nav';\nimport MobileNav from '../mobileNav/mobileNav';\n\nconst SelectNav = () => {\n\treturn (\n\t\t<div>\n\t\t\t<Nav className='desktop-nav' />\n\t\t\t<MobileNav className='mobile-nav' />\n\t\t</div>\n\t);\n};\n\nexport default SelectNav;\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(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)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(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}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(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/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\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); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\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);\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); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\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\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\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\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\nexport var SCOPE = '@scope'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @param {number} position\n * @return {number}\n */\nexport function indexof (value, search, position) {\n\treturn value.indexOf(search, position)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n\n/**\n * @param {string[]} array\n * @param {RegExp} pattern\n * @return {string[]}\n */\nexport function filter (array, pattern) {\n\treturn array.filter(function (value) { return !match(value, pattern) })\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {object[]} siblings\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length, siblings) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: '', siblings: siblings}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0, root.siblings), root, {length: -root.length}, props)\n}\n\n/**\n * @param {object} root\n */\nexport function lift (root) {\n\twhile (root.root)\n\t\troot = copy(root.root, {children: [root]})\n\n\tappend(root, root.siblings)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\n\tfor (var i = 0; i < children.length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: if (!strlen(element.value = element.props.join(','))) return ''\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace, substr, match} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @param {object[]} children\n * @return {string}\n */\nexport function prefix (value, length, children) {\n\tswitch (hash(value, length)) {\n\t\t// color-adjust\n\t\tcase 5103:\n\t\t\treturn WEBKIT + 'print-' + value + value\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599: case 4855:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t\treturn WEBKIT + value + value\n\t\t// tab-size\n\t\tcase 4789:\n\t\t\treturn MOZ + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t\t// default: fallthrough to below\n\t\t\t}\n\t\t// flex, flex-direction, scroll-snap-type, writing-mode\n\t\tcase 6828: case 4268: case 2903:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/g, '') + (!match(value, /flex-|baseline/) ? MS + 'grid-row-' + replace(value, /flex-|-self/g, '') : '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/g, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value\n\t\t// justify-self\n\t\tcase 4200:\n\t\t\tif (!match(value, /flex-|baseline/)) return MS + 'grid-column-align' + substr(value, length) + value\n\t\t\tbreak\n\t\t// grid-template-(columns|rows)\n\t\tcase 2592: case 3360:\n\t\t\treturn MS + replace(value, 'template-', '') + value\n\t\t// grid-(row|column)-start\n\t\tcase 4384: case 3616:\n\t\t\tif (children && children.some(function (element, index) { return length = index, match(element.props, /grid-\\w+-end/) })) {\n\t\t\t\treturn ~indexof(value + (children = children[length].value), 'span', 0) ? value : (MS + replace(value, '-start', '') + value + MS + 'grid-row-span:' + (~indexof(children, 'span', 0) ? match(children, /\\d+/) : +match(children, /\\d+/) - +match(value, /\\d+/)) + ';')\n\t\t\t}\n\t\t\treturn MS + replace(value, '-start', '') + value\n\t\t// grid-(row|column)-end\n\t\tcase 4896: case 4128:\n\t\t\treturn (children && children.some(function (element) { return match(element.props, /grid-\\w+-start/) })) ? value : MS + replace(replace(value, '-end', '-span'), 'span ', '') + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (charat(value, length + 4) !== 45)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t// (f)ill-available, (f)it-content\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn ~indexof(value, 'stretch', 0) ? prefix(replace(value, 'stretch', 'fill-available'), length, children) + value : value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// grid-(column|row)\n\t\tcase 5152: case 5920:\n\t\t\treturn replace(value, /(.+?):(\\d+)(\\s*\\/\\s*(span)?\\s*(\\d+))?(.*)/, function (_, a, b, c, d, e, f) { return (MS + a + ':' + b + f) + (c ? (MS + a + '-span:' + (d ? e : +e - +b)) + f : '') + value })\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// stick(y)?\n\t\t\tif (charat(value, length + 6) === 121)\n\t\t\t\treturn replace(value, ':', ':' + WEBKIT) + value\n\t\t\tbreak\n\t\t// display: (flex|inline-flex|grid|inline-grid)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, charat(value, 14) === 45 ? 18 : 11)) {\n\t\t\t\t// (inline-)?fle(x)\n\t\t\t\tcase 120:\n\t\t\t\t\treturn replace(value, /(.+:)([^;\\s!]+)(;|(\\s+)?!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t\t// (inline-)?gri(d)\n\t\t\t\tcase 100:\n\t\t\t\t\treturn replace(value, ':', ':' + MS) + value\n\t\t\t}\n\t\t\tbreak\n\t\t// scroll-margin, scroll-margin-(top|right|bottom|left)\n\t\tcase 5719: case 2647: case 2135: case 3927: case 2391:\n\t\t\treturn replace(value, 'scroll-', 'scroll-snap-') + value\n\t}\n\n\treturn value\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine, filter, assign} from './Utility.js'\nimport {copy, lift, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(children = element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, callback = /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [value]}))\n\t\t\t\t\t\t\t\t\tassign(element, {props: filter(children, callback)})\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [value]}))\n\t\t\t\t\t\t\t\t\tassign(element, {props: filter(children, callback)})\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f', abs(index ? points[index - 1] : 0)) != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1, declarations) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length, rulesets), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length, children), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length, siblings) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length, siblings)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @param {object[]} siblings\n * @return {object}\n */\nexport function comment (value, root, parent, siblings) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function declaration (value, root, parent, length, siblings) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length, siblings)\n}\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","declare let SC_DISABLE_SPEEDY: boolean | null | undefined;\ndeclare let __VERSION__: string;\n\nexport const SC_ATTR: string =\n (typeof process !== 'undefined' &&\n typeof process.env !== 'undefined' &&\n (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR)) ||\n 'data-styled';\n\nexport const SC_ATTR_ACTIVE = 'active';\nexport const SC_ATTR_VERSION = 'data-styled-version';\nexport const SC_VERSION = __VERSION__;\nexport const SPLITTER = '/*!sc*/\\n';\n\nexport const IS_BROWSER = typeof window !== 'undefined' && 'HTMLElement' in window;\n\nexport const DISABLE_SPEEDY = Boolean(\n typeof SC_DISABLE_SPEEDY === 'boolean'\n ? SC_DISABLE_SPEEDY\n : typeof process !== 'undefined' &&\n typeof process.env !== 'undefined' &&\n typeof process.env.REACT_APP_SC_DISABLE_SPEEDY !== 'undefined' &&\n process.env.REACT_APP_SC_DISABLE_SPEEDY !== ''\n ? process.env.REACT_APP_SC_DISABLE_SPEEDY === 'false'\n ? false\n : process.env.REACT_APP_SC_DISABLE_SPEEDY\n : typeof process !== 'undefined' &&\n typeof process.env !== 'undefined' &&\n typeof process.env.SC_DISABLE_SPEEDY !== 'undefined' &&\n process.env.SC_DISABLE_SPEEDY !== ''\n ? process.env.SC_DISABLE_SPEEDY === 'false'\n ? false\n : process.env.SC_DISABLE_SPEEDY\n : process.env.NODE_ENV !== 'production'\n);\n\n// Shared empty execution context when generating static styles\nexport const STATIC_EXECUTION_CONTEXT = {};\n","import { Dict } from '../types';\n\nexport const EMPTY_ARRAY = Object.freeze([]) as Readonly<any[]>;\nexport const EMPTY_OBJECT = Object.freeze({}) as Readonly<Dict<any>>;\n","import { useRef } from 'react';\n\nconst invalidHookCallRe = /invalid hook call/i;\nconst seen = new Set();\n\nexport const checkDynamicCreation = (displayName: string, componentId?: string | undefined) => {\n if (process.env.NODE_ENV !== 'production') {\n const parsedIdString = componentId ? ` with the id of \"${componentId}\"` : '';\n const message =\n `The component ${displayName}${parsedIdString} has been created dynamically.\\n` +\n \"You may see this warning because you've called styled inside another component.\\n\" +\n 'To resolve this only create new StyledComponents outside of any render method and function component.';\n\n // If a hook is called outside of a component:\n // React 17 and earlier throw an error\n // React 18 and above use console.error\n\n const originalConsoleError = console.error;\n try {\n let didNotCallInvalidHook = true;\n console.error = (consoleErrorMessage, ...consoleErrorArgs) => {\n // The error here is expected, since we're expecting anything that uses `checkDynamicCreation` to\n // be called outside of a React component.\n if (invalidHookCallRe.test(consoleErrorMessage)) {\n didNotCallInvalidHook = false;\n // This shouldn't happen, but resets `warningSeen` if we had this error happen intermittently\n seen.delete(message);\n } else {\n originalConsoleError(consoleErrorMessage, ...consoleErrorArgs);\n }\n };\n // We purposefully call `useRef` outside of a component and expect it to throw\n // If it doesn't, then we're inside another component.\n useRef();\n\n if (didNotCallInvalidHook && !seen.has(message)) {\n console.warn(message);\n seen.add(message);\n }\n } catch (error) {\n // The error here is expected, since we're expecting anything that uses `checkDynamicCreation` to\n // be called outside of a React component.\n if (invalidHookCallRe.test((error as Error).message)) {\n // This shouldn't happen, but resets `warningSeen` if we had this error happen intermittently\n seen.delete(message);\n }\n } finally {\n console.error = originalConsoleError;\n }\n }\n};\n","import { DefaultTheme, ExecutionProps } from '../types';\nimport { EMPTY_OBJECT } from './empties';\n\nexport default function determineTheme(\n props: ExecutionProps,\n providedTheme?: DefaultTheme | undefined,\n defaultProps: { theme?: DefaultTheme | undefined } = EMPTY_OBJECT\n): DefaultTheme | undefined {\n return (props.theme !== defaultProps.theme && props.theme) || providedTheme || defaultProps.theme;\n}\n","// Thanks to ReactDOMFactories for this handy list!\n\nconst elements = [\n 'a',\n 'abbr',\n 'address',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'base',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'data',\n 'datalist',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'hr',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'keygen',\n 'label',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'map',\n 'mark',\n 'menu',\n 'menuitem',\n 'meta',\n 'meter',\n 'nav',\n 'noscript',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'param',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'script',\n 'section',\n 'select',\n 'small',\n 'source',\n 'span',\n 'strong',\n 'style',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'track',\n 'u',\n 'ul',\n 'use',\n 'var',\n 'video',\n 'wbr', // SVG\n 'circle',\n 'clipPath',\n 'defs',\n 'ellipse',\n 'foreignObject',\n 'g',\n 'image',\n 'line',\n 'linearGradient',\n 'marker',\n 'mask',\n 'path',\n 'pattern',\n 'polygon',\n 'polyline',\n 'radialGradient',\n 'rect',\n 'stop',\n 'svg',\n 'text',\n 'tspan',\n] as const;\n\nexport default new Set(elements);\nexport type SupportedHTMLElements = (typeof elements)[number];\n","// Source: https://www.w3.org/TR/cssom-1/#serialize-an-identifier\n// Control characters and non-letter first symbols are not supported\nconst escapeRegex = /[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~-]+/g;\n\nconst dashesAtEnds = /(^-|-$)/g;\n\n/**\n * TODO: Explore using CSS.escape when it becomes more available\n * in evergreen browsers.\n */\nexport default function escape(str: string) {\n return str // Replace all possible CSS selectors\n .replace(escapeRegex, '-') // Remove extraneous hyphens at the start and end\n .replace(dashesAtEnds, '');\n}\n","const AD_REPLACER_R = /(a)(d)/gi;\n\n/* This is the \"capacity\" of our alphabet i.e. 2x26 for all letters plus their capitalised\n * counterparts */\nconst charsLength = 52;\n\n/* start at 75 for 'a' until 'z' (25) and then start at 65 for capitalised letters */\nconst getAlphabeticChar = (code: number) => String.fromCharCode(code + (code > 25 ? 39 : 97));\n\n/* input a number, usually a hash and convert it to base-52 */\nexport default function generateAlphabeticName(code: number) {\n let name = '';\n let x;\n\n /* get a char and divide by alphabet-length */\n for (x = Math.abs(code); x > charsLength; x = (x / charsLength) | 0) {\n name = getAlphabeticChar(x % charsLength) + name;\n }\n\n return (getAlphabeticChar(x % charsLength) + name).replace(AD_REPLACER_R, '$1-$2');\n}\n","export const SEED = 5381;\n\n// When we have separate strings it's useful to run a progressive\n// version of djb2 where we pretend that we're still looping over\n// the same string\nexport const phash = (h: number, x: string) => {\n let i = x.length;\n\n while (i) {\n h = (h * 33) ^ x.charCodeAt(--i);\n }\n\n return h;\n};\n\n// This is a djb2 hashing function\nexport const hash = (x: string) => {\n return phash(SEED, x);\n};\n","import generateAlphabeticName from './generateAlphabeticName';\nimport { hash } from './hash';\n\nexport default function generateComponentId(str: string) {\n return generateAlphabeticName(hash(str) >>> 0);\n}\n","import { StyledTarget } from '../types';\n\nexport default function getComponentName(target: StyledTarget<any>) {\n return (\n (process.env.NODE_ENV !== 'production' ? typeof target === 'string' && target : false) ||\n (target as Exclude<StyledTarget<any>, string>).displayName ||\n (target as Function).name ||\n 'Component'\n );\n}\n","import { StyledTarget } from '../types';\n\nexport default function isTag(target: StyledTarget<'web'>): target is string {\n return (\n typeof target === 'string' &&\n (process.env.NODE_ENV !== 'production'\n ? target.charAt(0) === target.charAt(0).toLowerCase()\n : true)\n );\n}\n","import React from 'react';\nimport { AnyComponent } from '../types';\n\nconst hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\n// copied from react-is\nconst REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nconst REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\n\n/**\n * Adapted from hoist-non-react-statics to avoid the react-is dependency.\n */\nconst REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true,\n};\n\nconst KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true,\n};\n\nconst FORWARD_REF_STATICS = {\n $$typeof: true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n};\n\nconst MEMO_STATICS = {\n $$typeof: true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true,\n};\n\nconst TYPE_STATICS = {\n [REACT_FORWARD_REF_TYPE]: FORWARD_REF_STATICS,\n [REACT_MEMO_TYPE]: MEMO_STATICS,\n};\n\ntype OmniComponent = AnyComponent;\n\n// adapted from react-is\nfunction isMemo(\n object: OmniComponent | React.MemoExoticComponent<any>\n): object is React.MemoExoticComponent<any> {\n const $$typeofType = 'type' in object && object.type.$$typeof;\n\n return $$typeofType === REACT_MEMO_TYPE;\n}\n\nfunction getStatics(component: OmniComponent) {\n // React v16.11 and below\n if (isMemo(component)) {\n return MEMO_STATICS;\n }\n\n // React v16.12 and above\n return '$$typeof' in component\n ? TYPE_STATICS[component['$$typeof'] as unknown as string]\n : REACT_STATICS;\n}\n\nconst defineProperty = Object.defineProperty;\nconst getOwnPropertyNames = Object.getOwnPropertyNames;\nconst getOwnPropertySymbols = Object.getOwnPropertySymbols;\nconst getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nconst getPrototypeOf = Object.getPrototypeOf;\nconst objectPrototype = Object.prototype;\n\ntype ExcludeList = {\n [key: string]: true;\n};\n\ntype NonReactStatics<S extends OmniComponent, C extends ExcludeList = {}> = {\n [key in Exclude<\n keyof S,\n S extends React.MemoExoticComponent<any>\n ? keyof typeof MEMO_STATICS | keyof C\n : S extends React.ForwardRefExoticComponent<any>\n ? keyof typeof FORWARD_REF_STATICS | keyof C\n : keyof typeof REACT_STATICS | keyof typeof KNOWN_STATICS | keyof C\n >]: S[key];\n};\n\nexport default function hoistNonReactStatics<\n T extends OmniComponent,\n S extends OmniComponent,\n C extends ExcludeList = {},\n>(targetComponent: T, sourceComponent: S, excludelist?: C | undefined) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n if (objectPrototype) {\n const inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, excludelist);\n }\n }\n\n let keys: (String | Symbol)[] = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n const targetStatics = getStatics(targetComponent);\n const sourceStatics = getStatics(sourceComponent);\n\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i] as unknown as string;\n if (\n !(key in KNOWN_STATICS) &&\n !(excludelist && excludelist[key]) &&\n !(sourceStatics && key in sourceStatics) &&\n !(targetStatics && key in targetStatics)\n ) {\n const descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor!);\n } catch (e) {\n /* ignore */\n }\n }\n }\n }\n\n return targetComponent as T & NonReactStatics<S, C>;\n}\n","export default function isFunction(test: any): test is Function {\n return typeof test === 'function';\n}\n","import { StyledComponentBrand } from '../types';\n\nexport default function isStyledComponent(target: any): target is StyledComponentBrand {\n return typeof target === 'object' && 'styledComponentId' in target;\n}\n","/**\n * Convenience function for joining strings to form className chains\n */\nexport function joinStrings(a?: string | undefined, b?: string | undefined): string {\n return a && b ? `${a} ${b}` : a || b || '';\n}\n\nexport function joinStringArray(arr: string[], sep?: string | undefined): string {\n if (arr.length === 0) {\n return '';\n }\n\n let result = arr[0];\n for (let i = 1; i < arr.length; i++) {\n result += sep ? sep + arr[i] : arr[i];\n }\n return result;\n}\n","export default function isPlainObject(x: any): x is Record<any, any> {\n return (\n x !== null &&\n typeof x === 'object' &&\n x.constructor.name === Object.name &&\n /* check for reasonable markers that the object isn't an element for react & preact/compat */\n !('props' in x && x.$$typeof)\n );\n}\n","import isPlainObject from './isPlainObject';\n\nfunction mixinRecursively(target: any, source: any, forceMerge = false) {\n /* only merge into POJOs, Arrays, but for top level objects only\n * allow to merge into anything by passing forceMerge = true */\n if (!forceMerge && !isPlainObject(target) && !Array.isArray(target)) {\n return source;\n }\n\n if (Array.isArray(source)) {\n for (let key = 0; key < source.length; key++) {\n target[key] = mixinRecursively(target[key], source[key]);\n }\n } else if (isPlainObject(source)) {\n for (const key in source) {\n target[key] = mixinRecursively(target[key], source[key]);\n }\n }\n\n return target;\n}\n\n/**\n * Arrays & POJOs merged recursively, other objects and value types are overridden\n * If target is not a POJO or an Array, it will get source properties injected via shallow merge\n * Source objects applied left to right. Mutates & returns target. Similar to lodash merge.\n */\nexport default function mixinDeep(target: any, ...sources: any[]) {\n for (const source of sources) {\n mixinRecursively(target, source, true);\n }\n\n return target;\n}\n","/**\n * If the Object prototype is frozen, the \"toString\" property is non-writable. This means that any objects which inherit this property\n * cannot have the property changed using a \"=\" assignment operator. If using strict mode, attempting that will cause an error. If not using\n * strict mode, attempting that will be silently ignored.\n *\n * If the Object prototype is frozen, inherited non-writable properties can still be shadowed using one of two mechanisms:\n *\n * 1. ES6 class methods: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes#methods\n * 2. Using the `Object.defineProperty()` static method:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty\n *\n * However, this project uses Babel to transpile ES6 classes, and transforms ES6 class methods to use the assignment operator instead:\n * https://babeljs.io/docs/babel-plugin-transform-class-properties#options\n *\n * Therefore, the most compatible way to shadow the prototype's \"toString\" property is to define a new \"toString\" property on this object.\n */\nexport function setToString(object: object, toStringFn: () => string) {\n Object.defineProperty(object, 'toString', { value: toStringFn });\n}\n","import { Dict } from '../types';\nimport errorMap from './errors';\n\nconst ERRORS: Dict<any> = process.env.NODE_ENV !== 'production' ? errorMap : {};\n\n/**\n * super basic version of sprintf\n */\nfunction format(...args: [string, ...any]) {\n let a = args[0];\n const b = [];\n\n for (let c = 1, len = args.length; c < len; c += 1) {\n b.push(args[c]);\n }\n\n b.forEach(d => {\n a = a.replace(/%[a-z]/, d);\n });\n\n return a;\n}\n\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n */\nexport default function throwStyledComponentsError(\n code: string | number,\n ...interpolations: any[]\n) {\n if (process.env.NODE_ENV === 'production') {\n return new Error(\n `An error occurred. See https://github.com/styled-components/styled-components/blob/main/packages/styled-components/src/utils/errors.md#${code} for more information.${\n interpolations.length > 0 ? ` Args: ${interpolations.join(', ')}` : ''\n }`\n );\n } else {\n return new Error(format(ERRORS[code], ...interpolations).trim());\n }\n}\n","import { SPLITTER } from '../constants';\nimport styledError from '../utils/error';\nimport { GroupedTag, Tag } from './types';\n\n/** Create a GroupedTag with an underlying Tag implementation */\nexport const makeGroupedTag = (tag: Tag) => {\n return new DefaultGroupedTag(tag);\n};\n\nconst BASE_SIZE = 1 << 9;\n\nconst DefaultGroupedTag = class DefaultGroupedTag implements GroupedTag {\n groupSizes: Uint32Array;\n length: number;\n tag: Tag;\n\n constructor(tag: Tag) {\n this.groupSizes = new Uint32Array(BASE_SIZE);\n this.length = BASE_SIZE;\n this.tag = tag;\n }\n\n indexOfGroup(group: number) {\n let index = 0;\n for (let i = 0; i < group; i++) {\n index += this.groupSizes[i];\n }\n\n return index;\n }\n\n insertRules(group: number, rules: string[]) {\n if (group >= this.groupSizes.length) {\n const oldBuffer = this.groupSizes;\n const oldSize = oldBuffer.length;\n\n let newSize = oldSize;\n while (group >= newSize) {\n newSize <<= 1;\n if (newSize < 0) {\n throw styledError(16, `${group}`);\n }\n }\n\n this.groupSizes = new Uint32Array(newSize);\n this.groupSizes.set(oldBuffer);\n this.length = newSize;\n\n for (let i = oldSize; i < newSize; i++) {\n this.groupSizes[i] = 0;\n }\n }\n\n let ruleIndex = this.indexOfGroup(group + 1);\n\n for (let i = 0, l = rules.length; i < l; i++) {\n if (this.tag.insertRule(ruleIndex, rules[i])) {\n this.groupSizes[group]++;\n ruleIndex++;\n }\n }\n }\n\n clearGroup(group: number) {\n if (group < this.length) {\n const length = this.groupSizes[group];\n const startIndex = this.indexOfGroup(group);\n const endIndex = startIndex + length;\n\n this.groupSizes[group] = 0;\n\n for (let i = startIndex; i < endIndex; i++) {\n this.tag.deleteRule(startIndex);\n }\n }\n }\n\n getGroup(group: number) {\n let css = '';\n if (group >= this.length || this.groupSizes[group] === 0) {\n return css;\n }\n\n const length = this.groupSizes[group];\n const startIndex = this.indexOfGroup(group);\n const endIndex = startIndex + length;\n\n for (let i = startIndex; i < endIndex; i++) {\n css += `${this.tag.getRule(i)}${SPLITTER}`;\n }\n\n return css;\n }\n};\n","import styledError from '../utils/error';\n\nconst MAX_SMI = 1 << (31 - 1);\n\nlet groupIDRegister: Map<string, number> = new Map();\nlet reverseRegister: Map<number, string> = new Map();\nlet nextFreeGroup = 1;\n\nexport const resetGroupIds = () => {\n groupIDRegister = new Map();\n reverseRegister = new Map();\n nextFreeGroup = 1;\n};\n\nexport const getGroupForId = (id: string): number => {\n if (groupIDRegister.has(id)) {\n return groupIDRegister.get(id) as any;\n }\n\n while (reverseRegister.has(nextFreeGroup)) {\n nextFreeGroup++;\n }\n\n const group = nextFreeGroup++;\n\n if (process.env.NODE_ENV !== 'production' && ((group | 0) < 0 || group > MAX_SMI)) {\n throw styledError(16, `${group}`);\n }\n\n groupIDRegister.set(id, group);\n reverseRegister.set(group, id);\n return group;\n};\n\nexport const getIdForGroup = (group: number): void | string => {\n return reverseRegister.get(group);\n};\n\nexport const setGroupForId = (id: string, group: number) => {\n // move pointer\n nextFreeGroup = group + 1;\n\n groupIDRegister.set(id, group);\n reverseRegister.set(group, id);\n};\n","import { SC_ATTR, SC_ATTR_ACTIVE, SC_ATTR_VERSION, SC_VERSION, SPLITTER } from '../constants';\nimport { getIdForGroup, setGroupForId } from './GroupIDAllocator';\nimport { Sheet } from './types';\n\nconst SELECTOR = `style[${SC_ATTR}][${SC_ATTR_VERSION}=\"${SC_VERSION}\"]`;\nconst MARKER_RE = new RegExp(`^${SC_ATTR}\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)`);\n\nexport const outputSheet = (sheet: Sheet) => {\n const tag = sheet.getTag();\n const { length } = tag;\n\n let css = '';\n for (let group = 0; group < length; group++) {\n const id = getIdForGroup(group);\n if (id === undefined) continue;\n\n const names = sheet.names.get(id);\n const rules = tag.getGroup(group);\n if (names === undefined || !names.size || rules.length === 0) continue;\n\n const selector = `${SC_ATTR}.g${group}[id=\"${id}\"]`;\n\n let content = '';\n if (names !== undefined) {\n names.forEach(name => {\n if (name.length > 0) {\n content += `${name},`;\n }\n });\n }\n\n // NOTE: It's easier to collect rules and have the marker\n // after the actual rules to simplify the rehydration\n css += `${rules}${selector}{content:\"${content}\"}${SPLITTER}`;\n }\n\n return css;\n};\n\nconst rehydrateNamesFromContent = (sheet: Sheet, id: string, content: string) => {\n const names = content.split(',');\n let name;\n\n for (let i = 0, l = names.length; i < l; i++) {\n if ((name = names[i])) {\n sheet.registerName(id, name);\n }\n }\n};\n\nconst rehydrateSheetFromTag = (sheet: Sheet, style: HTMLStyleElement) => {\n const parts = (style.textContent ?? '').split(SPLITTER);\n const rules: string[] = [];\n\n for (let i = 0, l = parts.length; i < l; i++) {\n const part = parts[i].trim();\n if (!part) continue;\n\n const marker = part.match(MARKER_RE);\n\n if (marker) {\n const group = parseInt(marker[1], 10) | 0;\n const id = marker[2];\n\n if (group !== 0) {\n // Rehydrate componentId to group index mapping\n setGroupForId(id, group);\n // Rehydrate names and rules\n // looks like: data-styled.g11[id=\"idA\"]{content:\"nameA,\"}\n rehydrateNamesFromContent(sheet, id, marker[3]);\n sheet.getTag().insertRules(group, rules);\n }\n\n rules.length = 0;\n } else {\n rules.push(part);\n }\n }\n};\n\nexport const rehydrateSheet = (sheet: Sheet) => {\n const nodes = document.querySelectorAll(SELECTOR);\n\n for (let i = 0, l = nodes.length; i < l; i++) {\n const node = nodes[i] as any as HTMLStyleElement;\n if (node && node.getAttribute(SC_ATTR) !== SC_ATTR_ACTIVE) {\n rehydrateSheetFromTag(sheet, node);\n\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n }\n }\n};\n","declare let __webpack_nonce__: string;\n\nexport default function getNonce() {\n return typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n}\n","import { SC_ATTR, SC_ATTR_ACTIVE, SC_ATTR_VERSION, SC_VERSION } from '../constants';\nimport { InsertionTarget } from '../types';\nimport styledError from '../utils/error';\nimport getNonce from '../utils/nonce';\n\n/** Find last style element if any inside target */\nconst findLastStyleTag = (target: InsertionTarget): void | HTMLStyleElement => {\n const arr = Array.from(target.querySelectorAll<HTMLStyleElement>(`style[${SC_ATTR}]`));\n\n return arr[arr.length - 1];\n};\n\n/** Create a style element inside `target` or <head> after the last */\nexport const makeStyleTag = (target?: InsertionTarget | undefined): HTMLStyleElement => {\n const head = document.head;\n const parent = target || head;\n const style = document.createElement('style');\n const prevStyle = findLastStyleTag(parent);\n const nextSibling = prevStyle !== undefined ? prevStyle.nextSibling : null;\n\n style.setAttribute(SC_ATTR, SC_ATTR_ACTIVE);\n style.setAttribute(SC_ATTR_VERSION, SC_VERSION);\n\n const nonce = getNonce();\n\n if (nonce) style.setAttribute('nonce', nonce);\n\n parent.insertBefore(style, nextSibling);\n\n return style;\n};\n\n/** Get the CSSStyleSheet instance for a given style element */\nexport const getSheet = (tag: HTMLStyleElement): CSSStyleSheet => {\n if (tag.sheet) {\n return tag.sheet as any as CSSStyleSheet;\n }\n\n // Avoid Firefox quirk where the style element might not have a sheet property\n const { styleSheets } = document;\n for (let i = 0, l = styleSheets.length; i < l; i++) {\n const sheet = styleSheets[i];\n if (sheet.ownerNode === tag) {\n return sheet as any as CSSStyleSheet;\n }\n }\n\n throw styledError(17);\n};\n","import { InsertionTarget } from '../types';\nimport { getSheet, makeStyleTag } from './dom';\nimport { SheetOptions, Tag } from './types';\n\n/** Create a CSSStyleSheet-like tag depending on the environment */\nexport const makeTag = ({ isServer, useCSSOMInjection, target }: SheetOptions) => {\n if (isServer) {\n return new VirtualTag(target);\n } else if (useCSSOMInjection) {\n return new CSSOMTag(target);\n } else {\n return new TextTag(target);\n }\n};\n\nexport const CSSOMTag = class CSSOMTag implements Tag {\n element: HTMLStyleElement;\n\n sheet: CSSStyleSheet;\n\n length: number;\n\n constructor(target?: InsertionTarget | undefined) {\n this.element = makeStyleTag(target);\n\n // Avoid Edge bug where empty style elements don't create sheets\n this.element.appendChild(document.createTextNode(''));\n\n this.sheet = getSheet(this.element);\n this.length = 0;\n }\n\n insertRule(index: number, rule: string): boolean {\n try {\n this.sheet.insertRule(rule, index);\n this.length++;\n return true;\n } catch (_error) {\n return false;\n }\n }\n\n deleteRule(index: number): void {\n this.sheet.deleteRule(index);\n this.length--;\n }\n\n getRule(index: number): string {\n const rule = this.sheet.cssRules[index];\n\n // Avoid IE11 quirk where cssText is inaccessible on some invalid rules\n if (rule && rule.cssText) {\n return rule.cssText;\n } else {\n return '';\n }\n }\n};\n\n/** A Tag that emulates the CSSStyleSheet API but uses text nodes */\nexport const TextTag = class TextTag implements Tag {\n element: HTMLStyleElement;\n nodes: NodeListOf<Node>;\n length: number;\n\n constructor(target?: InsertionTarget | undefined) {\n this.element = makeStyleTag(target);\n this.nodes = this.element.childNodes;\n this.length = 0;\n }\n\n insertRule(index: number, rule: string) {\n if (index <= this.length && index >= 0) {\n const node = document.createTextNode(rule);\n const refNode = this.nodes[index];\n this.element.insertBefore(node, refNode || null);\n this.length++;\n return true;\n } else {\n return false;\n }\n }\n\n deleteRule(index: number) {\n this.element.removeChild(this.nodes[index]);\n this.length--;\n }\n\n getRule(index: number) {\n if (index < this.length) {\n return this.nodes[index].textContent as string;\n } else {\n return '';\n }\n }\n};\n\n/** A completely virtual (server-side) Tag that doesn't manipulate the DOM */\nexport const VirtualTag = class VirtualTag implements Tag {\n rules: string[];\n\n length: number;\n\n constructor(_target?: InsertionTarget | undefined) {\n this.rules = [];\n this.length = 0;\n }\n\n insertRule(index: number, rule: string) {\n if (index <= this.length) {\n this.rules.splice(index, 0, rule);\n this.length++;\n return true;\n } else {\n return false;\n }\n }\n\n deleteRule(index: number) {\n this.rules.splice(index, 1);\n this.length--;\n }\n\n getRule(index: number) {\n if (index < this.length) {\n return this.rules[index];\n } else {\n return '';\n }\n }\n};\n","import { DISABLE_SPEEDY, IS_BROWSER } from '../constants';\nimport { InsertionTarget } from '../types';\nimport { EMPTY_OBJECT } from '../utils/empties';\nimport { setToString } from '../utils/setToString';\nimport { makeGroupedTag } from './GroupedTag';\nimport { getGroupForId } from './GroupIDAllocator';\nimport { outputSheet, rehydrateSheet } from './Rehydration';\nimport { makeTag } from './Tag';\nimport { GroupedTag, Sheet, SheetOptions } from './types';\n\nlet SHOULD_REHYDRATE = IS_BROWSER;\n\ntype SheetConstructorArgs = {\n isServer?: boolean;\n useCSSOMInjection?: boolean;\n target?: InsertionTarget | undefined;\n};\n\ntype GlobalStylesAllocationMap = {\n [key: string]: number;\n};\ntype NamesAllocationMap = Map<string, Set<string>>;\n\nconst defaultOptions: SheetOptions = {\n isServer: !IS_BROWSER,\n useCSSOMInjection: !DISABLE_SPEEDY,\n};\n\n/** Contains the main stylesheet logic for stringification and caching */\nexport default class StyleSheet implements Sheet {\n gs: GlobalStylesAllocationMap;\n names: NamesAllocationMap;\n options: SheetOptions;\n server: boolean;\n tag?: GroupedTag | undefined;\n\n /** Register a group ID to give it an index */\n static registerId(id: string): number {\n return getGroupForId(id);\n }\n\n constructor(\n options: SheetConstructorArgs = EMPTY_OBJECT as Object,\n globalStyles: GlobalStylesAllocationMap = {},\n names?: NamesAllocationMap | undefined\n ) {\n this.options = {\n ...defaultOptions,\n ...options,\n };\n\n this.gs = globalStyles;\n this.names = new Map(names as NamesAllocationMap);\n this.server = !!options.isServer;\n\n // We rehydrate only once and use the sheet that is created first\n if (!this.server && IS_BROWSER && SHOULD_REHYDRATE) {\n SHOULD_REHYDRATE = false;\n rehydrateSheet(this);\n }\n\n setToString(this, () => outputSheet(this));\n }\n\n rehydrate(): void {\n if (!this.server && IS_BROWSER) {\n rehydrateSheet(this);\n }\n }\n\n reconstructWithOptions(options: SheetConstructorArgs, withNames = true) {\n return new StyleSheet(\n { ...this.options, ...options },\n this.gs,\n (withNames && this.names) || undefined\n );\n }\n\n allocateGSInstance(id: string) {\n return (this.gs[id] = (this.gs[id] || 0) + 1);\n }\n\n /** Lazily initialises a GroupedTag for when it's actually needed */\n getTag() {\n return this.tag || (this.tag = makeGroupedTag(makeTag(this.options)));\n }\n\n /** Check whether a name is known for caching */\n hasNameForId(id: string, name: string): boolean {\n return this.names.has(id) && (this.names.get(id) as any).has(name);\n }\n\n /** Mark a group's name as known for caching */\n registerName(id: string, name: string) {\n getGroupForId(id);\n\n if (!this.names.has(id)) {\n const groupNames = new Set<string>();\n groupNames.add(name);\n this.names.set(id, groupNames);\n } else {\n (this.names.get(id) as any).add(name);\n }\n }\n\n /** Insert new rules which also marks the name as known */\n insertRules(id: string, name: string, rules: string | string[]) {\n this.registerName(id, name);\n this.getTag().insertRules(getGroupForId(id), rules);\n }\n\n /** Clears all cached names for a given group ID */\n clearNames(id: string) {\n if (this.names.has(id)) {\n (this.names.get(id) as any).clear();\n }\n }\n\n /** Clears all rules for a given group ID */\n clearRules(id: string) {\n this.getTag().clearGroup(getGroupForId(id));\n this.clearNames(id);\n }\n\n /** Clears the entire tag which deletes all rules but not its names */\n clearTag() {\n // NOTE: This does not clear the names, since it's only used during SSR\n // so that we can continuously output only new rules\n this.tag = undefined;\n }\n}\n","import * as stylis from 'stylis';\nimport { Stringifier } from '../types';\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from './empties';\nimport throwStyledError from './error';\nimport { SEED, phash } from './hash';\n\nconst AMP_REGEX = /&/g;\nconst COMMENT_REGEX = /^\\s*\\/\\/.*$/gm;\n\nexport type ICreateStylisInstance = {\n options?: { namespace?: string | undefined; prefix?: boolean | undefined } | undefined;\n plugins?: stylis.Middleware[] | undefined;\n};\n\n/**\n * Takes an element and recurses through it's rules added the namespace to the start of each selector.\n * Takes into account media queries by recursing through child rules if they are present.\n */\nfunction recursivelySetNamepace(compiled: stylis.Element[], namespace: String): stylis.Element[] {\n return compiled.map(rule => {\n if (rule.type === 'rule') {\n // add the namespace to the start\n rule.value = `${namespace} ${rule.value}`;\n // add the namespace after each comma for subsequent selectors.\n rule.value = rule.value.replaceAll(',', `,${namespace} `);\n rule.props = (rule.props as string[]).map(prop => {\n return `${namespace} ${prop}`;\n });\n }\n\n if (Array.isArray(rule.children) && rule.type !== '@keyframes') {\n rule.children = recursivelySetNamepace(rule.children, namespace);\n }\n return rule;\n });\n}\n\nexport default function createStylisInstance(\n {\n options = EMPTY_OBJECT as object,\n plugins = EMPTY_ARRAY as unknown as stylis.Middleware[],\n }: ICreateStylisInstance = EMPTY_OBJECT as object\n) {\n let _componentId: string;\n let _selector: string;\n let _selectorRegexp: RegExp;\n\n const selfReferenceReplacer = (match: string, offset: number, string: string) => {\n if (\n /**\n * We only want to refer to the static class directly if the selector is part of a\n * self-reference selector `& + & { color: red; }`\n */\n string.startsWith(_selector) &&\n string.endsWith(_selector) &&\n string.replaceAll(_selector, '').length > 0\n ) {\n return `.${_componentId}`;\n }\n\n return match;\n };\n\n /**\n * When writing a style like\n *\n * & + & {\n * color: red;\n * }\n *\n * The second ampersand should be a reference to the static component class. stylis\n * has no knowledge of static class so we have to intelligently replace the base selector.\n *\n * https://github.com/thysultan/stylis.js/tree/v4.0.2#abstract-syntax-structure\n */\n const selfReferenceReplacementPlugin: stylis.Middleware = element => {\n if (element.type === stylis.RULESET && element.value.includes('&')) {\n (element.props as string[])[0] = element.props[0]\n // catch any hanging references that stylis missed\n .replace(AMP_REGEX, _selector)\n .replace(_selectorRegexp, selfReferenceReplacer);\n }\n };\n\n const middlewares = plugins.slice();\n\n middlewares.push(selfReferenceReplacementPlugin);\n\n /**\n * Enables automatic vendor-prefixing for styles.\n */\n if (options.prefix) {\n middlewares.push(stylis.prefixer);\n }\n\n middlewares.push(stylis.stringify);\n\n const stringifyRules: Stringifier = (\n css: string,\n selector = '',\n /**\n * This \"prefix\" referes to a _selector_ prefix.\n */\n prefix = '',\n componentId = '&'\n ) => {\n // stylis has no concept of state to be passed to plugins\n // but since JS is single-threaded, we can rely on that to ensure\n // these properties stay in sync with the current stylis run\n _componentId = componentId;\n _selector = selector;\n _selectorRegexp = new RegExp(`\\\\${_selector}\\\\b`, 'g');\n\n const flatCSS = css.replace(COMMENT_REGEX, '');\n let compiled = stylis.compile(\n prefix || selector ? `${prefix} ${selector} { ${flatCSS} }` : flatCSS\n );\n\n if (options.namespace) {\n compiled = recursivelySetNamepace(compiled, options.namespace);\n }\n\n const stack: string[] = [];\n\n stylis.serialize(\n compiled,\n stylis.middleware(middlewares.concat(stylis.rulesheet(value => stack.push(value))))\n );\n\n return stack;\n };\n\n stringifyRules.hash = plugins.length\n ? plugins\n .reduce((acc, plugin) => {\n if (!plugin.name) {\n throwStyledError(15);\n }\n\n return phash(acc, plugin.name);\n }, SEED)\n .toString()\n : '';\n\n return stringifyRules;\n}\n","import React, { useContext, useEffect, useMemo, useState } from 'react';\nimport shallowequal from 'shallowequal';\nimport type stylis from 'stylis';\nimport StyleSheet from '../sheet';\nimport { InsertionTarget, ShouldForwardProp, Stringifier } from '../types';\nimport createStylisInstance from '../utils/stylis';\n\nexport const mainSheet: StyleSheet = new StyleSheet();\nexport const mainStylis: Stringifier = createStylisInstance();\n\nexport type IStyleSheetContext = {\n shouldForwardProp?: ShouldForwardProp<'web'> | undefined;\n styleSheet: StyleSheet;\n stylis: Stringifier;\n};\n\nexport const StyleSheetContext = React.createContext<IStyleSheetContext>({\n shouldForwardProp: undefined,\n styleSheet: mainSheet,\n stylis: mainStylis,\n});\n\nexport const StyleSheetConsumer = StyleSheetContext.Consumer;\n\nexport type IStylisContext = Stringifier | void;\nexport const StylisContext = React.createContext<IStylisContext>(undefined);\nexport const StylisConsumer = StylisContext.Consumer;\n\nexport function useStyleSheetContext() {\n return useContext(StyleSheetContext);\n}\n\nexport type IStyleSheetManager = React.PropsWithChildren<{\n /**\n * If desired, you can pass this prop to disable \"speedy\" insertion mode, which\n * uses the browser [CSSOM APIs](https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet).\n * When disabled, rules are inserted as simple text into style blocks.\n */\n disableCSSOMInjection?: undefined | boolean;\n /**\n * If you are working exclusively with modern browsers, vendor prefixes can often be omitted\n * to reduce the weight of CSS on the page.\n */\n enableVendorPrefixes?: undefined | boolean;\n /**\n * Provide an optional selector to be prepended to all generated style rules.\n */\n namespace?: undefined | string;\n /**\n * Create and provide your own `StyleSheet` if necessary for advanced SSR scenarios.\n */\n sheet?: undefined | StyleSheet;\n /**\n * Starting in v6, styled-components no longer does its own prop validation\n * and recommends use of transient props \"$prop\" to pass style-only props to\n * components. If for some reason you are not able to use transient props, a\n * prop validation function can be provided via `StyleSheetManager`, such as\n * `@emotion/is-prop-valid`.\n *\n * When the return value is `true`, props will be forwarded to the DOM/underlying\n * component. If return value is `false`, the prop will be discarded after styles\n * are calculated.\n *\n * Manually composing `styled.{element}.withConfig({shouldForwardProp})` will\n * override this default.\n */\n shouldForwardProp?: undefined | IStyleSheetContext['shouldForwardProp'];\n /**\n * An array of plugins to be run by stylis (style processor) during compilation.\n * Check out [what's available on npm*](https://www.npmjs.com/search?q=keywords%3Astylis).\n *\n * \\* The plugin(s) must be compatible with stylis v4 or above.\n */\n stylisPlugins?: undefined | stylis.Middleware[];\n /**\n * Provide an alternate DOM node to host generated styles; useful for iframes.\n */\n target?: undefined | InsertionTarget;\n}>;\n\nexport function StyleSheetManager(props: IStyleSheetManager): React.JSX.Element {\n const [plugins, setPlugins] = useState(props.stylisPlugins);\n const { styleSheet } = useStyleSheetContext();\n\n const resolvedStyleSheet = useMemo(() => {\n let sheet = styleSheet;\n\n if (props.sheet) {\n sheet = props.sheet;\n } else if (props.target) {\n sheet = sheet.reconstructWithOptions({ target: props.target }, false);\n }\n\n if (props.disableCSSOMInjection) {\n sheet = sheet.reconstructWithOptions({ useCSSOMInjection: false });\n }\n\n return sheet;\n }, [props.disableCSSOMInjection, props.sheet, props.target, styleSheet]);\n\n const stylis = useMemo(\n () =>\n createStylisInstance({\n options: { namespace: props.namespace, prefix: props.enableVendorPrefixes },\n plugins,\n }),\n [props.enableVendorPrefixes, props.namespace, plugins]\n );\n\n useEffect(() => {\n if (!shallowequal(plugins, props.stylisPlugins)) setPlugins(props.stylisPlugins);\n }, [props.stylisPlugins]);\n\n const styleSheetContextValue = useMemo(\n () => ({\n shouldForwardProp: props.shouldForwardProp,\n styleSheet: resolvedStyleSheet,\n stylis,\n }),\n [props.shouldForwardProp, resolvedStyleSheet, stylis]\n );\n\n return (\n <StyleSheetContext.Provider value={styleSheetContextValue}>\n <StylisContext.Provider value={stylis}>{props.children}</StylisContext.Provider>\n </StyleSheetContext.Provider>\n );\n}\n","import StyleSheet from '../sheet';\nimport { Keyframes as KeyframesType, Stringifier } from '../types';\nimport styledError from '../utils/error';\nimport { setToString } from '../utils/setToString';\nimport { mainStylis } from './StyleSheetManager';\n\nexport default class Keyframes implements KeyframesType {\n id: string;\n name: string;\n rules: string;\n\n constructor(name: string, rules: string) {\n this.name = name;\n this.id = `sc-keyframes-${name}`;\n this.rules = rules;\n\n setToString(this, () => {\n throw styledError(12, String(this.name));\n });\n }\n\n inject = (styleSheet: StyleSheet, stylisInstance: Stringifier = mainStylis): void => {\n const resolvedName = this.name + stylisInstance.hash;\n\n if (!styleSheet.hasNameForId(this.id, resolvedName)) {\n styleSheet.insertRules(\n this.id,\n resolvedName,\n stylisInstance(this.rules, resolvedName, '@keyframes')\n );\n }\n };\n\n getName(stylisInstance: Stringifier = mainStylis): string {\n return this.name + stylisInstance.hash;\n }\n}\n","const isUpper = (c: string) => c >= 'A' && c <= 'Z';\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n */\nexport default function hyphenateStyleName(string: string): string {\n let output = '';\n\n for (let i = 0; i < string.length; i++) {\n const c = string[i];\n // Check for CSS variable prefix\n if (i === 1 && c === '-' && string[0] === '-') {\n return string;\n }\n\n if (isUpper(c)) {\n output += '-' + c.toLowerCase();\n } else {\n output += c;\n }\n }\n\n return output.startsWith('ms-') ? '-' + output : output;\n}\n","import Keyframes from '../models/Keyframes';\nimport StyleSheet from '../sheet';\nimport {\n AnyComponent,\n Dict,\n ExecutionContext,\n Interpolation,\n IStyledComponent,\n RuleSet,\n Stringifier,\n StyledObject,\n} from '../types';\nimport addUnitIfNeeded from './addUnitIfNeeded';\nimport { EMPTY_ARRAY } from './empties';\nimport getComponentName from './getComponentName';\nimport hyphenate from './hyphenateStyleName';\nimport isFunction from './isFunction';\nimport isPlainObject from './isPlainObject';\nimport isStatelessFunction from './isStatelessFunction';\nimport isStyledComponent from './isStyledComponent';\n\n/**\n * It's falsish not falsy because 0 is allowed.\n */\nconst isFalsish = (chunk: any): chunk is undefined | null | false | '' =>\n chunk === undefined || chunk === null || chunk === false || chunk === '';\n\nexport const objToCssArray = (obj: Dict<any>): string[] => {\n const rules = [];\n\n for (const key in obj) {\n const val = obj[key];\n if (!obj.hasOwnProperty(key) || isFalsish(val)) continue;\n\n // @ts-expect-error Property 'isCss' does not exist on type 'any[]'\n if ((Array.isArray(val) && val.isCss) || isFunction(val)) {\n rules.push(`${hyphenate(key)}:`, val, ';');\n } else if (isPlainObject(val)) {\n rules.push(`${key} {`, ...objToCssArray(val), '}');\n } else {\n rules.push(`${hyphenate(key)}: ${addUnitIfNeeded(key, val)};`);\n }\n }\n\n return rules;\n};\n\nexport default function flatten<Props extends object>(\n chunk: Interpolation<object>,\n executionContext?: (ExecutionContext & Props) | undefined,\n styleSheet?: StyleSheet | undefined,\n stylisInstance?: Stringifier | undefined\n): RuleSet<Props> {\n if (isFalsish(chunk)) {\n return [];\n }\n\n /* Handle other components */\n if (isStyledComponent(chunk)) {\n return [`.${(chunk as unknown as IStyledComponent<'web', any>).styledComponentId}`];\n }\n\n /* Either execute or defer the function */\n if (isFunction(chunk)) {\n if (isStatelessFunction(chunk) && executionContext) {\n const result = chunk(executionContext);\n\n if (\n process.env.NODE_ENV !== 'production' &&\n typeof result === 'object' &&\n !Array.isArray(result) &&\n !(result instanceof Keyframes) &&\n !isPlainObject(result) &&\n result !== null\n ) {\n console.error(\n `${getComponentName(\n chunk as AnyComponent\n )} is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.`\n );\n }\n\n return flatten<Props>(result, executionContext, styleSheet, stylisInstance);\n } else {\n return [chunk as unknown as IStyledComponent<'web'>];\n }\n }\n\n if (chunk instanceof Keyframes) {\n if (styleSheet) {\n chunk.inject(styleSheet, stylisInstance);\n return [chunk.getName(stylisInstance)];\n } else {\n return [chunk];\n }\n }\n\n /* Handle objects */\n if (isPlainObject(chunk)) {\n return objToCssArray(chunk as StyledObject<Props>);\n }\n\n if (!Array.isArray(chunk)) {\n return [chunk.toString()];\n }\n\n return flatMap(chunk, chunklet =>\n flatten<Props>(chunklet, executionContext, styleSheet, stylisInstance)\n );\n}\n\nfunction flatMap<T, U>(array: T[], transform: (value: T, index: number, array: T[]) => U[]): U[] {\n return Array.prototype.concat.apply(EMPTY_ARRAY, array.map(transform));\n}\n","import unitless from '@emotion/unitless';\n\n// Taken from https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/shared/dangerousStyleValue.js\nexport default function addUnitIfNeeded(name: string, value: any) {\n // https://github.com/amilajack/eslint-plugin-flowtype-errors/issues/133\n if (value == null || typeof value === 'boolean' || value === '') {\n return '';\n }\n\n if (typeof value === 'number' && value !== 0 && !(name in unitless) && !name.startsWith('--')) {\n return `${value}px`; // Presumes implicit 'px' suffix for unitless numbers except for CSS variables\n }\n\n return String(value).trim();\n}\n","import isFunction from './isFunction';\n\nexport default function isStatelessFunction(test: any): test is Function {\n return isFunction(test) && !(test.prototype && test.prototype.isReactComponent);\n}\n","import { RuleSet } from '../types';\nimport isFunction from './isFunction';\nimport isStyledComponent from './isStyledComponent';\n\nexport default function isStaticRules<Props extends object>(rules: RuleSet<Props>) {\n for (let i = 0; i < rules.length; i += 1) {\n const rule = rules[i];\n\n if (isFunction(rule) && !isStyledComponent(rule)) {\n // functions are allowed to be static if they're just being\n // used to get the classname of a nested styled component\n return false;\n }\n }\n\n return true;\n}\n","import { SC_VERSION } from '../constants';\nimport StyleSheet from '../sheet';\nimport { ExecutionContext, RuleSet, Stringifier } from '../types';\nimport flatten from '../utils/flatten';\nimport generateName from '../utils/generateAlphabeticName';\nimport { hash, phash } from '../utils/hash';\nimport isStaticRules from '../utils/isStaticRules';\nimport { joinStringArray, joinStrings } from '../utils/joinStrings';\n\nconst SEED = hash(SC_VERSION);\n\n/**\n * ComponentStyle is all the CSS-specific stuff, not the React-specific stuff.\n */\nexport default class ComponentStyle {\n baseHash: number;\n baseStyle: ComponentStyle | null | undefined;\n componentId: string;\n isStatic: boolean;\n rules: RuleSet<any>;\n staticRulesId: string;\n\n constructor(rules: RuleSet<any>, componentId: string, baseStyle?: ComponentStyle | undefined) {\n this.rules = rules;\n this.staticRulesId = '';\n this.isStatic =\n process.env.NODE_ENV === 'production' &&\n (baseStyle === undefined || baseStyle.isStatic) &&\n isStaticRules(rules);\n this.componentId = componentId;\n this.baseHash = phash(SEED, componentId);\n this.baseStyle = baseStyle;\n\n // NOTE: This registers the componentId, which ensures a consistent order\n // for this component's styles compared to others\n StyleSheet.registerId(componentId);\n }\n\n generateAndInjectStyles(\n executionContext: ExecutionContext,\n styleSheet: StyleSheet,\n stylis: Stringifier\n ): string {\n let names = this.baseStyle\n ? this.baseStyle.generateAndInjectStyles(executionContext, styleSheet, stylis)\n : '';\n\n // force dynamic classnames if user-supplied stylis plugins are in use\n if (this.isStatic && !stylis.hash) {\n if (this.staticRulesId && styleSheet.hasNameForId(this.componentId, this.staticRulesId)) {\n names = joinStrings(names, this.staticRulesId);\n } else {\n const cssStatic = joinStringArray(\n flatten(this.rules, executionContext, styleSheet, stylis) as string[]\n );\n const name = generateName(phash(this.baseHash, cssStatic) >>> 0);\n\n if (!styleSheet.hasNameForId(this.componentId, name)) {\n const cssStaticFormatted = stylis(cssStatic, `.${name}`, undefined, this.componentId);\n styleSheet.insertRules(this.componentId, name, cssStaticFormatted);\n }\n\n names = joinStrings(names, name);\n this.staticRulesId = name;\n }\n } else {\n let dynamicHash = phash(this.baseHash, stylis.hash);\n let css = '';\n\n for (let i = 0; i < this.rules.length; i++) {\n const partRule = this.rules[i];\n\n if (typeof partRule === 'string') {\n css += partRule;\n\n if (process.env.NODE_ENV !== 'production') dynamicHash = phash(dynamicHash, partRule);\n } else if (partRule) {\n const partString = joinStringArray(\n flatten(partRule, executionContext, styleSheet, stylis) as string[]\n );\n // The same value can switch positions in the array, so we include \"i\" in the hash.\n dynamicHash = phash(dynamicHash, partString + i);\n css += partString;\n }\n }\n\n if (css) {\n const name = generateName(dynamicHash >>> 0);\n\n if (!styleSheet.hasNameForId(this.componentId, name)) {\n styleSheet.insertRules(\n this.componentId,\n name,\n stylis(css, `.${name}`, undefined, this.componentId)\n );\n }\n\n names = joinStrings(names, name);\n }\n }\n\n return names;\n }\n}\n","import React, { useContext, useMemo } from 'react';\nimport styledError from '../utils/error';\nimport isFunction from '../utils/isFunction';\n\n/**\n * Override DefaultTheme to get accurate typings for your project.\n *\n * ```\n * // create styled-components.d.ts in your project source\n * // if it isn't being picked up, check tsconfig compilerOptions.types\n * import type { CSSProp } from \"styled-components\";\n * import Theme from './theme';\n *\n * type ThemeType = typeof Theme;\n *\n * declare module \"styled-components\" {\n * export interface DefaultTheme extends ThemeType {}\n * }\n *\n * declare module \"react\" {\n * interface DOMAttributes<T> {\n * css?: CSSProp;\n * }\n * }\n * ```\n */\nexport interface DefaultTheme {\n [key: string]: any;\n}\n\ntype ThemeFn = (outerTheme?: DefaultTheme | undefined) => DefaultTheme;\ntype ThemeArgument = DefaultTheme | ThemeFn;\n\ntype Props = {\n children?: React.ReactNode;\n theme: ThemeArgument;\n};\n\nexport const ThemeContext = React.createContext<DefaultTheme | undefined>(undefined);\n\nexport const ThemeConsumer = ThemeContext.Consumer;\n\nfunction mergeTheme(theme: ThemeArgument, outerTheme?: DefaultTheme | undefined): DefaultTheme {\n if (!theme) {\n throw styledError(14);\n }\n\n if (isFunction(theme)) {\n const themeFn = theme as ThemeFn;\n const mergedTheme = themeFn(outerTheme);\n\n if (\n process.env.NODE_ENV !== 'production' &&\n (mergedTheme === null || Array.isArray(mergedTheme) || typeof mergedTheme !== 'object')\n ) {\n throw styledError(7);\n }\n\n return mergedTheme;\n }\n\n if (Array.isArray(theme) || typeof theme !== 'object') {\n throw styledError(8);\n }\n\n return outerTheme ? { ...outerTheme, ...theme } : theme;\n}\n\n/**\n * Returns the current theme (as provided by the closest ancestor `ThemeProvider`.)\n *\n * If no `ThemeProvider` is found, the function will error. If you need access to the theme in an\n * uncertain composition scenario, `React.useContext(ThemeContext)` will not emit an error if there\n * is no `ThemeProvider` ancestor.\n */\nexport function useTheme(): DefaultTheme {\n const theme = useContext(ThemeContext);\n\n if (!theme) {\n throw styledError(18);\n }\n\n return theme;\n}\n\n/**\n * Provide a theme to an entire react component tree via context\n */\nexport default function ThemeProvider(props: Props): React.JSX.Element | null {\n const outerTheme = React.useContext(ThemeContext);\n const themeContext = useMemo(\n () => mergeTheme(props.theme, outerTheme),\n [props.theme, outerTheme]\n );\n\n if (!props.children) {\n return null;\n }\n\n return <ThemeContext.Provider value={themeContext}>{props.children}</ThemeContext.Provider>;\n}\n","import isPropValid from '@emotion/is-prop-valid';\nimport React, { createElement, Ref, useDebugValue } from 'react';\nimport { SC_VERSION } from '../constants';\nimport type {\n AnyComponent,\n Attrs,\n BaseObject,\n Dict,\n ExecutionContext,\n ExecutionProps,\n IStyledComponent,\n IStyledComponentFactory,\n IStyledStatics,\n OmitNever,\n RuleSet,\n StyledOptions,\n WebTarget,\n} from '../types';\nimport { checkDynamicCreation } from '../utils/checkDynamicCreation';\nimport createWarnTooManyClasses from '../utils/createWarnTooManyClasses';\nimport determineTheme from '../utils/determineTheme';\nimport domElements from '../utils/domElements';\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from '../utils/empties';\nimport escape from '../utils/escape';\nimport generateComponentId from '../utils/generateComponentId';\nimport generateDisplayName from '../utils/generateDisplayName';\nimport hoist from '../utils/hoist';\nimport isFunction from '../utils/isFunction';\nimport isStyledComponent from '../utils/isStyledComponent';\nimport isTag from '../utils/isTag';\nimport { joinStrings } from '../utils/joinStrings';\nimport merge from '../utils/mixinDeep';\nimport { setToString } from '../utils/setToString';\nimport ComponentStyle from './ComponentStyle';\nimport { useStyleSheetContext } from './StyleSheetManager';\nimport { DefaultTheme, ThemeContext } from './ThemeProvider';\n\nconst identifiers: { [key: string]: number } = {};\n\n/* We depend on components having unique IDs */\nfunction generateId(\n displayName?: string | undefined,\n parentComponentId?: string | undefined\n): string {\n const name = typeof displayName !== 'string' ? 'sc' : escape(displayName);\n // Ensure that no displayName can lead to duplicate componentIds\n identifiers[name] = (identifiers[name] || 0) + 1;\n\n const componentId = `${name}-${generateComponentId(\n // SC_VERSION gives us isolation between multiple runtimes on the page at once\n // this is improved further with use of the babel plugin \"namespace\" feature\n SC_VERSION + name + identifiers[name]\n )}`;\n\n return parentComponentId ? `${parentComponentId}-${componentId}` : componentId;\n}\n\nfunction useInjectedStyle<T extends ExecutionContext>(\n componentStyle: ComponentStyle,\n resolvedAttrs: T\n) {\n const ssc = useStyleSheetContext();\n\n const className = componentStyle.generateAndInjectStyles(\n resolvedAttrs,\n ssc.styleSheet,\n ssc.stylis\n );\n\n if (process.env.NODE_ENV !== 'production') useDebugValue(className);\n\n return className;\n}\n\nfunction resolveContext<Props extends object>(\n attrs: Attrs<React.HTMLAttributes<Element> & Props>[],\n props: React.HTMLAttributes<Element> & ExecutionProps & Props,\n theme: DefaultTheme\n) {\n const context: React.HTMLAttributes<Element> &\n ExecutionContext &\n Props & { [key: string]: any; class?: string; ref?: React.Ref<any> } = {\n ...props,\n // unset, add `props.className` back at the end so props always \"wins\"\n className: undefined,\n theme,\n };\n let attrDef;\n\n for (let i = 0; i < attrs.length; i += 1) {\n attrDef = attrs[i];\n const resolvedAttrDef = isFunction(attrDef) ? attrDef(context) : attrDef;\n\n for (const key in resolvedAttrDef) {\n context[key as keyof typeof context] =\n key === 'className'\n ? joinStrings(context[key] as string | undefined, resolvedAttrDef[key] as string)\n : key === 'style'\n ? { ...context[key], ...resolvedAttrDef[key] }\n : resolvedAttrDef[key as keyof typeof resolvedAttrDef];\n }\n }\n\n if (props.className) {\n context.className = joinStrings(context.className, props.className);\n }\n\n return context;\n}\n\nlet seenUnknownProps = new Set();\n\nfunction useStyledComponentImpl<Props extends object>(\n forwardedComponent: IStyledComponent<'web', Props>,\n props: ExecutionProps & Props,\n forwardedRef: Ref<Element>\n) {\n const {\n attrs: componentAttrs,\n componentStyle,\n defaultProps,\n foldedComponentIds,\n styledComponentId,\n target,\n } = forwardedComponent;\n\n const contextTheme = React.useContext(ThemeContext);\n const ssc = useStyleSheetContext();\n const shouldForwardProp = forwardedComponent.shouldForwardProp || ssc.shouldForwardProp;\n\n if (process.env.NODE_ENV !== 'production') useDebugValue(styledComponentId);\n\n // NOTE: the non-hooks version only subscribes to this when !componentStyle.isStatic,\n // but that'd be against the rules-of-hooks. We could be naughty and do it anyway as it\n // should be an immutable value, but behave for now.\n const theme = determineTheme(props, contextTheme, defaultProps) || EMPTY_OBJECT;\n\n const context = resolveContext<Props>(componentAttrs, props, theme);\n const elementToBeCreated: WebTarget = context.as || target;\n const propsForElement: Dict<any> = {};\n\n for (const key in context) {\n if (context[key] === undefined) {\n // Omit undefined values from props passed to wrapped element.\n // This enables using .attrs() to remove props, for example.\n } else if (key[0] === '$' || key === 'as' || (key === 'theme' && context.theme === theme)) {\n // Omit transient props and execution props.\n } else if (key === 'forwardedAs') {\n propsForElement.as = context.forwardedAs;\n } else if (!shouldForwardProp || shouldForwardProp(key, elementToBeCreated)) {\n propsForElement[key] = context[key];\n\n if (\n !shouldForwardProp &&\n process.env.NODE_ENV === 'development' &&\n !isPropValid(key) &&\n !seenUnknownProps.has(key) &&\n // Only warn on DOM Element.\n domElements.has(elementToBeCreated as any)\n ) {\n seenUnknownProps.add(key);\n console.warn(\n `styled-components: it looks like an unknown prop \"${key}\" is being sent through to the DOM, which will likely trigger a React console error. If you would like automatic filtering of unknown props, you can opt-into that behavior via \\`<StyleSheetManager shouldForwardProp={...}>\\` (connect an API like \\`@emotion/is-prop-valid\\`) or consider using transient props (\\`$\\` prefix for automatic filtering.)`\n );\n }\n }\n }\n\n const generatedClassName = useInjectedStyle(componentStyle, context);\n\n if (process.env.NODE_ENV !== 'production' && forwardedComponent.warnTooManyClasses) {\n forwardedComponent.warnTooManyClasses(generatedClassName);\n }\n\n let classString = joinStrings(foldedComponentIds, styledComponentId);\n if (generatedClassName) {\n classString += ' ' + generatedClassName;\n }\n if (context.className) {\n classString += ' ' + context.className;\n }\n\n propsForElement[\n // handle custom elements which React doesn't properly alias\n isTag(elementToBeCreated) &&\n !domElements.has(elementToBeCreated as Extract<typeof domElements, string>)\n ? 'class'\n : 'className'\n ] = classString;\n\n // forwardedRef is coming from React.forwardRef.\n // But it might not exist. Since React 19 handles `ref` like a prop, it only define it if there is a value.\n // We don't want to inject an empty ref.\n if (forwardedRef) {\n propsForElement.ref = forwardedRef;\n }\n\n return createElement(elementToBeCreated, propsForElement);\n}\n\nfunction createStyledComponent<\n Target extends WebTarget,\n OuterProps extends object,\n Statics extends object = BaseObject,\n>(\n target: Target,\n options: StyledOptions<'web', OuterProps>,\n rules: RuleSet<OuterProps>\n): ReturnType<IStyledComponentFactory<'web', Target, OuterProps, Statics>> {\n const isTargetStyledComp = isStyledComponent(target);\n const styledComponentTarget = target as IStyledComponent<'web', OuterProps>;\n const isCompositeComponent = !isTag(target);\n\n const {\n attrs = EMPTY_ARRAY,\n componentId = generateId(options.displayName, options.parentComponentId),\n displayName = generateDisplayName(target),\n } = options;\n\n const styledComponentId =\n options.displayName && options.componentId\n ? `${escape(options.displayName)}-${options.componentId}`\n : options.componentId || componentId;\n\n // fold the underlying StyledComponent attrs up (implicit extend)\n const finalAttrs =\n isTargetStyledComp && styledComponentTarget.attrs\n ? styledComponentTarget.attrs.concat(attrs as unknown as Attrs<OuterProps>[]).filter(Boolean)\n : (attrs as Attrs<OuterProps>[]);\n\n let { shouldForwardProp } = options;\n\n if (isTargetStyledComp && styledComponentTarget.shouldForwardProp) {\n const shouldForwardPropFn = styledComponentTarget.shouldForwardProp;\n\n if (options.shouldForwardProp) {\n const passedShouldForwardPropFn = options.shouldForwardProp;\n\n // compose nested shouldForwardProp calls\n shouldForwardProp = (prop, elementToBeCreated) =>\n shouldForwardPropFn(prop, elementToBeCreated) &&\n passedShouldForwardPropFn(prop, elementToBeCreated);\n } else {\n shouldForwardProp = shouldForwardPropFn;\n }\n }\n\n const componentStyle = new ComponentStyle(\n rules,\n styledComponentId,\n isTargetStyledComp ? (styledComponentTarget.componentStyle as ComponentStyle) : undefined\n );\n\n function forwardRefRender(props: ExecutionProps & OuterProps, ref: Ref<Element>) {\n return useStyledComponentImpl<OuterProps>(WrappedStyledComponent, props, ref);\n }\n\n forwardRefRender.displayName = displayName;\n\n /**\n * forwardRef creates a new interim component, which we'll take advantage of\n * instead of extending ParentComponent to create _another_ interim class\n */\n let WrappedStyledComponent = React.forwardRef(forwardRefRender) as unknown as IStyledComponent<\n 'web',\n any\n > &\n Statics;\n WrappedStyledComponent.attrs = finalAttrs;\n WrappedStyledComponent.componentStyle = componentStyle;\n WrappedStyledComponent.displayName = displayName;\n WrappedStyledComponent.shouldForwardProp = shouldForwardProp;\n\n // this static is used to preserve the cascade of static classes for component selector\n // purposes; this is especially important with usage of the css prop\n WrappedStyledComponent.foldedComponentIds = isTargetStyledComp\n ? joinStrings(styledComponentTarget.foldedComponentIds, styledComponentTarget.styledComponentId)\n : '';\n\n WrappedStyledComponent.styledComponentId = styledComponentId;\n\n // fold the underlying StyledComponent target up since we folded the styles\n WrappedStyledComponent.target = isTargetStyledComp ? styledComponentTarget.target : target;\n\n Object.defineProperty(WrappedStyledComponent, 'defaultProps', {\n get() {\n return this._foldedDefaultProps;\n },\n\n set(obj) {\n this._foldedDefaultProps = isTargetStyledComp\n ? merge({}, styledComponentTarget.defaultProps, obj)\n : obj;\n },\n });\n\n if (process.env.NODE_ENV !== 'production') {\n checkDynamicCreation(displayName, styledComponentId);\n\n WrappedStyledComponent.warnTooManyClasses = createWarnTooManyClasses(\n displayName,\n styledComponentId\n );\n }\n\n setToString(WrappedStyledComponent, () => `.${WrappedStyledComponent.styledComponentId}`);\n\n if (isCompositeComponent) {\n const compositeComponentTarget = target as AnyComponent;\n\n hoist<typeof WrappedStyledComponent, typeof compositeComponentTarget>(\n WrappedStyledComponent,\n compositeComponentTarget,\n {\n // all SC-specific things should not be hoisted\n attrs: true,\n componentStyle: true,\n displayName: true,\n foldedComponentIds: true,\n shouldForwardProp: true,\n styledComponentId: true,\n target: true,\n } as { [key in keyof OmitNever<IStyledStatics<'web', OuterProps>>]: true }\n );\n }\n\n return WrappedStyledComponent;\n}\n\nexport default createStyledComponent;\n","import { StyledTarget } from '../types';\nimport getComponentName from './getComponentName';\nimport isTag from './isTag';\n\nexport default function generateDisplayName(target: StyledTarget<any>) {\n return isTag(target) ? `styled.${target}` : `Styled(${getComponentName(target)})`;\n}\n","import { Interpolation } from '../types';\n\nexport default function interleave<Props extends object>(\n strings: readonly string[],\n interpolations: Interpolation<Props>[]\n): Interpolation<Props>[] {\n const result: Interpolation<Props>[] = [strings[0]];\n\n for (let i = 0, len = interpolations.length; i < len; i += 1) {\n result.push(interpolations[i], strings[i + 1]);\n }\n\n return result;\n}\n","import {\n BaseObject,\n Interpolation,\n NoInfer,\n RuleSet,\n StyledObject,\n StyleFunction,\n Styles,\n} from '../types';\nimport { EMPTY_ARRAY } from '../utils/empties';\nimport flatten from '../utils/flatten';\nimport interleave from '../utils/interleave';\nimport isFunction from '../utils/isFunction';\nimport isPlainObject from '../utils/isPlainObject';\n\n/**\n * Used when flattening object styles to determine if we should\n * expand an array of styles.\n */\nconst addTag = <T extends RuleSet<any>>(arg: T): T & { isCss: true } =>\n Object.assign(arg, { isCss: true } as const);\n\nfunction css(styles: Styles<object>, ...interpolations: Interpolation<object>[]): RuleSet<object>;\nfunction css<Props extends object>(\n styles: Styles<NoInfer<Props>>,\n ...interpolations: Interpolation<NoInfer<Props>>[]\n): RuleSet<NoInfer<Props>>;\nfunction css<Props extends object = BaseObject>(\n styles: Styles<NoInfer<Props>>,\n ...interpolations: Interpolation<NoInfer<Props>>[]\n): RuleSet<NoInfer<Props>> {\n if (isFunction(styles) || isPlainObject(styles)) {\n const styleFunctionOrObject = styles as StyleFunction<Props> | StyledObject<Props>;\n\n return addTag(\n flatten<Props>(\n interleave<Props>(EMPTY_ARRAY, [\n styleFunctionOrObject,\n ...interpolations,\n ]) as Interpolation<object>\n )\n );\n }\n\n const styleStringArray = styles as TemplateStringsArray;\n\n if (\n interpolations.length === 0 &&\n styleStringArray.length === 1 &&\n typeof styleStringArray[0] === 'string'\n ) {\n return flatten<Props>(styleStringArray);\n }\n\n return addTag(\n flatten<Props>(interleave<Props>(styleStringArray, interpolations) as Interpolation<object>)\n );\n}\n\nexport default css;\n","import {\n Attrs,\n BaseObject,\n ExecutionProps,\n Interpolation,\n IStyledComponent,\n IStyledComponentFactory,\n KnownTarget,\n NoInfer,\n Runtime,\n StyledOptions,\n StyledTarget,\n Styles,\n Substitute,\n} from '../types';\nimport { EMPTY_OBJECT } from '../utils/empties';\nimport styledError from '../utils/error';\nimport css from './css';\n\ntype AttrsResult<T extends Attrs<any>> = T extends (...args: any) => infer P\n ? P extends object\n ? P\n : never\n : T extends object\n ? T\n : never;\n\n/**\n * Based on Attrs being a simple object or function that returns\n * a prop object, inspect the attrs result and attempt to extract\n * any \"as\" prop usage to modify the runtime target.\n */\ntype AttrsTarget<\n R extends Runtime,\n T extends Attrs<any>,\n FallbackTarget extends StyledTarget<R>,\n Result extends ExecutionProps = AttrsResult<T>,\n> = Result extends { as: infer RuntimeTarget }\n ? RuntimeTarget extends KnownTarget\n ? RuntimeTarget\n : FallbackTarget\n : FallbackTarget;\n\nexport interface Styled<\n R extends Runtime,\n Target extends StyledTarget<R>,\n OuterProps extends object,\n OuterStatics extends object = BaseObject,\n> {\n <Props extends object = BaseObject, Statics extends object = BaseObject>(\n initialStyles: Styles<Substitute<OuterProps, NoInfer<Props>>>,\n ...interpolations: Interpolation<Substitute<OuterProps, NoInfer<Props>>>[]\n ): IStyledComponent<R, Substitute<OuterProps, Props>> &\n OuterStatics &\n Statics &\n (R extends 'web'\n ? Target extends string\n ? {}\n : Omit<Target, keyof React.Component<any>>\n : {});\n\n attrs: <\n Props extends object = BaseObject,\n PrivateMergedProps extends object = Substitute<OuterProps, Props>,\n PrivateAttrsArg extends Attrs<PrivateMergedProps> = Attrs<PrivateMergedProps>,\n PrivateResolvedTarget extends StyledTarget<R> = AttrsTarget<R, PrivateAttrsArg, Target>,\n >(\n attrs: PrivateAttrsArg\n ) => Styled<\n R,\n PrivateResolvedTarget,\n PrivateResolvedTarget extends KnownTarget\n ? Substitute<\n Substitute<OuterProps, React.ComponentPropsWithRef<PrivateResolvedTarget>>,\n Props\n >\n : PrivateMergedProps,\n OuterStatics\n >;\n\n withConfig: (config: StyledOptions<R, OuterProps>) => Styled<R, Target, OuterProps, OuterStatics>;\n}\n\nexport default function constructWithOptions<\n R extends Runtime,\n Target extends StyledTarget<R>,\n OuterProps extends object = Target extends KnownTarget\n ? React.ComponentPropsWithRef<Target>\n : BaseObject,\n OuterStatics extends object = BaseObject,\n>(\n componentConstructor: IStyledComponentFactory<R, StyledTarget<R>, object, any>,\n tag: StyledTarget<R>,\n options: StyledOptions<R, OuterProps> = EMPTY_OBJECT\n): Styled<R, Target, OuterProps, OuterStatics> {\n /**\n * We trust that the tag is a valid component as long as it isn't\n * falsish. Typically the tag here is a string or function (i.e.\n * class or pure function component), however a component may also be\n * an object if it uses another utility, e.g. React.memo. React will\n * output an appropriate warning however if the `tag` isn't valid.\n */\n if (!tag) {\n throw styledError(1, tag);\n }\n\n /* This is callable directly as a template function */\n const templateFunction = <Props extends object = BaseObject, Statics extends object = BaseObject>(\n initialStyles: Styles<Substitute<OuterProps, Props>>,\n ...interpolations: Interpolation<Substitute<OuterProps, Props>>[]\n ) =>\n componentConstructor<Substitute<OuterProps, Props>, Statics>(\n tag,\n options as StyledOptions<R, Substitute<OuterProps, Props>>,\n css<Substitute<OuterProps, Props>>(initialStyles, ...interpolations)\n );\n\n /**\n * Attrs allows for accomplishing two goals:\n *\n * 1. Backfilling props at runtime more expressively than defaultProps\n * 2. Amending the prop interface of a wrapped styled component\n */\n templateFunction.attrs = <\n Props extends object = BaseObject,\n PrivateMergedProps extends object = Substitute<OuterProps, Props>,\n PrivateAttrsArg extends Attrs<PrivateMergedProps> = Attrs<PrivateMergedProps>,\n PrivateResolvedTarget extends StyledTarget<R> = AttrsTarget<R, PrivateAttrsArg, Target>,\n >(\n attrs: PrivateAttrsArg\n ) =>\n constructWithOptions<\n R,\n PrivateResolvedTarget,\n PrivateResolvedTarget extends KnownTarget\n ? Substitute<\n Substitute<OuterProps, React.ComponentPropsWithRef<PrivateResolvedTarget>>,\n Props\n >\n : PrivateMergedProps,\n OuterStatics\n >(componentConstructor, tag, {\n ...options,\n attrs: Array.prototype.concat(options.attrs, attrs).filter(Boolean),\n });\n\n /**\n * If config methods are called, wrap up a new template function\n * and merge options.\n */\n templateFunction.withConfig = (config: StyledOptions<R, OuterProps>) =>\n constructWithOptions<R, Target, OuterProps, OuterStatics>(componentConstructor, tag, {\n ...options,\n ...config,\n });\n\n return templateFunction;\n}\n","import * as React from 'react';\nimport createStyledComponent from '../models/StyledComponent';\nimport { BaseObject, KnownTarget, WebTarget } from '../types';\nimport domElements, { SupportedHTMLElements } from '../utils/domElements';\nimport constructWithOptions, { Styled as StyledInstance } from './constructWithOptions';\n\nconst baseStyled = <Target extends WebTarget, InjectedProps extends object = BaseObject>(\n tag: Target\n) =>\n constructWithOptions<\n 'web',\n Target,\n Target extends KnownTarget ? React.ComponentPropsWithRef<Target> & InjectedProps : InjectedProps\n >(createStyledComponent, tag);\n\nconst styled = baseStyled as typeof baseStyled & {\n [E in SupportedHTMLElements]: StyledInstance<'web', E, React.JSX.IntrinsicElements[E]>;\n};\n\n// Shorthands for all valid HTML Elements\ndomElements.forEach(domElement => {\n // @ts-expect-error some react typing bs\n styled[domElement] = baseStyled<typeof domElement>(domElement);\n});\n\nexport default styled;\nexport { StyledInstance };\n\n/**\n * This is the type of the `styled` HOC.\n */\nexport type Styled = typeof styled;\n\n/**\n * Use this higher-order type for scenarios where you are wrapping `styled`\n * and providing extra props as a third-party library.\n */\nexport type LibraryStyled<LibraryProps extends object = BaseObject> = <Target extends WebTarget>(\n tag: Target\n) => typeof baseStyled<Target, LibraryProps>;\n","import StyleSheet from '../sheet';\nimport { ExecutionContext, RuleSet, Stringifier } from '../types';\nimport flatten from '../utils/flatten';\nimport isStaticRules from '../utils/isStaticRules';\nimport { joinStringArray } from '../utils/joinStrings';\n\nexport default class GlobalStyle<Props extends object> {\n componentId: string;\n isStatic: boolean;\n rules: RuleSet<Props>;\n\n constructor(rules: RuleSet<Props>, componentId: string) {\n this.rules = rules;\n this.componentId = componentId;\n this.isStatic = isStaticRules(rules);\n\n // pre-register the first instance to ensure global styles\n // load before component ones\n StyleSheet.registerId(this.componentId + 1);\n }\n\n createStyles(\n instance: number,\n executionContext: ExecutionContext & Props,\n styleSheet: StyleSheet,\n stylis: Stringifier\n ): void {\n const flatCSS = joinStringArray(\n flatten(this.rules as RuleSet<object>, executionContext, styleSheet, stylis) as string[]\n );\n const css = stylis(flatCSS, '');\n const id = this.componentId + instance;\n\n // NOTE: We use the id as a name as well, since these rules never change\n styleSheet.insertRules(id, id, css);\n }\n\n removeStyles(instance: number, styleSheet: StyleSheet): void {\n styleSheet.clearRules(this.componentId + instance);\n }\n\n renderStyles(\n instance: number,\n executionContext: ExecutionContext & Props,\n styleSheet: StyleSheet,\n stylis: Stringifier\n ): void {\n if (instance > 2) StyleSheet.registerId(this.componentId + instance);\n\n // NOTE: Remove old styles, then inject the new ones\n this.removeStyles(instance, styleSheet);\n this.createStyles(instance, executionContext, styleSheet, stylis);\n }\n}\n","import React from 'react';\nimport type * as streamInternal from 'stream';\nimport { Readable } from 'stream';\nimport { IS_BROWSER, SC_ATTR, SC_ATTR_VERSION, SC_VERSION } from '../constants';\nimport StyleSheet from '../sheet';\nimport styledError from '../utils/error';\nimport { joinStringArray } from '../utils/joinStrings';\nimport getNonce from '../utils/nonce';\nimport { StyleSheetManager } from './StyleSheetManager';\n\ndeclare const __SERVER__: boolean;\n\nconst CLOSING_TAG_R = /^\\s*<\\/[a-z]/i;\n\nexport default class ServerStyleSheet {\n instance: StyleSheet;\n sealed: boolean;\n\n constructor() {\n this.instance = new StyleSheet({ isServer: true });\n this.sealed = false;\n }\n\n _emitSheetCSS = (): string => {\n const css = this.instance.toString();\n if (!css) return '';\n const nonce = getNonce();\n const attrs = [\n nonce && `nonce=\"${nonce}\"`,\n `${SC_ATTR}=\"true\"`,\n `${SC_ATTR_VERSION}=\"${SC_VERSION}\"`,\n ];\n const htmlAttr = joinStringArray(attrs.filter(Boolean) as string[], ' ');\n\n return `<style ${htmlAttr}>${css}</style>`;\n };\n\n collectStyles(children: any): React.JSX.Element {\n if (this.sealed) {\n throw styledError(2);\n }\n\n return <StyleSheetManager sheet={this.instance}>{children}</StyleSheetManager>;\n }\n\n getStyleTags = (): string => {\n if (this.sealed) {\n throw styledError(2);\n }\n\n return this._emitSheetCSS();\n };\n\n getStyleElement = () => {\n if (this.sealed) {\n throw styledError(2);\n }\n\n const css = this.instance.toString();\n if (!css) return [];\n\n const props = {\n [SC_ATTR]: '',\n [SC_ATTR_VERSION]: SC_VERSION,\n dangerouslySetInnerHTML: {\n __html: css,\n },\n };\n\n const nonce = getNonce();\n if (nonce) {\n (props as any).nonce = nonce;\n }\n\n // v4 returned an array for this fn, so we'll do the same for v5 for backward compat\n return [<style {...props} key=\"sc-0-0\" />];\n };\n\n // @ts-expect-error alternate return types are not possible due to code transformation\n interleaveWithNodeStream(input: Readable): streamInternal.Transform {\n if (!__SERVER__ || IS_BROWSER) {\n throw styledError(3);\n } else if (this.sealed) {\n throw styledError(2);\n }\n\n if (__SERVER__) {\n this.seal();\n\n const { Transform } = require('stream');\n\n const readableStream: Readable = input;\n const { instance: sheet, _emitSheetCSS } = this;\n\n const transformer: streamInternal.Transform = new Transform({\n transform: function appendStyleChunks(\n chunk: string,\n /* encoding */\n _: string,\n callback: Function\n ) {\n // Get the chunk and retrieve the sheet's CSS as an HTML chunk,\n // then reset its rules so we get only new ones for the next chunk\n const renderedHtml = chunk.toString();\n const html = _emitSheetCSS();\n\n sheet.clearTag();\n\n // prepend style html to chunk, unless the start of the chunk is a\n // closing tag in which case append right after that\n if (CLOSING_TAG_R.test(renderedHtml)) {\n const endOfClosingTag = renderedHtml.indexOf('>') + 1;\n const before = renderedHtml.slice(0, endOfClosingTag);\n const after = renderedHtml.slice(endOfClosingTag);\n\n this.push(before + html + after);\n } else {\n this.push(html + renderedHtml);\n }\n\n callback();\n },\n });\n\n readableStream.on('error', err => {\n // forward the error to the transform stream\n transformer.emit('error', err);\n });\n\n return readableStream.pipe(transformer);\n }\n }\n\n seal = (): void => {\n this.sealed = true;\n };\n}\n","/* Import singletons */\nimport { SC_ATTR, SC_VERSION } from './constants';\nimport createGlobalStyle from './constructors/createGlobalStyle';\nimport css from './constructors/css';\nimport keyframes from './constructors/keyframes';\n/* Import Higher Order Components */\nimport withTheme from './hoc/withTheme';\n/* Import hooks */\nimport ServerStyleSheet from './models/ServerStyleSheet';\nimport {\n IStyleSheetContext,\n IStyleSheetManager,\n IStylisContext,\n StyleSheetConsumer,\n StyleSheetContext,\n StyleSheetManager,\n} from './models/StyleSheetManager';\n/* Import components */\nimport ThemeProvider, { ThemeConsumer, ThemeContext, useTheme } from './models/ThemeProvider';\nimport isStyledComponent from './utils/isStyledComponent';\n\n/* Warning if you've imported this file on React Native */\nif (\n process.env.NODE_ENV !== 'production' &&\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative'\n) {\n console.warn(\n `It looks like you've imported 'styled-components' on React Native.\\nPerhaps you're looking to import 'styled-components/native'?\\nRead more about this at https://www.styled-components.com/docs/basics#react-native`\n );\n}\n\nconst windowGlobalKey = `__sc-${SC_ATTR}__`;\n\n/* Warning if there are several instances of styled-components */\nif (\n process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test' &&\n typeof window !== 'undefined'\n) {\n // @ts-expect-error dynamic key not in window object\n window[windowGlobalKey] ||= 0;\n\n // @ts-expect-error dynamic key not in window object\n if (window[windowGlobalKey] === 1) {\n console.warn(\n `It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\\n\\nSee https://s-c.sh/2BAXzed for more info.`\n );\n }\n\n // @ts-expect-error dynamic key not in window object\n window[windowGlobalKey] += 1;\n}\n\n/* Export everything */\nexport * from './secretInternals';\nexport { Attrs, DefaultTheme, ShouldForwardProp } from './types';\nexport {\n IStyleSheetContext,\n IStyleSheetManager,\n IStylisContext,\n ServerStyleSheet,\n StyleSheetConsumer,\n StyleSheetContext,\n StyleSheetManager,\n ThemeConsumer,\n ThemeContext,\n ThemeProvider,\n createGlobalStyle,\n css,\n isStyledComponent,\n keyframes,\n useTheme,\n SC_VERSION as version,\n withTheme,\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport bgVideoMp4 from '../../assets/videos/bg-video.mp4';\nimport bgVideoWebm from '../../assets/videos/bg-video.webm';\nimport StripeBuyButton from '../../components/donate/donate.jsx';\n\nconst HeroSection = styled.section`\n position: relative;\n height: 90vh;\n max-height: 800px;\n overflow: hidden;\n display: flex;\n justify-content: center;\n align-items: center;\n\n &::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.7); \n z-index: 1; \n }\n`;\n\nconst VideoBackground = styled.video`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n z-index: 0;\n`;\n\nconst HeroContent = styled.div`\n position: relative;\n z-index: 2; \n text-align: center;\n color: white;\n padding: 20px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: 85%;\n margin-bottom: auto;\n`;\n\nconst VideoBackgroundComponent = () => (\n <HeroSection>\n <VideoBackground autoPlay muted loop playsInline>\n <source src=\"https://choirofthevalley.s3.us-west-2.amazonaws.com/bg-video.mp4\" type=\"video/mp4\" />\n <source src=\"https://choirofthevalley.s3.us-west-2.amazonaws.com/bg-video.webm\" type=\"video/webm\" />\n Your browser does not support the video tag.\n </VideoBackground>\n <HeroContent>\n <div className=\"hero\">\n <div className=\"hero__text\">\n <h1 className=\"hero__text--title\">\n Community Choir <br /> <span className=\"darkblue\">of the Valley</span>\n </h1>\n <p className=\"hero__text--body\">\n The Community Choir of the Valley is here to provide an opportunity for\n singers of all experience levels an encouraging and welcoming\n environment in which to sing a variety of quality choral\n music. We also strive to present enriching and inspiring concerts\n for all ages in the great Clovis / Fresno community.\n </p>\n <div className=\"hero-container-buttons\">\n <div className=\"hero-button\">\n <a\n className=\"button\"\n href=\"https://choirofthevalley.choirgenius.com/content/membership-application\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n Sign Up\n </a>\n </div>\n <div className=\"hero-button\">\n <a\n className=\"button\"\n href=\"https://3b7d046a-cf5f-4779-968f-dc836a85dc0f.paylinks.godaddy.com/306b5456-24e3-472e-9f08-a5b\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n Donate\n </a>\n </div>\n\n </div>\n </div>\n </div>\n </HeroContent>\n </HeroSection>\n);\n\nexport default VideoBackgroundComponent;\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgWave(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 1440 320\",\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 fill: \"#fff\",\n d: \"M0,224L80,218.7C160,213,320,203,480,176C640,149,800,107,960,96C1120,85,1280,107,1360,117.3L1440,128L1440,0L1360,0C1280,0,1120,0,960,0C800,0,640,0,480,0C320,0,160,0,80,0L0,0Z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgWave);\nexport default __webpack_public_path__ + \"static/media/wave.ec2db79889a1cfe5e58e9c04b9f1d58c.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState } from 'react';\nimport './home.styles.scss';\nimport { BrowserRouter as Router, Switch, Route, Link } from 'react-router-dom';\n\nimport footerLogo from '../../assets/home/footer-logo.png';\n\nimport facebook from '../../assets/home/facebook.png';\nimport youtube from '../../assets/home/youtube.png';\nimport aboutImage from '../../assets/home/about.png';\nimport quoteStart from '../../assets/home/quote-start.png';\nimport quoteEnd from '../../assets/home/quote-end.png';\nimport youtubeVideo from '../../assets/home/video.png';\n\nimport arrow from '../../assets/home/arrow.png';\nimport notes from '../../assets/home/notes.png';\n\nimport SimpleSlider from '../../components/slider/slider.jsx';\nimport SelectNav from '../../components/selectNav/selectNav';\n\nimport upcomingPoster from '../../assets/home/concert_1_2025.png'\nimport upcomingPosterSub from '../../assets/home/parkingmap.png'\n\nimport VideoBackgroundComponent from '../../components/backgroundVideo/BackgroundVideo.jsx';\nimport waveSvg from '../../assets/home/wave.svg'; // Import the wave SVG\nimport styled from 'styled-components';\n\nconst Wave = styled.div`\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 35%;\n background: url(${waveSvg}) no-repeat bottom center;\n background-size: cover;\n z-index: 1;\n transform: rotate(180deg);\n\n @media (min-width: 1441px) {\n bottom: -3px;\n\twidth: 1440px;\n\tmargin: auto;\n\tleft:0;\n\tright:0;\n }\n\n @media (max-width: 1440px) {\n bottom: -3px;\n }\n\n @media (max-width: 1280px) {\n bottom: -30px;\n }\n\n @media (max-width: 1024px) {\n bottom: -15px;\n }\n\n\n\n @media (max-width: 768px) {\n bottom: -50px;\n }\n\n @media (max-width: 435px) {\n bottom: -30px;\n }\n\n @media (max-width: 385px) {\n bottom: -35px;\n }\n\n \n@media (max-width: 435px) and (min-width: 420px){\n bottom: -75px;\n}\n`;\n\n\nconst WaveTwo = styled.div`\n position: absolute;\n bottom: -82%;\n left: 0;\n width: 100%;\n height: 100%;\n background: url(${waveSvg}) no-repeat bottom center;\n background-size: cover;\n z-index: 1;\n\n @media (max-width: 1280px) {\n bottom: -82.5%;\n }\n\n @media (max-width: 1024px) {\n bottom: -82.5%;\n }\n\n @media (min-width: 822px) and (max-width: 935px) {\n bottom: -79%;\n }\n\n\t@media (max-width: 822px){\n bottom: -75%;\n }\n\n @media (max-width: 768px) {\n bottom: -80%;\n }\n\n @media (max-width: 675px) {\n bottom: -75% \n }\n\n @media (max-width: 435px) {\n bottom: -72.5%;\n }\n`;\n\n\n\nconst Home = () => {\n\tconst [video, videoClicked] = useState('');\n\treturn (\n\t\t<div className='body__home'>\n\t\t\t\n\t\t\t\t<SelectNav />\n\t\t\t\t<section id='hero'>\n\t\t\t\t<VideoBackgroundComponent />\n\t\t\t\t</section>\n\t\t\t\t<Wave />\n\t\t\t\n\n\t\t\t<div id=\"upcoming\">\n\t\t\t\t<h2 class=\"blue\">Upcoming Events</h2>\n\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<img src={ upcomingPoster } class=\"upcoming-poster\" />\n\n\t\t\t\t<img src={ upcomingPosterSub } class=\"upcoming-poster upcoming-poster-sub displaynone\" />\n\n\t\t\t\t\n\t\t\t\t<h3 class=\"upcoming-title displaynone\">Join us for our annual holiday concert featuring the 130-voice Community Choir of the Valley and instrumentalists performing traditional seasonal favorites for the whole family! Featuring soloist Bob Bergthold and the Choirs of Carden School of Fresno, we’ll be performing in the Clovis Veterans Memorial District Liberty Ballroom in what has become a holiday must-attend concert for Valley residents! We’ll begin at 3pm…Admission is free and the doors open at 2:30!\n</h3>\n\n\t\t\t\t<div class=\"upcoming-events--list displaynone\">\n\t\t\t\n\t\t\t\t\t<div class=\"event displaynone\">\n\t\t\t\t\t\t<h3>Spring Rehearsals begin</h3>\n\t\t\t\t\t\t<h4>Thursday, January 23, 2025</h4>\n\t\t\t\t\t\t<h4>6-8pm @ Clovis Senior Activity Center</h4>\n\t\t\t\t\t\t<h4>735 3rd St., Clovis</h4>\n\t\t\t\t\t\t<h4>Join us by registering<a href='https://choirofthevalley.choirgenius.com/content/membership-application' target='_blank'>…see the link!</a></h4>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"event displaynone\">\n\t\t\t\t\t\t<h3>Forever Country: Country Hits with a Choral Twist!</h3>\n\t\t\t\t\t\t<h4>Sunday, April 6th @ 2:30 p.m.</h4>\n\t\t\t\t\t\t<h4>Free Admission</h4>\n\t\t\t\t\t\t<h4>Shaghoian Concert Hall 2770 E. International (Campus of Clovis North HS)</h4>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<section id='about'>\n\t\t\t\t<div className='about'>\n\t\t\t\t\t<p className='about__subtitle'>a love of singing</p>\n\t\t\t\t\t<h2 className='about__title text--title'>\t\n\t\t\t\t\t\t\t\t<span className='blue'>A love of singing</span>\n\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\tbalanced with a love of community\n\t\t\t\t\t\t</h2>\n\n\t\t\t\t\t<div className='about__content'>\n\t\t\t\t\t\t<div className='about__content--image'>\n\t\t\t\t\t\t\t<img src={aboutImage} />\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div className='about__content--text'>\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\tEstablished in 2014 in Clovis, California, we are a non-auditioned choral group that celebrates the joy of singing and the strength of community. With over 130 members, our choir includes individuals of all experience levels, from seasoned vocalists to those who are new to choral singing. What unites us is our shared passion for music and our dedication to enriching our community through the power of song.\n\t\t\t\t\t\t\t</p>\n\n\t\t\t\t\t\t\t<div className='about-button'>\n\t\t\t\t\t\t\t\t<Link to='/contact' className='button'>\n\t\t\t\t\t\t\t\t\tLearn More\n\t\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<WaveTwo />\n\t\t\t</section>\n\n\t\t\t<section id='connect'>\n\t\t\t\t\n\t\t\t\t<div className='connect'>\n\t\t\t\t\t<p className='connect--subtitle'>Online</p>\n\t\t\t\t\t<h2 className='connect--title'>Find Us Online</h2>\n\n\t\t\t\t\t<div className='connect__content'>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName='connect__content--video'\n\t\t\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\t\t\tvideoClicked(\n\t\t\t\t\t\t\t\t\t<iframe\n\t\t\t\t\t\t\t\t\t\twidth='500'\n\t\t\t\t\t\t\t\t\t\theight='300'\n\t\t\t\t\t\t\t\t\t\tsrc='https://www.youtube.com/embed/HTjpNraoE90?si=ANxG4Wvwvqaoh2bK'\n\t\t\t\t\t\t\t\t\t\ttitle='Community Choir of the Valley'\n\t\t\t\t\t\t\t\t\t\tframeborder='0'\n\t\t\t\t\t\t\t\t\t\tallow='accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture'\n\t\t\t\t\t\t\t\t\t\tallowfullscreen\n\t\t\t\t\t\t\t\t\t></iframe>,\n\t\t\t\t\t\t\t\t\t(document.getElementById('videoImage').style.display = 'none')\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<img id='videoImage' src={youtubeVideo} />\n\t\t\t\t\t\t\t<div className='videoPlay'>{video}</div>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div className='connect__content--text'>\n\t\t\t\t\t\t\t<img className='arrow' src={arrow} />\n\t\t\t\t\t\t\t<h3>\n\t\t\t\t\t\t\t\tWatch our 2023 Spring Concert \"Once Upon a Time\"\n\t\t\t\t\t\t\t</h3>\n\t\t\t\t\t\t\t<div className='connect__social'>\n\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\thref='https://www.facebook.com/Clovis-Community-Choir-691609034259996/'\n\t\t\t\t\t\t\t\t\ttarget='_blank'\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<img src={facebook} />\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\thref='https://www.youtube.com/channel/UCNgI81vkZNPOXzSE3wlI3qg/videos'\n\t\t\t\t\t\t\t\t\ttarget='_blank'\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<img src={youtube} className='connect--yt' />\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</section>\n\n\t\t\t<section id='join'>\n\t\t\t\t<img src={notes} id='notes' />\n\t\t\t\t<div className='join'>\n\t\t\t\t\t<p className='join--subhead'>Join the Family</p>\n\t\t\t\t\t<h3 className='join--head'>Come Join the Family</h3>\n\n\t\t\t\t\t<div className='join__text'>\n\t\t\t\t\t\t<img src={quoteStart} className='quote-start' />\n\t\t\t\t\t\t<p className=\"desktop-text\">\n\t\t\t\t\t\t\tJoin over 130 others who’ve discovered the joy of\n\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\tsinging together!\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p className=\"mobile-text\">\n\t\t\t\t\t\t\tJoin over 130 others who’ve discovered the joy of singing together!\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<img className='quote-end' src={quoteEnd} />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</section>\n\n\t\t\t<SimpleSlider />\n\n\t\t\t<section id='footer'>\n\t\t\t\t<div className='footer'>\n\t\t\t\t\t<div className='footer__content'>\n\t\t\t\t\t\t<img src={footerLogo} />\n\n\t\t\t\t\t\t<p>choirofthevalley@gmail.com</p>\n\t\t\t\t\t\t<p>559-916-8541</p>\n\n\t\t\t\t\t\t<div className='footer__social'>\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref='https://www.facebook.com/Clovis-Community-Choir-691609034259996/'\n\t\t\t\t\t\t\t\ttarget='_blank'\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<img src={facebook} />\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref='https://www.youtube.com/channel/UCNgI81vkZNPOXzSE3wlI3qg/videos'\n\t\t\t\t\t\t\t\ttarget='_blank'\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<img src={youtube} />\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<a href='#' className='copyright'>\n\t\t\t\t\t\t\tCarson Cobb © 2024\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</section>\n\t\t</div>\n\t);\n};\n\nexport default Home;\n","import React from 'react';\n\nimport './Footer.styles.scss';\n\nimport footerLogo from '../../assets/home/footer-logo.png';\nimport facebook from '../../assets/home/facebook.png';\nimport youtube from '../../assets/home/youtube.png';\n\nconst Footer = () => (\n\t<div className='footer'>\n\t\t<div className='footer__content'>\n\t\t\t<img src={footerLogo} />\n\t\t\t<p>choirofthevalley@gmail.com</p>\n\t\t\t<p>559-916-8541</p>\n\n\t\t\t<div className='footer__social'>\n\t\t\t\t<a\n\t\t\t\t\thref='https://www.facebook.com/Clovis-Community-Choir-691609034259996/'\n\t\t\t\t\ttarget='_blank'\n\t\t\t\t>\n\t\t\t\t\t<img src={facebook} />\n\t\t\t\t</a>\n\t\t\t\t<a\n\t\t\t\t\thref='https://www.youtube.com/channel/UCNgI81vkZNPOXzSE3wlI3qg/videos'\n\t\t\t\t\ttarget='_blank'\n\t\t\t\t>\n\t\t\t\t\t<img src={youtube} />\n\t\t\t\t</a>\n\t\t\t</div>\n\n\t\t\t<a href='#' className='copyright'>\n\t\t\t\tCarson Cobb © 2022\n\t\t\t</a>\n\t\t</div>\n\t</div>\n);\n\nexport default Footer;\n","import React, { createContext, createRef, PureComponent, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport { Transformation as Transformation$1, Util, Cloudinary } from 'cloudinary-core';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _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}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar _excluded$2 = [\"public_id\"],\n _excluded2 = [\"publicId\"],\n _excluded3 = [\"children\"],\n _excluded4 = [\"children\", \"accessibility\", \"placeholder\"];\nvar camelCase$1 = Util.camelCase,\n withCamelCaseKeys = Util.withCamelCaseKeys,\n isEmpty = Util.isEmpty; // props passed to cloudinary-core but should not be rendered as dom attributes\n\nvar CLOUDINARY_REACT_PROPS = ['accessibility', 'breakpoints', 'dataSrc', 'placeholder', 'publicId', 'signature', 'authToken'];\n/**\n * Convert common video file extensions to mime types\n * Most other common video file extensions have an identical mime type so do not need conversion.\n */\n\nvar VIDEO_MIME_TYPES = {\n flv: 'x-flv',\n '3gp': '3gpp',\n mov: 'quicktime',\n mpg: 'mpeg',\n avi: 'x-msvideo',\n wmv: 'x-ms-wmv',\n ogv: 'ogg'\n};\n/**\n * Convert common audio file extensions to mime types\n * Most other common audio file extensions have an identical mime type so do not need conversion.\n */\n\nvar AUDIO_MIME_TYPES = {\n m4a: 'mp4',\n wav: 'vnd.wav',\n m3u: 'x-mpegurl',\n mp3: 'mpeg',\n ogv: 'ogg',\n aif: 'x-aiff',\n aifc: 'x-aiff',\n aiff: 'x-aiff'\n}; // props passed to cloudinary-core for dom elements attributes generation\n// Map Cloudinary props from array to object for efficient lookup\n\nvar CLOUDINARY_PROPS = [].concat(Transformation$1.PARAM_NAMES, CLOUDINARY_REACT_PROPS).map(Util.camelCase).reduce(function (accumulator, cloudinaryPropName) {\n accumulator[cloudinaryPropName] = true;\n return accumulator;\n}, {});\n/**\n * Return object without null/undefined entries\n * @param {*} obj\n */\n\nvar nonEmpty = function nonEmpty(obj) {\n return Object.entries(obj).reduce(function (a, _ref) {\n var _extends2;\n\n var k = _ref[0],\n v = _ref[1];\n return v == null ? a : _extends({}, a, (_extends2 = {}, _extends2[k] = v, _extends2));\n }, {});\n};\n/**\n * Generated a configured Cloudinary object.\n * @param extendedProps React props combined with custom Cloudinary configuration options\n * @return {Cloudinary} configured using extendedProps\n */\n\n\nvar getConfiguredCloudinary = function getConfiguredCloudinary(extendedProps) {\n // eslint-disable-next-line camelcase\n var _nonEmpty = nonEmpty(extendedProps),\n ops = _objectWithoutPropertiesLoose(_nonEmpty, _excluded$2); // Remove null/undefined props\n\n\n var options = Util.withSnakeCaseKeys(ops);\n return Cloudinary[\"new\"](options);\n};\n\nvar getTag = function getTag(props, tagType) {\n var publicId = props.publicId,\n ops = _objectWithoutPropertiesLoose(props, _excluded2); // Remove null/undefined props\n\n\n var cld = getConfiguredCloudinary(ops);\n return cld[tagType + \"Tag\"](publicId, Util.withSnakeCaseKeys(ops));\n};\n/**\n * Get a new <img> tag initialized with given props\n * @param {*} props\n */\n\n\nvar getImageTag = function getImageTag(props) {\n return getTag(props, 'image');\n};\n/**\n * Cloudinary underlying JS library will handle responsive behavior\n * @param {HTMLImageElement} img\n * @param {object} options\n * @Return callback that when called, will remove the listener created by Cloudinary.responsive\n */\n\n\nvar makeElementResponsive = function makeElementResponsive(img, options) {\n var snakeCaseOptions = Util.withSnakeCaseKeys(options);\n var cld = getConfiguredCloudinary(snakeCaseOptions); // Initialize cloudinary with new props\n\n cld.cloudinary_update(img, snakeCaseOptions);\n return cld.responsive(snakeCaseOptions, false);\n};\n/**\n * Extracts cloudinaryProps and nonCloudinaryProps from given props\n *\n * @param props\n * @returns {{children: *, cloudinaryReactProps: {}, cloudinaryProps: {}, nonCloudinaryProps: {}}}\n */\n\n\nvar extractCloudinaryProps = function extractCloudinaryProps(_ref2) {\n var children = _ref2.children,\n props = _objectWithoutPropertiesLoose(_ref2, _excluded3);\n\n var result = {\n children: children,\n cloudinaryProps: {},\n nonCloudinaryProps: {},\n cloudinaryReactProps: {}\n };\n Object.keys(props).forEach(function (key) {\n var camelKey = Util.camelCase(key);\n var value = props[key]; // if valid and defined add to cloudinaryProps\n\n if (CLOUDINARY_PROPS[camelKey]) {\n if (props[key] !== undefined && props[key] !== null) {\n result.cloudinaryProps[camelKey] = value;\n }\n } else if (camelKey === 'includeOwnBody') {\n // cloudinary-react specific prop\n result.cloudinaryReactProps[camelKey] = value;\n } else {\n // not valid so add to nonCloudinaryProps\n result.nonCloudinaryProps[key] = value;\n }\n });\n return result;\n};\n/**\n * Check if given component is a Cloudinary Component with given displayName\n * @param component the component to check\n * @param displayName of wanted component\n * @return {boolean}\n */\n\n\nvar isCloudinaryComponent = function isCloudinaryComponent(component, displayName) {\n return !!( /*#__PURE__*/React.isValidElement(component) && component.type && component.type.displayName === displayName);\n};\n/**\n * Combine properties of all options to create an option Object that can be passed to Cloudinary methods.<br>\n * `undefined` and `null` values are filtered out.\n * @protected\n * @returns {Object}\n * @param options one or more options objects\n */\n\n\nvar normalizeOptions = function normalizeOptions() {\n return [].slice.call(arguments).reduce(function (left, right) {\n Object.keys(right || {}).forEach(function (key) {\n var value = right[key];\n\n if (value !== null && value !== undefined) {\n left[key] = value;\n }\n });\n return left;\n }, {});\n};\n\nvar getChildPlaceholder = function getChildPlaceholder(children) {\n var result = null;\n\n if (children) {\n result = React.Children.toArray(children).find(function (child) {\n return isCloudinaryComponent(child, 'CloudinaryPlaceholder');\n });\n }\n\n return result;\n};\n\nvar getChildTransformations = function getChildTransformations(children) {\n var result = children ? React.Children.toArray(children).filter(function (child) {\n return isCloudinaryComponent(child, 'CloudinaryTransformation');\n }).map(function (child) {\n var options = normalizeOptions(child.props, child.context);\n var childOptions = getChildTransformations(child.props.children);\n\n if (childOptions) {\n options.transformation = childOptions;\n }\n\n return options;\n }) : [];\n return result.length ? result : null;\n};\n/**\n * Return a new object containing keys and values where keys are in the keys list\n * @param {object} source Object to copy values from\n * @param {string[]} [keys=[]] a list of keys\n * @returns {object} an object with copied values\n */\n\n\nvar only = function only(source, keys) {\n if (keys === void 0) {\n keys = [];\n }\n\n if (!source) {\n return source;\n }\n\n return keys.reduce(function (tr, key) {\n if (key in source) {\n tr[key] = source[key];\n }\n\n return tr;\n }, {});\n};\n/**\n * Create a React type definition object. All items are PropTypes.string or [string] or object or [object].\n * @param {Array} configParams a list of parameter names\n * @returns {Object}\n * @private\n */\n\n\nvar typesFrom = function typesFrom(configParams) {\n configParams = configParams || [];\n var types = {};\n\n for (var i = 0; i < configParams.length; i++) {\n var key = configParams[i];\n types[camelCase$1(key)] = PropTypes.any;\n }\n\n return types;\n};\n/**\n * Returns an object with all the transformation parameters based on the context and properties of this element\n * and any children.\n * @param extendedProps\n * @returns {object} a hash of transformation and configuration parameters\n * @protected\n */\n\n\nvar getTransformation = function getTransformation(extendedProps) {\n var children = extendedProps.children,\n accessibility = extendedProps.accessibility,\n placeholder = extendedProps.placeholder,\n rest = _objectWithoutPropertiesLoose(extendedProps, _excluded4);\n\n var ownTransformation = only(withCamelCaseKeys(rest), Transformation$1.methods) || {};\n var childrenOptions = getChildTransformations(children);\n\n if (!isEmpty(childrenOptions)) {\n ownTransformation.transformation = childrenOptions;\n } // Append placeholder and accessibility if exists\n\n\n var advancedTransformations = {\n accessibility: accessibility,\n placeholder: placeholder\n };\n Object.keys(advancedTransformations).filter(function (k) {\n return advancedTransformations[k];\n }).forEach(function (k) {\n ownTransformation[k] = advancedTransformations[k];\n });\n return ownTransformation;\n};\n\nvar CloudinaryContextType = /*#__PURE__*/createContext();\n\nvar camelCase = Util.camelCase;\n/**\n * A base component for Cloudinary components.\n * @protected\n */\n\nvar CloudinaryComponent = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(CloudinaryComponent, _PureComponent);\n\n function CloudinaryComponent(_props, _context) {\n var _this;\n\n _this = _PureComponent.call(this, _props, _context) || this;\n\n _this.getContext = function () {\n return _this.context || {};\n };\n\n _this.onIntersect = function () {\n // eslint-disable-next-line react/no-unused-state\n _this.setState({\n isInView: true\n });\n };\n\n _this.getExtendedProps = function (props, context) {\n if (props === void 0) {\n props = _this.props;\n }\n\n if (context === void 0) {\n context = _this.getContext();\n }\n\n return normalizeOptions(context, props);\n };\n\n _this.attachRef = function (element) {\n var innerRef = _this.props.innerRef;\n _this.element.current = element;\n\n if (innerRef) {\n if (innerRef instanceof Function) {\n innerRef(element);\n } else {\n innerRef.current = element;\n }\n }\n };\n\n _this.element = /*#__PURE__*/createRef();\n return _this;\n }\n\n var _proto = CloudinaryComponent.prototype;\n\n _proto.render = function render() {\n return null;\n };\n\n return CloudinaryComponent;\n}(PureComponent);\n\nCloudinaryComponent.defaultProps = {\n innerRef: null,\n publicId: null\n};\nCloudinaryComponent.propTypes = _extends({}, typesFrom(Transformation$1.PARAM_NAMES.map(camelCase)), {\n innerRef: PropTypes.any,\n publicId: PropTypes.string\n});\nCloudinaryComponent.contextType = CloudinaryContextType;\n\n/**\n * Provides a container for Cloudinary components. Any option set in CloudinaryContext will be passed to the children.\n *\n * @example\n *<CloudinaryContext cloudName=\"mycloud\" dpr=\"auto\">\n * <!-- other tags -->\n * <Image publicId={id}/>\n *</CloudinaryContext>\n *\n */\n\nvar CloudinaryContext = /*#__PURE__*/function (_CloudinaryComponent) {\n _inheritsLoose(CloudinaryContext, _CloudinaryComponent);\n\n function CloudinaryContext() {\n return _CloudinaryComponent.apply(this, arguments) || this;\n }\n\n var _proto = CloudinaryContext.prototype;\n\n _proto.render = function render() {\n var props = _extends({}, this.getContext(), this.props);\n\n var _extractCloudinaryPro = extractCloudinaryProps(props),\n children = _extractCloudinaryPro.children,\n cloudinaryProps = _extractCloudinaryPro.cloudinaryProps,\n nonCloudinaryProps = _extractCloudinaryPro.nonCloudinaryProps,\n cloudinaryReactProps = _extractCloudinaryPro.cloudinaryReactProps;\n\n return /*#__PURE__*/React.createElement(CloudinaryContextType.Provider, {\n value: cloudinaryProps\n }, cloudinaryReactProps.includeOwnBody ? children : /*#__PURE__*/React.createElement(\"div\", nonCloudinaryProps, children));\n };\n\n return CloudinaryContext;\n}(CloudinaryComponent);\n\nCloudinaryContext.propTypes = _extends({}, CloudinaryComponent.propTypes, {\n includeOwnBody: PropTypes.bool\n});\nCloudinaryContext.defaultProps = {\n includeOwnBody: false\n};\n\nvar _excluded$1 = [\"children\", \"innerRef\"];\nvar RESPONSIVE_OVERRIDE_WARNING = \"\\nWarning: passing a number value for width cancels the 'responsive' prop's effect on the image transformation.\\nThe 'responsive' prop affects the image transformation only when width === 'auto'.\\nPassing 'width=\\\"auto\\\" responsive' will affect the actual image width that is fetched from Cloudinary.\\nThe 'responsive' prop causes the Image component to request an image which width is equal to the width of it's container.\\nWhen passing 'width=\\\"auto\\\" responsive', you can set the <img> element width by passing a 'style' prop\".trim();\n/**\n * A component representing a Cloudinary served image\n */\n\nvar Image = /*#__PURE__*/function (_CloudinaryComponent) {\n _inheritsLoose(Image, _CloudinaryComponent);\n\n function Image(props, context) {\n var _this;\n\n _this = _CloudinaryComponent.call(this, props, context) || this;\n\n _this.isResponsive = function () {\n var _this$getExtendedProp = _this.getExtendedProps(),\n responsive = _this$getExtendedProp.responsive,\n width = _this$getExtendedProp.width;\n\n if (responsive && width !== 'auto') {\n console.warn(RESPONSIVE_OVERRIDE_WARNING);\n }\n\n return responsive && _this.element && _this.element.current;\n };\n\n _this.getOptions = function () {\n var extendedProps = _this.getExtendedProps();\n\n var _extendedProps$getTra = _extends({}, extendedProps, getTransformation(extendedProps)),\n options = _objectWithoutPropertiesLoose(_extendedProps$getTra, _excluded$1);\n\n if (!_this.shouldLazyLoad()) {\n delete options.loading;\n }\n\n return options;\n };\n\n _this.getAttributes = function (additionalOptions) {\n if (additionalOptions === void 0) {\n additionalOptions = {};\n }\n\n var _additionalOptions = additionalOptions,\n placeholder = _additionalOptions.placeholder;\n var options = extractCloudinaryProps(_extends({}, _this.getOptions(), additionalOptions));\n var cloudinaryProps = options.cloudinaryProps,\n nonCloudinaryProps = options.nonCloudinaryProps,\n cloudinaryReactProps = options.cloudinaryReactProps;\n var imageTag = getImageTag(_extends({}, cloudinaryProps, cloudinaryReactProps));\n var cloudinaryAttributes = Util.withCamelCaseKeys(imageTag.attributes()); // React requires camelCase instead of snake_case attributes\n\n var attributes = _extends({}, cloudinaryAttributes, nonCloudinaryProps); // We want to keep 'data-src' if it exists\n\n\n if (attributes.dataSrc) {\n attributes['data-src'] = attributes.dataSrc;\n } // Set placeholder Id\n\n\n if (placeholder && attributes.id) {\n attributes.id += '-cld-placeholder';\n } // Set data-src if lazy loading and not in view\n\n\n if (_this.shouldLazyLoad()) {\n attributes['data-src'] = attributes.dataSrc || attributes.src;\n delete attributes.src;\n } // Remove unneeded attributes,\n\n\n CLOUDINARY_REACT_PROPS.forEach(function (attr) {\n delete attributes[attr];\n });\n return attributes;\n };\n\n _this.update = function () {\n // Handle lazy loading\n if (_this.shouldLazyLoad()) {\n // Will set this.state.isInView = true when in view\n Util.detectIntersection(_this.element.current, _this.onIntersect);\n } else if (_this.isResponsive()) {\n var options = _this.getOptions();\n\n var placeholder = _this.getPlaceholderType(); // Make placeholder responsive\n\n\n if (placeholder) {\n var removePlaceholderListener = makeElementResponsive(_this.placeholderElement.current, _extends({}, options, {\n placeholder: placeholder\n }));\n\n _this.listenerRemovers.push(removePlaceholderListener);\n } // Make original image responsive\n\n\n var removeImgListener = makeElementResponsive(_this.element.current, options);\n\n _this.listenerRemovers.push(removeImgListener);\n }\n };\n\n _this.shouldLazyLoad = function () {\n var _this$getExtendedProp2 = _this.getExtendedProps(),\n loading = _this$getExtendedProp2.loading;\n\n var isInView = _this.state.isInView;\n return !isInView && (loading === 'lazy' || loading === 'auto');\n };\n\n _this.handleImageLoaded = function () {\n var onLoad = _this.props.onLoad;\n\n _this.setState({\n isLoaded: true\n }, function () {\n if (onLoad) {\n onLoad();\n }\n });\n };\n\n _this.renderPlaceholder = function (placeholder, attributes) {\n attributes.style = _extends({}, attributes.style || {}, {\n opacity: 0,\n position: 'absolute'\n });\n attributes.onLoad = _this.handleImageLoaded;\n var placeholderWrapperStyle = {\n display: 'inline'\n };\n\n var placeholderAttributes = _this.getAttributes({\n placeholder: placeholder\n });\n\n return /*#__PURE__*/React.createElement(Fragment, null, _this.renderImage(attributes), /*#__PURE__*/React.createElement(\"div\", {\n style: placeholderWrapperStyle\n }, /*#__PURE__*/React.createElement(\"img\", _extends({\n ref: _this.placeholderElement\n }, placeholderAttributes))));\n };\n\n _this.renderImage = function (attributes) {\n return /*#__PURE__*/React.createElement(\"img\", _extends({\n ref: _this.attachRef\n }, attributes));\n };\n\n _this.getPlaceholderType = function () {\n var _this$getExtendedProp3 = _this.getExtendedProps(),\n children = _this$getExtendedProp3.children;\n\n var placeholder = getChildPlaceholder(children);\n return placeholder ? placeholder.props.type : null;\n };\n\n _this.placeholderElement = /*#__PURE__*/createRef();\n _this.state = {\n isLoaded: false\n };\n _this.listenerRemovers = [];\n return _this;\n }\n /**\n * @return true when this image element should be made responsive, false otherwise.\n */\n\n\n var _proto = Image.prototype;\n\n /**\n * Invoked immediately after a component is mounted (inserted into the tree)\n */\n _proto.componentDidMount = function componentDidMount() {\n this.update();\n }\n /**\n * Invoked immediately after updating occurs. This method is not called for the initial render.\n */\n ;\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.update();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.listenerRemovers.forEach(function (removeListener) {\n return removeListener();\n });\n }\n /**\n * Updates this Image's isLoaded state,\n * And fires props.onLoad if exists.\n */\n ;\n\n _proto.render = function render() {\n var isLoaded = this.state.isLoaded;\n var attributes = this.getAttributes();\n var placeholder = this.getPlaceholderType(); // If image wasn't loaded and there's a child placeholder then we render it.\n\n if (!isLoaded && placeholder) {\n return this.renderPlaceholder(placeholder, attributes);\n }\n\n return this.renderImage(attributes);\n };\n\n return Image;\n}(CloudinaryComponent);\n\nImage.defaultProps = {};\nImage.propTypes = CloudinaryComponent.propTypes;\nImage.propTypes.responsive = PropTypes.bool;\nImage.propTypes.loading = PropTypes.string;\nImage.propTypes.accessibility = PropTypes.string;\n\n/**\n * Define a transformation that is applied to the parent tag.\n */\n\nvar Transformation = /*#__PURE__*/function (_CloudinaryComponent) {\n _inheritsLoose(Transformation, _CloudinaryComponent);\n\n function Transformation() {\n return _CloudinaryComponent.apply(this, arguments) || this;\n }\n\n var _proto = Transformation.prototype;\n\n _proto.render = function render() {\n return null;\n };\n\n return Transformation;\n}(CloudinaryComponent);\n\nTransformation.propTypes = CloudinaryComponent.propTypes;\nTransformation.defaultProps = {};\nTransformation.exposesProps = true;\nTransformation.displayName = 'CloudinaryTransformation';\n\nvar _excluded = [\"innerRef\", \"publicId\", \"fallback\", \"children\", \"sourceTypes\", \"sourceTransformation\", \"sources\"];\n/**\n * A component representing a Cloudinary served video\n */\n\nvar Video = /*#__PURE__*/function (_CloudinaryComponent) {\n _inheritsLoose(Video, _CloudinaryComponent);\n\n function Video() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _CloudinaryComponent.call.apply(_CloudinaryComponent, [this].concat(args)) || this;\n _this.mimeType = 'video';\n _this.mimeSubTypes = VIDEO_MIME_TYPES;\n\n _this.getMergedProps = function () {\n return _extends({}, _this.getContext(), _this.props);\n };\n\n _this.generateVideoUrl = function (cld, publicId, childTransformations, sourceTransformations, sourceType) {\n var urlOptions = Util.withSnakeCaseKeys(Util.defaults({}, sourceTransformations, childTransformations, {\n resource_type: 'video',\n format: sourceType\n }));\n return cld.url(publicId, urlOptions);\n };\n\n _this.generateUsingSourceTypes = function (cld, publicId, childTransformations, sourceTransformations, sourceTypes) {\n return sourceTypes.map(function (sourceType) {\n return _this.toSourceTag(cld, publicId, childTransformations, sourceTransformations[sourceType] || {}, sourceType, _this.buildMimeType(sourceType));\n });\n };\n\n _this.generateUsingSources = function (cld, publicId, childTransformations, sources) {\n return sources.map(function (_ref) {\n var _ref$transformations = _ref.transformations,\n transformations = _ref$transformations === void 0 ? {} : _ref$transformations,\n type = _ref.type,\n codecs = _ref.codecs;\n return _this.toSourceTag(cld, publicId, childTransformations, transformations, type, _this.buildMimeType(type, codecs));\n });\n };\n\n _this.toSourceTag = function (cld, publicId, childTransformations, transformations, sourceType, mimeType) {\n var src = _this.generateVideoUrl(cld, publicId, childTransformations, transformations, sourceType);\n\n return /*#__PURE__*/React.createElement(\"source\", {\n key: src + mimeType,\n src: src,\n type: mimeType\n });\n };\n\n _this.buildMimeType = function (type, codecs) {\n var mimeType = _this.mimeType + \"/\" + (_this.mimeSubTypes[type] || type);\n\n if (!Util.isEmpty(codecs)) {\n mimeType += \"; codecs=\" + (Util.isArray(codecs) ? codecs.join(', ') : codecs);\n }\n\n return mimeType;\n };\n\n _this.getVideoTagProps = function () {\n var _this$getMergedProps = _this.getMergedProps(),\n publicId = _this$getMergedProps.publicId,\n children = _this$getMergedProps.children,\n sourceTypes = _this$getMergedProps.sourceTypes,\n _this$getMergedProps$ = _this$getMergedProps.sourceTransformation,\n sourceTransformation = _this$getMergedProps$ === void 0 ? {} : _this$getMergedProps$,\n sources = _this$getMergedProps.sources,\n options = _objectWithoutPropertiesLoose(_this$getMergedProps, _excluded);\n\n options = normalizeOptions(options, {});\n\n var _extractCloudinaryPro = extractCloudinaryProps(options),\n cloudinaryProps = _extractCloudinaryPro.cloudinaryProps,\n cloudinaryReactProps = _extractCloudinaryPro.cloudinaryReactProps,\n nonCloudinaryProps = _extractCloudinaryPro.nonCloudinaryProps;\n\n options = _extends({}, cloudinaryProps, cloudinaryReactProps); // const snakeCaseOptions = toSnakeCaseKeys(options);\n\n var snakeCaseOptions = Util.withSnakeCaseKeys(options);\n var cld = Cloudinary[\"new\"](snakeCaseOptions); // Use cloudinary-core to generate this video tag's attributes\n\n var tagAttributes = cld.videoTag(publicId, options).attributes();\n tagAttributes = _extends({}, Util.withCamelCaseKeys(tagAttributes), nonCloudinaryProps); // Aggregate child transformations, used for generating <source> tags for this video element\n\n var childTransformations = getTransformation(_extends({}, options, {\n children: children\n }));\n var sourceElements = null;\n\n if (Util.isArray(sources) && !Util.isEmpty(sources)) {\n sourceElements = _this.generateUsingSources(cld, publicId, childTransformations, sources);\n } else if (Util.isArray(sourceTypes)) {\n // We have multiple sourceTypes, so we generate <source> tags.\n sourceElements = _this.generateUsingSourceTypes(cld, publicId, childTransformations, sourceTransformation, sourceTypes);\n } else {\n // We have a single source type so we generate the src attribute of this video element.\n tagAttributes.src = _this.generateVideoUrl(cld, publicId, childTransformations, sourceTransformation[sourceTypes] || {}, sourceTypes);\n }\n\n return {\n sources: sourceElements,\n tagAttributes: tagAttributes\n };\n };\n\n _this.reloadVideo = function () {\n if (_this.element && _this.element.current) {\n _this.element.current.load();\n }\n };\n\n return _this;\n }\n\n var _proto = Video.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n // Load video on props change\n this.reloadVideo();\n }\n /**\n * Render a video element\n */\n ;\n\n _proto.render = function render() {\n var _this$props = this.props,\n fallback = _this$props.fallback,\n children = _this$props.children;\n\n var _this$getVideoTagProp = this.getVideoTagProps(),\n tagAttributes = _this$getVideoTagProp.tagAttributes,\n sources = _this$getVideoTagProp.sources;\n\n return /*#__PURE__*/React.createElement(\"video\", _extends({\n ref: this.attachRef\n }, tagAttributes), sources, fallback, children);\n };\n\n return Video;\n}(CloudinaryComponent);\n\nVideo.propTypes = {\n publicId: PropTypes.string,\n sources: PropTypes.arrayOf(PropTypes.shape({\n type: PropTypes.string,\n codecs: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n transformations: PropTypes.object\n }))\n};\nVideo.defaultProps = {\n sourceTypes: Cloudinary.DEFAULT_VIDEO_PARAMS.source_types\n};\n\n/**\n * A component representing a Cloudinary served audio\n * This component extends the Video component and replaces it's render function.\n * Audio files are uploaded to Cloudinary as a video asset type.\n * An <audio> tag with a video source, will play the audio only.\n */\n\nvar Audio = /*#__PURE__*/function (_Video) {\n _inheritsLoose(Audio, _Video);\n\n function Audio() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Video.call.apply(_Video, [this].concat(args)) || this;\n _this.mimeType = 'audio';\n _this.mimeSubTypes = AUDIO_MIME_TYPES;\n return _this;\n }\n\n var _proto = Audio.prototype;\n\n /**\n * Render an audio element\n */\n _proto.render = function render() {\n var _this$props = this.props,\n innerRef = _this$props.innerRef,\n fallback = _this$props.fallback,\n children = _this$props.children;\n\n var _this$getVideoTagProp = this.getVideoTagProps(),\n tagAttributes = _this$getVideoTagProp.tagAttributes,\n sources = _this$getVideoTagProp.sources; // We generated video attributes, lets delete the unneeded poster\n\n\n delete tagAttributes.poster;\n return /*#__PURE__*/React.createElement(\"audio\", _extends({\n ref: innerRef\n }, tagAttributes), sources, fallback, children);\n };\n\n return Audio;\n}(Video);\n\nAudio.propTypes = {\n publicId: PropTypes.string\n};\nAudio.defaultProps = {\n sourceTypes: ['aac', 'mp3', 'ogg']\n};\n\n// eslint-disable-next-line no-unused-vars\n/**\n * Placeholder used by parent Image component, renders nothing on it's own.\n * @param type - type of placeholder 'blur'|'pixelate'|'predominant-color'|'vectorize',\n * @return {null}\n * @constructor\n */\n// eslint-disable-next-line no-unused-vars\n\nvar Placeholder = function Placeholder(_ref) {\n return null;\n};\n\nPlaceholder.propTypes = {\n type: PropTypes.string\n};\nPlaceholder.defaultProps = {\n type: 'blur'\n};\nPlaceholder.displayName = 'CloudinaryPlaceholder';\n\nexport { Audio, CloudinaryContext, Image, Placeholder, Transformation, Video };\n","import React, { Component } from 'react';\nimport Slider from 'react-slick';\nimport { CloudinaryContext, Image } from 'cloudinary-react';\nimport './event-slider.styles.scss';\n\nimport prev from '../../../assets/events/prev.png';\nimport next from '../../../assets/events/next.png';\n\nexport default class EventSlider extends Component {\n\trender() {\n\t\tvar settings = {\n\t\t\tdots: false,\n\t\t\tinfinite: true,\n\t\t\tautoplay: false,\n\t\t\tspeed: 500,\n\t\t\tnextArrow: <img src={next} className='next-arrow arrow' />,\n\t\t\tprevArrow: <img src={prev} className='prev-arrow arrow' />,\n\t\t\tslidesToShow: 3,\n\t\t\tslidesToScroll: 1,\n\t\t\tpauseOnHover: true,\n\t\t\tcssEase: 'linear',\n\t\t\tresponsive: [\n\t\t\t\t{\n\t\t\t\t\tbreakpoint: 1024,\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\tslidesToShow: 3,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbreakpoint: 800,\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\tslidesToShow: 2,\n\t\t\t\t\t\tslidesToScroll: 1,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbreakpoint: 480,\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\tslidesToShow: 1,\n\t\t\t\t\t\tslidesToScroll: 1,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t\treturn (\n\t\t\t<CloudinaryContext cloudName='dymy6bsv9'>\n\t\t\t\t<section id='slider'>\n\t\t\t\t\t<div className='slider'>\n\t\t\t\t\t\t<div className='slider__container'>\n\t\t\t\t\t\t\t<Slider {...settings}>\n\t\t\t\t\t\t\t\t<div className='container'>\n\t\t\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\t\t\tpublicId='perf-1_vqsobd'\n\t\t\t\t\t\t\t\t\t\tformat='jpg'\n\t\t\t\t\t\t\t\t\t\tclassName='perf-img'\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<h2>Pop Goes The Choir!</h2>\n\t\t\t\t\t\t\t\t\t<p>April 26, 2021</p>\n\t\t\t\t\t\t\t\t\t<p>Paul Shaghoian Concert Hall</p>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t<div className='container'>\n\t\t\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\t\t\tpublicId='perf-2_fihzua'\n\t\t\t\t\t\t\t\t\t\tformat='jpg'\n\t\t\t\t\t\t\t\t\t\tclassName='perf-img'\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<h2>Songs of the Season</h2>\n\t\t\t\t\t\t\t\t\t<p>December 15, 2019</p>\n\t\t\t\t\t\t\t\t\t<p>Paul Shaghoian Concert Hall</p>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t<div className='container'>\n\t\t\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\t\t\tpublicId='perf-3_w9a10d'\n\t\t\t\t\t\t\t\t\t\tformat='jpg'\n\t\t\t\t\t\t\t\t\t\tclassName='perf-img'\n\t\t\t\t\t\t\t\t\t/>{' '}\n\t\t\t\t\t\t\t\t\t<h2>Sacred Songs</h2>\n\t\t\t\t\t\t\t\t\t<p>October 27, 2019</p>\n\t\t\t\t\t\t\t\t\t<p>Paul Shaghoian Concert Hall</p>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t<div className='container'>\n\t\t\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\t\t\tpublicId='perf-4_cjjhei'\n\t\t\t\t\t\t\t\t\t\tformat='jpg'\n\t\t\t\t\t\t\t\t\t\tclassName='perf-img'\n\t\t\t\t\t\t\t\t\t/>{' '}\n\t\t\t\t\t\t\t\t\t<h2>6th Annual Patriotic Concert</h2>\n\t\t\t\t\t\t\t\t\t<p>June 28, 2019</p>\n\t\t\t\t\t\t\t\t\t<p>Paul Shaghoian Concert Hall</p>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t<div className='container'>\n\t\t\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\t\t\tpublicId='perf-5_ihatja'\n\t\t\t\t\t\t\t\t\t\tformat='jpg'\n\t\t\t\t\t\t\t\t\t\tclassName='perf-img'\n\t\t\t\t\t\t\t\t\t/>{' '}\n\t\t\t\t\t\t\t\t\t<h2>Show Stoppers!</h2>\n\t\t\t\t\t\t\t\t\t<p>May 5, 2019</p>\n\t\t\t\t\t\t\t\t\t<p>Clovis Veterans Memorial Auditorium</p>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t<div className='container'>\n\t\t\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\t\t\tpublicId='perf-6_ij0kfg'\n\t\t\t\t\t\t\t\t\t\tformat='jpg'\n\t\t\t\t\t\t\t\t\t\tclassName='perf-img'\n\t\t\t\t\t\t\t\t\t/>{' '}\n\t\t\t\t\t\t\t\t\t<h2>Songs of the Season</h2>\n\t\t\t\t\t\t\t\t\t<p>December 16, 2018</p>\n\t\t\t\t\t\t\t\t\t<p>Paul Shaghoian Concert Hall</p>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t<div className='container'>\n\t\t\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\t\t\tpublicId='perf-7_ragmo8'\n\t\t\t\t\t\t\t\t\t\tformat='jpg'\n\t\t\t\t\t\t\t\t\t\tclassName='perf-img'\n\t\t\t\t\t\t\t\t\t/>{' '}\n\t\t\t\t\t\t\t\t\t<h2>Sacred Songs</h2>\n\t\t\t\t\t\t\t\t\t<p>October 21, 2018</p>\n\t\t\t\t\t\t\t\t\t<p>Paul Shaghoian Concert Hall</p>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t<div className='container'>\n\t\t\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\t\t\tpublicId='perf-8_c6okam'\n\t\t\t\t\t\t\t\t\t\tformat='jpg'\n\t\t\t\t\t\t\t\t\t\tclassName='perf-img'\n\t\t\t\t\t\t\t\t\t/>{' '}\n\t\t\t\t\t\t\t\t\t<h2>5th Annual Patriotic Concert</h2>\n\t\t\t\t\t\t\t\t\t<p>June 29, 2018</p>\n\t\t\t\t\t\t\t\t\t<p>Paul Shaghoian Concert Hall</p>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t<div className='container'>\n\t\t\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\t\t\tpublicId='perf-9_ejxfbd'\n\t\t\t\t\t\t\t\t\t\tformat='jpg'\n\t\t\t\t\t\t\t\t\t\tclassName='perf-img'\n\t\t\t\t\t\t\t\t\t/>{' '}\n\t\t\t\t\t\t\t\t\t<h2>Are We There Yet?</h2>\n\t\t\t\t\t\t\t\t\t<p>May 6, 2018</p>\n\t\t\t\t\t\t\t\t\t<p>Paul Shaghoian Concert Hall</p>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t<div className='container'>\n\t\t\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\t\t\tpublicId='perf-10_lo964o'\n\t\t\t\t\t\t\t\t\t\tformat='jpg'\n\t\t\t\t\t\t\t\t\t\tclassName='perf-img'\n\t\t\t\t\t\t\t\t\t/>{' '}\n\t\t\t\t\t\t\t\t\t<h2>Songs of the Season</h2>\n\t\t\t\t\t\t\t\t\t<p>December 27, 2017</p>\n\t\t\t\t\t\t\t\t\t<p>Paul Shaghoian Concert Hall</p>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t<div className='container'>\n\t\t\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\t\t\tpublicId='perf-11_jc3iyg'\n\t\t\t\t\t\t\t\t\t\tformat='jpg'\n\t\t\t\t\t\t\t\t\t\tclassName='perf-img'\n\t\t\t\t\t\t\t\t\t/>{' '}\n\t\t\t\t\t\t\t\t\t<h2>Sacred Songs</h2>\n\t\t\t\t\t\t\t\t\t<p>October 22, 2017</p>\n\t\t\t\t\t\t\t\t\t<p>Paul Shaghoian Concert Hall</p>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t<div className='container'>\n\t\t\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\t\t\tpublicId='perf-12_g7hh8i'\n\t\t\t\t\t\t\t\t\t\tformat='jpg'\n\t\t\t\t\t\t\t\t\t\tclassName='perf-img'\n\t\t\t\t\t\t\t\t\t/>{' '}\n\t\t\t\t\t\t\t\t\t<h2>Patriotic and Gospel Favorites</h2>\n\t\t\t\t\t\t\t\t\t<p>June 23, 2017</p>\n\t\t\t\t\t\t\t\t\t<p>Peoples Church</p>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t<div className='container'>\n\t\t\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\t\t\tpublicId='perf-13_x24dby'\n\t\t\t\t\t\t\t\t\t\tformat='jpg'\n\t\t\t\t\t\t\t\t\t\tclassName='perf-img'\n\t\t\t\t\t\t\t\t\t/>{' '}\n\t\t\t\t\t\t\t\t\t<h2>Pure Imagination: From Broadway to Hollywood</h2>\n\t\t\t\t\t\t\t\t\t<p>May 7, 2017</p>\n\t\t\t\t\t\t\t\t\t<p>Paul Shaghoian Concert Hall</p>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t<div className='container'>\n\t\t\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\t\t\tpublicId='perf-14_lcpx9a'\n\t\t\t\t\t\t\t\t\t\tformat='jpg'\n\t\t\t\t\t\t\t\t\t\tclassName='perf-img'\n\t\t\t\t\t\t\t\t\t/>{' '}\n\t\t\t\t\t\t\t\t\t<h2>Holiday Performance</h2>\n\t\t\t\t\t\t\t\t\t<p>December 18, 2016</p>\n\t\t\t\t\t\t\t\t\t<p>Paul Shaghoian Concert Hall</p>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t<div className='container'>\n\t\t\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\t\t\tpublicId='perf-15_a7zkkq'\n\t\t\t\t\t\t\t\t\t\tformat='jpg'\n\t\t\t\t\t\t\t\t\t\tclassName='perf-img'\n\t\t\t\t\t\t\t\t\t/>{' '}\n\t\t\t\t\t\t\t\t\t<h2>More Psalms, Hymns, and Spiritual Songs</h2>\n\t\t\t\t\t\t\t\t\t<p>November 3, 2016</p>\n\t\t\t\t\t\t\t\t\t<p>Paul Shaghoian Concert Hall</p>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t<div className='container'>\n\t\t\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\t\t\tpublicId='perf-16_koqsqu'\n\t\t\t\t\t\t\t\t\t\tformat='jpg'\n\t\t\t\t\t\t\t\t\t\tclassName='perf-img'\n\t\t\t\t\t\t\t\t\t/>{' '}\n\t\t\t\t\t\t\t\t\t<h2>Patriotic Concert</h2>\n\t\t\t\t\t\t\t\t\t<p>June 24, 2016</p>\n\t\t\t\t\t\t\t\t\t<p>G.L. Johnson Chapel</p>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t<div className='container'>\n\t\t\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\t\t\tpublicId='perf-17_u3fusq'\n\t\t\t\t\t\t\t\t\t\tformat='jpg'\n\t\t\t\t\t\t\t\t\t\tclassName='perf-img'\n\t\t\t\t\t\t\t\t\t/>{' '}\n\t\t\t\t\t\t\t\t\t<h2>America Sings!</h2>\n\t\t\t\t\t\t\t\t\t<p>May 6, 2016</p>\n\t\t\t\t\t\t\t\t\t<p>G.L. Johnson Chapel</p>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t<div className='container'>\n\t\t\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\t\t\tpublicId='perf-18_uptucj'\n\t\t\t\t\t\t\t\t\t\tformat='jpg'\n\t\t\t\t\t\t\t\t\t\tclassName='perf-img'\n\t\t\t\t\t\t\t\t\t/>{' '}\n\t\t\t\t\t\t\t\t\t<h2>Songs of the Season</h2>\n\t\t\t\t\t\t\t\t\t<p>December 18, 2015</p>\n\t\t\t\t\t\t\t\t\t<p>G.L. Johnson Chapel</p>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t<div className='container'>\n\t\t\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\t\t\tpublicId='perf-19_cvrq8c'\n\t\t\t\t\t\t\t\t\t\tformat='jpg'\n\t\t\t\t\t\t\t\t\t\tclassName='perf-img'\n\t\t\t\t\t\t\t\t\t/>{' '}\n\t\t\t\t\t\t\t\t\t<h2>Psalms, Hymns, and Spiritual Songs</h2>\n\t\t\t\t\t\t\t\t\t<p>October 30, 2015</p>\n\t\t\t\t\t\t\t\t\t<p>G.L. Johnson Chapel</p>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t<div className='container'>\n\t\t\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\t\t\tpublicId='perf-20_oczx9r'\n\t\t\t\t\t\t\t\t\t\tformat='jpg'\n\t\t\t\t\t\t\t\t\t\tclassName='perf-img'\n\t\t\t\t\t\t\t\t\t/>{' '}\n\t\t\t\t\t\t\t\t\t<h2>Patriotic Celebration</h2>\n\t\t\t\t\t\t\t\t\t<p>June 25, 2015</p>\n\t\t\t\t\t\t\t\t\t<p>G.L. Johnson Chapel</p>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t<div className='container'>\n\t\t\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\t\t\tpublicId='perf-21_x0cmhw'\n\t\t\t\t\t\t\t\t\t\tformat='jpg'\n\t\t\t\t\t\t\t\t\t\tclassName='perf-img'\n\t\t\t\t\t\t\t\t\t/>{' '}\n\t\t\t\t\t\t\t\t\t<h2>Sing a Song of Christmas</h2>\n\t\t\t\t\t\t\t\t\t<p>December 18, 2014</p>\n\t\t\t\t\t\t\t\t\t<p>Mercedes Edwards Theater</p>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t<div className='container'>\n\t\t\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\t\t\tpublicId='perf-22_albdhm'\n\t\t\t\t\t\t\t\t\t\tformat='jpg'\n\t\t\t\t\t\t\t\t\t\tclassName='perf-img'\n\t\t\t\t\t\t\t\t\t/>{' '}\n\t\t\t\t\t\t\t\t\t<h2>Clovis Community Choir: In Concert!</h2>\n\t\t\t\t\t\t\t\t\t<p>October 30, 2014</p>\n\t\t\t\t\t\t\t\t\t<p>Clovis Veterans Memorial Auditorium</p>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</Slider>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</section>\n\t\t\t</CloudinaryContext>\n\t\t);\n\t}\n}\n","import React from 'react';\nimport './events.styles.scss';\nimport Nav from '../../components/nav/nav.jsx';\nimport Footer from '../../components/Footer/Footer';\nimport EventSlider from '../../components/slider/event-slider/event-slider';\n\nimport youtubeImage from '../../assets/events/youtube.png';\nimport subhead from '../../assets/events/subhead.png';\nimport SelectNav from '../../components/selectNav/selectNav';\n\nconst Events = () => (\n\t<div className='events'>\n\t\t<div className='events--headerbg'>\n\t\t\t<SelectNav />\n\n\t\t\t<div className='events-header'>\n\t\t\t\t<div className='events-header__text'>\n\t\t\t\t\t<h1>\n\t\t\t\t\t\tKeep up with our<br />Performances<br />\n\t\t\t\t\t\t on Youtube!\n\t\t\t\t\t</h1>\n\t\t\t\t\t<div className='events_button'>\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref='https://www.youtube.com/channel/UCNgI81vkZNPOXzSE3wlI3qg/videos'\n\t\t\t\t\t\t\ttarget='_blank'\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tWatch Now\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div className='events-header__image'>\n\t\t\t\t\t<img src={youtubeImage} />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div className='events__subhead'>\n\t\t\t<h2>\n\t\t\t\t<span>Take a stroll through memory lane...</span>\n\t\t\t\t<br />\n\t\t\t\tOUR PAST PERFORMANCES\n\t\t\t</h2>\n\t\t\t<img src={subhead} />\n\t\t</div>\n\n\t\t<EventSlider />\n\n\t\t<Footer />\n\t</div>\n);\n\nexport default Events;\n","import React from 'react';\nimport './contact.styles.scss';\nimport Footer from '../../components/Footer/Footer';\n\nimport headerLeft from '../../assets/contact/header-left.png';\nimport headerRight from '../../assets/contact/header-right.png';\nimport underTitle from '../../assets/contact/under-title.png';\nimport joinImage from '../../assets/contact/join.png';\nimport bookImage from '../../assets/contact/book.png';\nimport questionImage from '../../assets/contact/questions.png';\nimport SelectNav from '../../components/selectNav/selectNav';\n\nconst Contact = () => (\n\t<div className='contact'>\n\t\t<div className='contact--headerbg'>\n\t\t\t<SelectNav />\n\t\t\t<section id='contact-header'>\n\t\t\t\t<div className='contact-header'>\n\t\t\t\t\t<img src={headerLeft} />\n\t\t\t\t\t<h1>Contact Us</h1>\n\t\t\t\t\t<img src={headerRight} />\n\t\t\t\t</div>\n\t\t\t</section>\n\t\t</div>\n\n\t\t<section id='content'>\n\t\t\t<div className='contact-join'>\n\t\t\t\t<div className='contact-join__image'>\n\t\t\t\t\t<img src={joinImage} />\n\t\t\t\t</div>\n\n\t\t\t\t<div className='contact-join__text'>\n\t\t\t\t\t<h3>Join Us</h3>\n\t\t\t\t\t<img src={underTitle} />\n\t\t\t\t\t<h4>Would you like to sing with us?</h4>\n\t\t\t\t\t<p className='desktop-text'>\n\t\t\t\t\t\tWe are always welcoming new singers to the Community Choir\n\t\t\t\t\t\t<br />\n\t\t\t\t\t\tof the Valley! And, remember…there are no auditions. Our members have\n\t\t\t\t\t\t<br />\n\t\t\t\t\t\tvarying levels of musical experience, so don’t worry if you’ve\n\t\t\t\t\t\t<br />\n\t\t\t\t\t\tnever sung in a group before, or it’s been a long time. We’ll be\n\t\t\t\t\t\t<br />\n\t\t\t\t\t\tthere to help you. Sign up online, or by phone, or coming to a<br />\n\t\t\t\t\t\trehearsal. It’s that easy!\n\t\t\t\t\t</p>\n\t\t\t\t\t<p className='mobile-text'>\n\t\t\t\t\t\tWe are always welcoming new singers to the Community Choir of the Valley!\n\t\t\t\t\t\tAnd, remember…there are no auditions. Our members have varying\n\t\t\t\t\t\tlevels of musical experience, so don’t worry if you’ve never sung in\n\t\t\t\t\t\ta group before, or it’s been a long time. We’ll be there to help\n\t\t\t\t\t\tyou. Sign up online, or by phone, or coming to a rehearsal. It’s\n\t\t\t\t\t\tthat easy!\n\t\t\t\t\t</p>\n\t\t\t\t\t<br />\n\t\t\t\t\t<div className='contact-button'>\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref='https://choirofthevalley.choirgenius.com/content/membership-application'\n\t\t\t\t\t\t\ttarget='_blank'\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tSign Up\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</section>\n\n\t\t<section id='book'>\n\t\t\t<div className='book'>\n\t\t\t\t<div className='book__content'>\n\t\t\t\t\t<div className='book__image-mobile'>\n\t\t\t\t\t\t<img src={bookImage} />\n\t\t\t\t\t</div>\n\t\t\t\t\t<h3>Book Us</h3>\n\t\t\t\t\t<img src={underTitle} />\n\t\t\t\t\t<h4>Interested in having the Choir sing for an event?</h4>\n\t\t\t\t\t<p className='desktop-text'>\n\t\t\t\t\t\tOur season typically includes 4 concerts with room for a few\n\t\t\t\t\t\t<br />\n\t\t\t\t\t\tother events around the community. We have also provided small\n\t\t\t\t\t\t<br />\n\t\t\t\t\t\tgroups for specific functions. If you have an idea or an event for\n\t\t\t\t\t\t<br />\n\t\t\t\t\t\twhich you’d like us to participate, give us a call or send a request\n\t\t\t\t\t\t<br />\n\t\t\t\t\t\tby email.\n\t\t\t\t\t</p>\n\t\t\t\t\t<p className='mobile-text'>\n\t\t\t\t\t\tOur season typically includes 4 concerts with room for a few other\n\t\t\t\t\t\tevents around the community. We have also provided small groups for\n\t\t\t\t\t\tspecific functions. If you have an idea or an event for which you’d\n\t\t\t\t\t\tlike us to participate, give us a call or send a request by email.\n\t\t\t\t\t</p>\n\t\t\t\t\t<br />\n\t\t\t\t\t<div className='contact-button'>\n\t\t\t\t\t\t<a href='tel:+15599168541'target='_blank' >\n\t\t\t\t\t\t\tCall Us\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div className='book__image'>\n\t\t\t\t\t<img src={bookImage} />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</section>\n\n\t\t<section id='questions'>\n\t\t\t<div className='questions'>\n\t\t\t\t<div className='questions__image'>\n\t\t\t\t\t<img src={questionImage} />\n\t\t\t\t</div>\n\n\t\t\t\t<div className='questions__content'>\n\t\t\t\t\t<h3>Contact Us</h3>\n\t\t\t\t\t<img src={underTitle} />\n\t\t\t\t\t<h4>Questions or Comments?</h4>\n\t\t\t\t\t<p className='desktop-text'>\n\t\t\t\t\t\tWe’d love to hear from you! You can always reach us through\n\t\t\t\t\t\t<br />\n\t\t\t\t\t\tsimply sending an email.\n\t\t\t\t\t</p>\n\t\t\t\t\t<p className='mobile-text'>\n\t\t\t\t\t\tWe’d love to hear from you! You can always reach us through simply sending an email.\n\t\t\t\t\t</p>\n\t\t\t\t\t<br />\n\n\t\t\t\t\t<div className='contact-button'>\n\t\t\t\t\t\t<a href='mailto:choirofthevalley@gmail.com' target='_blank'>\n\t\t\t\t\t\t\tEmail Us\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</section>\n\n\t\t<Footer />\n\t</div>\n);\n\nexport default Contact;\n","import React from 'react';\nimport './about.styles.scss';\nimport Footer from '../../components/Footer/Footer';\n\nimport headerLeft from '../../assets/contact/header-left.png';\nimport headerRight from '../../assets/contact/header-right.png';\nimport subhead from '../../assets/events/subhead.png';\nimport underTitle from '../../assets/contact/under-title.png';\nimport aboutPicture from '../../assets/about/about-section.png';\nimport SelectNav from '../../components/selectNav/selectNav';\n\nconst About = () => {\n\treturn (\n\t\t<div id='about-section'>\n\t\t\t<div className='about-section'>\n\t\t\t\t<div className='about-section__bg'>\n\t\t\t\t\t<SelectNav />\n\n\t\t\t\t\t<div className='about-section__header'>\n\t\t\t\t\t\t<img src={headerLeft} />\n\t\t\t\t\t\t<h1>About Us</h1>\n\t\t\t\t\t\t<img src={headerRight} />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\n\n\t\t\t\t<div className='about-section__content'>\n\t\t\t\t\t<div className='about-section__content__image'>\n\t\t\t\t\t\t<img src={aboutPicture} />\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className='about-section__content__text'>\n\t\t\t\t\t\t<h2>\n\t\t\t\t\t\t\tA love of singing balanced with\n\t\t\t\t\t\t\t<br />a love of community\n\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t<img src={underTitle} />\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\tA membership of 130 plus voices, diverse experience levels and one\n\t\t\t\t\t\t\tlove for music and the community. Community Choir of the Valley, is a\n\t\t\t\t\t\t\tnon-auditioned choral group established in 2014 in Clovis\n\t\t\t\t\t\t\tCalifornia. Our singers range from those who are highly skilled to\n\t\t\t\t\t\t\tthose who have never sung in a choir before, but we all have these\n\t\t\t\t\t\t\tthings in common:\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t*A passion for singing choral music of all styles: Inspirational\n\t\t\t\t\t\t\tballads and heartwarming favorites. Quality arrangements of pop\n\t\t\t\t\t\t\tmusic and show tunes. Patriotic and Americana to classical pieces\n\t\t\t\t\t\t\tby the best composers. Acapella selection or accompanied by\n\t\t\t\t\t\t\tvarieties of instruments!\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t*Enjoy the weekly aspect of all that takes place in a fast paced\n\t\t\t\t\t\t\tand fun, yet challenging rehearsal with other singers from the\n\t\t\t\t\t\t\tcommunity. Each member of varying age and experience. Learn from\n\t\t\t\t\t\t\teach other and grow together, musically and socially. A “high\n\t\t\t\t\t\t\tnote†of the week!\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t*Desire the thrill of presenting top-notch concerts that bring\n\t\t\t\t\t\t\tjoy, inspiration and pride to our community in ways that only\n\t\t\t\t\t\t\tchoral music, presented with dedication and excellence, can do!\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\tThe choir rehearses weekly during its season and is broken into 3\n\t\t\t\t\t\t\tsegments. Late August through December, February through April,\n\t\t\t\t\t\t\tand May through June. We perform 4 major\n\t\t\t\t\t\t\tconcerts, and various other performances around the community…and,\n\t\t\t\t\t\t\tour concerts are free to the public!\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<Footer />\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default About;\n","import React from 'react';\nimport '../about/about.styles.scss';\nimport Footer from '../../components/Footer/Footer';\n\nimport headerLeft from '../../assets/contact/header-left.png';\nimport headerRight from '../../assets/contact/header-right.png';\nimport subhead from '../../assets/events/subhead.png';\nimport underTitle from '../../assets/contact/under-title.png';\nimport directorPicture from '../../assets/director/director.png';\nimport SelectNav from '../../components/selectNav/selectNav';\n\nconst Director = () => {\n\treturn (\n\t\t<div id='about-section'>\n\t\t\t<div className='about-section'>\n\t\t\t\t<div className='about-section__bg'>\n\t\t\t\t\t<SelectNav />\n\t\t\t\t\t<div className='about-section__header'>\n\t\t\t\t\t\t<img src={headerLeft} />\n\t\t\t\t\t\t<h1>Our Director</h1>\n\t\t\t\t\t\t<img src={headerRight} />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t\n\n\t\t\t\t<div className='about-section__content'>\n\t\t\t\t\t<div className='about-section__content__image'>\n\t\t\t\t\t\t<img src={directorPicture} />\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className='about-section__content__text'>\n\t\t\t\t\t\t<h2>Ed Cobb</h2>\n\t\t\t\t\t\t<img src={underTitle} />\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\tAfter having the idea of starting a new community chorus, Ed Cobb\n\t\t\t\t\t\t\tsaid “Let’s put on a Patriotic Concert, and see how it\n\t\t\t\t\t\t\tgoes!†He made some calls, sent a few notes and anxiously awaited\n\t\t\t\t\t\t\tthe first rehearsal. Nearly 50 singers showed up that first night\n\t\t\t\t\t\t\tand since then, Ed’s leadership has encouraged an environment that\n\t\t\t\t\t\t\tcurrently enriches the lives of just under 100 singers with a wide\n\t\t\t\t\t\t\tarray of musical experiences, creating a non-auditioned choir for\n\t\t\t\t\t\t\tthe community to enjoy!\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\tEd studied music at Texas Tech University, where he was Drum Major\n\t\t\t\t\t\t\tof the world-famous “Goin’ Band from Raiderland.†Following\n\t\t\t\t\t\t\tschool, he began touring in a Christian music group, The\n\t\t\t\t\t\t\tContinental Singers, where he eventually became a director,\n\t\t\t\t\t\t\tconducting choral and instrumental groups in concert tours across\n\t\t\t\t\t\t\tthe United States and into 30 countries worldwide. In his 30-plus\n\t\t\t\t\t\t\tyear musical career, Ed has conducted choirs and orchestras in 4\n\t\t\t\t\t\t\tchurches throughout Southern and Central California. His groups,\n\t\t\t\t\t\t\twith hundreds of participants, have presented large scale\n\t\t\t\t\t\t\tproductions, concerts and recordings. As well, he has conducted\n\t\t\t\t\t\t\tchoirs for numerous civic events, and conferences.\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\tIn addition to his work with the Community Choir of the Valley, Ed,\n\t\t\t\t\t\t\tcurrently, teaches music at a private school in Fresno.\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<Footer />\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default Director;\n","import React from 'react';\nimport '../about/about.styles.scss';\nimport Footer from '../../components/Footer/Footer';\n\nimport headerLeft from '../../assets/contact/header-left.png';\nimport headerRight from '../../assets/contact/header-right.png';\nimport subhead from '../../assets/events/subhead.png';\nimport underTitle from '../../assets/contact/under-title.png';\nimport accompanistPicture from '../../assets/accompanist/accompanist.png';\nimport SelectNav from '../../components/selectNav/selectNav';\n\nconst Accompanist = () => {\n\treturn (\n\t\t<div id='about-section'>\n\t\t\t<div className='about-section'>\n\t\t\t\t<div className='about-section__bg'>\n\t\t\t\t\t<SelectNav />\n\t\t\t\t\t<div className='about-section__header'>\n\t\t\t\t\t\t<img src={headerLeft} />\n\t\t\t\t\t\t<h1>Our Accompanist</h1>\n\t\t\t\t\t\t<img src={headerRight} />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t\n\n\t\t\t\t<div className='about-section__content'>\n\t\t\t\t\t<div className='about-section__content__image'>\n\t\t\t\t\t\t<img src={accompanistPicture} />\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className='about-section__content__text'>\n\t\t\t\t\t\t<h2>Randy Berger</h2>\n\t\t\t\t\t\t<img src={underTitle} />\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\tRandy Berger is pleased to be the piano accompanist for the Community Choir of the Valley since its inception. Along with the opportunity to\n\t\t\t\t\t\t\twork with Director Ed Cobb, Randy really enjoys playing for such a\n\t\t\t\t\t\t\tlarge group and adding the right musical nuances to each song that\n\t\t\t\t\t\t\tis rehearsed and performed.\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\tSince retiring as Choral Director in 2018 from Bullard TALENT, a\n\t\t\t\t\t\t\tK-8 performing arts magnet school in Fresno Unified, Randy has\n\t\t\t\t\t\t\tbeen keeping busy by accompanying for other choral groups and\n\t\t\t\t\t\t\tsoloists. He is currently the Lead Musician at Sierra View\n\t\t\t\t\t\t\tPresbyterian Church in Fresno. Being a multi-instrumentalist, he\n\t\t\t\t\t\t\talso freelances in recording projects for others and himself, as\n\t\t\t\t\t\t\twell as providing sound for live events.\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\tHe and his wife, Sherrill, have 2 sons, Lee and Joel, and 3\n\t\t\t\t\t\t\tgrandchildren, as well as 3 amazing cats and a dog!\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<Footer />\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default Accompanist;\n","import React from 'react';\nimport '../about/about.styles.scss';\nimport Nav from '../../components/nav/nav.jsx';\nimport Footer from '../../components/Footer/Footer';\n\nimport headerLeft from '../../assets/contact/header-left.png';\nimport headerRight from '../../assets/contact/header-right.png';\nimport subhead from '../../assets/events/subhead.png';\nimport underTitle from '../../assets/contact/under-title.png';\nimport historyPicture from '../../assets/history/history.png';\nimport SelectNav from '../../components/selectNav/selectNav';\n\nconst History = () => {\n\treturn (\n\t\t<div id='about-section'>\n\t\t\t<div className='about-section'>\n\t\t\t\t<div className='about-section__bg'>\n\t\t\t\t\t<SelectNav />\n\t\t\t\t\t<div className='about-section__header'>\n\t\t\t\t\t\t<img src={headerLeft} />\n\t\t\t\t\t\t<h1>Our History</h1>\n\t\t\t\t\t\t<img src={headerRight} />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\n\n\t\t\t\t<div className='about-section__content'>\n\t\t\t\t\t<div className='about-section__content__image'>\n\t\t\t\t\t\t<img src={historyPicture} />\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className='about-section__content__text'>\n\t\t\t\t\t\t<h2 style={{fontSize: 2 + 'rem'}}>\n\t\t\t\t\t\t\t“America, I Still Can Hear Your Song†was the first song\n\t\t\t\t\t\t\tperformed!\n\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t<img src={underTitle} />\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\tEd Cobb, a passionate choral conductor, independently started a new choir, driven by his love for singing and a desire to create something extraordinary. He gathered like-minded individuals, nurtured their voices, and formed a harmonious collective that captivated audiences with soul-stirring performances. His decision showcased his unwavering passion for music and belief in its transformative power, fostering a vibrant musical community.\n\n\n\n\n\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\tKnowing that there is always an interest in patriotic music, it\n\t\t\t\t\t\t\twas decided to put together a group, and schedule a concert to\n\t\t\t\t\t\t\tcelebrate Independence Day. Fifty people showed up, and the rest\n\t\t\t\t\t\t\tis history! The first concert was held in the Clovis Veteran’s\n\t\t\t\t\t\t\tMemorial Building Auditorium…to a standing room only crowd!\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\tSince then, the Choir has grown, numerically-- with over 130 voices\n\t\t\t\t\t\t\tand musically. The desire has always been to present a varied\n\t\t\t\t\t\t\tprogram of music for our audiences. Our concerts range from the\n\t\t\t\t\t\t\tannual Patriotic Concert, to seasonal concerts, and pop-like\n\t\t\t\t\t\t\tconcerts featuring great Broadway and Movie tunes. One of the\n\t\t\t\t\t\t\tfavorite traditions has been an annual concert of sacred music.\n\t\t\t\t\t\t\tEach fall, the Choir, accompanied by a variety of brass, woodwind,\n\t\t\t\t\t\t\tstrings and percussion presents some of the best in sacred choir\n\t\t\t\t\t\t\tliterature. Classics, contemporary, gospel and spirituals!\n\t\t\t\t\t\t</p>\n\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\tIn addition to our annual 4 concert series put on throughout the\n\t\t\t\t\t\t\tyear, we also perform in various ways around the community. The\n\t\t\t\t\t\t\tchoir has presented the National Anthem for the Fresno Grizzlies\n\t\t\t\t\t\t\tTriple-A baseball team, as well as the internationally known\n\t\t\t\t\t\t\tHarlem Globetrotters, in the Save Mart Center. In addition, the\n\t\t\t\t\t\t\tChoir has taken pleasure in performing in conjunction with the\n\t\t\t\t\t\t\tFresno Rescue Mission, and Save the Children, in Fresno; and has\n\t\t\t\t\t\t\tcollaborated with other groups such as the Bach Children’s Choir,\n\t\t\t\t\t\t\tthe Clovis Community Band, and several well-known vocal and\n\t\t\t\t\t\t\tinstrumental soloists.\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<Footer />\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default History;\n","import React from 'react';\nimport { BrowserRouter as Router, Switch, Route, Link } from 'react-router-dom';\n\nimport Home from './sections/home/home';\nimport Events from './sections/events/events.jsx';\nimport Contact from './sections/contact/contact';\nimport About from './sections/about/about';\nimport Director from './sections/director/director';\nimport Accompanist from './sections/accompanist/accompanist';\nimport History from './sections/history/history';\nimport './App.scss';\n\nfunction App() {\n\treturn (\n\t\t<Router>\n\t\t\t<Switch>\n\t\t\t\t<Route exact path='/' component={Home} />\n\t\t\t\t<Route exact path='/about' component={About} />\n\t\t\t\t<Route exact path='/director' component={Director} />\n\t\t\t\t<Route exact path='/accompanist' component={Accompanist} />\n\t\t\t\t<Route exact path='/history' component={History} />\n\t\t\t\t<Route exact path='/events' component={Events} />\n\t\t\t\t<Route exact path='/contact' component={Contact} />\n\t\t\t</Switch>\n\t\t</Router>\n\t);\n}\n\nexport default App;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\n\nimport { BrowserRouter } from 'react-router-dom';\n\nReactDOM.render(\n\t<React.StrictMode>\n\t\t<BrowserRouter>\n\t\t\t<App />\n\t\t</BrowserRouter>\n\t</React.StrictMode>,\n\tdocument.getElementById('root')\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\n"],"names":["factory","__WEBPACK_EXTERNAL_MODULE_lodash_assign__","__WEBPACK_EXTERNAL_MODULE_lodash_cloneDeep__","__WEBPACK_EXTERNAL_MODULE_lodash_compact__","__WEBPACK_EXTERNAL_MODULE_lodash_difference__","__WEBPACK_EXTERNAL_MODULE_lodash_functions__","__WEBPACK_EXTERNAL_MODULE_lodash_identity__","__WEBPACK_EXTERNAL_MODULE_lodash_includes__","__WEBPACK_EXTERNAL_MODULE_lodash_isArray__","__WEBPACK_EXTERNAL_MODULE_lodash_isElement__","__WEBPACK_EXTERNAL_MODULE_lodash_isFunction__","__WEBPACK_EXTERNAL_MODULE_lodash_isPlainObject__","__WEBPACK_EXTERNAL_MODULE_lodash_isString__","__WEBPACK_EXTERNAL_MODULE_lodash_merge__","__WEBPACK_EXTERNAL_MODULE_lodash_trim__","installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","src_utf8_encode","argString","c1","enc","end","start","string","stringl","utftext","length","charCodeAt","String","fromCharCode","slice","src_crc32","str","crc","iTop","y","substr","stringPad","targetLength","padString","times","repeatedString","repeatStringNumTimes","base64Map_num","map","forEach","_char","toString","base64Map","encodeVersion","semVer","strResult","paddedStringLength","split","paddedReversedSemver","Error","reverse","segment","join","reverseVersion","paddedBinary","parseInt","match","bitString","getSDKAnalyticsSignature","analyticsOptions","arguments","undefined","twoPartVersion","semVerStr","parts","concat","removePatchFromSemver","techVersion","encodedSDKVersion","sdkSemver","encodedTechVersion","featureCode","feature","SDKCode","sdkCode","e","getAnalyticsOptions","options","urlAnalytics","accessibility","loading","responsive","placeholder","isIntersectionObserverSupported","window","_typeof","IntersectionObserver","isNativeLazyLoadSupported","HTMLImageElement","detectIntersection","el","onIntersect","observer","entries","entry","isIntersecting","unobserve","target","threshold","observe","VERSION","CF_SHARED_CDN","OLD_AKAMAI_SHARED_CDN","AKAMAI_SHARED_CDN","SHARED_CDN","DEFAULT_TIMEOUT_MS","DEFAULT_POSTER_OPTIONS","format","resource_type","DEFAULT_VIDEO_SOURCE_TYPES","SEO_TYPES","DEFAULT_IMAGE_PARAMS","transformation","type","DEFAULT_VIDEO_PARAMS","fallback_content","source_transformation","source_types","DEFAULT_VIDEO_SOURCES","codecs","transformations","video_codec","DEFAULT_EXTERNAL_LIBRARIES","seeThru","PLACEHOLDER_IMAGE_MODES","effect","quality","fetch_format","width","aspect_ratio","crop","background","height","gravity","variables","ACCESSIBILITY_MODES","darkmode","brightmode","monochrome","colorblind","URL_KEYS","omit","obj","keys","srcKeys","filter","includes_root_includes_default","filtered","nodeContains","baseutil_allStrings","list","every","isString_root_isString_default","a","without","array","item","v","isNumberLike","isNaN","parseFloat","smartEscape","unsafe","replace","toUpperCase","defaults","destination","_len","sources","Array","_key","reduce","dest","source","objectProto","objToString","isObject","baseutil_typeof","funcTag","isFunction","reWords","lower","upper","RegExp","camelCase","words","word","charAt","toLocaleUpperCase","toLocaleLowerCase","snakeCase","convertKeys","converter","result","isEmpty","withCamelCaseKeys","withSnakeCaseKeys","base64Encode","btoa","Buffer","input","from","base64EncodeURL","url","decodeURI","encodeURI","extractUrlParams","patchFetchFormat","optionConsume","option_name","default_value","size","getUserAgent","navigator","userAgent","isAndroid","test","isEdge","isChrome","isSafari","lodash_getData","element","isFunction_root_isFunction_default","getAttribute","getAttr","data","jQuery","fn","isElement_root_isElement_default","lodash_setData","setAttribute","setAttr","lodash_getAttribute","attr","lodash_setAttribute","lodash_removeAttribute","removeAttribute","setAttributes","attributes","results","push","lodash_hasClass","className","lodash_addClass","trim_root_trim_default","getStyles","elem","ownerDocument","defaultView","opener","getComputedStyle","cssExpand","b","adown","bup","nodeType","documentElement","parentNode","contains","domStyle","style","curCSS","computed","maxWidth","minWidth","ret","rmargin","getPropertyValue","rnumnonpx","cssValue","convert","styles","val","augmentWidthOrHeight","extra","isBorderBox","len","side","sides","getWidthOrHeight","valueIsBorderBox","offsetWidth","offsetHeight","lodash_width","Expression","expressionStr","_classCallCheck","this","expressions","normalize","expression","operatorsReplaceRE","OPERATORS","predefinedVarsPattern","PREDEFINED_VARS","variablesReplaceRE","serialize","parent","operator","getParent","predicate","_value","BOUNDRY","condition","_Expression","Condition","conditionStr","condition_classCallCheck","_callSuper","_inherits","configuration_Configuration","Configuration","configuration_classCallCheck","configuration","cloneDeep_root_cloneDeep_default","DEFAULT_CONFIGURATION_PARAMS","fromEnvironment","fromDocument","config","assign_root_assign_default","meta_elements","document","querySelectorAll","query","uri","_this","process","CLOUDINARY_URL","exec","_value$split2","_slicedToArray","k","new_config","new_value","set","isPlainObject_root_isPlainObject_default","merge","responsive_class","responsive_use_breakpoints","round_dpr","secure","location","protocol","CONFIG_PARAMS","src_configuration","layer_layer","Layer","layer_classCallCheck","ref","resourceType","publicId","getPublicId","components","getFullPublicId","compact_root_compact_default","constructor","textlayer","_Layer","TextLayer","textlayer_classCallCheck","textlayer_callSuper","textlayer_inherits","_resourceType","_type","_format","_fontFamily","fontFamily","_fontSize","fontSize","_fontWeight","fontWeight","_fontStyle","fontStyle","_textDecoration","textDecoration","_textAlign","textAlign","_stroke","stroke","_letterSpacing","letterSpacing","_lineSpacing","lineSpacing","_fontHinting","fontHinting","_fontAntialiasing","fontAntialiasing","_text","text","_textStyle","textStyle","hasPublicId","hasStyle","re","res","textSource","textStyleIdentifier","index","unshift","subtitleslayer","_TextLayer","SubtitlesLayer","subtitleslayer_classCallCheck","subtitleslayer_callSuper","subtitleslayer_inherits","fetchlayer","FetchLayer","fetchlayer_classCallCheck","fetchlayer_callSuper","fetchlayer_inherits","_url","parameters_Param","parameters_createClass","Param","shortName","identity_root_identity_default","parameters_classCallCheck","origValue","valid","isArray_root_isArray_default","arg","param","video","codec","profile","level","b_frames","parameters_ArrayParam","_Param","ArrayParam","sep","parameters_callSuper","parameters_inherits","arrayValue","flat","_this2","_get","parameters_getPrototypeOf","parameters_TransformationParam","_Param2","TransformationParam","_this3","_this4","joined","src_transformation","origValue1","parameters_RangeParam","_Param3","RangeParam","norm_range_value","offset","modifier","parameters_RawParam","_Param4","RawParam","parameters_LayerParam","_Param5","LayerParam","layerOptions","layer","assignNotNull","transformation_TransformationBase","TransformationBase","trans","transformation_classCallCheck","toOptions","withChain","opt","otherOptions","chained","tr","setParent","fromOptions","abbr","defaultValue","rawParam","lastArgCallback","rangeParam","arrayParam","transformationParam","layerParam","getValue","remove","temp","VAR_NAME_RE","sort","toPlainObject","hash","chain","getOwnPropertyNames","resetTransformations","transformation_createClass","fromTransformation","clone","other","camelKey","_len2","values","_key2","transformation_Transformation","methods","apply","ifParam","j","paramList","ref1","ref2","ref3","ref4","resultArray","transformationList","transformationString","vars","varArray","_varArray$j","transformation_slicedToArray","processVar","difference_root_difference_default","len1","param_separator","trans_separator","attrName","snakeCaseKey","PARAM_NAMES","hasLayer","toHtml","indexOf","args","callback","processCustomFunction","_ref","function_type","_TransformationBase","Transformation","transformation_callSuper","transformation_inherits","norm_color","border","color","dpr","fps","ifVal","trIf","trRest","end_o","start_o","_ref3","startOffset","endOffset","process_video_params","htmltag_toAttribute","escapeQuotes","htmltag","HtmlTag","htmltag_classCallCheck","tag","responsiveClass","dataSrc","attrs","htmlAttributes","toHtmlAttributes","merge_root_merge_default","htmlAttrs","openTag","content","closeTag","createElement","isUrl","handlePrefix","cloud_name","cdnPart","subdomain","host","path","private_cdn","cdn_subdomain","cdnSubdomainNumber","secure_cdn_subdomain","secure_distribution","cname","encodePublicId","encodeURIComponent","preparePublicId","prefix","pathname","makeUrl","urlString","version","isForceVersion","force_version","isVersionExist","handleVersion","_ref2","_objectWithoutProperties","_excluded","blur","handleTransformation","signature","isFormatted","handleSignature","_ref$resource_type","_ref$type","url_suffix","use_root_path","shorten","handleResourceType","decodeURIComponent","error","trust_public_id","formatPublicId","url_url","prepareOptions","validate","resultUrl","sdkAnalyticsSignature","appender","auth_token","_appender","srcsetUtils_isEmpty","scaledUrl","public_id","configParams","raw_transformation","getOrGenerateBreakpoints","srcset","breakpoints","_map2","generateBreakpoints_slicedToArray","min_width","max_width","max_images","Number","some","stepSize","Math","ceil","max","current","generateBreakpoints","generateImageResponsiveAttributes","srcsetData","responsiveAttributes","generateSizes","sizes","generateSrcset","srcsetAttr","generateSrcsetAttribute","sizesAttr","generateSizesAttribute","imagetag_ImageTag","_HtmlTag","ImageTag","imagetag_classCallCheck","imagetag_callSuper","imagetag_inherits","srcAttribute","imagetag_get","imagetag_getPrototypeOf","getOptions","getOption","srcsetParam","client_hints","imagetag","sourcetag_SourceTag","SourceTag","sourcetag_classCallCheck","sourcetag_callSuper","sourcetag_inherits","sourcetag_get","sourcetag_getPrototypeOf","media","mediaQuery","generateMediaAttr","sourcetag","picturetag_PictureTag","PictureTag","picturetag_classCallCheck","picturetag_callSuper","widthList","picturetag_inherits","sourceTransformation","picturetag_get","picturetag_getPrototypeOf","picturetag","VIDEO_TAG_PARAMS","videotag_DEFAULT_VIDEO_SOURCE_TYPES","videotag_DEFAULT_POSTER_OPTIONS","videotag_VideoTag","VideoTag","videotag_classCallCheck","videotag_callSuper","videotag_inherits","sourceTypes","poster","fallbackContent","fallback","innerTags","src","createSourceTag","srcType","defaultOptions","videotag_get","videotag_getPrototypeOf","sourceType","mimeType","videotag","clienthintsmetatag","ClientHintsMetaTag","clienthintsmetatag_classCallCheck","clienthintsmetatag_callSuper","clienthintsmetatag_inherits","transparentVideo_mountCloudinaryVideoTag","htmlElContainer","clInstance","Promise","resolve","reject","innerHTML","videoTag","querySelector","addFlag","flag","flags","transparentVideo_enforceOptionsForTransparentVideo","autoplay","muted","controls","max_timeout_ms","externalLibraries","xhr_loadScript","scriptURL","isAlreadyLoaded","scriptTag","timerID","setTimeout","status","message","onerror","clearTimeout","onload","head","appendChild","loadUrlUsingFetch","urlToLoad","fetch","then","response","blob","loadUrlUsingXhr","xhr","XMLHttpRequest","responseType","open","send","applyBreakpoints","closestAbove","defaultBreakpoints","cloudinary_findContainerWidth","cloudinary_maxWidth","updateDpr","xhr_getBlobFromURL","maxTimeoutMS","rejectOnTimeout","payload","blobURL","URL","createObjectURL","transparentVideo_createHiddenVideoTag","videoOptions","playsinline","loop","videoURL","visibility","position","x","revokeObjectURL","transparentVideo_instantiateSeeThru","videoElement","customClass","autoPlay","_window","seeThruInstance","ready","canvasElement","getCanvas","play","transparentVideo_mountSeeThruCanvasTag","err","transparentVideo_checkSupportForTransparency","canPlay","canPlayType","steps","resizing","calc_breakpoint","containerWidth","Element","display","roundDpr","device_pixel_ratio","requiredWidth","imageWidth","cloudinary_Cloudinary","Cloudinary","cloudinary_classCallCheck","devicePixelRatioCache","responsiveConfig","responsiveResizeInitialized","newConfig","newValue","init","img","imageTag","toDOM","cloudinary_update","image","timeout","bootstrap","responsive_resize","makeResponsive","debounce","reset","run","waitFunc","responsive_debounce","addEventListener","removeEventListener","point","devicePixelRatio","dprString","nodes","images","node","tagName","imgOptions","elements","normalizeToArray_toConsumableArray","normalizeToArray","setUrl","isResponsive","responsive_preserve_height","isLazyLoading","isLazyLoadSupported","setAttributeIfExists","toAttribute","fromAttribute","attributeValue","video_url","isNativelyTransparent","mountPromise","constants_namespaceObject","cloudinary","__webpack_exports__","crc32","utf8_encode","Util","lodash_namespaceObject","require","QueryHandler","each","MediaQuery","isUnconditional","handlers","mql","matchMedia","self","listener","currentTarget","assess","addListener","constuctor","addHandler","handler","qh","matches","on","removeHandler","h","equals","destroy","splice","clear","removeListener","action","isArray","MediaQueryDispatch","queries","browserIsIncapable","register","q","shouldDegrade","unregister","deferSetup","setup","initialised","off","unmatch","collection","glob","current_event","stop","has","separator","comaseparator","numsort","events","firstDefined","ii","lastDefined","objtos","Str","ar","eve","scope","oldstop","listeners","z","indexed","queue","out","ce","zIndex","_events","items","jj","nes","names","es","f","exist","event","nt","subname","cur","nts","unbind","inodes","funcs","prune","once","f2","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","camel2hyphen","obj2mq","mq","features","isDimension","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","global","freeSelf","root","Function","objectToString","nativeMax","nativeMin","min","now","Date","toNumber","isObjectLike","isSymbol","valueOf","isBinary","func","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","thisArg","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","remainingWait","debounced","isInvoking","leadingEdge","cancel","flush","DataView","getNative","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","Map","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","Set","setCacheAdd","setCacheHas","SetCache","__data__","add","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","Uint8Array","WeakMap","iteratee","resIndex","baseIndexOf","comparator","baseTimes","isArguments","isBuffer","isIndex","isTypedArray","inherited","isArr","isArg","isBuff","isType","skipIndexes","baseAssignValue","eq","objValue","copyObject","keysIn","arrayEach","assignValue","baseAssign","baseAssignIn","cloneBuffer","copyArray","copySymbols","copySymbolsIn","getAllKeys","getAllKeysIn","getTag","initCloneArray","initCloneByTag","initCloneObject","isMap","isSet","argsTag","objectTag","cloneableTags","baseClone","bitmask","customizer","stack","isDeep","isFlat","isFull","isFunc","stacked","subValue","props","objectCreate","baseCreate","proto","arrayIncludes","arrayIncludesWith","arrayMap","baseUnary","cacheHas","includes","isCommon","valuesLength","outer","valuesIndex","fromIndex","fromRight","arrayPush","isFlattenable","baseFlatten","depth","isStrict","baseFor","createBaseFor","arrayFilter","keysFunc","symbolsFunc","getRawTag","symToStringTag","baseFindIndex","baseIsNaN","strictIndexOf","baseGetTag","isMasked","toSource","reIsHostCtor","funcProto","funcToString","reIsNative","isLength","typedArrayTags","isPrototype","nativeKeys","nativeKeysIn","isProto","assignMergeValue","baseMergeDeep","safeGet","baseMerge","srcIndex","srcValue","cloneTypedArray","isArrayLikeObject","isPlainObject","mergeFunc","isTyped","identity","overRest","setToString","constant","baseSetToString","symbolProto","symbolToString","baseToString","trimmedEndIndex","reTrimStart","cache","baseSlice","strSymbols","chrSymbols","arrayBuffer","byteLength","freeExports","freeModule","allocUnsafe","buffer","copy","cloneArrayBuffer","dataView","byteOffset","reFlags","regexp","lastIndex","symbolValueOf","symbol","typedArray","isNew","getSymbols","getSymbolsIn","coreJsData","baseRest","isIterateeCall","assigner","guard","iterable","baseGetAllKeys","isKeyable","baseIsNative","getPrototype","overArg","nativeObjectToString","isOwn","unmasked","stubArray","propertyIsEnumerable","nativeGetSymbols","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ArrayBuffer","Ctor","ctorString","reHasUnicode","nativeCreate","cloneDataView","cloneRegExp","cloneSymbol","spreadableSymbol","isConcatSpreadable","reIsUint","isArrayLike","maskSrcKey","uid","IE_PROTO","assocIndexOf","pop","getMapData","freeProcess","nodeUtil","types","binding","transform","otherArgs","shortOut","nativeNow","count","lastCalled","stamp","remaining","pairs","LARGE_ARRAY_SIZE","asciiToArray","hasUnicode","unicodeToArray","reWhitespace","rsAstralRange","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsSeq","rsSymbol","reUnicode","createAssigner","assign","CLONE_DEEP_FLAG","baseDifference","difference","baseFunctions","isString","toInteger","baseIsArguments","stubFalse","baseIsMap","nodeIsMap","objectCtorString","baseIsSet","nodeIsSet","baseIsTypedArray","nodeIsTypedArray","arrayLikeKeys","baseKeys","baseKeysIn","INFINITY","toFinite","remainder","baseTrim","castSlice","charsEndIndex","charsStartIndex","stringToArray","chars","baseValues","propIsEnumerable","test1","test2","test3","letter","shouldUseNative","symbols","to","toObject","isarray","pathToRegexp","parse","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","tokens","defaultDelimiter","delimiter","escaped","next","capture","group","asterisk","partial","repeat","optional","pattern","prevText","escapeGroup","restrictBacktrack","escapeString","encodeURIComponentPretty","opts","encode","pretty","token","JSON","stringify","attachKeys","sensitive","strict","route","endsWithDelimiter","groups","regexpToRegexp","arrayToRegexp","stringToRegexp","arr","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","bigint","bool","number","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","slide","elastic","bubble","pushRotate","scaleDown","scaleRotate","fallDown","reveal","_extends","_createClass","defineProperties","configurable","writable","Constructor","protoProps","staticProps","_interopRequireDefault","_react","_react2","_propTypes2","BurgerIcon","_Component","instance","_x","_x2","_x3","_again","receiver","desc","state","hover","subClass","superClass","setPrototypeOf","__proto__","left","right","top","opacity","bmBurgerBarsHover","icon","customIcon","extraProps","trim","bmIcon","cloneElement","bar","barClassName","getLineStyle","bmBurgerBars","bmBurgerButton","id","onClick","onMouseOver","setState","onIconHoverChange","isMouseIn","onMouseOut","margin","padding","cursor","Component","CrossIcon","bmCross","crossClassName","getCrossStyle","bmCrossButton","isOpen","tabIndex","overlay","MozTransform","MsTransform","OTransform","WebkitTransform","transition","menuWrap","menu","boxSizing","overflow","itemList","focusOnFirstMenuItem","firstItem","getElementsByClassName","shift","focus","focusOnLastMenuItem","lastItem","focusOnCrossButton","crossButton","getElementById","focusOnMenuItem","siblingType","activeElement","sibling","focusOnMenuButton","menuButton","focusOnNextMenuItem","focusOnPreviousMenuItem","Snap","pxToNum","iterator","_arr","_n","_d","_e","_s","_i","done","sliceIterator","_helpersBaseStyles2","_helpersDom","_componentsBurgerIcon2","_componentsCrossIcon2","ARROW_DOWN","ARROW_UP","Menu","bodyClassName","burgerBarClassName","burgerButtonClassName","crossButtonClassName","disableAutoFocus","disableCloseOnEsc","htmlClassName","itemClassName","itemListClassName","menuClassName","morphShapeClassName","noOverlay","noTransition","onStateChange","outerContainerId","overlayClassName","pageWrapId","itemListElement","_React$useState","useState","_React$useState2","setIsOpen","timeoutId","useRef","toggleOptions","prevIsOpenProp","useEffect","usePrevious","toggleMenu","applyWrapperStyles","close","onClose","getStyle","_props","inline","output","handleExternalWrapper","wrapperStyles","wrapper","builtStyles","prop","applyOverflow","console","applyClass","classList","pageWrap","outerContainer","clearCurrentTimeout","onKeyDownOpen","onKeyDownClosed","focusOnLastItem","noStateChange","svg","morphShape","lib","select","animate","pathInitial","_toggleOptions$current","body","defaultOnKeyDown","onKeyDown","customOnKeyDown","disableOverlayClick","customBurgerIcon","onOpen","onIconStateChange","viewBox","preserveAspectRatio","Children","children","customCrossIcon","_helpersSnapsvgImporter2","_menuFactory2","_helpersUtils","pathOpen","pos","stepsTotal","mina","nextStep","easein","finalWidth","nthChild","closeButton","easeinout","whiteSpace","_menuFactory","perspective","perspectiveOrigin","transformOrigin","transformStyle","burgerIcon","aa","ba","ca","da","ea","fa","ha","ia","ja","ka","B","g","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","D","toLowerCase","oa","pa","qa","ma","na","la","setAttributeNS","xlinkHref","ra","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","sa","ta","ua","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","for","E","Ma","Ka","La","Na","Oa","Pa","prepareStackTrace","Reflect","construct","Qa","_render","Ra","$$typeof","_context","_payload","_init","Sa","Ta","nodeName","Va","_valueTracker","setValue","stopTracking","Ua","Wa","checked","Xa","Ya","defaultChecked","_wrapperState","initialChecked","Za","initialValue","controlled","$a","ab","bb","cb","eb","db","fb","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","hb","ib","jb","textContent","kb","lb","mb","nb","ob","namespaceURI","firstChild","removeChild","MSApp","execUnsafeLocalFunction","pb","lastChild","nodeValue","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","lineHeight","order","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","rb","sb","tb","setProperty","substring","ub","menuitem","area","base","br","col","embed","hr","keygen","link","meta","track","wbr","vb","wb","is","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","onError","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","$b","memoizedState","dehydrated","ac","cc","child","bc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","nc","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","sc","delete","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","hydrate","containerInfo","xc","yc","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","animation","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","F","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","log","LN2","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","uc","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","stopPropagation","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","view","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","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","code","locale","which","Rd","Td","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","de","ee","fe","ge","he","ie","le","date","datetime","email","month","password","range","search","tel","week","me","ne","oe","pe","qe","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","nextSibling","Me","compareDocumentPosition","Ne","HTMLIFrameElement","contentWindow","href","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","G","$e","af","bf","random","cf","df","passive","Nb","w","u","ef","ff","parentWindow","gf","hf","J","K","Q","L","je","char","ke","jf","kf","lf","mf","autoFocus","nf","__html","of","pf","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","H","I","Cf","M","N","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","getChildContext","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","O","eg","fg","gg","hg","ig","jg","kg","ReactCurrentBatchConfig","lg","mg","ng","og","pg","qg","rg","_currentValue","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","context","observedBits","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","yg","zg","eventTime","lane","Ag","Bg","Cg","A","C","Dg","Eg","Fg","refs","Gg","Kg","isMounted","_reactInternals","enqueueSetState","Hg","Ig","Jg","enqueueReplaceState","enqueueForceUpdate","Lg","shouldComponentUpdate","isPureReactComponent","Mg","updater","Ng","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Og","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Pg","Qg","_owner","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","Vg","implementation","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","hh","P","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","rh","sh","th","uh","_workInProgressVersionPrimary","vh","ReactCurrentDispatcher","wh","xh","R","S","T","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","Ih","Jh","Kh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","dispatch","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","U","getSnapshot","subscribe","setSnapshot","Oh","Ph","Qh","Rh","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useCallback","useContext","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useDebugValue","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","ReactCurrentOwner","fi","gi","hi","ji","ki","li","mi","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","qi","ri","pendingContext","Bi","Ci","Di","Ei","si","retryLane","ti","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","last","tail","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onclick","createElementNS","createTextNode","V","Hi","Ii","W","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","aj","bj","onCommitFiberUnmount","componentWillUnmount","cj","dj","ej","fj","gj","hj","insertBefore","_reactRootContainer","ij","kj","lj","mj","nj","oj","pj","X","Y","qj","rj","sj","tj","uj","vj","Infinity","wj","ck","Z","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","extend","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","scrollTop","onCommitFiberRoot","fk","gk","ik","isReactComponent","pendingChildren","jk","mutableSourceEagerHydrationData","lk","mk","nk","ok","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","hasAttribute","sk","uk","kk","hk","_calculateChangedBits","unstable_observedBits","unmount","form","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","__REACT_DEVTOOLS_GLOBAL_HOOK__","yk","isDisabled","supportsFiber","inject","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","checkDCE","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","NextArrow","PrevArrow","_classnames","_innerSliderUtils","ownKeys","enumerableOnly","sym","_objectSpread","_defineProperty","getOwnPropertyDescriptors","_defineProperties","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","sham","Proxy","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_React$PureComponent","_super","clickHandler","prevClasses","prevHandler","infinite","currentSlide","slideCount","slidesToShow","prevArrowProps","customProps","prevArrow","PureComponent","_React$PureComponent2","_super2","nextClasses","nextHandler","canGoNext","nextArrowProps","nextArrow","_default","adaptiveHeight","afterChange","appendDots","dots","arrows","autoplaySpeed","beforeChange","centerMode","centerPadding","cssEase","customPaging","dotsClass","draggable","easing","edgeFriction","fade","focusOnSelect","initialSlide","lazyLoad","onEdge","onInit","onLazyLoadError","onReInit","pauseOnDotsHover","pauseOnFocus","pauseOnHover","rows","rtl","slidesPerRow","slidesToScroll","speed","swipe","swipeEvent","swipeToSlide","touchMove","touchThreshold","useCSS","useTransform","variableWidth","vertical","waitForAnimate","Dots","spec","_this$props","onMouseEnter","onMouseLeave","dotCount","mouseEvents","_rightBound","rightBound","clamp","_leftBound","leftBound","dotOptions","animating","autoplaying","currentDirection","currentLeft","direction","dragging","edgeDragged","initialized","lazyLoadedList","listHeight","listWidth","scrolling","slideHeight","slideWidth","swipeLeft","swiped","swiping","touchObject","startX","startY","curX","curY","trackStyle","trackWidth","targetSlide","InnerSlider","_initialState","_lodash","_track","_dots","_arrows","_resizeObserverPolyfill","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","_React$Component","getHeight","slidesToLoad","getOnDemandLazySlides","prevState","onLazyLoad","listRef","trackRef","updateState","adaptHeight","lazyLoadTimer","setInterval","progressiveLazyLoad","ro","onWindowResized","callbackTimers","onfocus","onSlideFocus","onblur","onSlideBlur","animationEndCallback","clearInterval","timer","autoplayTimer","disconnect","prevProps","checkImagesLoad","setTrackStyle","didPropsChange","changeSlide","pause","debouncedResize","resizeWindow","Boolean","updatedState","initializedState","slideIndex","targetLeft","getTrackLeft","getTrackCSS","_trackWidth","_trackLeft","childrenWidths","preClones","getPreClones","postClones","getPostClones","_i2","_trackStyle","currentWidth","childrenCount","trackLeft","imagesCount","loadedCount","prevClickHandler","_index","dontAnimate","asNavFor","_slideHandler","slideHandler","nextState","asNavForIndex","innerSlider","firstBatch","clickable","dir","keyHandler","ontouchmove","verticalSwiping","disableBodyScroll","swipeStart","swipeMove","swipeEnd","triggerSlideHandler","enableBodyScroll","nextIndex","playType","pauseType","trackProps","extractObject","onTrackOver","onTrackLeave","selectHandler","dotProps","onDotsLeave","onDotsOver","arrowProps","verticalHeightStyle","centerPaddingStyle","listStyle","listProps","onMouseDown","onMouseMove","onMouseUp","onTouchStart","onTouchMove","onTouchEnd","touchEnd","onTouchCancel","innerSliderProps","unslick","listRefHandler","Track","trackRefHandler","ssrState","ssrInit","_i3","_Object$keys","_innerSlider","_json2mq","_defaultProps","enquire","canUseDOM","Slider","slickPrev","slickNext","slickGoTo","breakpoint","_responsiveMediaHandlers","breakpt","bQuery","settings","newProps","resp","toArray","warn","newChildren","newSlide","row","innerSliderRefHandler","getSlideClasses","slickActive","slickCenter","slickCloned","centerOffset","floor","getKey","fallbackKey","renderSlides","slides","preCloneSlides","postCloneSlides","startIndex","lazyStartIndex","endIndex","lazyEndIndex","childOnClickOptions","childStyle","getSlideStyle","slideClass","slideClasses","outline","preCloneNo","handleRef","slidesOnLeft","slidesOnRight","siblingDirection","getTotalSlides","getTrackAnimateCSS","checkSpecKeys","getSlideCount","checkNavigable","getNavigableIndexes","getSwipeDirection","getWidth","lazySlidesOnRight","lazySlidesOnLeft","getRequiredLazySlides","safePreventDefault","lowerBound","upperBound","onDemandSlides","requiredSlides","xDist","yDist","swipeAngle","atan2","round","PI","abs","canGo","newObject","listNode","trackNode","centerPaddingAdj","finalSlide","animationLeft","finalLeft","animationSlide","indexOffset","previousInt","slideOffset","previousTargetSlide","curLeft","swipeLength","sqrt","pow","verticalSwipeLength","positionOffset","swipeDirection","touchSwipeLength","onSwipe","minSwipe","activeSlide","counter","indexes","navigables","prevNavigable","swipedSlide","slickList","offsetTop","offsetLeft","currentIndex","dataset","keysArray","trackHeight","trackChildren","WebkitTransition","msTransform","marginTop","marginLeft","slidesToOffset","targetSlideIndex","trackElem","childNodes","__self","__source","jsx","jsxs","forceUpdate","escape","_status","_result","default","IsSomeRendererActing","only","createContext","_currentValue2","_threadCount","Provider","Consumer","createFactory","createRef","forwardRef","isValidElement","lazy","memo","MapShim","getIndex","class_1","__entries__","ctx","_a","isBrowser","global$1","requestAnimationFrame$1","requestAnimationFrame","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","delay","leadingCall","trailingCall","resolvePending","proxy","timeoutCallback","throttle","addObserver","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","childList","characterData","subtree","_b","getInstance","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","getBordersSize","positions","getHTMLElementContentRect","clientWidth","clientHeight","paddings","positions_1","getPaddings","horizPad","vertPad","bottom","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","rect","broadcastRect","ResizeObserverEntry","rectInit","contentRect","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","clearActive","observation","ResizeObserver","method","performance","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","port2","port1","onmessage","postMessage","sortIndex","startTime","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","objA","objB","compareContext","keysA","keysB","bHasOwnProperty","idx","valueA","valueB","requestID","animations","requestAnimFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","getTime","idgen","idprefix","sta","ds","dur","spd","duration","stopit","update","pdif","resume","frame","anim","linear","getById","easeout","backin","backout","sin","bounce","wrap","doc","Paper","_","win","toInt","math","mmax","mmin","colourRegExp","commaSpaces","hsrg","hs","pathCommand","tCommand","pathValues","ID","xlink","xmlns","hub","$","createComment","getAttributeNS","isFinite","cacher","postprocessor","newf","repush","rad","deg","tokenRegex","objNotationRegex","all","quote","quotedName","replacer","angle","tan","cos","asin","num","acos","atan","x1","y1","x2","y2","x3","y3","len2","closestPoint","distance2","dx","dy","best","bestLength","scan","scanDistance","pathNode","pathLength","getTotalLength","precision","pathSegList","numberOfItems","bestDistance","scanLength","getPointAtLength","before","after","beforeLength","afterLength","beforeDistance","afterDistance","distance","snapTo","tolerance","rem","getRGB","colour","hex","rgbtoString","toHex","red","green","blue","rgb","hsb2rgb","hsl2rgb","hsb","hsl","toFixed","getElementsByTagName","hsbtoString","hsltoString","prepareRGB","clr","packageRGB","rgb2hsl","rgb2hsb","parsePathString","pathString","pth","paramCounts","params","parseTransformString","TString","svgTransform2string","tstr","rgTransform","transform2matrix","tdata","Matrix","tlen","command","absolute","inver","invert","translate","rotate","scale","_unit2px","getSomeSVG","mgr","fill","getW","getH","nam","ownerSVGElement","add2group","snap","paper","anims","mask","frag","make","defs","dom","contentDocument","jsonFiller","getSomeDefs","pdefs","selectAll","nodelist","json","att","createDocumentFragment","full","div","fragment","toJSON","css","lastIndexOf","cssAttr","ajax","postData","req","setRequestHeader","onreadystatechange","readyState","load","responseText","getElementByPoint","canvas","elementFromPoint","opera","so","box","getBoundingClientRect","docElem","clientTop","clientLeft","pageYOffset","pageXOffset","getOffset","sr","createSVGRect","hits","getIntersectionList","plugin","elproto","unit2px","isWithoutTransform","getClientRects","removed","localMatrix","original","pathfinder","deflt","bboxwt","realPath","matrix","propString","extractTransform","doReturn","papa","getCTM","local","ms","localString","toTransformString","globalMatrix","totalMatrix","diffMatrix","total","gradientTransform","patternTransform","append","it","appendTo","prepend","first","prependTo","insertAfter","asPX","use","cloneNode","els","ids","uses","urltest","linktest","oldid","old","fs","fixids","toDefs","toPattern","patternUnits","marker","refX","refY","cx","cy","markerWidth","markerHeight","orient","eldata","chld","removeData","outerSVG","innerSVG","toDataURL","contents","unescape","matrixproto","norm","mag","aNew","bNew","multLeft","cNew","eNew","skewX","skew","skewY","determinant","scalex","shear","scaley","isSimple","isSuperSimple","noRotation","shorter","clipIt","reURLValue","fillStroke","grad","gradient","deurl","clip","gradrg","setFontSize","textExtract","chi","getFontSize","stops","seed","step","toAbsolute","txt","baseVal","rx","ry","tp","textPath","tuner","chunk","tuned","setter","internal","rgNotSpace","addClass","clazz","finalValue","classes","curClasses","removeClass","hasClass","toggleClass","operators","reUnit","reAddon","getNumber","getUnit","unit","plus","evnt","atr","aUnit","op","bplus","circle","preload","cssText","ellipse","vbx","vby","vbw","vbh","ptrn","vx","vy","vw","line","polyline","points","polygon","Gstops","GaddStop","inserted","GgetBBox","GsetStops","addStop","gradientLinear","setStops","gradientRadial","fx","fy","gradientUnits","p2s","paths","ps","sleep","r1","r2","r0","rectPath","pathClone","pathArray","getPointAtSegmentLength","p1x","p1y","c1x","c1y","c2x","c2y","p2x","p2y","bezlen","findDotsAtSegment","x4","y4","ll","t2","getTotLen","getLengthFactory","istotal","subpath","onlystart","sp","subpaths","path2curve","getSubpathsAtLength","t1","t13","t12","t3","mx","my","nx","ny","alpha","bezierBBox","curveDim","isPointInsideBBox","isBBoxIntersect","bbox1","bbox2","base3","p1","p2","p3","p4","z2","Tvalues","Cvalues","sum","ct","xbase","ybase","comb","intersect","denominator","px","py","px2","py2","interHelper","bez1","bez2","justCount","n1","n2","dots1","dots2","xy","di1","dj1","interPathHelper","path1","path2","x1m","y1m","x2m","y2m","intr","segment1","segment2","pathBBox","dim","xmin","ymin","ellipsePath","getPath","pathToAbsolute","pa0","crz","catmullRom2bezier","l2c","q2c","ax","ay","_13","_23","a2c","large_arc_flag","sweep_flag","recursive","_120","f1","rx2","ry2","f2old","x2old","y2old","s1","c2","s2","hx","hy","m1","m2","m3","m4","newres","x0","y0","b2ac","sqrtb2ac","tvalues","bounds","mt","jlen","curve","bx","by","qx","qy","attrs2","processPath","pcom","fixArc","pp","pcoms1","pcoms2","fixM","a1","a2","pfirst","seg","seg2","seglen","seg2len","crp","iLen","getSubpath","closest","inside","found","intersection","intersectionNumber","isPointInside","toRelative","lowerCase","rel","toCubic","pathi","bindings","setproto","Animation","begin","callbacker","aname","unbound","insertion","todel","arglen","exclude","getEmpty","getViewBox","getColour","path2array","isNumeric","equal","tt1","tt2","maxlength","equaliseTransform","arr1","arr2","bUnit","supportsTouch","touchMap","mousedown","mousemove","mouseup","getScroll","preventTouch","originalEvent","stopTouch","addEvent","realName","scrollY","scrollX","olde","drag","dragMove","dragi","touch","identifier","_drag","move_scope","dragUp","unmousemove","unmouseup","end_scope","start_scope","eventName","f_in","f_out","scope_in","scope_out","mouseover","mouseout","unhover","unmouseover","unmouseout","onmove","onstart","onend","origTransform","undrag","unmousedown","pproto","rgurl","filstr","filterUnits","def","shadow","grayscale","amount","sepia","saturate","hueRotate","amount2","brightness","contrast","firstLetter","getAlign","way","align","inAnim","_attrs","_callback","curStatus","fkeys","tkeys","saveColor","colors","A100","A200","A400","A700","mui","pink","purple","deeppurple","indigo","lightblue","cyan","teal","lightgreen","lime","yellow","amber","orange","deeporange","brown","grey","bluegrey","turquoise","greensea","sunflower","emerland","nephritis","carrot","pumpkin","peterriver","belizehole","alizarin","pomegranate","amethyst","wisteria","clouds","silver","wetasphalt","midnightblue","concrete","asbestos","importMUIColors","hasOwn","classNames","appendClass","parseValue","newClass","__webpack_module_cache__","cachedModule","loaded","__webpack_modules__","definition","globalThis","nmd","isAbsolute","spliceOne","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","up","part","invariant","addLeadingSlash","stripLeadingSlash","stripBasename","hasBasename","stripTrailingSlash","createPath","createLocation","currentLocation","hashIndex","searchIndex","parsePath","URIError","resolvePathname","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","notifyListeners","getConfirmation","confirm","PopStateEvent","HashChangeEvent","getHistoryState","history","createBrowserHistory","globalHistory","canUseHistory","supportsHistory","needsHashChangeListener","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_window$location","createKey","transitionManager","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","fromLocation","toLocation","toIndex","allKeys","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","listen","unlisten","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","baseTag","pushHashPath","nextPaths","MAX_SIGNED_31_BIT_INT","commonjsGlobal","React","calculateChangedBits","contextProp","getUniqueId","emitter","changedBits","createEventEmitter","nextProps","oldValue","_Provider$childContex","_React$Component2","onUpdate","_Consumer$contextType","createNamedContext","historyContext","Router","_isMounted","_pendingLocation","staticContext","computeRootMatch","isExact","cache$1","cacheCount$1","matchPath","_options","_options$exact","_options$strict","_options$sensitive","matched","cacheKey","pathCache","compilePath$1","_compilePath","Route","context$1","computedMatch","isEmptyChildren","createURL","staticHandler","methodName","noop","Switch","BrowserRouter","resolveToLocation","normalizeToLocation","forwardRefShim","LinkAnchor","forwardedRef","innerRef","navigate","_onClick","rest","ex","isModifiedEvent","Link","_ref2$component","__RouterContext","isDuplicateNavigation","forwardRefShim$1","forwardRef$1","ariaCurrent","_ref$ariaCurrent","activeClassName","_ref$activeClassName","activeStyle","classNameProp","isActiveProp","locationProp","styleProp","escapedPath","classnames","joinClassnames","freeze","raw","toPrimitive","SimpleSlider","_jsx","_jsxs","testimonialOne","testimonialTwo","testimonialThree","testimonialSix","testimonialFour","testimonialFive","Nav","toggle","setToggle","class","logo","MobileNav","checkbox","navLinks","toggleScroll","removeLockScroll","role","SelectNav","__assign","__spreadArray","pack","SuppressedError","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","KEYFRAMES","replacement","indexof","charat","strlen","sizeof","column","character","characters","siblings","lift","peek","caret","alloc","dealloc","delimit","whitespace","escaping","commenter","prefixer","combine","rule","rules","rulesets","pseudo","declarations","atrule","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","unitlessKeys","aspectRatio","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","WebkitLineClamp","REACT_APP_SC_ATTR","SC_ATTR","SC_DISABLE_SPEEDY","REACT_APP_SC_DISABLE_SPEEDY","theme","groupSizes","Uint32Array","indexOfGroup","insertRules","insertRule","clearGroup","deleteRule","getGroup","getRule","registerName","__webpack_nonce__","sheet","styleSheets","ownerNode","cssRules","isServer","useCSSOMInjection","gs","server","registerId","rehydrate","reconstructWithOptions","allocateGSInstance","hasNameForId","clearNames","clearRules","clearTag","replaceAll","plugins","startsWith","endsWith","namespace","shouldForwardProp","styleSheet","stylis","Ge","stylisPlugins","disableCSSOMInjection","enableVendorPrefixes","getName","isCss","styledComponentId","staticRulesId","isStatic","componentId","baseHash","baseStyle","generateAndInjectStyles","et","rt","parentComponentId","componentStyle","foldedComponentIds","as","forwardedAs","_foldedDefaultProps","at","lt","ut","withConfig","pt","dt","createStyles","removeStyles","renderStyles","_emitSheetCSS","getStyleTags","sealed","getStyleElement","nonce","seal","collectStyles","interleaveWithNodeStream","HeroSection","styled","section","_templateObject","_taggedTemplateLiteral","VideoBackground","_templateObject2","HeroContent","_templateObject3","VideoBackgroundComponent","playsInline","Wave","waveSvg","WaveTwo","Home","videoClicked","upcomingPoster","upcomingPosterSub","aboutImage","title","frameborder","allow","allowfullscreen","youtubeVideo","facebook","youtube","notes","footerLogo","Footer","_inheritsLoose","_excluded$2","_excluded2","_excluded3","_excluded4","camelCase$1","CLOUDINARY_REACT_PROPS","VIDEO_MIME_TYPES","flv","mov","mpg","avi","wmv","ogv","AUDIO_MIME_TYPES","m4a","wav","m3u","mp3","aif","aifc","aiff","CLOUDINARY_PROPS","Transformation$1","accumulator","cloudinaryPropName","getConfiguredCloudinary","extendedProps","ops","_extends2","getImageTag","tagType","makeElementResponsive","snakeCaseOptions","cld","extractCloudinaryProps","cloudinaryProps","nonCloudinaryProps","cloudinaryReactProps","isCloudinaryComponent","normalizeOptions","getChildTransformations","childOptions","getTransformation","ownTransformation","childrenOptions","advancedTransformations","CloudinaryContextType","CloudinaryComponent","_PureComponent","getContext","isInView","getExtendedProps","attachRef","typesFrom","CloudinaryContext","_CloudinaryComponent","_extractCloudinaryPro","includeOwnBody","_excluded$1","RESPONSIVE_OVERRIDE_WARNING","Image","_this$getExtendedProp","shouldLazyLoad","getAttributes","additionalOptions","getPlaceholderType","removePlaceholderListener","placeholderElement","listenerRemovers","removeImgListener","handleImageLoaded","onLoad","isLoaded","renderPlaceholder","placeholderAttributes","renderImage","find","getChildPlaceholder","_proto","exposesProps","Video","mimeSubTypes","getMergedProps","generateVideoUrl","childTransformations","sourceTransformations","urlOptions","generateUsingSourceTypes","toSourceTag","buildMimeType","generateUsingSources","_ref$transformations","getVideoTagProps","_this$getMergedProps","_this$getMergedProps$","tagAttributes","sourceElements","reloadVideo","_this$getVideoTagProp","Audio","_Video","Placeholder","EventSlider","cloudName","youtubeImage","Contact","headerLeft","headerRight","joinImage","underTitle","bookImage","questionImage","About","aboutPicture","Director","directorPicture","Accompanist","accompanistPicture","History","historyPicture","ReactDOM","App"],"sourceRoot":""}