diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..b4f15ec --- /dev/null +++ b/.eslintignore @@ -0,0 +1,9 @@ +node_modules + public + .eslintrc.js + storybook-static + build + dist + webpack/*.js + package*.json + *.d.ts \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..2ee9be9 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,36 @@ +module.exports = { + parser: '@typescript-eslint/parser', + parserOptions: { + ecmaVersion: 2020, + sourceType: 'module', + warnOnUnsupportedTypeScriptVersion: false, + }, + settings: { + react: { + version: 'detect', + }, + }, + extends: [ + 'plugin:@typescript-eslint/recommended', + 'plugin:prettier/recommended', + 'prettier', + 'plugin:react/recommended', + 'plugin:react-hooks/recommended', + 'plugin:import/errors', + 'plugin:import/warnings', + 'plugin:import/typescript', + 'plugin:jsx-a11y/recommended', + 'plugin:eslint-comments/recommended', + ], + rules: { + quotes: [2, 'single', { avoidEscape: true }], + 'prettier/prettier': ['error', { endOfLine: 'auto' }], + 'no-unused-vars': 'off', + '@typescript-eslint/no-unused-vars': ['error'], + '@typescript-eslint/no-var-requires': 'off', + 'react/prop-types': 'off', + 'react/jsx-uses-react': 'off', + 'react/react-in-jsx-scope': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + }, +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fbd5910 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +node_modules +dist +build +.env \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 0000000..f8d2c04 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +npx lint-staged #здесь может быть любая команда, которую нужно выполнить перед коммитом \ No newline at end of file diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..a50d5cd --- /dev/null +++ b/.prettierignore @@ -0,0 +1,3 @@ +build + dist + storybook-static \ No newline at end of file diff --git a/.prettierrc.js b/.prettierrc.js new file mode 100644 index 0000000..c9fc54d --- /dev/null +++ b/.prettierrc.js @@ -0,0 +1,10 @@ +module.exports = { + semi: false, + trailingComma: 'es5', + singleQuote: true, + jsxSingleQuote: true, + printWidth: 80, + useTabs: true, + tabWidth: 2, + endOfLine: 'lf', +} diff --git a/.stylelintignore b/.stylelintignore new file mode 100644 index 0000000..ba2c2d0 --- /dev/null +++ b/.stylelintignore @@ -0,0 +1,5 @@ + **/normalize.css + **/normalize.min.css + **/fonts/ + **/images/ + **/img/ \ No newline at end of file diff --git a/.stylelintrc.json b/.stylelintrc.json new file mode 100644 index 0000000..ac41f40 --- /dev/null +++ b/.stylelintrc.json @@ -0,0 +1,327 @@ +{ + "extends": ["stylelint-config-standard"], + "plugins": ["stylelint-order"], + "rules": { + "color-no-invalid-hex": true, + "font-family-no-duplicate-names": true, + "function-calc-no-unspaced-operator": true, + "function-linear-gradient-no-nonstandard-direction": true, + "string-no-newline": true, + "unit-no-unknown": true, + "property-no-unknown": [ + true, + { + "ignoreProperties": ["print-color-adjust"] + } + ], + "declaration-block-no-shorthand-property-overrides": true, + "block-no-empty": true, + "selector-pseudo-class-no-unknown": true, + "selector-pseudo-element-no-unknown": true, + "selector-type-no-unknown": true, + "media-feature-name-no-unknown": true, + "at-rule-no-unknown": true, + "comment-no-empty": true, + "no-empty-source": true, + "no-invalid-double-slash-comments": true, + "no-unknown-animations": true, + "function-url-no-scheme-relative": true, + "number-max-precision": 2, + "declaration-block-single-line-max-declarations": 1, + "comment-word-disallowed-list": ["todo"], + "color-hex-length": "long", + "font-family-name-quotes": "always-unless-keyword", + "function-name-case": "lower", + "function-url-quotes": "always", + "length-zero-no-unit": true, + "value-keyword-case": [ + "lower", + { + "ignoreKeywords": ["A4"] + } + ], + "declaration-empty-line-before": "never", + "declaration-property-unit-allowed-list": { + "line-height": [] + }, + "selector-class-pattern": "^[a-z][a-zA-Z0-9]*(-[a-zA-Z0-9]+)*(__[a-z0-9]+(-[a-z0-9]+)*)?(_[a-z0-9]+(-[a-z0-9]+)*)?(_[a-z0-9]+(-[a-z0-9]+)*)?$", + "selector-attribute-quotes": "always", + "selector-pseudo-element-colon-notation": "double", + "selector-type-case": "lower", + "rule-empty-line-before": [ + "always-multi-line", + { + "except": ["first-nested"] + } + ], + "at-rule-empty-line-before": [ + "always", + { + "except": ["blockless-after-blockless", "first-nested"] + } + ], + "comment-empty-line-before": [ + "always", + { + "except": ["first-nested"] + } + ], + "comment-whitespace-inside": "always", + "order/order": ["custom-properties", "declarations"], + "order/properties-order": [ + "all", + "position", + "top", + "right", + "bottom", + "left", + "inset", + "inset-block-start", + "inset-block-end", + "inset-inline-start", + "inset-inline-end", + "z-index", + "display", + "grid-template", + "grid-template-rows", + "grid-template-columns", + "grid-template-areas", + "grid-auto-rows", + "grid-auto-columns", + "grid-auto-flow", + "grid-area", + "grid-row", + "grid-column", + "grid-row-start", + "grid-row-end", + "grid-column-start", + "grid-column-end", + "flex", + "flex-grow", + "flex-shrink", + "flex-basis", + "flex-flow", + "flex-direction", + "flex-wrap", + "order", + "justify-content", + "justify-items", + "justify-self", + "align-content", + "align-items", + "align-self", + "grid-gap", + "gap", + "grid-row-gap", + "row-gap", + "grid-column-gap", + "column-gap", + "float", + "clear", + "box-sizing", + "writing-mode", + "width", + "min-width", + "max-width", + "height", + "min-height", + "max-height", + "inline-size", + "min-inline-size", + "max-inline-size", + "block-size", + "min-block-size", + "max-block-size", + "margin", + "margin-top", + "margin-right", + "margin-bottom", + "margin-left", + "margin-block-start", + "margin-block-end", + "margin-inline-start", + "margin-inline-end", + "padding", + "padding-top", + "padding-right", + "padding-bottom", + "padding-left", + "padding-block-start", + "padding-block-end", + "padding-inline-start", + "padding-inline-end", + "overflow", + "overflow-x", + "overflow-y", + "color", + "font", + "font-weight", + "font-size", + "font-family", + "font-style", + "font-display", + "font-variant", + "font-size-adjust", + "font-stretch", + "font-effect", + "font-emphasize", + "font-emphasize-position", + "font-emphasize-style", + "font-smooth", + "line-height", + "direction", + "letter-spacing", + "white-space", + "text-align", + "text-align-last", + "text-transform", + "text-decoration", + "text-emphasis", + "text-emphasis-color", + "text-emphasis-style", + "text-emphasis-position", + "text-indent", + "text-justify", + "text-outline", + "text-wrap", + "text-overflow", + "text-overflow-ellipsis", + "text-overflow-mode", + "text-orientation", + "text-shadow", + "vertical-align", + "word-wrap", + "word-break", + "word-spacing", + "overflow-wrap", + "tab-size", + "hyphens", + "unicode-bidi", + "columns", + "column-count", + "column-fill", + "column-gap", + "column-rule", + "column-rule-color", + "column-rule-style", + "column-rule-width", + "column-span", + "column-width", + "page-break-after", + "page-break-before", + "page-break-inside", + "src", + "list-style", + "list-style-position", + "list-style-type", + "list-style-image", + "table-layout", + "empty-cells", + "caption-side", + "background", + "background-color", + "background-image", + "background-repeat", + "background-position", + "background-position-x", + "background-position-y", + "background-size", + "background-clip", + "background-origin", + "background-attachment", + "background-blend-mode", + "box-decoration-break", + "border", + "border-width", + "border-style", + "border-color", + "border-top", + "border-block-start", + "border-top-width", + "border-top-style", + "border-top-color", + "border-right", + "border-inline-end", + "border-right-width", + "border-right-style", + "border-right-color", + "border-bottom", + "border-block-end", + "border-bottom-width", + "border-bottom-style", + "border-bottom-color", + "border-left", + "border-inline-start", + "border-left-width", + "border-left-style", + "border-left-color", + "border-radius", + "border-top-left-radius", + "border-top-right-radius", + "border-bottom-right-radius", + "border-bottom-left-radius", + "border-image", + "border-image-source", + "border-image-slice", + "border-image-width", + "border-image-outset", + "border-image-repeat", + "border-collapse", + "border-spacing", + "outline", + "outline-width", + "outline-style", + "outline-color", + "outline-offset", + "box-shadow", + "visibility", + "cursor", + "mix-blend-mode", + "backdrop-filter", + "will-change", + "transform", + "transform-origin", + "transform-style", + "backface-visibility", + "opacity", + "filter", + "perspective", + "perspective-origin", + "transition", + "transition-delay", + "transition-timing-function", + "transition-duration", + "transition-property", + "animation", + "animation-name", + "animation-duration", + "animation-play-state", + "animation-timing-function", + "animation-delay", + "animation-iteration-count", + "animation-direction", + "animation-fill-mode", + "appearance", + "clip", + "clip-path", + "counter-reset", + "counter-increment", + "resize", + "user-select", + "nav-index", + "nav-up", + "nav-right", + "nav-down", + "nav-left", + "pointer-events", + "quotes", + "touch-action", + "zoom", + "fill", + "fill-rule", + "clip-rule", + "stroke", + "stroke-width" + ] + } +} diff --git a/components/app/app.d.ts b/components/app/app.d.ts new file mode 100644 index 0000000..b2af4a3 --- /dev/null +++ b/components/app/app.d.ts @@ -0,0 +1,2 @@ +export default function App(): import("react/jsx-runtime").JSX.Element; +//# sourceMappingURL=app.d.ts.map \ No newline at end of file diff --git a/components/app/app.d.ts.map b/components/app/app.d.ts.map new file mode 100644 index 0000000..58ea87f --- /dev/null +++ b/components/app/app.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/components/app/app.tsx"],"names":[],"mappings":"AAQA,MAAM,CAAC,OAAO,UAAU,GAAG,4CAoC1B"} \ No newline at end of file diff --git a/components/footer/footer.d.ts b/components/footer/footer.d.ts new file mode 100644 index 0000000..13443bf --- /dev/null +++ b/components/footer/footer.d.ts @@ -0,0 +1,2 @@ +export default function Footer(): import("react/jsx-runtime").JSX.Element; +//# sourceMappingURL=footer.d.ts.map \ No newline at end of file diff --git a/components/footer/footer.d.ts.map b/components/footer/footer.d.ts.map new file mode 100644 index 0000000..636a6af --- /dev/null +++ b/components/footer/footer.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"footer.d.ts","sourceRoot":"","sources":["../../../src/components/footer/footer.tsx"],"names":[],"mappings":"AAOA,MAAM,CAAC,OAAO,UAAU,MAAM,4CAyC7B"} \ No newline at end of file diff --git a/components/header/header.d.ts b/components/header/header.d.ts new file mode 100644 index 0000000..707daa4 --- /dev/null +++ b/components/header/header.d.ts @@ -0,0 +1,2 @@ +export default function Header(): import("react/jsx-runtime").JSX.Element; +//# sourceMappingURL=header.d.ts.map \ No newline at end of file diff --git a/components/header/header.d.ts.map b/components/header/header.d.ts.map new file mode 100644 index 0000000..ccd3b3d --- /dev/null +++ b/components/header/header.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../src/components/header/header.tsx"],"names":[],"mappings":"AAKA,MAAM,CAAC,OAAO,UAAU,MAAM,4CA8C7B"} \ No newline at end of file diff --git a/custom.d.d.ts b/custom.d.d.ts new file mode 100644 index 0000000..b68aa33 --- /dev/null +++ b/custom.d.d.ts @@ -0,0 +1,31 @@ +declare module '*.module.css' { + const classes: Record; + export default classes; +} +declare module '*.module.scss' { + const classes: Record; + export default classes; +} +declare module '*.module.sass' { + const classes: Record; + export default classes; +} +declare module '*.svg' { + import * as React from 'react'; + export const ReactComponent: React.FunctionComponent>; + const src: string; + export default src; +} +declare module '*.png' { + const content: unknown; + export default content; +} +declare module '*.jpg' { + const content: unknown; + export default content; +} +declare module '*.json' { + const content: unknown; + export default content; +} +//# sourceMappingURL=custom.d.d.ts.map \ No newline at end of file diff --git a/custom.d.d.ts.map b/custom.d.d.ts.map new file mode 100644 index 0000000..178d9a9 --- /dev/null +++ b/custom.d.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"custom.d.d.ts","sourceRoot":"","sources":["../src/custom.d.tsx"],"names":[],"mappings":"AAAA,OAAO,QAAQ,cAAc,CAAC;IAC7B,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAErC,eAAe,OAAO,CAAA;CACtB;AAED,OAAO,QAAQ,eAAe,CAAC;IAC9B,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAErC,eAAe,OAAO,CAAA;CACtB;AAED,OAAO,QAAQ,eAAe,CAAC;IAC9B,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAErC,eAAe,OAAO,CAAA;CACtB;AAED,OAAO,QAAQ,OAAO,CAAC;IACtB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;IAE9B,MAAM,CAAC,MAAM,cAAc,EAAE,KAAK,CAAC,iBAAiB,CACnD,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAC7B,CAAA;IACD,MAAM,GAAG,EAAE,MAAM,CAAA;IAEjB,eAAe,GAAG,CAAA;CAClB;AAED,OAAO,QAAQ,OAAO,CAAC;IACtB,MAAM,OAAO,EAAE,OAAO,CAAA;IAEtB,eAAe,OAAO,CAAA;CACtB;AAED,OAAO,QAAQ,OAAO,CAAC;IACtB,MAAM,OAAO,EAAE,OAAO,CAAA;IAEtB,eAAe,OAAO,CAAA;CACtB;AAED,OAAO,QAAQ,QAAQ,CAAC;IACvB,MAAM,OAAO,EAAE,OAAO,CAAA;IAEtB,eAAe,OAAO,CAAA;CACtB"} \ No newline at end of file diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 0000000..a6748f9 --- /dev/null +++ b/index.d.ts @@ -0,0 +1,4 @@ +import './assets/styles/reset.scss'; +import './assets/styles/globals.scss'; +import './assets/styles/index.scss'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/index.d.ts.map b/index.d.ts.map new file mode 100644 index 0000000..59b20b2 --- /dev/null +++ b/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,CAAA;AACnC,OAAO,8BAA8B,CAAA;AACrC,OAAO,4BAA4B,CAAA"} \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..770933c --- /dev/null +++ b/index.html @@ -0,0 +1,14 @@ + + + + + + + + Document + + + +
+ + diff --git a/pages/main-page/main-page.d.ts b/pages/main-page/main-page.d.ts new file mode 100644 index 0000000..1195534 --- /dev/null +++ b/pages/main-page/main-page.d.ts @@ -0,0 +1,2 @@ +export default function MainPage(): import("react/jsx-runtime").JSX.Element; +//# sourceMappingURL=main-page.d.ts.map \ No newline at end of file diff --git a/pages/main-page/main-page.d.ts.map b/pages/main-page/main-page.d.ts.map new file mode 100644 index 0000000..41c4ab8 --- /dev/null +++ b/pages/main-page/main-page.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"main-page.d.ts","sourceRoot":"","sources":["../../../src/pages/main-page/main-page.tsx"],"names":[],"mappings":"AAQA,MAAM,CAAC,OAAO,UAAU,QAAQ,4CAoC/B"} \ No newline at end of file diff --git a/pages/page-2/second-page.d.ts b/pages/page-2/second-page.d.ts new file mode 100644 index 0000000..55dee5a --- /dev/null +++ b/pages/page-2/second-page.d.ts @@ -0,0 +1,2 @@ +export default function SecondPage(): import("react/jsx-runtime").JSX.Element; +//# sourceMappingURL=second-page.d.ts.map \ No newline at end of file diff --git a/pages/page-2/second-page.d.ts.map b/pages/page-2/second-page.d.ts.map new file mode 100644 index 0000000..42a19eb --- /dev/null +++ b/pages/page-2/second-page.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"second-page.d.ts","sourceRoot":"","sources":["../../../src/pages/page-2/second-page.tsx"],"names":[],"mappings":"AAYA,MAAM,CAAC,OAAO,UAAU,UAAU,4CA8EjC"} \ No newline at end of file diff --git a/services/slices/counter-slice.d.ts b/services/slices/counter-slice.d.ts new file mode 100644 index 0000000..5a57134 --- /dev/null +++ b/services/slices/counter-slice.d.ts @@ -0,0 +1,102 @@ +import { PayloadAction } from '@reduxjs/toolkit'; +import { ICounter, ICounters } from '../../utils/interfaces/counter-interface'; +export declare const fetсhGetCounters: import("@reduxjs/toolkit").AsyncThunk; + extra?: unknown; + rejectValue?: unknown; + serializedErrorType?: unknown; + pendingMeta?: unknown; + fulfilledMeta?: unknown; + rejectedMeta?: unknown; +}>; +export declare const fetсhGetCounter: import("@reduxjs/toolkit").AsyncThunk; + extra?: unknown; + rejectValue?: unknown; + serializedErrorType?: unknown; + pendingMeta?: unknown; + fulfilledMeta?: unknown; + rejectedMeta?: unknown; +}>; +export declare const fetсhSetCount: import("@reduxjs/toolkit").AsyncThunk; + extra?: unknown; + rejectValue?: unknown; + serializedErrorType?: unknown; + pendingMeta?: unknown; + fulfilledMeta?: unknown; + rejectedMeta?: unknown; +}>; +export declare const fetсhAddNewCounter: import("@reduxjs/toolkit").AsyncThunk; + extra?: unknown; + rejectValue?: unknown; + serializedErrorType?: unknown; + pendingMeta?: unknown; + fulfilledMeta?: unknown; + rejectedMeta?: unknown; +}>; +export declare const fetсhDeleteCounter: import("@reduxjs/toolkit").AsyncThunk; + extra?: unknown; + rejectValue?: unknown; + serializedErrorType?: unknown; + pendingMeta?: unknown; + fulfilledMeta?: unknown; + rejectedMeta?: unknown; +}>; +export declare const counterSlice: import("@reduxjs/toolkit").Slice) => void; + decrementCountAction: (state: import("immer").WritableDraft) => void; + setCountAction: (state: import("immer").WritableDraft, action: PayloadAction) => void; +}, "counters", "counters", { + allApiCountersSelector: (state: ICounters) => ICounter[]; + apiCounterSelector: (state: ICounters) => ICounter | null; + localCounterSelector: (state: ICounters) => number; + isLoadingSelector: (state: ICounters) => boolean; + isChangedSelector: (state: ICounters) => boolean; + errorSelector: (state: ICounters) => string | undefined; +}>; +export declare const counterActions: import("@reduxjs/toolkit").CaseReducerActions<{ + incrementCountAction: (state: import("immer").WritableDraft) => void; + decrementCountAction: (state: import("immer").WritableDraft) => void; + setCountAction: (state: import("immer").WritableDraft, action: PayloadAction) => void; +}, "counters">; +export declare const counterSelectors: { + allApiCountersSelector: import("reselect").Selector<{ + counters: ICounters; + }, ICounter[], []> & { + unwrapped: (state: ICounters) => ICounter[]; + }; + apiCounterSelector: import("reselect").Selector<{ + counters: ICounters; + }, ICounter | null, []> & { + unwrapped: (state: ICounters) => ICounter | null; + }; + localCounterSelector: import("reselect").Selector<{ + counters: ICounters; + }, number, []> & { + unwrapped: (state: ICounters) => number; + }; + isLoadingSelector: import("reselect").Selector<{ + counters: ICounters; + }, boolean, []> & { + unwrapped: (state: ICounters) => boolean; + }; + isChangedSelector: import("reselect").Selector<{ + counters: ICounters; + }, boolean, []> & { + unwrapped: (state: ICounters) => boolean; + }; + errorSelector: import("reselect").Selector<{ + counters: ICounters; + }, string | undefined, []> & { + unwrapped: (state: ICounters) => string | undefined; + }; +}; +//# sourceMappingURL=counter-slice.d.ts.map \ No newline at end of file diff --git a/services/slices/counter-slice.d.ts.map b/services/slices/counter-slice.d.ts.map new file mode 100644 index 0000000..7b53cb8 --- /dev/null +++ b/services/slices/counter-slice.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"counter-slice.d.ts","sourceRoot":"","sources":["../../../src/services/slices/counter-slice.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiC,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAE/E,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAA;AAO9E,eAAO,MAAM,gBAAgB;;;;;;;;;EAO5B,CAAA;AAGD,eAAO,MAAM,eAAe;;;;;;;;;EAS3B,CAAA;AAGD,eAAO,MAAM,aAAa;;;;;;;;;EAgBzB,CAAA;AAGD,eAAO,MAAM,kBAAkB;;;;;;;;;EAgB9B,CAAA;AAGD,eAAO,MAAM,kBAAkB;;;;;;;;;EAe9B,CAAA;AAeD,eAAO,MAAM,YAAY;;;8EAcS,aAAa,CAAC,MAAM,CAAC;;;;;;;;EA0ErD,CAAA;AAEF,eAAO,MAAM,cAAc;;;8EA5EO,aAAa,CAAC,MAAM,CAAC;cA4EL,CAAA;AAClD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAyB,CAAA"} \ No newline at end of file diff --git a/services/store.d.ts b/services/store.d.ts new file mode 100644 index 0000000..7514c3b --- /dev/null +++ b/services/store.d.ts @@ -0,0 +1,13 @@ +import type { TypedUseSelectorHook } from 'react-redux'; +export declare const store: import("@reduxjs/toolkit").EnhancedStore<{ + counters: import("../utils/interfaces/counter-interface").ICounters; +}, import("redux").UnknownAction, import("@reduxjs/toolkit").Tuple<[import("redux").StoreEnhancer<{ + dispatch: import("redux-thunk").ThunkDispatch<{ + counters: import("../utils/interfaces/counter-interface").ICounters; + }, undefined, import("redux").UnknownAction>; +}>, import("redux").StoreEnhancer]>>; +export type RootState = ReturnType; +export type AppDispatch = typeof store.dispatch; +export declare const useAppDispatch: () => AppDispatch; +export declare const useAppSelector: TypedUseSelectorHook; +//# sourceMappingURL=store.d.ts.map \ No newline at end of file diff --git a/services/store.d.ts.map b/services/store.d.ts.map new file mode 100644 index 0000000..65198ae --- /dev/null +++ b/services/store.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/services/store.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAyCvD,eAAO,MAAM,KAAK;;;;;;oCAIhB,CAAA;AAQF,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAA;AACzD,MAAM,MAAM,WAAW,GAAG,OAAO,KAAK,CAAC,QAAQ,CAAA;AAE/C,eAAO,MAAM,cAAc,EAAE,MAAM,WAA0B,CAAA;AAC7D,eAAO,MAAM,cAAc,EAAE,oBAAoB,CAAC,SAAS,CAAgB,CAAA"} \ No newline at end of file diff --git a/static/favicons/favicon.svg b/static/favicons/favicon.svg new file mode 100644 index 0000000..844d61f --- /dev/null +++ b/static/favicons/favicon.svg @@ -0,0 +1,15 @@ + \ No newline at end of file diff --git a/static/scripts/main.2bfcc9578d2ec31a0534.js b/static/scripts/main.2bfcc9578d2ec31a0534.js new file mode 100644 index 0000000..b9a2213 --- /dev/null +++ b/static/scripts/main.2bfcc9578d2ec31a0534.js @@ -0,0 +1,741 @@ +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +/******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ "./src/assets/images/logo.svg": +/*!************************************!*\ + !*** ./src/assets/images/logo.svg ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ReactComponent: () => (/* binding */ SvgLogo),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\nvar _path;\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); }\n\nvar SvgLogo = function SvgLogo(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 256 228\"\n }, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n fill: \"#00D8FF\",\n d: \"M210.483 73.824a172 172 0 0 0-8.24-2.597c.465-1.9.893-3.777 1.273-5.621 6.238-30.281 2.16-54.676-11.769-62.708-13.355-7.7-35.196.329-57.254 19.526a171 171 0 0 0-6.375 5.848 156 156 0 0 0-4.241-3.917C100.759 3.829 77.587-4.822 63.673 3.233 50.33 10.957 46.379 33.89 51.995 62.588a171 171 0 0 0 1.892 8.48c-3.28.932-6.445 1.924-9.474 2.98C17.309 83.498 0 98.307 0 113.668c0 15.865 18.582 31.778 46.812 41.427a146 146 0 0 0 6.921 2.165 168 168 0 0 0-2.01 9.138c-5.354 28.2-1.173 50.591 12.134 58.266 13.744 7.926 36.812-.22 59.273-19.855a146 146 0 0 0 5.342-4.923 168 168 0 0 0 6.92 6.314c21.758 18.722 43.246 26.282 56.54 18.586 13.731-7.949 18.194-32.003 12.4-61.268a145 145 0 0 0-1.535-6.842c1.62-.48 3.21-.974 4.76-1.488 29.348-9.723 48.443-25.443 48.443-41.52 0-15.417-17.868-30.326-45.517-39.844m-6.365 70.984q-2.102.694-4.3 1.345c-3.24-10.257-7.612-21.163-12.963-32.432 5.106-11 9.31-21.767 12.459-31.957 2.619.758 5.16 1.557 7.61 2.4 23.69 8.156 38.14 20.213 38.14 29.504 0 9.896-15.606 22.743-40.946 31.14m-10.514 20.834c2.562 12.94 2.927 24.64 1.23 33.787-1.524 8.219-4.59 13.698-8.382 15.893-8.067 4.67-25.32-1.4-43.927-17.412a157 157 0 0 1-6.437-5.87c7.214-7.889 14.423-17.06 21.459-27.246 12.376-1.098 24.068-2.894 34.671-5.345a134 134 0 0 1 1.386 6.193M87.276 214.515c-7.882 2.783-14.16 2.863-17.955.675-8.075-4.657-11.432-22.636-6.853-46.752a157 157 0 0 1 1.869-8.499c10.486 2.32 22.093 3.988 34.498 4.994 7.084 9.967 14.501 19.128 21.976 27.15a135 135 0 0 1-4.877 4.492c-9.933 8.682-19.886 14.842-28.658 17.94M50.35 144.747c-12.483-4.267-22.792-9.812-29.858-15.863-6.35-5.437-9.555-10.836-9.555-15.216 0-9.322 13.897-21.212 37.076-29.293 2.813-.98 5.757-1.905 8.812-2.773 3.204 10.42 7.406 21.315 12.477 32.332-5.137 11.18-9.399 22.249-12.634 32.792a135 135 0 0 1-6.318-1.979m12.378-84.26c-4.811-24.587-1.616-43.134 6.425-47.789 8.564-4.958 27.502 2.111 47.463 19.835a144 144 0 0 1 3.841 3.545c-7.438 7.987-14.787 17.08-21.808 26.988-12.04 1.116-23.565 2.908-34.161 5.309a160 160 0 0 1-1.76-7.887Zm110.427 27.268a348 348 0 0 0-7.785-12.803c8.168 1.033 15.994 2.404 23.343 4.08-2.206 7.072-4.956 14.465-8.193 22.045a381 381 0 0 0-7.365-13.322m-45.032-43.861c5.044 5.465 10.096 11.566 15.065 18.186a322 322 0 0 0-30.257-.006c4.974-6.559 10.069-12.652 15.192-18.18M82.802 87.83a323 323 0 0 0-7.227 13.238c-3.184-7.553-5.909-14.98-8.134-22.152 7.304-1.634 15.093-2.97 23.209-3.984a322 322 0 0 0-7.848 12.897Zm8.081 65.352c-8.385-.936-16.291-2.203-23.593-3.793 2.26-7.3 5.045-14.885 8.298-22.6a321 321 0 0 0 7.257 13.246c2.594 4.48 5.28 8.868 8.038 13.147m37.542 31.03c-5.184-5.592-10.354-11.779-15.403-18.433 4.902.192 9.899.29 14.978.29 5.218 0 10.376-.117 15.453-.343-4.985 6.774-10.018 12.97-15.028 18.486m52.198-57.817c3.422 7.8 6.306 15.345 8.596 22.52-7.422 1.694-15.436 3.058-23.88 4.071a382 382 0 0 0 7.859-13.026 347 347 0 0 0 7.425-13.565m-16.898 8.101a359 359 0 0 1-12.281 19.815 329 329 0 0 1-23.444.823c-7.967 0-15.716-.248-23.178-.732a310 310 0 0 1-12.513-19.846h.001a307 307 0 0 1-10.923-20.627 310 310 0 0 1 10.89-20.637l-.001.001a307 307 0 0 1 12.413-19.761c7.613-.576 15.42-.876 23.31-.876H128c7.926 0 15.743.303 23.354.883a329 329 0 0 1 12.335 19.695 359 359 0 0 1 11.036 20.54 330 330 0 0 1-11 20.722m22.56-122.124c8.572 4.944 11.906 24.881 6.52 51.026q-.518 2.504-1.15 5.09c-10.622-2.452-22.155-4.275-34.23-5.408-7.034-10.017-14.323-19.124-21.64-27.008a161 161 0 0 1 5.888-5.4c18.9-16.447 36.564-22.941 44.612-18.3M128 90.808c12.625 0 22.86 10.235 22.86 22.86s-10.235 22.86-22.86 22.86-22.86-10.235-22.86-22.86 10.235-22.86 22.86-22.86\"\n })));\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (\"data:image/svg+xml;base64,PHN2Zw0KICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogIHhtbG5zWGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiDQogIGFyaWEtaGlkZGVuPSJ0cnVlIg0KICByb2xlPSJpbWciDQogIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiDQogIHZpZXdCb3g9IjAgMCAyNTYgMjI4Ig0KPg0KICA8cGF0aA0KICAgIGZpbGw9IiMwMEQ4RkYiDQogICAgZD0iTTIxMC40ODMgNzMuODI0YTE3MS40OSAxNzEuNDkgMCAwIDAtOC4yNC0yLjU5N2MuNDY1LTEuOS44OTMtMy43NzcgMS4yNzMtNS42MjFjNi4yMzgtMzAuMjgxIDIuMTYtNTQuNjc2LTExLjc2OS02Mi43MDhjLTEzLjM1NS03LjctMzUuMTk2LjMyOS01Ny4yNTQgMTkuNTI2YTE3MS4yMyAxNzEuMjMgMCAwIDAtNi4zNzUgNS44NDhhMTU1Ljg2NiAxNTUuODY2IDAgMCAwLTQuMjQxLTMuOTE3QzEwMC43NTkgMy44MjkgNzcuNTg3LTQuODIyIDYzLjY3MyAzLjIzM0M1MC4zMyAxMC45NTcgNDYuMzc5IDMzLjg5IDUxLjk5NSA2Mi41ODhhMTcwLjk3NCAxNzAuOTc0IDAgMCAwIDEuODkyIDguNDhjLTMuMjguOTMyLTYuNDQ1IDEuOTI0LTkuNDc0IDIuOThDMTcuMzA5IDgzLjQ5OCAwIDk4LjMwNyAwIDExMy42NjhjMCAxNS44NjUgMTguNTgyIDMxLjc3OCA0Ni44MTIgNDEuNDI3YTE0NS41MiAxNDUuNTIgMCAwIDAgNi45MjEgMi4xNjVhMTY3LjQ2NyAxNjcuNDY3IDAgMCAwLTIuMDEgOS4xMzhjLTUuMzU0IDI4LjItMS4xNzMgNTAuNTkxIDEyLjEzNCA1OC4yNjZjMTMuNzQ0IDcuOTI2IDM2LjgxMi0uMjIgNTkuMjczLTE5Ljg1NWExNDUuNTY3IDE0NS41NjcgMCAwIDAgNS4zNDItNC45MjNhMTY4LjA2NCAxNjguMDY0IDAgMCAwIDYuOTIgNi4zMTRjMjEuNzU4IDE4LjcyMiA0My4yNDYgMjYuMjgyIDU2LjU0IDE4LjU4NmMxMy43MzEtNy45NDkgMTguMTk0LTMyLjAwMyAxMi40LTYxLjI2OGExNDUuMDE2IDE0NS4wMTYgMCAwIDAtMS41MzUtNi44NDJjMS42Mi0uNDggMy4yMS0uOTc0IDQuNzYtMS40ODhjMjkuMzQ4LTkuNzIzIDQ4LjQ0My0yNS40NDMgNDguNDQzLTQxLjUyYzAtMTUuNDE3LTE3Ljg2OC0zMC4zMjYtNDUuNTE3LTM5Ljg0NFptLTYuMzY1IDcwLjk4NGMtMS40LjQ2My0yLjgzNi45MS00LjMgMS4zNDVjLTMuMjQtMTAuMjU3LTcuNjEyLTIxLjE2My0xMi45NjMtMzIuNDMyYzUuMTA2LTExIDkuMzEtMjEuNzY3IDEyLjQ1OS0zMS45NTdjMi42MTkuNzU4IDUuMTYgMS41NTcgNy42MSAyLjRjMjMuNjkgOC4xNTYgMzguMTQgMjAuMjEzIDM4LjE0IDI5LjUwNGMwIDkuODk2LTE1LjYwNiAyMi43NDMtNDAuOTQ2IDMxLjE0Wm0tMTAuNTE0IDIwLjgzNGMyLjU2MiAxMi45NCAyLjkyNyAyNC42NCAxLjIzIDMzLjc4N2MtMS41MjQgOC4yMTktNC41OSAxMy42OTgtOC4zODIgMTUuODkzYy04LjA2NyA0LjY3LTI1LjMyLTEuNC00My45MjctMTcuNDEyYTE1Ni43MjYgMTU2LjcyNiAwIDAgMS02LjQzNy01Ljg3YzcuMjE0LTcuODg5IDE0LjQyMy0xNy4wNiAyMS40NTktMjcuMjQ2YzEyLjM3Ni0xLjA5OCAyNC4wNjgtMi44OTQgMzQuNjcxLTUuMzQ1YTEzNC4xNyAxMzQuMTcgMCAwIDEgMS4zODYgNi4xOTNaTTg3LjI3NiAyMTQuNTE1Yy03Ljg4MiAyLjc4My0xNC4xNiAyLjg2My0xNy45NTUuNjc1Yy04LjA3NS00LjY1Ny0xMS40MzItMjIuNjM2LTYuODUzLTQ2Ljc1MmExNTYuOTIzIDE1Ni45MjMgMCAwIDEgMS44NjktOC40OTljMTAuNDg2IDIuMzIgMjIuMDkzIDMuOTg4IDM0LjQ5OCA0Ljk5NGM3LjA4NCA5Ljk2NyAxNC41MDEgMTkuMTI4IDIxLjk3NiAyNy4xNWExMzQuNjY4IDEzNC42NjggMCAwIDEtNC44NzcgNC40OTJjLTkuOTMzIDguNjgyLTE5Ljg4NiAxNC44NDItMjguNjU4IDE3Ljk0Wk01MC4zNSAxNDQuNzQ3Yy0xMi40ODMtNC4yNjctMjIuNzkyLTkuODEyLTI5Ljg1OC0xNS44NjNjLTYuMzUtNS40MzctOS41NTUtMTAuODM2LTkuNTU1LTE1LjIxNmMwLTkuMzIyIDEzLjg5Ny0yMS4yMTIgMzcuMDc2LTI5LjI5M2MyLjgxMy0uOTggNS43NTctMS45MDUgOC44MTItMi43NzNjMy4yMDQgMTAuNDIgNy40MDYgMjEuMzE1IDEyLjQ3NyAzMi4zMzJjLTUuMTM3IDExLjE4LTkuMzk5IDIyLjI0OS0xMi42MzQgMzIuNzkyYTEzNC43MTggMTM0LjcxOCAwIDAgMS02LjMxOC0xLjk3OVptMTIuMzc4LTg0LjI2Yy00LjgxMS0yNC41ODctMS42MTYtNDMuMTM0IDYuNDI1LTQ3Ljc4OWM4LjU2NC00Ljk1OCAyNy41MDIgMi4xMTEgNDcuNDYzIDE5LjgzNWExNDQuMzE4IDE0NC4zMTggMCAwIDEgMy44NDEgMy41NDVjLTcuNDM4IDcuOTg3LTE0Ljc4NyAxNy4wOC0yMS44MDggMjYuOTg4Yy0xMi4wNCAxLjExNi0yMy41NjUgMi45MDgtMzQuMTYxIDUuMzA5YTE2MC4zNDIgMTYwLjM0MiAwIDAgMS0xLjc2LTcuODg3Wm0xMTAuNDI3IDI3LjI2OGEzNDcuOCAzNDcuOCAwIDAgMC03Ljc4NS0xMi44MDNjOC4xNjggMS4wMzMgMTUuOTk0IDIuNDA0IDIzLjM0MyA0LjA4Yy0yLjIwNiA3LjA3Mi00Ljk1NiAxNC40NjUtOC4xOTMgMjIuMDQ1YTM4MS4xNTEgMzgxLjE1MSAwIDAgMC03LjM2NS0xMy4zMjJabS00NS4wMzItNDMuODYxYzUuMDQ0IDUuNDY1IDEwLjA5NiAxMS41NjYgMTUuMDY1IDE4LjE4NmEzMjIuMDQgMzIyLjA0IDAgMCAwLTMwLjI1Ny0uMDA2YzQuOTc0LTYuNTU5IDEwLjA2OS0xMi42NTIgMTUuMTkyLTE4LjE4Wk04Mi44MDIgODcuODNhMzIzLjE2NyAzMjMuMTY3IDAgMCAwLTcuMjI3IDEzLjIzOGMtMy4xODQtNy41NTMtNS45MDktMTQuOTgtOC4xMzQtMjIuMTUyYzcuMzA0LTEuNjM0IDE1LjA5My0yLjk3IDIzLjIwOS0zLjk4NGEzMjEuNTI0IDMyMS41MjQgMCAwIDAtNy44NDggMTIuODk3Wm04LjA4MSA2NS4zNTJjLTguMzg1LS45MzYtMTYuMjkxLTIuMjAzLTIzLjU5My0zLjc5M2MyLjI2LTcuMyA1LjA0NS0xNC44ODUgOC4yOTgtMjIuNmEzMjEuMTg3IDMyMS4xODcgMCAwIDAgNy4yNTcgMTMuMjQ2YzIuNTk0IDQuNDggNS4yOCA4Ljg2OCA4LjAzOCAxMy4xNDdabTM3LjU0MiAzMS4wM2MtNS4xODQtNS41OTItMTAuMzU0LTExLjc3OS0xNS40MDMtMTguNDMzYzQuOTAyLjE5MiA5Ljg5OS4yOSAxNC45NzguMjljNS4yMTggMCAxMC4zNzYtLjExNyAxNS40NTMtLjM0M2MtNC45ODUgNi43NzQtMTAuMDE4IDEyLjk3LTE1LjAyOCAxOC40ODZabTUyLjE5OC01Ny44MTdjMy40MjIgNy44IDYuMzA2IDE1LjM0NSA4LjU5NiAyMi41MmMtNy40MjIgMS42OTQtMTUuNDM2IDMuMDU4LTIzLjg4IDQuMDcxYTM4Mi40MTcgMzgyLjQxNyAwIDAgMCA3Ljg1OS0xMy4wMjZhMzQ3LjQwMyAzNDcuNDAzIDAgMCAwIDcuNDI1LTEzLjU2NVptLTE2Ljg5OCA4LjEwMWEzNTguNTU3IDM1OC41NTcgMCAwIDEtMTIuMjgxIDE5LjgxNWEzMjkuNCAzMjkuNCAwIDAgMS0yMy40NDQuODIzYy03Ljk2NyAwLTE1LjcxNi0uMjQ4LTIzLjE3OC0uNzMyYTMxMC4yMDIgMzEwLjIwMiAwIDAgMS0xMi41MTMtMTkuODQ2aC4wMDFhMzA3LjQxIDMwNy40MSAwIDAgMS0xMC45MjMtMjAuNjI3YTMxMC4yNzggMzEwLjI3OCAwIDAgMSAxMC44OS0yMC42MzdsLS4wMDEuMDAxYTMwNy4zMTggMzA3LjMxOCAwIDAgMSAxMi40MTMtMTkuNzYxYzcuNjEzLS41NzYgMTUuNDItLjg3NiAyMy4zMS0uODc2SDEyOGM3LjkyNiAwIDE1Ljc0My4zMDMgMjMuMzU0Ljg4M2EzMjkuMzU3IDMyOS4zNTcgMCAwIDEgMTIuMzM1IDE5LjY5NWEzNTguNDg5IDM1OC40ODkgMCAwIDEgMTEuMDM2IDIwLjU0YTMyOS40NzIgMzI5LjQ3MiAwIDAgMS0xMSAyMC43MjJabTIyLjU2LTEyMi4xMjRjOC41NzIgNC45NDQgMTEuOTA2IDI0Ljg4MSA2LjUyIDUxLjAyNmMtLjM0NCAxLjY2OC0uNzMgMy4zNjctMS4xNSA1LjA5Yy0xMC42MjItMi40NTItMjIuMTU1LTQuMjc1LTM0LjIzLTUuNDA4Yy03LjAzNC0xMC4wMTctMTQuMzIzLTE5LjEyNC0yMS42NC0yNy4wMDhhMTYwLjc4OSAxNjAuNzg5IDAgMCAxIDUuODg4LTUuNGMxOC45LTE2LjQ0NyAzNi41NjQtMjIuOTQxIDQ0LjYxMi0xOC4zWk0xMjggOTAuODA4YzEyLjYyNSAwIDIyLjg2IDEwLjIzNSAyMi44NiAyMi44NnMtMTAuMjM1IDIyLjg2LTIyLjg2IDIyLjg2cy0yMi44Ni0xMC4yMzUtMjIuODYtMjIuODZzMTAuMjM1LTIyLjg2IDIyLjg2LTIyLjg2WiINCiAgPjwvcGF0aD4NCjwvc3ZnPg==\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvYXNzZXRzL2ltYWdlcy9sb2dvLnN2ZyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDQSxzQkFBc0Isd0VBQXdFLGdCQUFnQixzQkFBc0IsT0FBTyxzQkFBc0Isb0JBQW9CLGdEQUFnRCxXQUFXO0FBQ2pOO0FBQy9CO0FBQ0Esc0JBQXNCLGdEQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQSxHQUFHLHlDQUF5QyxnREFBbUI7QUFDL0Q7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNxQztBQUNyQyxpRUFBZSxvQkFBb0IsZzNLQUFnM0siLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly93ZWJwYWNrLXJlYWN0LXRlbXBsYXRlLy4vc3JjL2Fzc2V0cy9pbWFnZXMvbG9nby5zdmc/MmM0YSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX3BhdGg7XG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgcmV0dXJuIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiA/IE9iamVjdC5hc3NpZ24uYmluZCgpIDogZnVuY3Rpb24gKG4pIHsgZm9yICh2YXIgZSA9IDE7IGUgPCBhcmd1bWVudHMubGVuZ3RoOyBlKyspIHsgdmFyIHQgPSBhcmd1bWVudHNbZV07IGZvciAodmFyIHIgaW4gdCkgKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsIHIpICYmIChuW3JdID0gdFtyXSk7IH0gcmV0dXJuIG47IH0sIF9leHRlbmRzLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7IH1cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xudmFyIFN2Z0xvZ28gPSBmdW5jdGlvbiBTdmdMb2dvKHByb3BzKSB7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCBfZXh0ZW5kcyh7XG4gICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgICBcImFyaWEtaGlkZGVuXCI6IFwidHJ1ZVwiLFxuICAgIHZpZXdCb3g6IFwiMCAwIDI1NiAyMjhcIlxuICB9LCBwcm9wcyksIF9wYXRoIHx8IChfcGF0aCA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgZmlsbDogXCIjMDBEOEZGXCIsXG4gICAgZDogXCJNMjEwLjQ4MyA3My44MjRhMTcyIDE3MiAwIDAgMC04LjI0LTIuNTk3Yy40NjUtMS45Ljg5My0zLjc3NyAxLjI3My01LjYyMSA2LjIzOC0zMC4yODEgMi4xNi01NC42NzYtMTEuNzY5LTYyLjcwOC0xMy4zNTUtNy43LTM1LjE5Ni4zMjktNTcuMjU0IDE5LjUyNmExNzEgMTcxIDAgMCAwLTYuMzc1IDUuODQ4IDE1NiAxNTYgMCAwIDAtNC4yNDEtMy45MTdDMTAwLjc1OSAzLjgyOSA3Ny41ODctNC44MjIgNjMuNjczIDMuMjMzIDUwLjMzIDEwLjk1NyA0Ni4zNzkgMzMuODkgNTEuOTk1IDYyLjU4OGExNzEgMTcxIDAgMCAwIDEuODkyIDguNDhjLTMuMjguOTMyLTYuNDQ1IDEuOTI0LTkuNDc0IDIuOThDMTcuMzA5IDgzLjQ5OCAwIDk4LjMwNyAwIDExMy42NjhjMCAxNS44NjUgMTguNTgyIDMxLjc3OCA0Ni44MTIgNDEuNDI3YTE0NiAxNDYgMCAwIDAgNi45MjEgMi4xNjUgMTY4IDE2OCAwIDAgMC0yLjAxIDkuMTM4Yy01LjM1NCAyOC4yLTEuMTczIDUwLjU5MSAxMi4xMzQgNTguMjY2IDEzLjc0NCA3LjkyNiAzNi44MTItLjIyIDU5LjI3My0xOS44NTVhMTQ2IDE0NiAwIDAgMCA1LjM0Mi00LjkyMyAxNjggMTY4IDAgMCAwIDYuOTIgNi4zMTRjMjEuNzU4IDE4LjcyMiA0My4yNDYgMjYuMjgyIDU2LjU0IDE4LjU4NiAxMy43MzEtNy45NDkgMTguMTk0LTMyLjAwMyAxMi40LTYxLjI2OGExNDUgMTQ1IDAgMCAwLTEuNTM1LTYuODQyYzEuNjItLjQ4IDMuMjEtLjk3NCA0Ljc2LTEuNDg4IDI5LjM0OC05LjcyMyA0OC40NDMtMjUuNDQzIDQ4LjQ0My00MS41MiAwLTE1LjQxNy0xNy44NjgtMzAuMzI2LTQ1LjUxNy0zOS44NDRtLTYuMzY1IDcwLjk4NHEtMi4xMDIuNjk0LTQuMyAxLjM0NWMtMy4yNC0xMC4yNTctNy42MTItMjEuMTYzLTEyLjk2My0zMi40MzIgNS4xMDYtMTEgOS4zMS0yMS43NjcgMTIuNDU5LTMxLjk1NyAyLjYxOS43NTggNS4xNiAxLjU1NyA3LjYxIDIuNCAyMy42OSA4LjE1NiAzOC4xNCAyMC4yMTMgMzguMTQgMjkuNTA0IDAgOS44OTYtMTUuNjA2IDIyLjc0My00MC45NDYgMzEuMTRtLTEwLjUxNCAyMC44MzRjMi41NjIgMTIuOTQgMi45MjcgMjQuNjQgMS4yMyAzMy43ODctMS41MjQgOC4yMTktNC41OSAxMy42OTgtOC4zODIgMTUuODkzLTguMDY3IDQuNjctMjUuMzItMS40LTQzLjkyNy0xNy40MTJhMTU3IDE1NyAwIDAgMS02LjQzNy01Ljg3YzcuMjE0LTcuODg5IDE0LjQyMy0xNy4wNiAyMS40NTktMjcuMjQ2IDEyLjM3Ni0xLjA5OCAyNC4wNjgtMi44OTQgMzQuNjcxLTUuMzQ1YTEzNCAxMzQgMCAwIDEgMS4zODYgNi4xOTNNODcuMjc2IDIxNC41MTVjLTcuODgyIDIuNzgzLTE0LjE2IDIuODYzLTE3Ljk1NS42NzUtOC4wNzUtNC42NTctMTEuNDMyLTIyLjYzNi02Ljg1My00Ni43NTJhMTU3IDE1NyAwIDAgMSAxLjg2OS04LjQ5OWMxMC40ODYgMi4zMiAyMi4wOTMgMy45ODggMzQuNDk4IDQuOTk0IDcuMDg0IDkuOTY3IDE0LjUwMSAxOS4xMjggMjEuOTc2IDI3LjE1YTEzNSAxMzUgMCAwIDEtNC44NzcgNC40OTJjLTkuOTMzIDguNjgyLTE5Ljg4NiAxNC44NDItMjguNjU4IDE3Ljk0TTUwLjM1IDE0NC43NDdjLTEyLjQ4My00LjI2Ny0yMi43OTItOS44MTItMjkuODU4LTE1Ljg2My02LjM1LTUuNDM3LTkuNTU1LTEwLjgzNi05LjU1NS0xNS4yMTYgMC05LjMyMiAxMy44OTctMjEuMjEyIDM3LjA3Ni0yOS4yOTMgMi44MTMtLjk4IDUuNzU3LTEuOTA1IDguODEyLTIuNzczIDMuMjA0IDEwLjQyIDcuNDA2IDIxLjMxNSAxMi40NzcgMzIuMzMyLTUuMTM3IDExLjE4LTkuMzk5IDIyLjI0OS0xMi42MzQgMzIuNzkyYTEzNSAxMzUgMCAwIDEtNi4zMTgtMS45NzltMTIuMzc4LTg0LjI2Yy00LjgxMS0yNC41ODctMS42MTYtNDMuMTM0IDYuNDI1LTQ3Ljc4OSA4LjU2NC00Ljk1OCAyNy41MDIgMi4xMTEgNDcuNDYzIDE5LjgzNWExNDQgMTQ0IDAgMCAxIDMuODQxIDMuNTQ1Yy03LjQzOCA3Ljk4Ny0xNC43ODcgMTcuMDgtMjEuODA4IDI2Ljk4OC0xMi4wNCAxLjExNi0yMy41NjUgMi45MDgtMzQuMTYxIDUuMzA5YTE2MCAxNjAgMCAwIDEtMS43Ni03Ljg4N1ptMTEwLjQyNyAyNy4yNjhhMzQ4IDM0OCAwIDAgMC03Ljc4NS0xMi44MDNjOC4xNjggMS4wMzMgMTUuOTk0IDIuNDA0IDIzLjM0MyA0LjA4LTIuMjA2IDcuMDcyLTQuOTU2IDE0LjQ2NS04LjE5MyAyMi4wNDVhMzgxIDM4MSAwIDAgMC03LjM2NS0xMy4zMjJtLTQ1LjAzMi00My44NjFjNS4wNDQgNS40NjUgMTAuMDk2IDExLjU2NiAxNS4wNjUgMTguMTg2YTMyMiAzMjIgMCAwIDAtMzAuMjU3LS4wMDZjNC45NzQtNi41NTkgMTAuMDY5LTEyLjY1MiAxNS4xOTItMTguMThNODIuODAyIDg3LjgzYTMyMyAzMjMgMCAwIDAtNy4yMjcgMTMuMjM4Yy0zLjE4NC03LjU1My01LjkwOS0xNC45OC04LjEzNC0yMi4xNTIgNy4zMDQtMS42MzQgMTUuMDkzLTIuOTcgMjMuMjA5LTMuOTg0YTMyMiAzMjIgMCAwIDAtNy44NDggMTIuODk3Wm04LjA4MSA2NS4zNTJjLTguMzg1LS45MzYtMTYuMjkxLTIuMjAzLTIzLjU5My0zLjc5MyAyLjI2LTcuMyA1LjA0NS0xNC44ODUgOC4yOTgtMjIuNmEzMjEgMzIxIDAgMCAwIDcuMjU3IDEzLjI0NmMyLjU5NCA0LjQ4IDUuMjggOC44NjggOC4wMzggMTMuMTQ3bTM3LjU0MiAzMS4wM2MtNS4xODQtNS41OTItMTAuMzU0LTExLjc3OS0xNS40MDMtMTguNDMzIDQuOTAyLjE5MiA5Ljg5OS4yOSAxNC45NzguMjkgNS4yMTggMCAxMC4zNzYtLjExNyAxNS40NTMtLjM0My00Ljk4NSA2Ljc3NC0xMC4wMTggMTIuOTctMTUuMDI4IDE4LjQ4Nm01Mi4xOTgtNTcuODE3YzMuNDIyIDcuOCA2LjMwNiAxNS4zNDUgOC41OTYgMjIuNTItNy40MjIgMS42OTQtMTUuNDM2IDMuMDU4LTIzLjg4IDQuMDcxYTM4MiAzODIgMCAwIDAgNy44NTktMTMuMDI2IDM0NyAzNDcgMCAwIDAgNy40MjUtMTMuNTY1bS0xNi44OTggOC4xMDFhMzU5IDM1OSAwIDAgMS0xMi4yODEgMTkuODE1IDMyOSAzMjkgMCAwIDEtMjMuNDQ0LjgyM2MtNy45NjcgMC0xNS43MTYtLjI0OC0yMy4xNzgtLjczMmEzMTAgMzEwIDAgMCAxLTEyLjUxMy0xOS44NDZoLjAwMWEzMDcgMzA3IDAgMCAxLTEwLjkyMy0yMC42MjcgMzEwIDMxMCAwIDAgMSAxMC44OS0yMC42MzdsLS4wMDEuMDAxYTMwNyAzMDcgMCAwIDEgMTIuNDEzLTE5Ljc2MWM3LjYxMy0uNTc2IDE1LjQyLS44NzYgMjMuMzEtLjg3NkgxMjhjNy45MjYgMCAxNS43NDMuMzAzIDIzLjM1NC44ODNhMzI5IDMyOSAwIDAgMSAxMi4zMzUgMTkuNjk1IDM1OSAzNTkgMCAwIDEgMTEuMDM2IDIwLjU0IDMzMCAzMzAgMCAwIDEtMTEgMjAuNzIybTIyLjU2LTEyMi4xMjRjOC41NzIgNC45NDQgMTEuOTA2IDI0Ljg4MSA2LjUyIDUxLjAyNnEtLjUxOCAyLjUwNC0xLjE1IDUuMDljLTEwLjYyMi0yLjQ1Mi0yMi4xNTUtNC4yNzUtMzQuMjMtNS40MDgtNy4wMzQtMTAuMDE3LTE0LjMyMy0xOS4xMjQtMjEuNjQtMjcuMDA4YTE2MSAxNjEgMCAwIDEgNS44ODgtNS40YzE4LjktMTYuNDQ3IDM2LjU2NC0yMi45NDEgNDQuNjEyLTE4LjNNMTI4IDkwLjgwOGMxMi42MjUgMCAyMi44NiAxMC4yMzUgMjIuODYgMjIuODZzLTEwLjIzNSAyMi44Ni0yMi44NiAyMi44Ni0yMi44Ni0xMC4yMzUtMjIuODYtMjIuODYgMTAuMjM1LTIyLjg2IDIyLjg2LTIyLjg2XCJcbiAgfSkpKTtcbn07XG5leHBvcnQgeyBTdmdMb2dvIGFzIFJlYWN0Q29tcG9uZW50IH07XG5leHBvcnQgZGVmYXVsdCBcImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp3MEtJQ0I0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lEUW9nSUhodGJHNXpXR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lEUW9nSUdGeWFXRXRhR2xrWkdWdVBTSjBjblZsSWcwS0lDQnliMnhsUFNKcGJXY2lEUW9nSUhCeVpYTmxjblpsUVhOd1pXTjBVbUYwYVc4OUluaE5hV1JaVFdsa0lHMWxaWFFpRFFvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TlRZZ01qSTRJZzBLUGcwS0lDQThjR0YwYUEwS0lDQWdJR1pwYkd3OUlpTXdNRVE0UmtZaURRb2dJQ0FnWkQwaVRUSXhNQzQwT0RNZ056TXVPREkwWVRFM01TNDBPU0F4TnpFdU5Ea2dNQ0F3SURBdE9DNHlOQzB5TGpVNU4yTXVORFkxTFRFdU9TNDRPVE10TXk0M056Y2dNUzR5TnpNdE5TNDJNakZqTmk0eU16Z3RNekF1TWpneElESXVNVFl0TlRRdU5qYzJMVEV4TGpjMk9TMDJNaTQzTURoakxURXpMak0xTlMwM0xqY3RNelV1TVRrMkxqTXlPUzAxTnk0eU5UUWdNVGt1TlRJMllURTNNUzR5TXlBeE56RXVNak1nTUNBd0lEQXROaTR6TnpVZ05TNDRORGhoTVRVMUxqZzJOaUF4TlRVdU9EWTJJREFnTUNBd0xUUXVNalF4TFRNdU9URTNRekV3TUM0M05Ua2dNeTQ0TWprZ056Y3VOVGczTFRRdU9ESXlJRFl6TGpZM015QXpMakl6TTBNMU1DNHpNeUF4TUM0NU5UY2dORFl1TXpjNUlETXpMamc1SURVeExqazVOU0EyTWk0MU9EaGhNVGN3TGprM05DQXhOekF1T1RjMElEQWdNQ0F3SURFdU9Ea3lJRGd1TkRoakxUTXVNamd1T1RNeUxUWXVORFExSURFdU9USTBMVGt1TkRjMElESXVPVGhETVRjdU16QTVJRGd6TGpRNU9DQXdJRGs0TGpNd055QXdJREV4TXk0Mk5qaGpNQ0F4TlM0NE5qVWdNVGd1TlRneUlETXhMamMzT0NBME5pNDRNVElnTkRFdU5ESTNZVEUwTlM0MU1pQXhORFV1TlRJZ01DQXdJREFnTmk0NU1qRWdNaTR4TmpWaE1UWTNMalEyTnlBeE5qY3VORFkzSURBZ01DQXdMVEl1TURFZ09TNHhNemhqTFRVdU16VTBJREk0TGpJdE1TNHhOek1nTlRBdU5Ua3hJREV5TGpFek5DQTFPQzR5Tmpaak1UTXVOelEwSURjdU9USTJJRE0yTGpneE1pMHVNaklnTlRrdU1qY3pMVEU1TGpnMU5XRXhORFV1TlRZM0lERTBOUzQxTmpjZ01DQXdJREFnTlM0ek5ESXROQzQ1TWpOaE1UWTRMakEyTkNBeE5qZ3VNRFkwSURBZ01DQXdJRFl1T1RJZ05pNHpNVFJqTWpFdU56VTRJREU0TGpjeU1pQTBNeTR5TkRZZ01qWXVNamd5SURVMkxqVTBJREU0TGpVNE5tTXhNeTQzTXpFdE55NDVORGtnTVRndU1UazBMVE15TGpBd015QXhNaTQwTFRZeExqSTJPR0V4TkRVdU1ERTJJREUwTlM0d01UWWdNQ0F3SURBdE1TNDFNelV0Tmk0NE5ESmpNUzQyTWkwdU5EZ2dNeTR5TVMwdU9UYzBJRFF1TnpZdE1TNDBPRGhqTWprdU16UTRMVGt1TnpJeklEUTRMalEwTXkweU5TNDBORE1nTkRndU5EUXpMVFF4TGpVeVl6QXRNVFV1TkRFM0xURTNMamcyT0Mwek1DNHpNall0TkRVdU5URTNMVE01TGpnME5GcHRMVFl1TXpZMUlEY3dMams0TkdNdE1TNDBMalEyTXkweUxqZ3pOaTQ1TVMwMExqTWdNUzR6TkRWakxUTXVNalF0TVRBdU1qVTNMVGN1TmpFeUxUSXhMakUyTXkweE1pNDVOak10TXpJdU5ETXlZelV1TVRBMkxURXhJRGt1TXpFdE1qRXVOelkzSURFeUxqUTFPUzB6TVM0NU5UZGpNaTQyTVRrdU56VTRJRFV1TVRZZ01TNDFOVGNnTnk0Mk1TQXlMalJqTWpNdU5qa2dPQzR4TlRZZ016Z3VNVFFnTWpBdU1qRXpJRE00TGpFMElESTVMalV3TkdNd0lEa3VPRGsyTFRFMUxqWXdOaUF5TWk0M05ETXROREF1T1RRMklETXhMakUwV20wdE1UQXVOVEUwSURJd0xqZ3pOR015TGpVMk1pQXhNaTQ1TkNBeUxqa3lOeUF5TkM0Mk5DQXhMakl6SURNekxqYzROMk10TVM0MU1qUWdPQzR5TVRrdE5DNDFPU0F4TXk0Mk9UZ3RPQzR6T0RJZ01UVXVPRGt6WXkwNExqQTJOeUEwTGpZM0xUSTFMak15TFRFdU5DMDBNeTQ1TWpjdE1UY3VOREV5WVRFMU5pNDNNallnTVRVMkxqY3lOaUF3SURBZ01TMDJMalF6TnkwMUxqZzNZemN1TWpFMExUY3VPRGc1SURFMExqUXlNeTB4Tnk0d05pQXlNUzQwTlRrdE1qY3VNalEyWXpFeUxqTTNOaTB4TGpBNU9DQXlOQzR3TmpndE1pNDRPVFFnTXpRdU5qY3hMVFV1TXpRMVlURXpOQzR4TnlBeE16UXVNVGNnTUNBd0lERWdNUzR6T0RZZ05pNHhPVE5hVFRnM0xqSTNOaUF5TVRRdU5URTFZeTAzTGpnNE1pQXlMamM0TXkweE5DNHhOaUF5TGpnMk15MHhOeTQ1TlRVdU5qYzFZeTA0TGpBM05TMDBMalkxTnkweE1TNDBNekl0TWpJdU5qTTJMVFl1T0RVekxUUTJMamMxTW1FeE5UWXVPVEl6SURFMU5pNDVNak1nTUNBd0lERWdNUzQ0TmprdE9DNDBPVGxqTVRBdU5EZzJJREl1TXpJZ01qSXVNRGt6SURNdU9UZzRJRE0wTGpRNU9DQTBMams1TkdNM0xqQTROQ0E1TGprMk55QXhOQzQxTURFZ01Ua3VNVEk0SURJeExqazNOaUF5Tnk0eE5XRXhNelF1TmpZNElERXpOQzQyTmpnZ01DQXdJREV0TkM0NE56Y2dOQzQwT1RKakxUa3VPVE16SURndU5qZ3lMVEU1TGpnNE5pQXhOQzQ0TkRJdE1qZ3VOalU0SURFM0xqazBXazAxTUM0ek5TQXhORFF1TnpRM1l5MHhNaTQwT0RNdE5DNHlOamN0TWpJdU56a3lMVGt1T0RFeUxUSTVMamcxT0MweE5TNDROak5qTFRZdU16VXROUzQwTXpjdE9TNDFOVFV0TVRBdU9ETTJMVGt1TlRVMUxURTFMakl4Tm1Nd0xUa3VNekl5SURFekxqZzVOeTB5TVM0eU1USWdNemN1TURjMkxUSTVMakk1TTJNeUxqZ3hNeTB1T1RnZ05TNDNOVGN0TVM0NU1EVWdPQzQ0TVRJdE1pNDNOek5qTXk0eU1EUWdNVEF1TkRJZ055NDBNRFlnTWpFdU16RTFJREV5TGpRM055QXpNaTR6TXpKakxUVXVNVE0zSURFeExqRTRMVGt1TXprNUlESXlMakkwT1MweE1pNDJNelFnTXpJdU56a3lZVEV6TkM0M01UZ2dNVE0wTGpjeE9DQXdJREFnTVMwMkxqTXhPQzB4TGprM09WcHRNVEl1TXpjNExUZzBMakkyWXkwMExqZ3hNUzB5TkM0MU9EY3RNUzQyTVRZdE5ETXVNVE0wSURZdU5ESTFMVFEzTGpjNE9XTTRMalUyTkMwMExqazFPQ0F5Tnk0MU1ESWdNaTR4TVRFZ05EY3VORFl6SURFNUxqZ3pOV0V4TkRRdU16RTRJREUwTkM0ek1UZ2dNQ0F3SURFZ015NDROREVnTXk0MU5EVmpMVGN1TkRNNElEY3VPVGczTFRFMExqYzROeUF4Tnk0d09DMHlNUzQ0TURnZ01qWXVPVGc0WXkweE1pNHdOQ0F4TGpFeE5pMHlNeTQxTmpVZ01pNDVNRGd0TXpRdU1UWXhJRFV1TXpBNVlURTJNQzR6TkRJZ01UWXdMak0wTWlBd0lEQWdNUzB4TGpjMkxUY3VPRGczV20weE1UQXVOREkzSURJM0xqSTJPR0V6TkRjdU9DQXpORGN1T0NBd0lEQWdNQzAzTGpjNE5TMHhNaTQ0TUROak9DNHhOamdnTVM0d016TWdNVFV1T1RrMElESXVOREEwSURJekxqTTBNeUEwTGpBNFl5MHlMakl3TmlBM0xqQTNNaTAwTGprMU5pQXhOQzQwTmpVdE9DNHhPVE1nTWpJdU1EUTFZVE00TVM0eE5URWdNemd4TGpFMU1TQXdJREFnTUMwM0xqTTJOUzB4TXk0ek1qSmFiUzAwTlM0d016SXRORE11T0RZeFl6VXVNRFEwSURVdU5EWTFJREV3TGpBNU5pQXhNUzQxTmpZZ01UVXVNRFkxSURFNExqRTRObUV6TWpJdU1EUWdNekl5TGpBMElEQWdNQ0F3TFRNd0xqSTFOeTB1TURBMll6UXVPVGMwTFRZdU5UVTVJREV3TGpBMk9TMHhNaTQyTlRJZ01UVXVNVGt5TFRFNExqRTRXazA0TWk0NE1ESWdPRGN1T0ROaE16SXpMakUyTnlBek1qTXVNVFkzSURBZ01DQXdMVGN1TWpJM0lERXpMakl6T0dNdE15NHhPRFF0Tnk0MU5UTXROUzQ1TURrdE1UUXVPVGd0T0M0eE16UXRNakl1TVRVeVl6Y3VNekEwTFRFdU5qTTBJREUxTGpBNU15MHlMamszSURJekxqSXdPUzB6TGprNE5HRXpNakV1TlRJMElETXlNUzQxTWpRZ01DQXdJREF0Tnk0NE5EZ2dNVEl1T0RrM1dtMDRMakE0TVNBMk5TNHpOVEpqTFRndU16ZzFMUzQ1TXpZdE1UWXVNamt4TFRJdU1qQXpMVEl6TGpVNU15MHpMamM1TTJNeUxqSTJMVGN1TXlBMUxqQTBOUzB4TkM0NE9EVWdPQzR5T1RndE1qSXVObUV6TWpFdU1UZzNJRE15TVM0eE9EY2dNQ0F3SURBZ055NHlOVGNnTVRNdU1qUTJZekl1TlRrMElEUXVORGdnTlM0eU9DQTRMamcyT0NBNExqQXpPQ0F4TXk0eE5EZGFiVE0zTGpVME1pQXpNUzR3TTJNdE5TNHhPRFF0TlM0MU9USXRNVEF1TXpVMExURXhMamMzT1MweE5TNDBNRE10TVRndU5ETXpZelF1T1RBeUxqRTVNaUE1TGpnNU9TNHlPU0F4TkM0NU56Z3VNamxqTlM0eU1UZ2dNQ0F4TUM0ek56WXRMakV4TnlBeE5TNDBOVE10TGpNME0yTXROQzQ1T0RVZ05pNDNOelF0TVRBdU1ERTRJREV5TGprM0xURTFMakF5T0NBeE9DNDBPRFphYlRVeUxqRTVPQzAxTnk0NE1UZGpNeTQwTWpJZ055NDRJRFl1TXpBMklERTFMak0wTlNBNExqVTVOaUF5TWk0MU1tTXROeTQwTWpJZ01TNDJPVFF0TVRVdU5ETTJJRE11TURVNExUSXpMamc0SURRdU1EY3hZVE00TWk0ME1UY2dNemd5TGpReE55QXdJREFnTUNBM0xqZzFPUzB4TXk0d01qWmhNelEzTGpRd015QXpORGN1TkRBeklEQWdNQ0F3SURjdU5ESTFMVEV6TGpVMk5WcHRMVEUyTGpnNU9DQTRMakV3TVdFek5UZ3VOVFUzSURNMU9DNDFOVGNnTUNBd0lERXRNVEl1TWpneElERTVMamd4TldFek1qa3VOQ0F6TWprdU5DQXdJREFnTVMweU15NDBORFF1T0RJell5MDNMamsyTnlBd0xURTFMamN4TmkwdU1qUTRMVEl6TGpFM09DMHVOek15WVRNeE1DNHlNRElnTXpFd0xqSXdNaUF3SURBZ01TMHhNaTQxTVRNdE1Ua3VPRFEyYUM0d01ERmhNekEzTGpReElETXdOeTQwTVNBd0lEQWdNUzB4TUM0NU1qTXRNakF1TmpJM1lUTXhNQzR5TnpnZ016RXdMakkzT0NBd0lEQWdNU0F4TUM0NE9TMHlNQzQyTXpkc0xTNHdNREV1TURBeFlUTXdOeTR6TVRnZ016QTNMak14T0NBd0lEQWdNU0F4TWk0ME1UTXRNVGt1TnpZeFl6Y3VOakV6TFM0MU56WWdNVFV1TkRJdExqZzNOaUF5TXk0ek1TMHVPRGMyU0RFeU9HTTNMamt5TmlBd0lERTFMamMwTXk0ek1ETWdNak11TXpVMExqZzRNMkV6TWprdU16VTNJRE15T1M0ek5UY2dNQ0F3SURFZ01USXVNek0xSURFNUxqWTVOV0V6TlRndU5EZzVJRE0xT0M0ME9Ea2dNQ0F3SURFZ01URXVNRE0ySURJd0xqVTBZVE15T1M0ME56SWdNekk1TGpRM01pQXdJREFnTVMweE1TQXlNQzQzTWpKYWJUSXlMalUyTFRFeU1pNHhNalJqT0M0MU56SWdOQzQ1TkRRZ01URXVPVEEySURJMExqZzRNU0EyTGpVeUlEVXhMakF5Tm1NdExqTTBOQ0F4TGpZMk9DMHVOek1nTXk0ek5qY3RNUzR4TlNBMUxqQTVZeTB4TUM0Mk1qSXRNaTQwTlRJdE1qSXVNVFUxTFRRdU1qYzFMVE0wTGpJekxUVXVOREE0WXkwM0xqQXpOQzB4TUM0d01UY3RNVFF1TXpJekxURTVMakV5TkMweU1TNDJOQzB5Tnk0d01EaGhNVFl3TGpjNE9TQXhOakF1TnpnNUlEQWdNQ0F4SURVdU9EZzRMVFV1TkdNeE9DNDVMVEUyTGpRME55QXpOaTQxTmpRdE1qSXVPVFF4SURRMExqWXhNaTB4T0M0eldrMHhNamdnT1RBdU9EQTRZekV5TGpZeU5TQXdJREl5TGpnMklERXdMakl6TlNBeU1pNDROaUF5TWk0NE5uTXRNVEF1TWpNMUlESXlMamcyTFRJeUxqZzJJREl5TGpnMmN5MHlNaTQ0TmkweE1DNHlNelV0TWpJdU9EWXRNakl1T0Raek1UQXVNak0xTFRJeUxqZzJJREl5TGpnMkxUSXlMamcyV2lJTkNpQWdQand2Y0dGMGFENE5Dand2YzNablBnPT1cIjsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/assets/images/logo.svg\n"); + +/***/ }), + +/***/ "./node_modules/cookie/dist/index.js": +/*!*******************************************!*\ + !*** ./node_modules/cookie/dist/index.js ***! + \*******************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.parse = parse;\nexports.serialize = serialize;\n/**\n * RegExp to match cookie-name in RFC 6265 sec 4.1.1\n * This refers out to the obsoleted definition of token in RFC 2616 sec 2.2\n * which has been replaced by the token definition in RFC 7230 appendix B.\n *\n * cookie-name = token\n * token = 1*tchar\n * tchar = \"!\" / \"#\" / \"$\" / \"%\" / \"&\" / \"'\" /\n * \"*\" / \"+\" / \"-\" / \".\" / \"^\" / \"_\" /\n * \"`\" / \"|\" / \"~\" / DIGIT / ALPHA\n *\n * Note: Allowing more characters - https://github.com/jshttp/cookie/issues/191\n * Allow same range as cookie value, except `=`, which delimits end of name.\n */\nconst cookieNameRegExp = /^[\\u0021-\\u003A\\u003C\\u003E-\\u007E]+$/;\n/**\n * RegExp to match cookie-value in RFC 6265 sec 4.1.1\n *\n * cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )\n * cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E\n * ; US-ASCII characters excluding CTLs,\n * ; whitespace DQUOTE, comma, semicolon,\n * ; and backslash\n *\n * Allowing more characters: https://github.com/jshttp/cookie/issues/191\n * Comma, backslash, and DQUOTE are not part of the parsing algorithm.\n */\nconst cookieValueRegExp = /^[\\u0021-\\u003A\\u003C-\\u007E]*$/;\n/**\n * RegExp to match domain-value in RFC 6265 sec 4.1.1\n *\n * domain-value = \n * ; defined in [RFC1034], Section 3.5, as\n * ; enhanced by [RFC1123], Section 2.1\n * =